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.

Habilitas el linaje de datos para los trabajos de Hive de Dataproc con 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.

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, 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 página del selector de proyectos de la consola de Google Cloud, selecciona el proyecto que contiene el clúster de Dataproc para el que deseas realizar un seguimiento del linaje.

    Ir al selector de proyectos

  2. Habilita las APIs de Data Lineage y Dataplex.

    Habilitar las API

Roles obligatorios

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 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 mediante 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 crees un clúster de Dataproc. Esta acción de inicialización se almacena en buckets regionales de Cloud Storage.

Ejemplo de creación de clúster 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 de proyecto se enumeran en la sección Información del proyecto en el panel de la consola de Google Cloud.
  • REGION: Es la región de Compute Engine en la que se ubicará el clúster.
  • IMAGE_VERSION 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 el linaje de datos de Hive habilitado, Dataproc captura y informa la información del linaje de datos a Dataplex.

Ejemplo de envío de trabajos 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 de proyecto se enumeran en la sección Información del proyecto en el panel de la consola de 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.

Consultar el linaje en Dataplex

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 forma 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 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. Consulta el gráfico del linaje de datos generado en BigQuery Studio.

Crea un clúster de Dataproc

Ejecuta el siguiente comando en una ventana de 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 entrada de muestra de gs://cloud-samples-data/bigquery/hive-partitioning-samples/autolayout.
  • Crea una tabla administrada de 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 sentencia de consulta de Hive en un archivo hive-example.sql y, luego, guárdalo en el directorio actual.
  2. Envía el archivo hive-example.sql al clúster de Dataproc creado antes reemplazando 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 propagarse.

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

Después de 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 Cómo ver el linaje en BigQuery. Para obtener información sobre cómo comprender los gráficos, consulta Modelo de información de linaje de datos.

¿Qué sigue?