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
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.
Habilita las APIs de Data Lineage y Dataplex.
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:
-
Consulta el linaje de datos en Dataplex Universal Catalog o usa la API de Data Lineage:
Visualizador de linaje de datos (
roles/datalineage.viewer
) -
Genera el linaje de datos de forma manual con la API:
Productor de eventos de linaje de datos (
roles/datalineage.producer
) -
Edita el linaje de datos con 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 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:
- 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.
- Ejecuta una consulta de Hive en el clúster para copiar datos entre tablas de Hive.
- 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:
- 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
: Estas acciones de instalación, ubicadas en Cloud Storage, instalan el conector de Hive-BigQuery y habilitan el linaje de datos de Hive.- HIVE_BQ_VERSION: Especifica la versión del conector Hive-BigQuery.
La marca
--metadata
pasa la versión a la acción de inicializaciónconnectors.sh
para instalar el conector de BigQuery de Hive en el clúster.
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 desdegs://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
aus_states_copy
.
Para ejecutar la consulta, haz lo siguiente:
- 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, luego, guarda el archivo en el directorio actual. - 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 archivohive-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 :
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?
- Obtén más información sobre el linaje de datos.