En esta guía, se explica cómo habilitar y usar el descubrimiento de Knowledge Catalog (anteriormente, Dataplex Universal Catalog). El descubrimiento analiza y extrae metadatos de los datos en un data lake y los registra en Dataproc Metastore, BigQuery y Data Catalog (obsoleto) para su análisis, búsqueda y exploración.
Descripción general
Para cada recurso de Knowledge Catalog con el descubrimiento habilitado, Knowledge Catalog hace lo siguiente:
- Analiza los datos asociados con el recurso.
- Agrupa los archivos estructurados y semiestructurados en tablas.
- Recopila metadatos técnicos, como el nombre de la tabla, el esquema y la definición de partición.
Para los datos no estructurados, como imágenes y videos, el descubrimiento de Knowledge Catalog detecta y registra automáticamente grupos de archivos que comparten el tipo de medio como conjuntos de archivos. Por ejemplo, si gs://images/group1 contiene imágenes GIF y gs://images/group2 contiene imágenes JPEG, el descubrimiento de Knowledge Catalog detecta y registra dos conjuntos de archivos. Para los datos estructurados, como Avro, el descubrimiento detecta 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.
El descubrimiento admite los siguientes formatos de datos estructurados y semiestructurados:
- Parquet
- Avro
- ORC
- JSON (solo el formato delimitado por líneas nuevas)
- CSV (no se admiten archivos CSV con filas de comentarios)
El descubrimiento 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, 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 recurso nuevos. Puedes inhabilitar el descubrimiento a nivel de la zona o del recurso.
Cuando creas una zona o un recurso, puedes elegir heredar la configuración de descubrimiento a nivel de la zona o anular la configuración de descubrimiento a nivel del recurso.
Las siguientes son las opciones de configuración de descubrimiento disponibles a nivel de la zona y del recurso:
Descubrimiento activado y desactivado
Programa de descubrimiento: Esta opción se puede configurar en un programa predefinido (por ejemplo, por hora o por día) o en un programa personalizado definido por el formato cron. Los recursos nuevos se analizan cuando se agregan. Para obtener más información, consulta Configura programas de trabajos cron. Puedes configurar el programa de descubrimiento entre 60 minutos y 31 días.
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 datos semiestructurados, como CSV y JSON, para mejorar la precisión de los resultados del descubrimiento.
Para los archivos CSV, puedes proporcionar cualquiera de los siguientes elementos:
Delimitador: Este campo acepta un carácter, excepto
\ry\n. Si se proporciona más de un carácter, solo se usa el primero de la cadena. Si no se proporciona, el descubrimiento usa una coma como delimitador.Cantidad de filas de encabezado: Este campo acepta el valor
0o1. El valor predeterminado es0. Cuando el valor es0, el descubrimiento realiza una inferencia de encabezado y, si se detecta un encabezado, el descubrimiento 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-ASCIIoISO-8859-1. Si no se especifica nada, se usaUTF-8como valor predeterminado.Inhabilitar la inferencia de tipo: Este campo acepta un valor booleano. Se establece en
falsede forma predeterminada. Para los datos CSV, si inhabilitas la inferencia de tipo, 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 cadenas, como
UTF-8,US-ASCIIoISO-8859-1. Si no se especifica nada, se usaUTF-8como valor predeterminado.Inhabilitar la inferencia de tipo de datos: Este campo acepta un valor booleano. Se establece en
falsede forma predeterminada. Para los datos JSON, si inhabilitas la inferencia de tipo, todas las columnas se registran como sus tipos primitivos (cadena, número o booleano).
Cancela un trabajo de descubrimiento
Si un trabajo de descubrimiento tarda más de lo esperado, puedes cancelarlo. Esta es una operación que se realizará de la mejor manera posible. Si el trabajo ya está en un estado terminal (como SUCCEEDED o FAILED), se ignora la solicitud de cancelación.
Roles y permisos requeridos
Para obtener los permisos que necesitas para cancelar un trabajo de descubrimiento, pídele a tu administrador que te otorgue el rol de IAM de editor de Dataplex (roles/dataplex.editor) o de administrador de DataScan de Dataplex (roles/dataplex.dataScanAdmin) en tu proyecto.
Cancelar un trabajo
Puedes cancelar un trabajo de descubrimiento en ejecución o pendiente con la Google Cloud consola o la API de REST.
Console
En la Google Cloud consola de, ve a la página Descubre.
Haz clic en el nombre del análisis de descubrimiento que contiene el trabajo que deseas cancelar.
En la pestaña Historial de trabajos, busca el trabajo con el estado En ejecución o Pendiente.
Haz clic en el botón Cancelar asociado con el trabajo.
REST
Usa el projects.locations.dataScans.jobs.cancel método.
POST https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataScans/DATASCAN_ID/jobs/JOB_ID:cancel
Reemplaza lo siguiente:
PROJECT_ID: Es el ID del proyecto.LOCATION: Es la región en la que se encuentra el análisis de datos.DATASCAN_ID: Es el ID del análisis de datos.JOB_ID: Es el ID del trabajo que se cancelará.
Publica metadatos
Cuando creas una zona de datos en tu lake de Knowledge Catalog, Knowledge Catalog crea un conjunto de datos de BigQuery en el proyecto que contiene el lake. Knowledge Catalog 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 un conjunto de datos de publicación de metadatos correspondiente a la zona.
Cada zona de datos de Knowledge Catalog se asigna a un conjunto de datos en BigQuery o a una base de datos en Dataproc Metastore, donde la información de metadatos está disponible automáticamente.
Puedes editar los metadatos descubiertos automáticamente, como el nombre o el esquema de la tabla, con la API de Dataplex.
Consulta las tablas y los conjuntos de archivos descubiertos
Puedes buscar tablas y conjuntos de archivos descubiertos en la vista Búsqueda de Knowledge Catalog en la Google Cloud consola.
Para obtener resultados de la búsqueda más precisos, usa filtros específicos de Knowledge Catalog, como los nombres de los lakes y las zonas de datos. Los primeros 50 elementos por faceta se muestran en la lista de filtros. Puedes encontrar cualquier elemento adicional 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 de Dataproc Metastore correspondientes.
Si una tabla de Cloud Storage se puede publicar en BigQuery como una tabla externa, puedes ver lo siguiente en su vista de detalles de entrada:
- Referencias de tablas externas de BigQuery
- Un botón para Abrir en BigQuery para comenzar a analizar los datos en BigQuery
Las entradas de metadatos de Knowledge Catalog son visibles y se pueden buscar directamente 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 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
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 zonas seleccionadas (datos que no están en formatos Avro, Parquet o ORC).
Esquema no compatible
Entre las acciones, se incluyen las siguientes:
Un esquema detectado por el descubrimiento 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 las siguientes situaciones:
A y B comparten campos con el mismo nombre, pero con 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 que no admite valores nulos que no se encuentra en el otro esquema.
Desviación del esquema en comparación con un esquema administrado por el usuario en la zona de datos seleccionados.
Definición de partición no válida
Entre las acciones, se incluyen las siguientes:
Nombres de partición incoherentes. Por ejemplo,
gs://sales_data/year=2020/month=10/day=01ygs://sales_data/year=2020/region=us.Nombres de partición sin estilo Hive en la zona de datos seleccionada. Por ejemplo,
gs://sales_data/2020/10/01en lugar degs://sales_data/year=2020/month=10/day=01.
Faltan datos
Entre las acciones, se incluyen las siguientes:
- En la zona de datos seleccionada, ya no existen los datos subyacentes para una tabla o un conjunto de archivos registrados. En otras palabras, se descubrió y registró una tabla o un conjunto de archivos de la zona de datos seleccionados, pero luego se borraron sus datos subyacentes. Para corregir este problema, puedes reponer los datos o borrar la entrada de metadatos.
Resuelve las acciones de descubrimiento
Los análisis de descubrimiento posteriores verifican los datos con acciones. Cuando se corrige el problema que activa la acción, el siguiente análisis de descubrimiento programado resuelve la acción automáticamente.
Otras acciones de descubrimiento
Además de las acciones de descubrimiento anteriores, existen otros tres tipos de acciones relacionadas con el estado de los recursos y las propagaciones de la política de seguridad en Knowledge Catalog.
Falta el recurso: No se encuentra el bucket o el conjunto de datos subyacente correspondiente a un recurso existente.
Recurso no autorizado: Knowledge Catalog no tiene permisos suficientes para realizar el descubrimiento o aplicar políticas de seguridad al bucket o al conjunto de datos que administra Knowledge Catalog.
Problemas con la propagación de la política de seguridad: Las políticas de seguridad especificadas para un lake, una zona o un recurso determinados no se pudieron propagar correctamente a los buckets o conjuntos de datos subyacentes. Si bien todas las demás acciones están a nivel del recurso, este tipo de acción se puede generar a nivel del lake, la zona y el recurso.
Estos tipos de acciones se resuelven automáticamente cuando se corrigen los problemas subyacentes de configuración de recursos o seguridad.
Preguntas frecuentes
¿Qué debo hacer si el esquema que infiere el descubrimiento es incorrecto?
Si el esquema inferido es diferente de lo que se espera para una tabla determinada, puedes anular el esquema inferido actualizando los metadatos con la
API de metadatos.
Asegúrate de establecer
userManaged
en true para que tu edición no se reemplace en los análisis de descubrimiento posteriores.
¿Cómo excluyo archivos de un análisis de descubrimiento?
De forma predeterminada, el descubrimiento 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
READMEoreadme - 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 con la configuración de descubrimiento 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 el descubrimiento es demasiado detallada?
Si las tablas que detecta el descubrimiento 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 de la tabla esperada, que dividen la tabla en agrupaciones más pequeñas.
Existen diferentes tipos de incompatibilidades de esquema en la ruta raíz de la tabla esperada, que dividen la tabla en agrupaciones más pequeñas.
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 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 recurso, o de la API de metadatos.
Después de tomar uno de los pasos correctivos, en el siguiente análisis de descubrimiento, ocurre lo siguiente:
- Las tablas existentes de nivel inferior se quitan automáticamente de la API de Dataplex, BigQuery, Dataproc Metastore y Data Catalog.
- En su lugar, se crea una nueva tabla de nivel superior con la ruta 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 el descubrimiento está habilitado para un recurso determinado, no es necesario 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 el descubrimiento de Knowledge Catalog. También puedes hacer lo siguiente:
- Crea una tabla especificando solo la información requerida, como la ruta raíz de la tabla.
- Usa el descubrimiento de Knowledge Catalog para propagar el resto de los metadatos, como el esquema y las definiciones de partición.
- Mantén actualizados los metadatos.
¿Qué debo hacer si mi tabla no aparece en BigQuery?
Si bien todos los metadatos de Knowledge Catalog 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
- El descubrimiento no admite tablas externas. Sin embargo, las tablas externas se transfieren automáticamente a Knowledge Catalog y puedes buscarlas en Knowledge Catalog en su lugar.
Precios
Knowledge Catalog cobra por el descubrimiento como parte del nivel de procesamiento estándar. Para obtener más información, consulta los precios del procesamiento estándar de Knowledge Catalog .
¿Qué sigue?
- Obtén información para trabajar con metadatos.