Nesta página, descrevemos como executar transformações no BigQuery em vez do Spark no Cloud Data Fusion.
Para mais informações, consulte a Visão geral do Pushdown de transformação.
Antes de começar
O Pushdown de transformação está disponível na versão 6.5.0 e posteriores. Se o pipeline for executado em um ambiente de versão anterior, será possível fazer upgrade da instância para a versão mais recente.
Ativar o push-down de transformação no pipeline
Console
Para ativar o pushdown de transformação em um pipeline implantado, faça o seguinte:
Acesse sua instância:
No console do Google Cloud, acesse a página do Cloud Data Fusion.
Para abrir a instância no Cloud Data Fusion Studio, clique em Instâncias e em Ver instância.
Clique em >. Lista.
MenuA guia do pipeline implantado é aberta.
Clique no pipeline implantado desejado para abri-lo no Pipeline Studio.
Clique em Configurar > Pushdown de transformação.
Clique em Ativar pushdown de transformação.
No campo Conjunto de dados, insira um nome para o conjunto de dados do BigQuery.
Opcional: para usar uma macro, clique em M. Para mais informações, consulte Conjuntos de dados.
Opcional: configure as opções, se necessário.
Clique em Salvar.
Configurações opcionais
.Propriedade | Suporte a macros | Versões compatíveis do Cloud Data Fusion | Descrição |
---|---|---|---|
Usar conexão | Não | 6.7.0 e mais recente | Define se uma conexão existente será usada. |
Conexão | Sim | 6.7.0 e mais recente | O nome da conexão. Essa conexão fornece informações sobre o projeto e a conta de serviço. Opcional: use a função macro ${conn(connection_name)} . |
ID do projeto do conjunto de dados | Sim | 6.5.0 | Se o conjunto de dados estiver em um projeto diferente daquele Como executar o job do BigQuery, insira o ID do projeto do conjunto de dados. Se nenhum valor é fornecido, por padrão, ele usa o ID do projeto em que o é executado. |
ID do projeto | Sim | 6.5.0 | O ID do projeto do Google Cloud. |
Tipo de conta de serviço | Sim | 6.5.0 | Selecione uma das seguintes opções:
|
Caminho do arquivo da conta de serviço | Sim | 6.5.0 | O caminho no sistema de arquivos local para a chave da conta de serviço usada
para autorização. Ele é definido como auto-detect durante a execução
em um cluster do Dataproc. Ao executar em outros clusters,
o arquivo precisa estar presente em todos os nós do cluster. O padrão é auto-detect . |
JSON da conta de serviço | Sim | 6.5.0 | O conteúdo do arquivo JSON da conta de serviço. |
Nome do bucket temporário | Sim | 6.5.0 | O bucket do Cloud Storage que armazena os dados temporários. Ele é criado automaticamente, caso ainda não exista, mas não é excluídos automaticamente. Os dados do Cloud Storage são excluídos depois de carregados no BigQuery. Se esse valor não for fornecido, um o bucket exclusivo é criado e excluído após a execução do pipeline termina. A conta de serviço precisa ter permissão para criar buckets no projeto configurado. |
Local | Sim | 6.5.0 | O local onde o conjunto de dados do BigQuery é criado.
Esse valor será ignorado se o conjunto de dados ou o bucket temporário já
existe. O padrão é
US
multirregional. |
Nome da chave de criptografia | Sim | 6.5.1/0.18.1 | O chave de criptografia gerenciada pelo cliente (CMEK) que criptografa dados gravado em qualquer bucket, conjunto de dados ou tabela criado pelo plug-in. Se o bucket, o conjunto de dados ou a tabela já existir, esse valor será ignorado. |
Reter tabelas do BigQuery após a conclusão | Sim | 6.5.0 | Define se todas as tabelas temporárias do BigQuery devem ser mantidas criados durante a execução do pipeline para depuração e para fins de validação. O padrão é No. |
TTL da tabela temporária (em horas) | Sim | 6.5.0 | Defina o TTL da tabela para tabelas temporárias do BigQuery em horas. Isso é útil como uma medida de segurança caso o pipeline
cancelado e o processo de limpeza é interrompido (por exemplo, se
o cluster de execução é encerrado abruptamente). Definir esse valor como
0 desativa o TTL da tabela. O padrão é
72 (3 dias). |
Prioridade de job | Sim | 6.5.0 | A prioridade usada para executar jobs do BigQuery. Selecionar
uma das seguintes opções:
|
Estágios para forçar o push-down | Sim | 6.7.0 | Estágios compatíveis a serem sempre executados no BigQuery. Cada nome de cenário precisa estar em uma linha separada. |
Etapas para pular o push-down | Sim | 6.7.0 | Estágios compatíveis para nunca serem executados no BigQuery. Cada nome de estágio deve estar em uma linha separada. |
Usar a API BigQuery Storage Read | Sim | 6.7.0 | Indica se a API BigQuery Storage Read deve ser usada ao extrair registros do BigQuery durante a execução do pipeline. Esta opção pode melhorar o desempenho do pushdown de transformação, mas incorre custos adicionais. Isso requer que o Scala 2.12 seja instalado no ambiente de execução. |
Monitorar as alterações no desempenho dos registros
Os registros do ambiente de execução do pipeline incluem mensagens que mostram as consultas do SQL executadas no BigQuery. É possível monitorar quais estágios do pipeline são enviados ao BigQuery.
O exemplo a seguir mostra as entradas de registro quando a execução do pipeline começa. O
Os registros indicam que as operações JOIN
no pipeline foram enviadas para baixo.
BigQuery para execução:
INFO [Driver:i.c.p.g.b.s.BigQuerySQLEngine@190] - Validating join for stage 'Users' can be executed on BigQuery: true
DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@131] - Starting push for dataset 'UserProfile'
DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@131] - Starting push for dataset 'UserDetails'
DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@292] - Starting join for dataset 'Users'
INFO [Driver:i.c.p.g.b.s.BigQuerySQLEngine@190] - Validating join for stage 'UserPurchases' can be executed on BigQuery: true
DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@131] - Starting push for dataset 'Purchases'
DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@292] - Starting join for dataset 'UserPurchases'
INFO [Driver:i.c.p.g.b.s.BigQuerySQLEngine@190] - Validating join for stage 'MostPopularNames' can be executed on BigQuery: true
DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@131] - Starting push for dataset 'FirstNameCounts'
DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@292] - Starting join for dataset 'MostPopularNames'
DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@193] - Starting pull for dataset 'MostPopularNames'
O exemplo a seguir mostra os nomes de tabela que serão atribuídos a cada um os conjuntos de dados envolvidos na execução do push-down:
INFO [batch-sql-engine-adapter:i.c.p.g.b.s.BigQuerySQLEngine@145] - Executing Push operation for dataset Purchases stored in table <TABLE_ID>
INFO [batch-sql-engine-adapter:i.c.p.g.b.s.BigQuerySQLEngine@145] - Executing Push operation for dataset UserDetails stored in table <TABLE_ID>
INFO [batch-sql-engine-adapter:i.c.p.g.b.s.BigQuerySQLEngine@145] - Executing Push operation for dataset FirstNameCounts stored in table <TABLE_ID>
INFO [batch-sql-engine-adapter:i.c.p.g.b.s.BigQuerySQLEngine@145] - Executing Push operation for dataset UserProfile stored in table <TABLE_ID>
À medida que a execução continua, os registros mostram a conclusão dos estágios de push.
a execução das operações JOIN
. Exemplo:
DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@133] - Completed push for dataset 'UserProfile'
DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@133] - Completed push for dataset 'UserDetails'
DEBUG [batch-sql-engine-adapter:i.c.p.g.b.s.BigQuerySQLEngine@235] - Executing join operation for dataset Users
INFO [batch-sql-engine-adapter:i.c.p.g.b.s.BigQueryJoinDataset@118] - Creating table `<TABLE_ID>` using job: <JOB_ID> with SQL statement: SELECT `UserDetails`.id AS `id` , `UserDetails`.first_name AS `first_name` , `UserDetails`.last_name AS `last_name` , `UserDetails`.email AS `email` , `UserProfile`.phone AS `phone` , `UserProfile`.profession AS `profession` , `UserProfile`.age AS `age` , `UserProfile`.address AS `address` , `UserProfile`.score AS `score` FROM `your_project.your_dataset.<DATASET_ID>` AS `UserProfile` LEFT JOIN `your_project.your_dataset.<DATASET_ID>` AS `UserDetails` ON `UserProfile`.id = `UserDetails`.id
INFO [batch-sql-engine-adapter:i.c.p.g.b.s.BigQueryJoinDataset@151] - Created BigQuery table `<TABLE_ID>
INFO [batch-sql-engine-adapter:i.c.p.g.b.s.BigQuerySQLEngine@245] - Executed join operation for dataset Users
Quando todos os estágios forem concluídos, uma mensagem mostrará que a operação Pull
foi
ser concluída. Isso indica que o processo de exportação do BigQuery
foi acionado, e os registros começarão a ser lidos no pipeline depois
que esse job de exportação começa. Exemplo:
DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@196] - Completed pull for dataset 'MostPopularNames'
Se a execução do pipeline encontrar erros, eles serão descritos nos registros.
Para detalhes sobre a execução das operações JOIN
do BigQuery, como utilização de recursos, tempo de execução e causas de erros,
é possível conferir os dados do job do BigQuery usando o ID do job, que aparece nos
registros do job.
Analisar métricas de pipeline
Para mais informações sobre as métricas que o Cloud Data Fusion oferece para a parte do pipeline executada no BigQuery, consulte Métricas de pipeline de push do BigQuery.
A seguir
- Saiba mais sobre o pushdown de transformação no Cloud Data Fusion.