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:

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:

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:

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

  1. En la consola de Google Cloud, ve a la página de BigQuery.

    Ir a BigQuery

  2. En Explorador, haz clic en Agregar.

  3. En el panel Agregar de la sección Fuentes populares, haz clic en Crear automáticamente tablas externas y de BigLake desde GCS.

  4. En el panel Crear tabla, en la sección Fuente, configura los siguientes detalles sobre los datos que se analizarán:

    1. Ingresa un nombre para el análisis.
    2. 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á.
    3. Opcional: Proporciona una descripción del análisis.
    4. 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.
    5. 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.

    6. 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.

  5. 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.

  6. 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.

    1. 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.
    2. 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 o 1. Si especificas el valor 0, el análisis de descubrimiento infiere los encabezados y extrae los nombres de las columnas del archivo. El valor predeterminado es 0.
      • 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 o ISO-8859-1. Si no especificas un valor, se usa UTF-8 como valor predeterminado.
  7. 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

  1. En la consola de Google Cloud, ve a la página Explorador de registros.

    Ir al Explorador de registros

  2. En la vista Explorador de registros, busca la pestaña Consulta.

  3. Haz clic en el menú Recurso.

  4. Selecciona Cloud Dataplex DataScan. Haga clic en Aplicar.

  5. Haz clic en el menú Nombre del registro.

  6. En el campo Search log names, ingresa dataplex.googleapis.com%2Fdata_scan. Selecciona data_scan y haz clic en Aplicar.

  7. 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
  8. 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:

  1. 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.
  2. Envía el trabajo por lotes.

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:

  1. En la consola de Google Cloud, ve a la página de BigQuery.

    Ir a BigQuery

  2. Actualiza una o más propiedades de la tabla.

  3. En el panel Explorador, expande el proyecto y el conjunto de datos y, luego, elige la tabla.

  4. 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:

    1. Haz clic en Editar detalles.

    2. 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:

  1. Borra los archivos de datos de la tabla en el bucket de Cloud Storage.

  2. En la consola de Google Cloud, ve a la página de BigQuery.

    Ir a BigQuery

  3. En el panel Explorador, expande el proyecto y el conjunto de datos y, luego, elige la tabla.

  4. 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 como user_managed, sigue estos pasos:

    1. Haz clic en Editar detalles .

    2. Junto a la clave metadata-managed-mode, en el campo value, ingresa un valor que no sea user_managed.

  5. 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.