Descubre datos

En esta guía, se explica cómo habilitar y usar Dataplex Discovery. Discovery analiza y extrae metadatos de los datos de un data lake y los registra en Dataproc Metastore, BigQuery y Data Catalog para su análisis, búsqueda y exploración.

Descripción general

Para cada recurso de Dataplex con Discovery habilitado, Dataplex hace lo siguiente:

  • Analiza los datos asociados con el recurso.
  • Agrupa archivos estructurados y semiestructurados en tablas.
  • Recopila metadatos técnicos, como el nombre de la tabla, el esquema y la definición de la partición.

En el caso de los datos no estructurados, como imágenes y videos, Dataplex Discovery detecta y registra automáticamente grupos de archivos que comparten tipos de contenido multimedia como conjuntos de archivos. Por ejemplo, si gs://images/group1 contiene imágenes GIF y gs://images/group2 contiene imágenes JPEG, Dataplex Discovery detecta y registra dos conjuntos de archivos. En el caso de los datos estructurados, como Avro, Discovery detecta archivos solo si están ubicados en carpetas que contienen el mismo formato y esquema de datos.

Las tablas y los conjuntos de archivos descubiertos se registran en Data Catalog para la búsqueda y el descubrimiento. Las tablas aparecen en Dataproc Metastore como tablas de estilo Hive, y en BigQuery como tablas externas, de modo que los datos estén disponibles automáticamente para el análisis.

Discovery admite los siguientes formatos de datos estructurados y semiestructurados:

Discovery admite el siguiente formato de compresión para datos estructurados y semiestructurados:

  • Compresión interna para estos formatos:

    Compresión Muestra de extensión de archivo Formato compatible:
    gzip .gz.parquet Parquet
    lz4 Parquet Parquet
    Snappy .snappy.parquet Parquet, ORC y Avro
    lzo .lzo.parquet Parquet, ORC
  • Compresión externa para archivos JSON y CSV:

    • gzip
    • bzip2

Configuración de detección

El descubrimiento se habilita de forma predeterminada cuando creas una zona o un elemento nuevos. Puedes inhabilitar el descubrimiento a nivel de la zona o del elemento.

Cuando creas una zona o un recurso, puedes elegir heredar la configuración de detección a nivel de zona o anular la configuración de detección a nivel del recurso.

Estas son las opciones de configuración de detección disponibles a nivel de zona y recurso:

  • Activar y desactivar las notificaciones de detección.

  • Programa de detección: Esta opción se puede establecer como un programa predefinido, por ejemplo, por hora o por día, o un programa personalizado definido por formato cron. Los recursos nuevos se analizan cuando se agregan. Para obtener más información, consulta Cómo configurar programas de cron. Recomendación: Programa el descubrimiento para que se ejecute cada hora o con menos frecuencia.

  • Patrón de inclusión o exclusión: Define qué archivos incluir o excluir de los análisis de descubrimiento mediante el uso de patrones glob en la ruta de inclusión o exclusión. Por ejemplo, si deseas excluir gs://test_bucket/foo/.. del descubrimiento, ingresa **/foo/* como la ruta de exclusión. Las comillas causan errores. Asegúrate de ingresar **/foo/* en lugar de "**/foo/*"). Esta función solo está disponible para los elementos de Cloud Storage. Cuando existen patrones de inclusión y exclusión al mismo tiempo, primero se aplican los patrones de exclusión.

  • Especificaciones de JSON o CSV: Te permiten proporcionar información adicional sobre los datos semiestructurados, como CSV y JSON, para mejorar la precisión de los resultados de Descubrimiento.

    • Para los archivos CSV, puedes proporcionar cualquiera de los siguientes elementos:

      • Delimitador: Este campo acepta un carácter, excepto \r y \n. Si se indica más de un carácter, solo se utiliza el primer carácter de la cadena. Si no se proporciona, Discovery usa una coma como delimitador.

      • Número de filas de encabezado: Este campo acepta el valor 0 o 1. El valor predeterminado es 0. Cuando el valor es 0, Discovery realiza la inferencia de encabezado y, si se detecta, extrae los nombres de las columnas del encabezado y restablece el valor a 1.

      • Codificación: Este campo acepta nombres de codificación de string, como UTF-8, US-ASCII o ISO-8859-1. Si no se especifica nada, se usa UTF-8 como valor predeterminado.

      • Inhabilitar la inferencia de tipo: Este campo acepta un valor booleano. Está configurada en false de forma predeterminada. En el caso de los datos CSV, si inhabilitas la inferencia de tipos, todas las columnas se registran como cadenas.

    • Para los archivos JSON, puedes proporcionar cualquiera de los siguientes elementos:

      • Codificación: Este campo acepta nombres de codificación de string, como UTF-8, US-ASCII o ISO-8859-1. Si no se especifica nada, se usa UTF-8 como valor predeterminado.

      • Inhabilitar la inferencia de tipo de datos: Este campo acepta un valor booleano. Está configurada en false de forma predeterminada. En el caso de los datos JSON, si inhabilitas la inferencia de tipos, todas las columnas se registran como sus tipos primitivos (string, número o booleano).

