Descubre y cataloga datos de Cloud Storage
En este documento, se explica cómo usar el descubrimiento automático de datos de Cloud Storage.
El descubrimiento automático de Dataplex es una función de BigQuery que te permite analizar datos en buckets de Cloud Storage para extraer y, luego, catalogar metadatos. Como parte del análisis, el descubrimiento automático crea tablas de BigLake o externas para datos estructurados y tablas de objetos para datos no estructurados, que luego puedes usar para análisis y AI. Las tablas se catalogan automáticamente en Dataplex Catalog, que puedes buscar o explorar.
Para usar el descubrimiento automático de datos de Cloud Storage, crea y ejecuta una escanea de descubrimiento.
Descripción general
Un análisis de descubrimiento hace lo siguiente:
- Analiza los datos en el bucket o la ruta de Cloud Storage.
- Agrupa archivos estructurados y semiestructurados en tablas.
- Recopila metadatos, como el nombre de la tabla, el esquema y la definición de la partición.
- Crea y actualiza tablas de BigLake, externas o de objetos en BigQuery con el esquema y la definición de partición.
En el caso de los datos no estructurados, como imágenes y videos, el análisis de descubrimiento
detecta y registra grupos de archivos que comparten el mismo tipo de contenido multimedia 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 descubrimiento detecta y registra dos conjuntos de archivos.
En el caso de los datos estructurados, como Avro, el análisis de descubrimiento 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 descubrimiento 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 descubrimiento admite los siguientes formatos de compresión para datos estructurados y semiestructurados:
Compresión interna para los siguientes 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
Las tablas descubiertas se registran en BigQuery como tablas externas de BigLake, tablas de objetos de BigLake o tablas externas. Esto permite que sus datos estén disponibles para el análisis en BigQuery. También se habilitó el almacenamiento en caché de metadatos para las tablas de BigLake y de objetos. Todas las tablas de BigLake se transfieren automáticamente a Dataplex Catalog para la búsqueda y el descubrimiento.
Antes de comenzar
Asegúrate de tener los permisos de Identity and Access Management (IAM) necesarios para realizar las tareas de este documento.
Roles necesarios para la cuenta de servicio
Antes de comenzar, asigna los permisos de IAM a la cuenta de servicio de Dataplex 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 ejecutar un análisis de descubrimiento, pídele a tu administrador que otorgue a la cuenta de servicio de Dataplex los siguientes roles de IAM:
-
Usuario de BigQuery (
roles/bigquery.user
) en el proyecto de la fuente de datos -
Visualizador de objetos de almacenamiento (
roles/storage.objectViewer
) en el bucket de la fuente de datos -
Proporcionar una conexión: Administrador de conexión de BigQuery (
roles/bigquery.connectionAdmin
)
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 ejecutar un análisis de descubrimiento. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para 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
-
bigquery.connections.use
-
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 los usuarios finales
Para asegurarte de tener los permisos necesarios para usar la API de DataScan, pídele a tu administrador que te otorgue los siguientes roles de IAM:
-
Acceso completo a los recursos de DataScan:
Administrador de DataScan de Dataplex (
roles/dataplex.dataScanAdmin
) en tu proyecto -
Acceso de escritura a los recursos de DataScan:
Editor de DataScan de Dataplex (
roles/dataplex.dataScanEditor
) en tu proyecto -
Acceso de lectura a los recursos de DataScan, excepto los resultados:
Visualizador de DataScan de Dataplex (
roles/dataplex.dataScanViewer
) en tu proyecto -
Acceso de lectura a los recursos de DataScan, incluidos los resultados:
Visualizador de datos de DataScan de Dataplex (
roles/dataplex.dataScanDataViewer
) en 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 usar la API de DataScan. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para usar la API de DataScan:
-
Crea un DataScan:
dataplex.datascans.create
en tu proyecto -
Borra un análisis de datos:
dataplex.datascans.delete
en tu proyecto o en un recurso de DataScan -
Ver los detalles de DataScan sin los resultados:
dataplex.datascans.get
en tu proyector un recurso de DataScan -
Consulta los detalles de DataScan, incluidos los resultados:
dataplex.datascans.getData
en tu proyecto o en un recurso de DataScan -
List DataScans:
dataplex.datascans.list
en tu proyecto o un recurso de DataScan -
Ejecuta un análisis de datos:
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 de DataScan:
dataplex.datascans.getIamPolicy
en tu proyecto o en un recurso de DataScan. -
Configura los permisos de IAM en DataScan:
dataplex.datascans.setIamPolicy
en tu proyecto o en un recurso de DataScan
Es posible que tu administrador también pueda otorgarte estos permisos con roles personalizados o con otros roles predefinidos.
Cómo crear 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. Para crear y ejecutar una
escaneo de descubrimiento, debes tener el permiso dataplex.datascans.create
.
Cuando se ejecuta el análisis de descubrimiento, 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 no de BigLake que creó el análisis de descubrimiento para un análisis más detallado.
Console
En la consola de Google Cloud, ve a la página de BigQuery.
En Explorador, haz clic en
Agregar.En el panel Agregar de la sección Fuentes populares, haz clic en Crear automáticamente tablas externas y de BigLake desde GCS.
En el panel Crear tabla, en la sección Fuente, configura los siguientes 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 la convención de nombres de recursos. 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 van a analizar, en el campo Bucket, busca y selecciona el bucket.
Opcional: Proporciona una lista de patrones glob para definir los datos que se incluirán o excluirán del análisis de descubrimiento.
- Incluir: Si solo se debe analizar un subconjunto de los datos, proporciona una lista de patrones de glob que coincidan con los objetos que se incluirán.
- Excluir: Proporciona una lista de patrones glob que coincidan con los objetos que se deben excluir.
Por ejemplo, si deseas excluir
gs://test_bucket/foo/..
del análisis de descubrimiento, 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, primero se aplican los patrones de exclusión.
Para crear tablas de BigLake a partir de los datos escaneados, en el campo ID de conexión, proporciona el ID de conexión de tu recurso de Google Cloud. Para obtener más información, consulta Conexiones de recursos de Google Cloud.
Si no proporcionas un ID de conexión de recursos, el análisis de descubrimiento creará tablas externas que no sean de BigLake.
En la sección Frecuencia de descubrimiento, configura cuándo quieres que se ejecute el análisis de descubrimiento:
Repetir: El análisis se ejecuta en un programa predefinido. Proporciona la hora de inicio, los días para ejecutar el análisis y la frecuencia, como por 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 Enable JSON parsing options.
- Disable type inference: Indica si el análisis de descubrimiento 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 cadena, número o booleano.
- 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 Habilita las opciones de análisis de CSV.
- Disable type inference: Indica si el análisis de descubrimiento 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.
- Header rows: Es la cantidad de filas de encabezado, ya sea
0
o1
. Si especificas el valor0
, el análisis de descubrimiento 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 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 Enable JSON parsing options.
Cuando termines de configurar el análisis de descubrimiento de datos, haz clic en Crear (para un análisis programado) o en Ejecutar ahora (para un análisis on demand).
Un análisis programado se ejecuta según la programación que establezcas.
Un análisis on demand se ejecuta una vez inicialmente cuando lo creas y puedes ejecutarlo en cualquier momento. El análisis puede tardar varios minutos en ejecutarse.
REST
Para crear un análisis de descubrimiento, usa el método dataScans.create
.
Supervisa un análisis de descubrimiento
Para supervisar los resultados de un análisis de descubrimiento, puedes consultar los registros que se crean cuando se ejecuta un análisis.
Console
En la consola de Google Cloud, ve a la página Explorador de registros.
En la vista Explorador de registros, busca la pestaña Consulta.
Haz clic en el menú Recurso.
Selecciona Cloud Dataplex DataScan. Haga clic en Aplicar.
Haz clic en el menú Nombre del registro.
En el campo Search log names, ingresa
dataplex.googleapis.com%2Fdata_scan
. Selecciona data_scan y haz clic en Aplicar.Opcional: Agrega los siguientes filtros a la consulta de registro para filtrar los registros a un ID o una ubicación de análisis de datos específicos:
resource.type="dataplex.googleapis.com/DataScan" AND resource.labels.resource_container="projects/PROJECT_ID" AND resource.labels.datascan_id="DATA_SCAN_ID"
Reemplaza lo siguiente:
PROJECT_ID
: El ID del proyecto de Google Cloud.DATA_SCAN_ID
: El ID de DataScan
Haz clic en Ejecutar consulta.
REST
Para supervisar un análisis de descubrimiento, usa el método dataScans.get
.
Consulta tablas de BigLake publicadas
Después de ejecutar el análisis de descubrimiento, las tablas de BigLake se publican en un conjunto de datos nuevo en BigQuery y están disponibles para el análisis en BigQuery con SQL, o en Dataproc con Apache Spark, Dataproc o HiveQL.
Cómo consultar con SQL
Puedes ver o consultar tablas en BigQuery. Para obtener más información sobre cómo ejecutar consultas en BigQuery, consulta Cómo ejecutar una consulta.
Cómo consultar con Apache Spark
Para consultar tablas de BigLake con Spark SQL en un trabajo sin servidor de Dataproc, sigue estos pasos:
Crea una secuencia de comandos de PySpark similar a la siguiente secuencia de comandos 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
: Es el ID del conjunto de datos para el que los usuarios tienen permiso de creación.PROJECT_ID
: Es el ID del proyecto con la tabla de BigLake.TABLE_NAME
: Es el nombre de la tabla de BigLake.TABLE_ID
: Es el ID de la tabla de BigLake.
Administra tablas de BigLake publicadas
El análisis de descubrimiento crea las tablas de BigLake publicadas en BigQuery. A menos que la etiqueta metadata-managed-mode esté configurada en user_managed
, el análisis de descubrimiento administra las tablas de BigLake publicadas. El análisis de descubrimiento 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 de datos programados o on demand.
Actualiza las tablas de BigLake publicadas
En el caso de las tablas de BigLake publicadas con los trabajos de análisis de descubrimiento con la configuración predeterminada, el esquema y otros metadatos se actualizan automáticamente con cada trabajo de análisis de datos que se ejecuta con la frecuencia programada.
Para actualizar una tabla de BigLake publicada, sigue estos pasos:
En la consola de Google Cloud, ve a la página de BigQuery.
En el panel Explorador, expande el proyecto y el conjunto de datos y, luego, elige la tabla.
En el panel Detalles, en la sección Etiquetas, asegúrate de que metadata-managed-mode esté configurado como
user_managed
. Si está configurado en 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
.
Una tabla con un esquema actualizado estará disponible para las consultas SQL y Spark. Cuando se ejecuten los próximos análisis de descubrimiento, los metadatos de la tabla no cambiarán.
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 de BigQuery.
En el panel Explorador, expande el proyecto y el conjunto de datos y, luego, elige la tabla.
En el panel Detalles, en la sección Etiquetas, asegúrate de que la etiqueta metadata-managed-mode no esté configurada como
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 un valor que no sea
user_managed
.
Haz clic en Ejecutar. El análisis de descubrimiento se ejecuta a pedido.
Después de que se ejecuta el análisis de descubrimiento, la tabla de BigLake se borra en BigQuery y no está disponible para enumerarse ni consultarse a través de Spark.
Ejecuta un análisis de descubrimiento a pedido
Para ejecutar un análisis de descubrimiento a pedido, usa el
método dataScans.run
en la API de Dataplex.
Enumerar análisis de descubrimiento
Para recuperar la lista de análisis de tu proyecto, usa el
método dataScans.list
en la API de Dataplex.
Actualiza un análisis de descubrimiento
Para cambiar la programación de un análisis, por ejemplo, de una programación on demand a una recurrente, debes actualizar DataScan.
Para actualizar un análisis de descubrimiento, usa el método dataScans.patch
en la API de Dataplex.
Cómo borrar un análisis de descubrimiento
Para borrar un análisis de descubrimiento, usa el método dataScans.delete
en la API de Dataplex.