Ativar a linhagem de dados do Hive no Dataproc

Neste documento, mostramos como ativar e usar a linhagem de dados para jobs do Hive no Dataproc.

Você ativa a linhagem de dados para jobs do Hive do Dataproc usando uma ação de inicialização ao criar um cluster.

Quando você ativa a linhagem de dados do Hive em um cluster, os jobs do Hive que você envia para o cluster capturam eventos de linhagem de dados e os publicam no Dataplex Universal Catalog.

Visualizar informações de linhagem

Um gráfico de linhagem de dados mostra as relações entre os recursos do projeto e os processos que os criaram. É possível acessar gráficos de linhagem usando o Catálogo universal do Dataplex, o BigQuery Studio e a Vertex AI no console do Google Cloud .

Preços

A linhagem de dados do Hive do Dataproc é oferecida durante a prévia sem custo adicional. Os preços padrão do Dataproc são aplicáveis.

Antes de começar

  1. No console do Google Cloud , na página do seletor de projetos, selecione o projeto que contém o cluster do Dataproc para o qual você quer rastrear a linhagem.

    Acessar o seletor de projetos

  2. Ative as APIs Data Lineage e Dataplex.

    Ativar as APIs

Funções exigidas

Para receber as permissões necessárias para usar a linhagem de dados no Dataproc, peça ao administrador para conceder a você os seguintes papéis do IAM na conta de serviço da VM do cluster do Dataproc:

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.

Ativar a linhagem de dados do Hive

Para ativar a linhagem de dados do Hive em um cluster, especifique a ação de inicialização hive-lineage.sh ao criar um cluster do Dataproc. Essa ação de inicialização é armazenada em buckets 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:

  • CLUSTER_NAME: o nome do cluster.
  • PROJECT_ID: o ID do projeto do Google Cloud . Os IDs do projeto estão listados na seção Informações do projeto no Google Cloud painel do console.
  • REGION: a região do Compute Engine em que o cluster será localizado.
  • IMAGE_VERSION A versão da imagem pretendida para o cluster.
  • --initialization-actions: especifica uma ação de instalação localizada em um local regional do Cloud Storage que ativa a linhagem de dados do Hive.
    • Adicione a ação de inicialização do conector Hive-BigQuery, se quiser. Se você quiser integrar tabelas do BigQuery com cargas de trabalho do Hive, instale 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 conector para instalar o conector Hive-BigQuery no cluster.

Enviar um job do Hive

Quando você envia um job do Hive para um cluster do Dataproc criado com linhagem de dados do Hive ativada, o Dataproc captura e informa as informações de linhagem de dados ao Dataplex Universal Catalog.

Exemplo de envio de job 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:

  • CLUSTER_NAME: o nome do cluster.
  • PROJECT_ID: o ID do projeto do Google Cloud . Os IDs do projeto estão listados na seção Informações do projeto no Google Cloud painel do console.
  • REGION: a região do Compute Engine em que o cluster está localizado.
  • CUSTOM_NAMESPACE: um namespace do Hive personalizado opcional que você pode especificar para identificar o job do Hive.
  • HIVE_QUERY: a consulta do Hive a ser enviada ao cluster. Em vez de especificar uma consulta, substitua a flag --execute HIVE_QUERY por uma flag --file SQL_FILE para especificar o local de um arquivo que contém a consulta.

Visualizar a linhagem no catálogo universal do Dataplex

Um gráfico de linhagem mostra as relações entre os recursos do projeto e os processos que os criaram. É possível ver informações de linhagem de dados no console do Google Cloud ou recuperá-las da API Data Lineage na forma de dados JSON.

Exemplo de linhagem de dados do Hive com o BigQuery

O exemplo nesta seção consiste nas seguintes etapas:

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

Criar um cluster do Dataproc

Execute o seguinte comando em uma 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

Observações:

Executar uma consulta do Hive

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

  • Crie uma tabela externa us_states com entrada de dados de amostra de gs://cloud-samples-data/bigquery/hive-partitioning-samples/autolayout.
  • Cria uma tabela gerenciada us_states_copy no conjunto de dados especificado do BigQuery.
  • Copie todos os dados de us_states para us_states_copy.

Para executar a consulta, faça o seguinte:

  1. Em uma janela de terminal local ou no Cloud Shell, use um editor de texto, como vi ou nano, para copiar a instrução de consulta do Hive a seguir em um arquivo hive-example.sql e salve o arquivo no diretório atual.
  2. Envie o arquivo hive-example.sql para o cluster do Dataproc criado anteriormente, substituindo a flag --execute HIVE_QUERY por uma flag --file SQL_FILE para especificar o local do arquivo hive-example.sql salvo. As variáveis PROJECT e BQ_DATASET precisam 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;

Ver o gráfico de linhagem de dados

Depois que o job do Hive for concluído, confira a linhagem de dados no BigQuery Studio no console do Google Cloud :

Gráfico de linhagem do Hive

Para informações sobre como mostrar gráficos no BigQuery Studio, consulte Ver linhagem no BigQuery. Para informações sobre como entender gráficos, consulte Modelo de informações de linhagem de dados.

A seguir