En este documento se explica cómo habilitar y usar el linaje de datos en trabajos de Hive de Dataproc.
Para habilitar el linaje de datos en las tareas de Hive de Dataproc, debes usar una acción de inicialización al crear 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 registran eventos de linaje de datos y los publican en Dataplex Universal Catalog.
Visualizar 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 han creado. Puedes acceder a los gráficos de linaje mediante 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 coste adicional. Se aplican las tarifas estándar de Dataproc.
Antes de empezar
En la Google Cloud consola, en la página del selector de proyectos, selecciona el proyecto que contiene el clúster de Dataproc del que quieres hacer un seguimiento del linaje.
Habilita las APIs Data Lineage y Dataplex.
Roles obligatorios
Para obtener los permisos que necesitas para usar el linaje de datos en Dataproc, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos en la cuenta de servicio de la VM del clúster de Dataproc:
-
Ver el linaje de datos en Dataplex Universal Catalog o usar la API Data Lineage:
Visor de linaje de datos (
roles/datalineage.viewer
) -
Generar linaje de datos manualmente mediante la API:
Productor de eventos de linaje de datos (
roles/datalineage.producer
) -
Editar el linaje de datos mediante la API:
Editor de linaje de datos (
roles/datalineage.editor
) -
Realizar todas las operaciones en el linaje de datos:
Administrador de linaje de datos (
roles/datalineage.admin
)
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
Habilitar el linaje de datos de Hive
Para habilitar el linaje de datos de Hive en un clúster, especifica la hive-lineage.sh
acción de inicialización cuando crees un clúster de Dataproc.
Esta acción de inicialización se almacena en segmentos 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
Haz los cambios siguientes:
- CLUSTER_NAME: el nombre del clúster.
- PROJECT_ID: tu ID de proyecto Google Cloud . Los IDs de proyecto se indican en la sección Información del proyecto del panel de control de la consola Google Cloud .
- REGION: 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.- Opcionalmente, añade la acción de inicialización del conector Hive-BigQuery. Si quieres integrar tablas de BigQuery con cargas de trabajo de Hive, debes instalar el conector 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.
Enviar una tarea de Hive
Cuando envías un trabajo de Hive a un clúster de Dataproc que se ha creado con el linaje de datos de Hive habilitado, Dataproc captura y comunica la información del linaje de datos a Dataplex Universal Catalog.
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
Haz los cambios siguientes:
- CLUSTER_NAME: el nombre del clúster.
- PROJECT_ID: tu ID de proyecto Google Cloud . Los IDs de proyecto se indican en la sección Información del proyecto del panel de control de la consola Google Cloud .
- REGION: la región de Compute Engine en la que se encuentra tu clúster.
- CUSTOM_NAMESPACE: Espacio de nombres de Hive personalizado opcional que puedes especificar para identificar el trabajo de Hive.
- HIVE_QUERY: la consulta de Hive que se va a enviar al clúster.
En lugar de especificar una consulta, puedes sustituir la marca
--execute HIVE_QUERY
por una marca--file SQL_FILE
para especificar la ubicación de un archivo que contenga la consulta.
Ver 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 información sobre el linaje de datos en la Google Cloud consola o recuperarla de la API 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:
- 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.
- Ejecuta una consulta de Hive en el clúster para copiar datos entre tablas de Hive.
- Consulta el gráfico de linaje de datos generado en BigQuery Studio.
Crear una agrupación 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:
- CLUSTER_NAME: el nombre del clúster.
- PROJECT_ID: tu ID de proyecto Google Cloud . Los IDs de proyecto se indican en la sección Información del proyecto del panel de control de la consola Google Cloud .
- REGION: 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
: estas acciones de instalación, ubicadas en Cloud Storage, instalan el conector Hive-BigQuery y habilitan el linaje de datos de Hive.- HIVE_BQ_VERSION: especifica la
versión del conector Hive-BigQuery.
La marca
--metadata
transfiere la versión a laconnectors.sh
acción de inicialización para instalar el conector Hive-BigQuery en el clúster.
Ejecutar una consulta de Hive
Ejecuta una consulta de Hive para realizar las siguientes acciones:
- Crea una
us_states
tabla externa con datos de muestra introducidos desdegs://cloud-samples-data/bigquery/hive-partitioning-samples/autolayout
. - Crea una
us_states_copy
tabla gestionada en el conjunto de datos de BigQuery especificado. - Copia todos los datos de
us_states
enus_states_copy
.
Para ejecutar la consulta, sigue estos pasos:
- En una ventana de terminal local o en Cloud Shell, usa un editor de texto, como
vi
onano
, para copiar la siguiente instrucción de consulta de Hive en un archivohive-example.sql
y, a continuación, guarda el archivo en el directorio actual. - Envía el archivo
hive-example.sql
al clúster de Dataproc creado anteriormente. Para ello, sustituye la marca--execute HIVE_QUERY
por la marca--file SQL_FILE
para especificar la ubicación del archivohive-example.sql
guardado. Ten en cuenta que las variables PROJECT y BQ_DATASET deben rellenarse.
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;
Ver el gráfico de linaje de datos
Una vez que el trabajo de Hive se haya completado correctamente, consulta el linaje de datos en BigQuery Studio en la Google Cloud consola:
Para obtener información sobre cómo mostrar gráficos en BigQuery Studio, consulta Ver el linaje en BigQuery. Para obtener información sobre cómo interpretar los gráficos, consulta Modelo de información de linaje de datos.