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 análisis, búsqueda y exploración.
Descripción general
Para cada activo de Dataplex con Discovery habilitado, Dataplex hace lo siguiente:
- Analiza los datos asociados con el activo.
- 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 el mismo tipo 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 los archivos solo si se encuentran en carpetas que contienen el mismo formato de datos y esquema.
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:
- Parquet
- Avro
- ORC
- JSON (solo el formato delimitado por saltos de línea)
- CSV (no se admiten archivos CSV con filas de comentarios)
Discovery admite el siguiente formato de compresión para datos estructurados y semiestructurados:
Compresión interna para estos formatos:
Compresión Ejemplo de extensión de archivo Formato compatible: gzip .gz.parquet Parquet lz4 .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 está habilitado de forma predeterminada cuando creas una zona o un activo nuevos. Puedes inhabilitar la función Discovery a nivel de la zona o del recurso.
Cuando creas una zona o un recurso, puedes elegir heredar la configuración de Discovery a nivel de la zona o anularla a nivel del recurso.
Las siguientes son las opciones de configuración de Discovery disponibles a nivel de la zona y del recurso:
Descubrimiento activado y desactivado
Programación de descubrimiento: Esta opción se puede establecer en una programación predefinida, por ejemplo, por hora o por día, o en una programación personalizada definida por el formato de cron. Los recursos nuevos se analizan cuando se agregan. Para obtener más información, consulta Configura programas cron. Opción recomendada: Programa la función de 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 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 recursos de Cloud Storage. Cuando existen patrones de inclusión y exclusión al mismo tiempo, se aplican primero 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 Discovery.
En el caso de los archivos CSV, puedes proporcionar cualquiera de las siguientes opciones:
Delimitador: Este campo acepta un carácter, excepto
\r
y\n
. Si se proporciona más de un carácter, solo se usa el primer carácter de la cadena. Si no se proporciona, Discovery usa una coma como delimitador.Cantidad de filas de encabezado: Este campo acepta el valor
0
o1
. El valor predeterminado es0
. Cuando el valor es0
, Discovery realiza la inferencia de encabezados y, si se detecta un encabezado, extrae los nombres de las columnas del encabezado y restablece el valor a1
.Codificación: Este campo acepta nombres de codificación de cadenas, como
UTF-8
,US-ASCII
oISO-8859-1
. Si no se especifica nada, se usaUTF-8
como valor predeterminado.Disable type inference: Este campo acepta un valor booleano. Se configura en
false
de forma predeterminada. En el caso de los datos de CSV, si inhabilitas la inferencia de tipos, todas las columnas se registran como cadenas.
En el caso de los archivos JSON, puedes proporcionar cualquiera de las siguientes opciones:
Codificación: Este campo acepta nombres de codificación de cadenas, como
UTF-8
,US-ASCII
oISO-8859-1
. Si no se especifica nada, se usaUTF-8
como valor predeterminado.Inhabilitar la inferencia de tipos de datos: Este campo acepta un valor booleano. Se configura 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 (cadena, número o booleano).
Publica 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 tablas en ese conjunto de datos para las tablas descubiertas en los buckets de Cloud Storage que se agregaron a la zona de datos como recursos. El conjunto de datos se conoce como conjunto de datos de publicación de metadatos correspondiente 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, donde la información de metadatos se pone a disposición automáticamente.
Puedes editar los metadatos descubiertos automáticamente, como el nombre o el esquema de la tabla, con la API de metadatos de Dataplex.
Cómo ver las tablas y los conjuntos de archivos descubiertos
Puedes buscar tablas y conjuntos de archivos descubiertos en la vista Búsqueda de Dataplex en la consola de Google Cloud.
Para obtener resultados de la búsqueda más precisos, usa filtros específicos de Dataplex, como los nombres de los lakes y las 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, puedes ver lo siguiente en la vista de detalles de la entrada:
- Referencias de tablas externas de BigQuery
- Un botón para Abrir en BigQuery y 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
Discovery 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
Entre las acciones, se incluyen las siguientes:
Formato de datos incoherente en una tabla Por ejemplo, existen archivos de diferentes formatos con el mismo prefijo de tabla.
Formato de datos no válido en las zonas seleccionadas (los datos no están en formato Avro, Parquet ni ORC).
Esquema incompatible
Entre las acciones, se incluyen las siguientes:
Un esquema detectado por Discovery no es compatible con el esquema de tabla activo en la API de metadatos de Dataproc Metastore. El esquema A y el esquema B son incompatibles en las siguientes situaciones:
A y B comparten campos con el mismo nombre, pero de tipos de datos diferentes e 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.
Desfase de esquema en relación con un esquema administrado por el usuario en la zona seleccionada.
Definición de partición no válida
Entre las acciones, se incluyen las siguientes:
Nombres de particiones incoherentes Por ejemplo,
gs://sales_data/year=2020/month=10/day=01
ygs://sales_data/year=2020/region=us
.Nombres de particiones que no son de estilo Hive en la zona de datos seleccionados Por ejemplo,
gs://sales_data/2020/10/01
en lugar degs://sales_data/year=2020/month=10/day=01
.
Faltan datos
Entre las acciones, se incluyen las siguientes:
- En la zona de datos seleccionados, ya no existen los datos subyacentes de una tabla o un conjunto de archivos registrados. En otras palabras, se descubrió y registró una tabla de zona o un conjunto de archivos seleccionados, pero más tarde se borraron sus datos subyacentes. Para solucionar este problema, puedes reabastecer los datos o borrar la entrada de metadatos.
Cómo resolver acciones de descubrimiento
Los datos con acciones se verifican mediante análisis de descubrimiento posteriores. Cuando se corrige el problema que activa la acción, esta se resuelve automáticamente en el siguiente análisis de Discovery programado.
Otras acciones de Discovery
Además de las acciones de Discovery anteriores, existen tres otros tipos de acciones relacionadas con el estado de los recursos y las propagaciones de la política de seguridad en Dataplex.
Falta un recurso: No se encuentra el bucket o el conjunto de datos subyacentes que corresponden a un recurso existente.
Recurso no autorizado: Dataplex no tiene permisos suficientes para realizar Discovery ni aplicar políticas de seguridad al bucket o al 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 correctamente a los buckets o conjuntos de datos subyacentes. Mientras que todas las demás acciones se realizan a nivel del activo, este tipo de acción se puede generar a nivel del lago, la zona y el activo.
Estos tipos de acciones se resuelven automáticamente cuando se corrigen los problemas subyacentes de recursos o configuración de seguridad.
Preguntas frecuentes
¿Qué debo hacer si el esquema inferido por Discovery es incorrecto?
Si el esquema inferido es diferente de lo que se espera para una tabla determinada, puedes anularlo actualizando los metadatos con la API de metadatos.
Asegúrate de establecer userManaged
en true
para que tu edición no se reemplace en análisis de Discovery posteriores.
¿Cómo excluyo archivos de un análisis de descubrimiento?
De forma predeterminada, Discovery excluye ciertos tipos de archivos del análisis, incluidos los siguientes:
_SUCCESS
_started
_committed
_metadata
,_METADATA
,_Metadata
_common_metadata
,_COMMON_METADATA
- Archivos que comienzan con
README
oreadme
- Directorios que comienzan con
base_
,delta_
,delete_delta_
,bucket_
, seguidos de un número - Directorios que comienzan con
.
Puedes especificar patrones adicionales de inclusión o exclusión con la configuración de Discovery a nivel de la zona o del recurso, o con 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 de acceso 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 de acceso raíz de la tabla esperada, que dividen la tabla en grupos más pequeños.
Existen diferentes tipos de incompatibilidades de esquemas en la ruta de acceso raíz de la tabla esperada, que dividen la tabla en grupos más pequeños.
Puedes resolver este problema de una de las siguientes maneras:
Corrige las diferencias de formato o esquema para que todos los archivos de la misma ruta de acceso raíz de la tabla tengan un formato coherente y un esquema compatible.
Excluye archivos heterogéneos con la configuración del patrón de exclusión como parte de la configuración de la zona o del activo, o de la API de metadatos.
Después de realizar uno de los pasos correctivos, en el siguiente análisis de descubrimiento, ocurrirá lo siguiente:
- Las tablas existentes de nivel inferior se quitan automáticamente 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 de acceso raíz de la tabla esperada.
¿Cómo especifico los nombres de las tablas?
Puedes especificar los nombres de las tablas con la API de metadatos.
¿Qué sucede si creo tablas de forma manual en Dataproc Metastore o BigQuery?
Cuando Discovery está habilitado para un recurso determinado, no es necesario registrar entradas de forma manual en Dataproc Metastore ni en BigQuery.
Puedes definir manualmente el nombre de la tabla, el esquema y las definiciones de particiones, mientras desactivas Dataplex Discovery. Como alternativa, haz lo siguiente:
- Crea una tabla solo especificando la información requerida, como la ruta de acceso raíz de la tabla.
- Usa Dataplex Discovery para propagar el resto de los metadatos, como las definiciones de esquemas y particiones.
- Mantén los metadatos actualizados.
¿Qué debo hacer si mi tabla no aparece en BigQuery?
Si bien todos los metadatos de Dataplex se registran 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 la entrada de la tabla en la API de metadatos, puedes encontrar un marcador de compatibilidad de BigQuery que indica qué entidades se publican en BigQuery y por qué.
Limitaciones
- Discovery no admite tablas externas, incluidas las de BigLake. Sin embargo, las tablas externas se transfieren automáticamente a Dataplex Catalog y puedes buscarlas en Dataplex Catalog en su lugar.
¿Qué sigue?
- Obtén información para trabajar con metadatos.