Ative a linhagem de dados do Hive no Dataproc

Este documento mostra como ativar e usar a linhagem de dados para tarefas do Dataproc Hive.

Ativa a linhagem de dados para tarefas do Hive do Dataproc através de uma ação de inicialização quando cria um cluster.

Quando ativa a linhagem de dados do Hive num cluster, as tarefas do Hive que envia para o cluster capturam eventos de linhagem de dados e publicam-nos no catálogo universal do Dataplex.

Visualize informações de linhagem

Um gráfico de linhagem de dados apresenta as relações entre os recursos do seu projeto e os processos que os criaram. Pode aceder a gráficos de linhagem através do Dataplex Universal Catalog, BigQuery Studio e Vertex AI na Google Cloud consola.

Preços

A linhagem de dados do Dataproc Hive é oferecida durante a pré-visualização sem custos adicionais. Aplicam-se os preços do Dataproc padrão.

Antes de começar

  1. Na Google Cloud consola, na página do seletor de projetos, selecione o projeto que contém o cluster do Dataproc para o qual quer acompanhar a linhagem.

    Aceder ao seletor de projetos

  2. Ative a API Data Lineage e a API Dataplex.

    Ative as APIs

Funções necessárias

Para obter as autorizações de que precisa para usar a linhagem de dados no Dataproc, peça ao seu administrador que lhe conceda as seguintes funções do IAM na conta de serviço da VM do cluster do Dataproc:

Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.

Ative a linhagem de dados do Hive

Para ativar a linhagem de dados do Hive num cluster, especifique a hive-lineage.sh ação de inicialização quando criar um cluster do Dataproc. Esta ação de inicialização é armazenada em contentores regionais no Cloud Storage.

Exemplo de criação de cluster da CLI 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

Substitua o seguinte:

  • CLUSTER_NAME: o nome do cluster.
  • PROJECT_ID: o ID do seu Google Cloud projeto. Os IDs dos projetos estão listados na secção Informações do projeto no Google Cloud painel de controloda consola.
  • REGION: A região do Compute Engine onde localizar o cluster.
  • IMAGE_VERSION A versão da imagem pretendida para o conjunto.
  • --initialization-actions: especifica uma ação de instalação localizada numa localização regional do Cloud Storage que ativa a linhagem de dados do Hive.
    • Opcionalmente, adicione a ação de inicialização do conetor Hive-BigQuery. Se quiser integrar tabelas do BigQuery com cargas de trabalho do Hive, tem de instalar o conector Hive-BigQuery no cluster. Consulte o exemplo de linhagem de dados do Hive com o BigQuery, que executa uma ação de inicialização do conetor para instalar o conetor Hive-BigQuery no cluster.

Envie uma tarefa Hive

Quando envia uma tarefa do Hive para um cluster do Dataproc criado com a linhagem de dados do Hive ativada, o Dataproc captura e comunica as informações de linhagem de dados ao catálogo universal do Dataplex.

Exemplo de envio de tarefas do Hive da CLI gcloud:

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

Substitua o seguinte:

  • CLUSTER_NAME: o nome do cluster.
  • PROJECT_ID: o ID do seu Google Cloud projeto. Os IDs dos projetos estão listados na secção Informações do projeto no Google Cloud painel de controloda consola.
  • REGION: A região do Compute Engine onde o cluster está localizado.
  • CUSTOM_NAMESPACE: Um espaço de nomes do Hive personalizado opcional que pode especificar para identificar a tarefa do Hive.
  • HIVE_QUERY: a consulta Hive a enviar para o cluster. Em vez de especificar uma consulta, pode substituir a flag --execute HIVE_QUERY por uma flag --file SQL_FILE para especificar a localização de um ficheiro que contém a consulta.

Veja a linhagem no catálogo universal do Dataplex

Um gráfico de linhagem apresenta as relações entre os recursos do seu projeto e os processos que os criaram. Pode ver informações de linhagem de dados na Google Cloud consola ou obtê-las a partir da API Data Lineage sob a forma de dados JSON.

Exemplo de linhagem de dados do Hive com o BigQuery

O exemplo nesta secção consiste nos seguintes passos:

  1. Crie um cluster do Dataproc com a linhagem de dados do Hive ativada e o conetor Hive-BigQuery instalado no cluster.
  2. Execute uma consulta Hive no cluster para copiar dados entre tabelas Hive.
  3. Veja o gráfico de linhagem de dados gerado no BigQuery Studio.

Crie um cluster do Dataproc

Execute o seguinte comando numa janela de terminal local ou no Cloud Shell para criar um cluster do 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:

Execute uma consulta Hive

Execute uma consulta Hive para realizar as seguintes ações:

  • Crie uma us_statestabela externa com dados de amostra introduzidos a partir degs://cloud-samples-data/bigquery/hive-partitioning-samples/autolayout.
  • Crie uma tabela gerida us_states_copy no conjunto de dados do BigQuery especificado.
  • Copie todos os dados de us_states para us_states_copy.

Para executar a consulta:

  1. Numa janela de terminal local ou no Cloud Shell, use um editor de texto, como o vi ou o nano, para copiar a seguinte declaração de consulta do Hive para um ficheiro hive-example.sql e, de seguida, guarde o ficheiro no diretório atual.
  2. Envie o ficheiro hive-example.sql para o cluster do Dataproc criado anteriormente, substituindo a flag --execute HIVE_QUERY pela flag --file SQL_FILE para especificar a localização do ficheiro hive-example.sql guardado. Tenha em atenção que as variáveis PROJECT e BQ_DATASET têm de ser preenchidas.

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;

Veja o gráfico de linhagem de dados

Depois de a tarefa do Hive terminar com êxito, veja a linhagem de dados no BigQuery Studio na Google Cloud consola:

Gráfico de linhagem do Hive

Para ver informações sobre a apresentação de gráficos no BigQuery Studio, consulte o artigo Veja a linhagem no BigQuery. Para obter informações sobre a compreensão dos gráficos, consulte o artigo Modelo de informações de linhagem de dados.

O que se segue?