Habilita el linaje de datos de Hive en Dataproc

En este documento, se muestra cómo habilitar y usar el linaje de datos para los trabajos de Hive de Dataproc.

Para habilitar el linaje de datos para los trabajos de Hive de Dataproc, usa una acción de inicialización cuando creas un clúster.

Cuando habilitas el linaje de datos de Hive en un clúster, los trabajos de Hive que envías al clúster capturan eventos de linaje de datos y los publican en Dataplex Universal Catalog.

Visualiza la información del linaje

Un gráfico de linaje de datos muestra las relaciones entre los recursos de tu proyecto y los procesos que los crearon. Puedes acceder a los gráficos de linaje con Dataplex Universal Catalog, BigQuery Studio y Vertex AI en la consola de Google Cloud .

Precios

El linaje de datos de Hive de Dataproc se ofrece durante la versión preliminar sin cargo adicional. Se aplican los precios estándar de Dataproc.

Antes de comenzar

  1. En la consola de Google Cloud , en la página del selector de proyectos, selecciona el proyecto que contiene el clúster de Dataproc para el que deseas hacer un seguimiento del linaje.

    Ir al selector de proyectos

  2. Habilita las APIs de Data Lineage y Dataplex.

    Habilitar las API

Roles requeridos

Para obtener los permisos que necesitas para usar el linaje de datos en Dataproc, pídele a tu administrador que te otorgue los siguientes roles de IAM en la cuenta de servicio de la VM del clúster de Dataproc:

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.

Habilita el linaje de datos de Hive

Para habilitar el linaje de datos de Hive en un clúster, especifica la acción de inicialización hive-lineage.sh cuando creas un clúster de Dataproc. Esta acción de inicialización se almacena en buckets regionales en Cloud Storage.

Ejemplo de creación de clústeres con la CLI de gcloud:

gcloud dataproc clusters create CLUSTER_NAME \
    --project PROJECT_ID \
    --region REGION \
    --image-version IMAGE_VERSION \
    --initialization-actions gs://goog-dataproc-initialization-actions-REGION/hive-lineage/hive-lineage.sh

Reemplaza lo siguiente:

  • CLUSTER_NAME: Es el nombre del clúster.
  • PROJECT_ID: El ID de tu proyecto de Google Cloud . Los IDs del proyecto se enumeran en la sección Información del proyecto del panel de la consola Google Cloud .
  • REGION: Región de Compute Engine en la que se ubicará el clúster.
  • IMAGE_VERSION Es la versión de imagen prevista para el clúster.
  • --initialization-actions: Especifica una acción de instalación ubicada en una ubicación regional de Cloud Storage que habilita el linaje de datos de Hive.
    • De manera opcional, agrega la acción de inicialización del conector de Hive-BigQuery. Si deseas integrar tablas de BigQuery con cargas de trabajo de Hive, debes instalar el conector de Hive-BigQuery en el clúster. Consulta el ejemplo de linaje de datos de Hive con BigQuery, que ejecuta una acción de inicialización del conector para instalar el conector de Hive-BigQuery en el clúster.

Envía un trabajo de Hive

Cuando envías un trabajo de Hive a un clúster de Dataproc que se creó con la función de linaje de datos de Hive habilitada, Dataproc captura y registra la información del linaje de datos en el catálogo universal de Dataplex.

Ejemplo de envío de un trabajo de Hive con la CLI de gcloud:

gcloud dataproc jobs submit hive \
    --cluster=CLUSTER_NAME \
    --project PROJECT_ID \
    --region REGION \
    --properties=hive.openlineage.namespace=CUSTOM_NAMESPACE \
    --execute HIVE_QUERY