Publicar metadatos

Cuando creas una zona de datos en tu lake de Dataplex, Dataplex crea un conjunto de datos de BigQuery en el proyecto que contiene el lake. Dataplex publica en ese conjunto de datos las tablas detectadas en los buckets de Cloud Storage agregados a la zona de datos como recursos. El conjunto de datos se conoce como un conjunto de datos de publicación de metadatos que corresponde a la zona.

Cada zona de datos de Dataplex se asigna a un conjunto de datos en BigQuery o a una base de datos en Dataproc Metastore, en la que la información de metadatos se pone a disposición automáticamente.

Puedes editar los metadatos descubiertos automáticamente, como el nombre de la tabla o el esquema, con la API de metadatos de Dataplex.

Ver las tablas y los conjuntos de archivos descubiertos

Puedes buscar tablas y conjuntos de archivos descubiertos en la vista Search de Dataplex en la consola de Google Cloud.

Abrir la Búsqueda

Para obtener resultados de la búsqueda más precisos, usa filtros específicos de Dataplex, como nombres de lakes y zonas de datos. Los 50 elementos principales por faceta se muestran en la lista de filtros. Puedes encontrar elementos adicionales con el cuadro de búsqueda.

Cada entrada contiene metadatos técnicos y operativos detallados.

En la página de detalles de la entrada, puedes consultar la tabla en BigQuery y ver los detalles de registro correspondientes de Dataproc Metastore.

Si una tabla de Cloud Storage se puede publicar en BigQuery como una tabla externa, podrás ver lo siguiente en la vista de detalles de la entrada:

  • Referencias de tablas externas de BigQuery
  • El botón Abrir en BigQuery para comenzar a analizar los datos en BigQuery

Las entradas de metadatos de Dataplex son directamente visibles y se pueden buscar en Data Catalog. Para obtener más información, consulta la referencia de búsqueda de Data Catalog.

Todas las entradas descubiertas se pueden ver a través de la API de metadatos de Dataplex.

Acciones de descubrimiento

El descubrimiento genera las siguientes acciones del administrador cada vez que se detectan problemas relacionados con los datos durante los análisis.

Formato de datos no válido

Se incluyen las siguientes acciones:

  • El formato de datos no coincide en una tabla. Por ejemplo, existen archivos de diferentes formatos con el mismo prefijo de tabla.

  • Un formato de datos no válido en las zonas seleccionadas (datos que no están en formatos Avro, ORC o Parquet).

Esquema incompatible

Se incluyen las siguientes acciones:

  • Un esquema detectado por Discovery no es compatible con el esquema de tabla activo en la API de metadatos en Dataproc Metastore. El esquema A y el esquema B no son compatibles en los siguientes casos:

    • A y B comparten campos con el mismo nombre, pero con tipos de datos diferentes o incompatibles. Por ejemplo, cadena y número entero.

    • A y B no tienen campos superpuestos.

    • A y B tienen al menos un campo no anulable que no se encuentra en el otro esquema.

  • La desviación del esquema respecto de un esquema administrado por el usuario en la zona seleccionada.

Definición de partición no válida

Se incluyen las siguientes acciones:

  • Los nombres de las particiones no coinciden. Por ejemplo, gs://sales_data/year=2020/month=10/day=01 y gs://sales_data/year=2020/region=us.

  • Asignación de nombres de particiones de estilo sin Hive en la zona de datos seleccionada Por ejemplo, gs://sales_data/2020/10/01 en lugar de gs://sales_data/year=2020/month=10/day=01.

Faltan datos

Se incluyen las siguientes acciones:

  • En la zona de datos seleccionada, los datos subyacentes de una tabla o un conjunto de archivos registrados ya no existen. En otras palabras, se descubrió y registró una tabla de zonas seleccionadas o un conjunto de archivos, pero luego se borraron sus datos subyacentes. Para solucionar este problema, vuelve a reabastecer los datos o borra la entrada de metadatos.

Cómo resolver las acciones de descubrimiento

Los datos con acciones se verifican en los análisis posteriores de Discovery. Cuando se corrige el problema que activa la acción, la acción se resuelve automáticamente con el siguiente análisis programado de Discovery.

