Descubre y cataloga datos de Cloud Storage
En este documento, se explica cómo usar el descubrimiento automático de Dataplex Universal Catalog, una función de BigQuery que te permite analizar los datos en buckets de Cloud Storage para extraer y, luego, catalogar los metadatos. Como parte del análisis de descubrimiento, el descubrimiento automático crea tablas de BigLake o externas para los datos estructurados y tablas de objetos para los datos no estructurados. Estos datos tabulares centralizados facilitan las estadísticas de datos potenciadas por IA, la seguridad de los datos y la administración.
Para usar el descubrimiento automático de datos de Cloud Storage, debes crear y ejecutar un análisis de descubrimiento.
Descripción general del análisis de descubrimiento
Un análisis de descubrimiento hace lo siguiente:
- Analiza los datos en la ruta o el bucket de Cloud Storage.
- Agrupa los datos estructurados y semiestructurados en tablas.
- Recopila metadatos, como el nombre de la tabla, el esquema y la definición de partición.
- Crea y actualiza tablas externas, de objetos o de BigLake en BigQuery con la definición de esquema y partición.
En el caso de los datos no estructurados, como imágenes y videos, el análisis de detección detecta y registra grupos de archivos que comparten el mismo tipo de medio que las tablas de objetos de BigLake. Por ejemplo, si gs://images/group1
contiene imágenes GIF y gs://images/group2
contiene imágenes JPEG, el análisis de detección detecta y registra dos conjuntos de archivos.
En el caso de los datos estructurados, como Avro, el análisis de detección registra grupos de archivos como tablas externas de BigLake y detecta archivos solo si se encuentran en carpetas que contienen el mismo formato de datos y un esquema compatible.
El análisis de detección admite los siguientes formatos de datos estructurados y semiestructurados:
- Parquet
- Avro
- ORC
- JSON (solo el formato delimitado por saltos de línea)
- CSV (pero no archivos CSV que tengan filas de comentarios)
El análisis de detección admite los siguientes formatos de compresión para datos estructurados y semiestructurados:
Compresión interna para los siguientes formatos:
Compresión Muestra 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 y ORC Compresión externa para archivos JSON y CSV:
- gzip
- bzip2
Para ver el límite de la cantidad de tablas que admite un análisis de detección, consulta Cuotas y límites.
Las tablas descubiertas se registran en BigQuery como tablas externas de BigLake, tablas de objetos de BigLake o tablas externas. Esto hace que sus datos estén disponibles para el análisis en BigQuery. También se habilita el almacenamiento en caché de metadatos para las tablas de BigLake y las tablas de objetos. Todas las tablas de BigLake se transfieren automáticamente a Dataplex Universal Catalog para su búsqueda y descubrimiento.
Antes de comenzar
Enable the Dataplex API.
Roles necesarios para la cuenta de servicio de Dataplex Universal Catalog
Antes de comenzar, asigna los permisos de IAM a la cuenta de servicio de Dataplex Universal Catalog en tu proyecto.
service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com
Reemplaza PROJECT_NUMBER
por el proyecto en el que está habilitada la API de Dataplex.
Para garantizar que la cuenta de servicio de Dataplex tenga los permisos necesarios para crear y ejecutar un análisis de detección, pídele a tu administrador que otorgue a la cuenta de servicio de Dataplex los siguientes roles de IAM:
-
Agente de servicio de Dataplex Discovery (
roles/dataplex.discoveryServiceAgent
) en el bucket de almacenamiento -
Agente de servicio de publicación de Dataplex Discovery (
roles/dataplex.discoveryPublishingServiceAgent
) en el proyecto del usuario -
Crear tablas de BigLake:
Agente de servicio de publicación de Dataplex Discovery BigLake (
roles/dataplex.discoveryBigLakePublishingServiceAgent
) en la conexión de BigQuery
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Estos roles predefinidos contienen los permisos necesarios para crear y ejecutar un análisis de detección. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para crear y ejecutar un análisis de descubrimiento:
-
bigquery.datasets.create
en el proyecto de la fuente de datos -
storage.buckets.get
en el bucket de la fuente de datos -
storage.objects.get
en el bucket de la fuente de datos -
storage.objects.list
en el bucket de la fuente de datos -
bigquery.datasets.get
en el proyecto de la fuente de datos -
Proporciona una conexión:
-
bigquery.connections.delegate
en la conexión de BigQuery -
bigquery.connections.use
en la conexión de BigQuery
-
Es posible que tu administrador también pueda otorgar estos permisos a la cuenta de servicio de Dataplex con roles personalizados o con otros roles predefinidos.
Roles obligatorios para la cuenta de servicio de conexión de BigQuery
Para garantizar que la cuenta de servicio de BigQuery Connection tenga los permisos necesarios para crear un análisis de detección, pídele a tu administrador que le otorgue a la cuenta de servicio de BigQuery Connection el rol de IAM de Agente del servicio de detección de Dataplex (roles/dataplex.discoveryServiceAgent
) en el bucket de Cloud Storage.
Este rol predefinido contiene los permisos necesarios para crear un análisis de detección. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para crear un análisis de descubrimiento:
-
bigquery.datasets.create
en el proyecto de la fuente de datos -
storage.buckets.get
en el bucket de la fuente de datos -
storage.objects.get
en el bucket de la fuente de datos -
storage.objects.list
en el bucket de la fuente de datos -
bigquery.datasets.get
en el proyecto de la fuente de datos -
Proporciona una conexión:
-
bigquery.connections.delegate
en la conexión de BigQuery -
bigquery.connections.use
en la conexión de BigQuery
-
Es posible que tu administrador también pueda otorgar estos permisos a la cuenta de servicio de BigQuery Connection con roles personalizados o con otros roles predefinidos.
Roles obligatorios para los usuarios finales
Para obtener los permisos que necesitas para crear y administrar análisis de descubrimiento de datos, pídele a tu administrador que te otorgue los siguientes roles de IAM en el bucket de Cloud Storage:
-
Acceso completo a los recursos de DataScan:
Administrador de DataScan de Dataplex (
roles/dataplex.dataScanAdmin
): Tu proyecto -
Acceso de escritura a los recursos de DataScan:
Editor de DataScan de Dataplex (
roles/dataplex.dataScanEditor
): Tu proyecto -
Acceso de lectura a los recursos de DataScan, sin incluir los resultados:
Visualizador de DataScan de Dataplex (
roles/dataplex.dataScanViewer
): Tu proyecto -
Acceso de lectura a los recursos de DataScan, incluidos los resultados:
Visualizador de datos de DataScan de Dataplex (
roles/dataplex.dataScanDataViewer
): Tu proyecto
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Estos roles predefinidos contienen los permisos necesarios para crear y administrar análisis de detección de datos. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para crear y administrar análisis de descubrimiento de datos:
-
Crea un DataScan:
dataplex.datascans.create
en tu proyecto -
Borra un DataScan:
dataplex.datascans.delete
en tu proyecto o en un recurso de DataScan -
Ver los detalles de DataScan, sin incluir los resultados:
dataplex.datascans.get
en el proyector, un recurso de DataScan -
Ver los detalles del análisis de datos, incluidos los resultados:
dataplex.datascans.getData
en tu proyecto o en un recurso de análisis de datos -
Enumera los DataScans:
dataplex.datascans.list
en tu proyecto o en un recurso de DataScan -
Ejecuta un DataScan:
dataplex.datascans.run
en tu proyecto o en un recurso de DataScan -
Actualiza la descripción de un DataScan:
dataplex.datascans.update
en tu proyector, un recurso de DataScan -
Consulta los permisos de IAM del DataScan:
dataplex.datascans.getIamPolicy
en tu proyecto o en un recurso de DataScan -
Configura los permisos de IAM en el DataScan:
dataplex.datascans.setIamPolicy
en tu proyecto o en un recurso de DataScan
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
Crea un análisis de descubrimiento
Para descubrir datos, debes crear y ejecutar un análisis de descubrimiento. Puedes establecer un programa para el análisis o ejecutarlo a pedido.
Cuando se ejecuta el análisis de detección, se crea un conjunto de datos nuevo en BigQuery que corresponde al bucket de Cloud Storage que se analizó. El nombre del conjunto de datos de BigQuery es el mismo que el nombre del bucket de Cloud Storage. Los caracteres no válidos en el nombre del bucket se reemplazan por un guion bajo. Si el nombre del conjunto de datos no está disponible, se agrega un sufijo (por ejemplo, _discovered_001
). El conjunto de datos contiene las tablas externas de BigLake o las tablas externas que no son de BigLake que se crearon con el análisis de detección para su posterior análisis.
Console
En la consola de Google Cloud , ve a la página Curación de metadatos.
En la pestaña Cloud Storage discovery, haz clic en Create.
En el panel Crear análisis de descubrimiento, configura los detalles sobre los datos que se analizarán.
Ingresa un nombre para el análisis.
En el campo ID de análisis, ingresa un ID único que siga las convenciones de nomenclatura de recursos en Google Cloud. Si no proporcionas un ID, el análisis de descubrimiento lo generará.
Opcional: Proporciona una descripción del análisis.
Para especificar el bucket de Cloud Storage que contiene los archivos que se analizarán, en el campo Bucket, busca y selecciona el bucket.
Opcional: Define los datos que se incluirán o excluirán del análisis de descubrimiento. Para ello, proporciona una lista de patrones glob para el filtrado de archivos.
- Include: Si solo se debe analizar un subconjunto de los datos, proporciona una lista de patrones glob que coincidan con los objetos que se incluirán.
- Exclude: Proporciona una lista de patrones glob que coinciden con los objetos que se excluirán.
Por ejemplo, si deseas excluir
gs://test_bucket/foo/..
del análisis de detección, ingresa**/foo/**
como la ruta de exclusión. Las comillas causan errores. Asegúrate de ingresar**/foo/**
en lugar de"**/foo/**"
.Si proporcionas patrones de inclusión y exclusión, los patrones de exclusión se aplicarán primero.
Opcional: En Proyecto, selecciona el proyecto del conjunto de datos de BigQuery que contiene las tablas externas de BigLake o las tablas externas que no son de BigLake creadas por el análisis de detección. Si no se proporciona, el conjunto de datos se crea en el proyecto que contiene el bucket de Cloud Storage.
En Tipo de ubicación, selecciona Región o Multirregión (la que esté disponible) donde se crea el conjunto de datos de publicación de BigQuery.
Para crear tablas de BigLake a partir de los datos analizados, en el campo ID de conexión, proporciona el ID de conexión de tu recurso Google Cloud . Para obtener más información, consulta Conexiones de recursos deGoogle Cloud en BigQuery.
Puedes crear un ID de conexión nuevo en la misma ubicación que la del conjunto de datos de BigQuery, que es compatible con la ubicación del bucket de Cloud Storage.
Si no proporcionas un ID de conexión de recursos, el análisis de detección crea tablas externas que no son de BigLake.
En la sección Frecuencia de descubrimiento, configura cuándo deseas que se ejecute el análisis de descubrimiento:
Repetir: El análisis se ejecuta según un programa predefinido. Proporciona la hora de inicio, los días para ejecutar el análisis y la frecuencia, como cada hora.
On demand: El análisis se ejecuta a pedido.
Opcional: En la sección Especificaciones de JSON o CSV, especifica cómo debe procesar el análisis los archivos JSON y CSV. Haz clic en Especificaciones de JSON o CSV.
- Para configurar las opciones de JSON, selecciona Habilitar opciones de análisis de JSON.
- Disable type inference: Indica si el análisis de detección debe inferir tipos de datos cuando analiza datos. Si inhabilitas la inferencia de tipos para los datos JSON, todas las columnas se registrarán como sus tipos primitivos, como string, número o booleano.
- Formato de codificación: Es la codificación de caracteres de los datos, como UTF-8, US-ASCII o ISO-8859-1. Si no especificas un valor, se usa UTF-8 como valor predeterminado.
- Para configurar las opciones de CSV, marca Habilitar las opciones de análisis de CSV.
- Disable type inference: Indica si el análisis de detección debe inferir tipos de datos cuando analiza datos. Si inhabilitas la inferencia de tipos para los datos de CSV, todas las columnas se registrarán como cadenas.
- Filas de encabezado: Es la cantidad de filas de encabezado, ya sea
0
o1
. Si especificas el valor0
, el análisis de detección infiere los encabezados y extrae los nombres de las columnas del archivo. El valor predeterminado es0
. - Carácter delimitador de columnas: Es el carácter que se usa para separar los valores. Proporciona un solo carácter,
\r
(retorno de carro) o\n
(salto de línea). El valor predeterminado es una coma (,
). - Formato de codificación: Es la codificación de caracteres de los datos, como
UTF-8
,US-ASCII
oISO-8859-1
. Si no especificas un valor, se usa UTF-8 como valor predeterminado.
- Para configurar las opciones de JSON, selecciona Habilitar opciones de análisis de JSON.
Haz clic en Crear (para un análisis programado) o en Ejecutar ahora (para un análisis a pedido).
Los análisis programados se ejecutan según el programa que establezcas.
Un análisis a pedido se ejecuta una vez de forma inicial cuando lo creas, y puedes ejecutarlo en cualquier momento. El análisis de detección puede tardar varios minutos en ejecutarse.
gcloud
Para crear un análisis de detección, usa el comando gcloud dataplex datascans create data-discovery
.
gcloud dataplex datascans create data-discovery --location=LOCATION --data-source-resource=BUCKET_PATH
Reemplaza lo siguiente:
LOCATION
: Es la ubicación en la que deseas crear tu análisis de detección.BUCKET_PATH
: Es la ruta de Cloud Storage del bucket que deseas analizar.
REST
Para crear una exploración de detección, usa el método dataScans.create
.
Consulta tablas de BigLake publicadas
Después de ejecutar el análisis de detección, las tablas de BigLake se publican en un nuevo conjunto de datos en BigQuery. Luego, las tablas estarán disponibles para su análisis en BigQuery con SQL o en Dataproc con Apache Spark o HiveQL.
SQL
Puedes ver o consultar tablas en BigQuery. Para obtener más información sobre cómo ejecutar consultas en BigQuery, consulta Ejecuta una consulta.
Apache Spark
Para consultar tablas de BigLake con Spark SQL en un trabajo de Dataproc sin servidor, sigue estos pasos:
Crea un script de PySpark similar al siguiente script de ejemplo:
from pyspark.sql import SparkSession session = ( SparkSession.builder.appName("testing") .config("viewsEnabled","true") .config("materializationDataset", "DATASET_ID") .config("spark.hive.metastore.bigquery.project.id", "PROJECT_ID") .config("spark.hive.metastore.client.factory.class", "com.google.cloud.bigquery.metastore.client.BigQueryMetastoreClientFactory") .enableHiveSupport() .getOrCreate() ) session.sql("show databases").show() session.sql("use TABLE_NAME").show() session.sql("show tables").show() sql = "SELECT * FROM DATASET_ID.TABLE_ID LIMIT 10" df = session.read.format("bigquery").option("dataset", "DATASET_ID").load(sql) df.show()
Reemplaza lo siguiente:
DATASET_ID
: ID del conjunto de datos para el que los usuarios tienen permiso de creaciónPROJECT_ID
: ID del proyecto con la tabla de BigLakeTABLE_NAME
: Nombre de la tabla de BigLakeTABLE_ID
: ID de la tabla de BigLake
Administra las tablas de BigLake publicadas
El análisis de descubrimiento crea y administra las tablas de BigLake publicadas en BigQuery. De forma predeterminada, el análisis de detección controla la detección de datos nuevos, las inferencias de esquemas y la evolución de esquemas cada vez que se ejecutan los análisis programados o a pedido. Para indicar que el análisis administra los metadatos, publica tablas con la etiqueta metadata-managed-mode
establecida en discovery-managed
.
Si deseas administrar el esquema y otros metadatos, como las opciones de CSV o JSON, por tu cuenta, establece la etiqueta metadata-managed-mode
en user_managed
. De esta manera, el esquema permanece sin cambios cuando se ejecuta el siguiente análisis de descubrimiento. Este enfoque puede ser útil en situaciones en las que el esquema que infiere el análisis de detección es incorrecto o diferente de lo que se espera para una tabla determinada. Cuando la etiqueta metadata-managed-mode
se establece en user_managed
, se puede reducir el costo.
Para actualizar la etiqueta, puedes editar el valor de la clave de la etiqueta
metadata-managed-mode
a user_managed
en lugar de discovery-managed
. En este caso, el análisis de detección no actualiza el esquema de la tabla mientras la etiqueta user_managed
esté adjunta a la tabla.
Actualiza las tablas de BigLake publicadas
En el caso de las tablas de BigLake publicadas con los trabajos de análisis de detección con la configuración predeterminada, el esquema y otros metadatos se actualizan automáticamente con cada ejecución del trabajo de análisis de detección en la frecuencia programada.
Para actualizar una tabla de BigLake publicada, sigue estos pasos:
En la consola de Google Cloud , ve a la página BigQuery.
En el panel Explorador, expande el proyecto y el conjunto de datos y, luego, selecciona la tabla.
En la pestaña Detalles, en la sección Etiquetas, asegúrate de que la etiqueta metadata-managed-mode esté configurada como user_managed. Si está configurado con un valor diferente, sigue estos pasos:
Haz clic en
Editar detalles.Junto a la clave metadata-managed-mode, en el campo value, ingresa
user_managed
.
Borra tablas de BigLake publicadas
Para borrar una tabla de BigLake publicada, sigue estos pasos:
Borra los archivos de datos de la tabla en el bucket de Cloud Storage.
En la consola de Google Cloud , ve a la página BigQuery.
En el panel Explorador, expande el proyecto y el conjunto de datos y, luego, selecciona la tabla.
En el panel Detalles, en la sección Etiquetas, asegúrate de que la etiqueta metadata-managed-mode no esté establecida en
user_managed
. Si está configurado comouser_managed
, sigue estos pasos:Haz clic en Editar detalles
.Junto a la clave metadata-managed-mode, en el campo value, ingresa
discovery-managed
.
Haz clic en Ejecutar. El análisis de detección se ejecuta a pedido.
Después de que se ejecuta el análisis de detección, se borra la tabla de BigLake en BigQuery y no está disponible para enumerar o consultar a través de Spark.
Ejecuta un análisis de descubrimiento a pedido
Para ejecutar un análisis de detección a pedido, selecciona una de las siguientes opciones.
Console
En la consola de Google Cloud , ve a la página BigQuery.
En el menú de navegación, haz clic en Gobernanza > Curación de metadatos.
En el panel Cloud Storage discovery, haz clic en el análisis de detección que deseas ejecutar.
Haz clic en Ejecutar ahora.
gcloud
Para ejecutar un análisis de detección, usa el comando gcloud dataplex datascans run
:
gcloud dataplex datascans runDATASCAN
\ --location=LOCATION
Reemplaza las siguientes variables:
LOCATION
: Es la región de Google Cloud en la que se creó el análisis de detección.DATASCAN
: Es el nombre del análisis de detección.
REST
Para ejecutar un análisis de descubrimiento a pedido, usa el método dataScans.run
en la API de Dataplex.
Enumera los análisis de descubrimiento
Para enumerar tus análisis de detección, selecciona una de las siguientes opciones.
Console
En la consola de Google Cloud , ve a la página BigQuery.
En el menú de navegación, haz clic en Gobernanza > Curación de metadatos.
En el panel Descubrimiento de Cloud Storage, se enumeran los análisis de descubrimiento creados en el proyecto.
gcloud
gcloud dataplex datascans list --location=LOCATION --project=PROJECT_ID
Reemplaza lo siguiente:
LOCATION
: La ubicación de tu proyectoPROJECT_ID
: El ID de tu proyecto de Google Cloud
REST
Para recuperar la lista de análisis de detección en tu proyecto, usa el método dataScans.list
en la API de Dataplex Universal Catalog.
Cómo ver un análisis de descubrimiento
Para ver un análisis de detección, selecciona una de las siguientes opciones.
Console
En la consola de Google Cloud , ve a la página BigQuery.
En el menú de navegación, haz clic en Gobernanza > Curación de metadatos.
En el panel Detección de Cloud Storage, haz clic en el análisis de detección del que deseas ver los detalles.
- En la sección Detalles del análisis, se muestran detalles sobre el análisis de detección.
- En la sección Estado del análisis, se muestran los resultados del descubrimiento del trabajo de análisis más reciente.
gcloud
gcloud dataplex datascans jobs describe JOB \ --location=LOCATION \ --datascan=DATASCAN \ --view=FULL
Reemplaza lo siguiente:
JOB
: Es el ID del trabajo de análisis de detección.LOCATION
: Es la región de Google Cloud en la que se creó el análisis de detección.DATASCAN
: Es el nombre del análisis de detección al que pertenece el trabajo.--view=FULL
: Consulta el resultado del trabajo de análisis de detección.
REST
Para ver los resultados de un análisis de detección de datos, usa el método dataScans.get
en la API de Dataplex Universal Catalog.
Visualiza los resultados históricos del análisis de descubrimiento
Para ver los resultados históricos del análisis de detección, selecciona una de las siguientes opciones.
Console
En la consola de Google Cloud , ve a la página BigQuery.
En el menú de navegación, haz clic en Gobernanza > Curación de metadatos.
En el panel Detección de Cloud Storage, haz clic en el análisis de detección del que deseas ver los detalles.
Haz clic en el panel Historial de análisis. El panel Historial de análisis proporciona información sobre los trabajos anteriores, incluida la cantidad de registros analizados en cada trabajo, el estado de cada trabajo y la hora en que se ejecutaron los trabajos.
Para ver información detallada sobre un trabajo, haz clic en él en la columna ID del trabajo.
gcloud
gcloud dataplex datascans jobs list \ --location=LOCATION \ --datascan=DATASCAN
Reemplaza lo siguiente:
LOCATION
: Es la región de Google Cloud en la que se creó el análisis de detección.DATASCAN
: Es el nombre del análisis de detección al que pertenece el trabajo.
REST
Para ver todos los trabajos de un análisis de detección, usa el método dataScans.job/list
en la API de Dataplex Universal Catalog.
Actualiza un análisis de descubrimiento
Para cambiar la programación de un análisis de descubrimiento, por ejemplo, de a pedido a recurrente, actualiza el análisis de descubrimiento.
Console
En la consola de Google Cloud , ve a la página BigQuery.
En el menú de navegación, haz clic en Gobernanza > Curación de metadatos.
En el panel Detección de Cloud Storage, haz clic en Acciones > Editar para la detección que deseas actualizar.
Edite los valores.
Haz clic en Guardar.
gcloud
Para actualizar un análisis de detección, usa el comando gcloud dataplex datascans update data-discovery
.
gcloud dataplex datascans update data-discovery SCAN_ID --location=LOCATION --description=DESCRIPTION
Reemplaza lo siguiente:
SCAN_ID
: Es el ID del análisis de detección que deseas actualizar.LOCATION
: Es la región de Google Cloud en la que se creó el análisis de detección.DESCRIPTION
: La nueva descripción del análisis de detección
REST
Para actualizar un análisis de detección, usa el método dataScans.patch
en la API de Dataplex Universal Catalog.
Borra un análisis de descubrimiento
Para borrar un análisis de detección, selecciona una de las siguientes opciones.
Console
En la consola de Google Cloud , ve a la página BigQuery.
En el menú de navegación, haz clic en Gobernanza > Curación de metadatos.
En el panel Cloud Storage discovery, para el análisis de detección que deseas borrar, haz clic en Actions > Delete.
Haz clic en Borrar.
gcloud
gcloud dataplex datascans delete SCAN_ID --location=LOCATION --async
Reemplaza lo siguiente:
SCAN_ID
: Es el ID del análisis de detección que deseas borrar.LOCATION
: Es la región de Google Cloud en la que se creó el análisis de detección.
REST
Para borrar un análisis de detección, usa el método dataScans.delete
en la API de Dataplex Universal Catalog.