Ativar a linhagem de dados do Hive no Dataproc

Este documento mostra como ativar e usar a linhagem de dados para jobs do Hive do 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 ao 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 Dataplex Universal Catalog, o BigQuery Studio e a Vertex AI no Google Cloud console.

Preços

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

Antes de começar

  1. No Google Cloud console, 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 a API Data Lineage e a API 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 personalizados papéis ou outros predefinidos papéis.

Ativar a linhagem de dados do Hive

Para ativar a linhagem de dados do Hive em um cluster, especifique a hive-lineage.sh ação de inicialização quando você 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 painel do Google Cloud console Dashboard.
  • REGION: a região do Compute Engine em que o cluster está localizado.
  • IMAGE_VERSION A versão de 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.
    • Opcionalmente, adicione a ação de inicialização do conector Hive-BigQuery. 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

Ao enviar um job do Hive para um cluster do Dataproc criado com a 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 painel do Google Cloud console Dashboard.
  • REGION: a região do Compute Engine em que o cluster está localizado.
  • CUSTOM_NAMESPACE: um namespace do Hive personalizado opcional que pode ser especificado para identificar o job do Hive.
  • HIVE_QUERY: a consulta do Hive a ser enviada ao cluster. Em vez de especificar uma consulta, você pode substituir a --execute HIVE_QUERY flag por uma --file SQL_FILE flag 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 visualizar informações de linhagem de dados no Google Cloud console 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 a 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. Visualize o gráfico de linhagem de dados gerado no BigQuery Studio.

Criar um cluster do Dataproc

Execute o comando a seguir 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.
  • Crie uma tabela gerenciada 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, 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. Observe que 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;

Visualizar o gráfico de linhagem de dados

Depois que o job do Hive terminar, visualize a linhagem de dados no BigQuery Studio no Google Cloud console:

Gráfico de linhagem do Hive

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

A seguir