Otras acciones

Además de las acciones de descubrimiento anteriores, existen otros tres tipos de acciones relacionadas con el estado de los recursos y las propagación de la política de seguridad en Dataplex.

  • Falta un recurso: No se encuentra el bucket o el conjunto de datos subyacente que corresponda a un recurso existente.

  • Recurso no autorizado: Dataplex no tiene suficientes permisos para realizar descubrimientos o aplicar políticas de seguridad al bucket o conjunto de datos que administra Dataplex.

  • Problemas con la propagación de políticas de seguridad: Las políticas de seguridad especificadas para un lake, una zona o un recurso determinado no se pudieron propagar de forma correcta a los buckets o conjuntos de datos subyacentes. Si bien todas las demás acciones se realizan a nivel del recurso, este tipo de acción se podría generar a nivel del lake, de la zona y del recurso.

Estos tipos de acciones se resuelven de forma automática cuando se corrigen los problemas subyacentes de recursos o de configuración de seguridad.

Preguntas frecuentes

¿Qué debo hacer si el esquema que infiere el descubrimiento es incorrecto?

Si el esquema inferido es diferente del que se espera para una tabla determinada, puedes anular el esquema inferido mediante la actualización de los metadatos con la API de metadatos. Asegúrate de establecer userManaged en true para que la edición no se reemplace en los análisis de descubrimiento posteriores.

¿Cómo excluyo archivos de un análisis de Discovery?

De forma predeterminada, Discovery excluye del análisis ciertos tipos de archivos, incluidos los siguientes:

  • _SUCCESS
  • _started
  • _committed
  • _metadata, _METADATA, _Metadata
  • _common_metadata, _COMMON_METADATA
  • Archivos que comienzan con README o readme
  • Directorios que comienzan con base_, delta_, delete_delta_, bucket_, seguidos de un número
  • Directorios que comienzan con .

Puedes especificar patrones de inclusión o exclusión adicionales mediante la configuración de descubrimiento a nivel de zona o elemento, o mediante la API de metadatos.

¿Qué debo hacer si la agrupación de tablas que detecta Discovery es demasiado detallada?

Si las tablas detectadas por Discovery están en un nivel más detallado en comparación con la ruta raíz de la tabla (por ejemplo, cada partición individual se registra como una tabla), puede haber varios motivos:

  • Existen diferencias de formato, como una combinación de archivos Avro y Parquet, en la ruta raíz esperada de la tabla, que dividen la tabla en grupos más pequeños.

  • Existen diferentes tipos de incompatibilidades de esquema en la ruta raíz de la tabla esperada, que dividen la tabla en grupos más pequeños.

Puedes resolver este problema de cualquiera de las siguientes maneras:

  • Corrige las diferencias de formato o esquema para que todos los archivos en la misma ruta raíz de la tabla tengan un formato coherente y un esquema compatible.

  • Excluye archivos heterogéneos mediante la configuración de patrones de exclusión como parte de la configuración de zona o recursos o de la API de metadatos.

Después de tomar una de las medidas correctivas, en el siguiente análisis de Descubrimiento, ocurrirá lo siguiente:

  • Las tablas existentes de nivel inferior se quitan de forma automática de la API de metadatos de Dataplex, BigQuery, Dataproc Metastore y Data Catalog.
  • En su lugar, se crea una tabla nueva de nivel superior con la ruta raíz de tabla esperada.

¿Cómo especifico los nombres de las tablas?

Puedes especificar los nombres de tabla con la API de metadatos.

¿Qué sucede si creo tablas manualmente en Dataproc Metastore o BigQuery?

Cuando el descubrimiento está habilitado para un recurso determinado, no necesitas registrar entradas de forma manual en Dataproc Metastore o BigQuery.

Puedes definir de forma manual el nombre de la tabla, el esquema y las definiciones de partición, mientras desactivas Dataplex Discovery. Como alternativa, puedes hacer lo siguiente:

  1. Crea una tabla. Para ello, especifica solo la información requerida, como la ruta raíz de la tabla.
  2. Usa Dataplex Discovery para propagar el resto de los metadatos, como las definiciones de esquema y partición.
  3. Mantén los metadatos actualizados.

¿Qué debo hacer si mi tabla no aparece en BigQuery?

Si bien los metadatos de Dataplex están registrados de forma centralizada en la API de metadatos, solo las tablas de Cloud Storage que son compatibles con BigQuery se publican en BigQuery como tablas externas. Como parte de los detalles de entrada de la tabla en la API de metadatos, puedes encontrar un marcador de compatibilidad de BigQuery que indique qué entidades se publican en BigQuery y por qué.

Próximos pasos