Reemplaza lo siguiente:

  • CLUSTER_NAME: Es el nombre del clúster.
  • PROJECT_ID: El ID de tu proyecto de Google Cloud . Los IDs del proyecto se enumeran en la sección Información del proyecto del panel de la consola Google Cloud .
  • REGION: La región de Compute Engine en la que se encuentra tu clúster.
  • CUSTOM_NAMESPACE: Es un espacio de nombres de Hive personalizado opcional que puedes especificar para identificar el trabajo de Hive.
  • HIVE_QUERY: Es la consulta de Hive que se enviará al clúster. En lugar de especificar una consulta, puedes reemplazar la marca --execute HIVE_QUERY por una marca --file SQL_FILE para especificar la ubicación de un archivo que contiene la consulta.

Consulta el linaje en Dataplex Universal Catalog

Un gráfico de linaje muestra las relaciones entre los recursos de tu proyecto y los procesos que los crearon. Puedes ver la información del linaje de datos en la consola de Google Cloud o recuperarla de la API de Data Lineage en formato de datos JSON.

Ejemplo de linaje de datos de Hive con BigQuery

El ejemplo de esta sección consta de los siguientes pasos:

  1. Crea un clúster de Dataproc que tenga habilitado el linaje de datos de Hive y el conector de Hive-BigQuery instalado en el clúster.
  2. Ejecuta una consulta de Hive en el clúster para copiar datos entre tablas de Hive.
  3. Visualiza el gráfico de linaje de datos generado en BigQuery Studio.

Crea un clúster de Dataproc

Ejecuta el siguiente comando en una ventana de la terminal local o en Cloud Shell para crear un clúster de Dataproc.

gcloud dataproc clusters create CLUSTER_NAME \
    --project PROJECT_ID \
    --region REGION \
    --image-version IMAGE_VERSION \
    --initialization-actions gs://goog-dataproc-initialization-actions-REGION/connectors/connectors.sh, gs://goog-dataproc-initialization-actions-REGION/hive-lineage/hive-lineage.sh \
    --metadata hive-bigquery-connector-version=HIVE_BQ_VERSION

Notas:

Ejecuta una consulta de Hive

Ejecuta una consulta de Hive para realizar las siguientes acciones:

  • Crea una tabla externa us_states con datos de muestra ingresados desde gs://cloud-samples-data/bigquery/hive-partitioning-samples/autolayout.
  • Crea una tabla administrada us_states_copy en el conjunto de datos de BigQuery especificado.
  • Copia todos los datos de us_states a us_states_copy.

Para ejecutar la consulta, haz lo siguiente:

  1. En una ventana de terminal local o en Cloud Shell, usa un editor de texto, como vi o nano, para copiar la siguiente instrucción de consulta de Hive en un archivo hive-example.sql y, luego, guarda el archivo en el directorio actual.
  2. Envía el archivo hive-example.sql al clúster de Dataproc creado anteriormente y reemplaza la marca --execute HIVE_QUERY por una marca --file SQL_FILE para especificar la ubicación del archivo hive-example.sql guardado. Ten en cuenta que las variables PROJECT y BQ_DATASET deben estar propagadas.

Hive BigQueryStorageHandler

CREATE EXTERNAL TABLE us_states (
    name STRING,
    post_abbr STRING
)
STORED AS PARQUET
LOCATION 'gs://cloud-samples-data/bigquery/hive-partitioning-samples/autolayout';

CREATE TABLE us_states_copy (
    name STRING,
    post_abbr STRING
)
STORED BY 'com.google.cloud.hive.bigquery.connector.BigQueryStorageHandler'
TBLPROPERTIES (
  'bq.table'='PROJECT.BQ_DATASET.us_states_copy'
);

INSERT INTO us_states_copy SELECT * FROM us_states;

Cómo ver el gráfico de linaje de datos

Una vez que el trabajo de Hive finalice correctamente, consulta el linaje de datos en BigQuery Studio en la consola de Google Cloud :

Gráfico de linaje de Hive

Para obtener información sobre cómo mostrar gráficos en BigQuery Studio, consulta Visualiza el linaje en BigQuery. Para obtener información sobre cómo comprender los gráficos, consulta Modelo de información del linaje de datos.

¿Qué sigue?