Neste documento, mostramos como ativar e usar a linhagem de dados para jobs do Hive do Serviço Gerenciado para Apache Spark.
Você ativa a linhagem de dados para jobs do Hive do Serviço Gerenciado para Apache Spark 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 Knowledge 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 Knowledge Catalog, o BigQuery Studio e a Vertex AI no console do Google Cloud .
Preços
A linhagem de dados do Hive do Serviço Gerenciado para Apache Spark é oferecida durante a prévia sem custos adicionais. Os preços do Serviço Gerenciado para Apache Spark se aplicam.
Antes de começar
No console do Google Cloud , na página do seletor de projetos, selecione o projeto que contém o cluster do Serviço Gerenciado para Apache Spark cuja linhagem você quer rastrear.
Ative as APIs Data Lineage e Dataplex.
Funções exigidas
Para receber as permissões necessárias para usar a linhagem de dados no Serviço Gerenciado para Apache Spark, peça ao administrador para conceder a você os seguintes papéis do IAM na conta de serviço da VM do cluster do Serviço Gerenciado para Apache Spark:
-
Veja a linhagem de dados no Knowledge Catalog ou use a API Data Lineage:
Leitor da linhagem de dados (
roles/datalineage.viewer) -
Produza a linhagem de dados manualmente usando a API:
Produtor de eventos da linhagem de dados (
roles/datalineage.producer) -
Edite a linhagem de dados usando a API:
Editor da linhagem de dados (
roles/datalineage.editor) -
Realizar todas as operações na linhagem de dados:
Administrador da linhagem de dados (
roles/datalineage.admin)
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 hive-lineage.sh
ação de inicialização ao
criar um cluster do Serviço Gerenciado para Apache Spark.
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.shSubstitua:
- 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 console Google Cloud .
- REGION: a região do Compute Engine em que o cluster será 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.- 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 Serviço Gerenciado para Apache Spark criado com linhagem de dados do Hive ativada, o Serviço Gerenciado para Apache Spark captura e informa as informações de linhagem de dados ao Knowledge 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_QUERYSubstitua:
- 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 console Google Cloud .
- 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_QUERYpor uma flag--file SQL_FILEpara especificar o local de um arquivo que contém a consulta.
Ver a linhagem no Knowledge Catalog
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:
- Crie um cluster do Serviço Gerenciado para Apache Spark com a linhagem de dados do Hive ativada e o conector Hive-BigQuery instalado no cluster.
- Execute uma consulta do Hive no cluster para copiar dados entre tabelas do Hive.
- Confira o gráfico de linhagem de dados gerado no BigQuery Studio.
Criar um cluster do Serviço Gerenciado para Apache Spark
Execute o seguinte comando em uma janela de terminal local ou no Cloud Shell para criar um cluster do Serviço Gerenciado para Apache Spark.
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:
- 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 console Google Cloud .
- REGION: a região do Compute Engine em que o cluster será localizado.
- IMAGE_VERSION A versão de imagem pretendida para o cluster.
--initialization-actions: essas ações de instalação, localizadas no Cloud Storage, instalam o conector Hive-BigQuery e ativam a linhagem de dados do Hive.- HIVE_BQ_VERSION: especifica a
versão do conector Hive-BigQuery.
A flag
--metadatatransmite a versão para a ação de inicializaçãoconnectors.shpara instalar o conector Hive-BigQuery no cluster.
Executar uma consulta do Hive
Execute uma consulta do Hive para realizar as seguintes ações:
- Crie uma tabela externa
us_statescom entrada de dados de amostra degs://cloud-samples-data/bigquery/hive-partitioning-samples/autolayout. - Crie uma tabela gerenciada
us_states_copyno conjunto de dados especificado do BigQuery. - Copie todos os dados de
us_statesparaus_states_copy.
Para executar a consulta, faça o seguinte:
- Em uma janela de terminal local ou no Cloud Shell,
use um editor de texto, como
viounano, para copiar a instrução de consulta do Hive a seguir em um arquivohive-example.sqle salve o arquivo no diretório atual. - Envie o arquivo
hive-example.sqlpara o cluster do Serviço Gerenciado para Apache Spark criado anteriormente, substituindo a flag--execute HIVE_QUERYpor uma flag--file SQL_FILEpara especificar o local do arquivohive-example.sqlsalvo. Note 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;
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 :
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
- Saiba mais sobre a linhagem de dados.