Esta página explica como usar o SQL do Dataflow e como criar jobs do SQL do Dataflow.
Para criar um job do SQL do Dataflow, grave e execute uma consulta do SQL do Dataflow.
Como usar a IU do SQL do Dataflow
A IU do SQL do Dataflow é uma configuração da IU da Web do BigQuery para criar jobs do SQL do Dataflow.
É possível acessar a IU do SQL do Dataflow na IU da Web do BigQuery.
Acesse a IU do BigQuery na Web.
Alterne para o Cloud Dataflow Engine.
a. Clique no menu suspenso Mais e selecione Configurações de consulta.
a. No menu Configurações de consulta, selecione Dataflow Engine.
a. No prompt exibido, se as APIs Dataflow e Data Catalog não estiverem ativadas, clique em Ativar APIs.
a. Clique em Save.
Também é possível acessar a IU do SQL do Dataflow na interface de monitoramento do Dataflow.
Acesse a interface de monitoramento do Dataflow.
Clique em Criar job do SQL.
Como gravar consultas do SQL do Dataflow
As consultas do SQL do Dataflow usam a sintaxe de consulta SQL do Dataflow. A sintaxe de consulta SQL do Dataflow é semelhante ao SQL padrão do BigQuery.
É possível usar as extensões de streaming do SQL do Dataflow para agregar dados de fontes do Dataflow de atualização contínua, como o Pub/Sub.
Por exemplo, a consulta a seguir conta os passageiros em um fluxo do Pub/Sub de corridas de táxi a cada minuto:
SELECT TUMBLE_START('INTERVAL 1 MINUTE') as period_start, SUM(passenger_count) AS pickup_count FROM pubsub.topic.`pubsub-public-data`.`taxirides-realtime` WHERE ride_status = "pickup" GROUP BY TUMBLE(event_timestamp, 'INTERVAL 1 MINUTE')
Como executar consultas do SQL do Dataflow
Quando você executa uma consulta do SQL do Dataflow, o Dataflow transforma a consulta em um pipeline do Apache Beam e executa o pipeline.
É possível executar uma consulta do SQL do Dataflow usando o Console do Cloud ou a
ferramenta de linha de comando gcloud
.
Console
Para executar uma consulta do SQL do Dataflow, use a IU do SQL do Dataflow.
Acesse a IU do Dataflow SQL.
Digite a consulta do Dataflow SQL no editor de consultas.
Clique em Criar job do Cloud Dataflow para abrir um painel de opções de job.
Opcional: clique em Mostrar parâmetros opcionais e defina as Opções de pipeline do Dataflow.
Na seção Destino do painel, selecione um Tipo de saída.
Clique em Criar
gcloud
Para executar uma consulta do SQL do Dataflow, use o
comando gcloud dataflow sql query
.
gcloud dataflow sql query \ --job-name=job-name \ --region=region \ --bigquery-table=table-name \ --bigquery-dataset=destination-dataset \ 'query'
Para mais informações sobre como consultar dados e gravar os resultados da consulta do SQL do Dataflow, consulte Como usar fontes de dados e destinos.
Como definir opções do Pipeline
É possível definir opções do pipeline do Dataflow para jobs do SQL do Dataflow. As opções de pipeline do Dataflow são parâmetros de execução que configuram como e onde executar consultas do SQL do Dataflow.
Para definir opções de pipeline para jobs do SQL do Dataflow, especifique os seguintes parâmetros ao executar uma consulta do SQL do Dataflow.
Console
Parâmetro | Tipo | Descrição | Valor padrão |
---|---|---|---|
Endpoint regional | String |
A região em que a consulta será executada. As consultas do SQL do Dataflow podem ser executadas em regiões que tenham um endpoint regional do Dataflow. | Se não for definido, o padrão será us-central1. . |
Número máximo de workers | int |
O número máximo de instâncias do Compute Engine disponíveis para o pipeline durante a execução. | Se não tiver sido especificado, um número adequado de workers será determinado pelo serviço do Dataflow. |
Região do worker | String |
A região do Compute Engine para iniciar instâncias de worker para executar o pipeline. A região do worker do Compute Engine pode estar em uma região diferente do que o endpoint regional do Dataflow. | Se não for definido, será usado o padrão do endpoint regional do Dataflow especificado. |
Zona do worker | String |
A zona do Compute Engine para inicialização de instâncias de worker a fim de executar o pipeline. A zona do Compute Engine pode estar em uma região diferente do que o endpoint regional do Dataflow. |
Se não for definido, o padrão usado será uma zona na região do worker. Se a região do worker não for definida, o padrão será uma zona no endpoint regional especificado do Dataflow. |
E-mail da conta de serviço | String |
O endereço de e-mail da conta de serviço do controlador
com que o pipeline será executado. O endereço de e-mail precisa estar no formato
my-service-account-name@<project-id>.iam.gserviceaccount.com .
|
Se não for definido, os workers do Dataflow usarão a conta de serviço do Compute Engine do projeto atual como a conta de serviço do controlador. |
Tipo de máquina | String |
O tipo de máquina do Compute Engine que o Dataflow usa ao iniciar os workers. É possível usar qualquer uma das famílias de tipos de máquinas do Compute Engine disponíveis, bem como tipos de máquinas personalizadas. Para melhores resultados, use tipos de máquina O Dataflow cobra pelo número de vCPUs e GB de memória nos workers. O faturamento não depende da família de tipos de máquinas. |
Se não for definido, o Dataflow escolherá automaticamente o tipo de máquina. |
Outros experimentos | String |
Os experimentos a ativar. Um experimento pode ser um valor, como
enable_streaming_engine , ou um par de chave-valor, como
shuffle_mode=service . Os experimentos precisam estar em uma
lista separada por vírgulas. |
Se não for especificado, nenhum experimento será ativado. |
Configuração do endereço IP do worker | String |
Especifica se os workers do Cloud Dataflow usarão endereços IP públicos. Se o valor estiver definido como Se o valor for definido como |
Se não for definido, o padrão será Public . |
Rede | String |
A rede do Compute Engine à qual os workers são atribuídos. | Se não for definido, o padrão será a rede default . |
Sub-rede | String |
A sub-rede do Compute Engine
à qual os workers são atribuídos. A sub-rede precisa estar no formato
regions/region/subnetworks/subnetwork . |
Se não for definido, o Dataflow determinará automaticamente a sub-rede. |
gcloud
Flag | Tipo | Descrição | Valor padrão |
---|---|---|---|
‑‑region |
String |
A região em que a consulta será executada. As consultas do SQL do Dataflow podem ser executadas em regiões que tenham um endpoint regional do Dataflow. | Se não está definido, um erro é emitido. |
‑‑max‑workers |
int |
O número máximo de instâncias do Compute Engine disponíveis para o pipeline durante a execução. | Se não for especificado, o Dataflow determinará automaticamente um número apropriado de workers. |
‑‑num‑workers |
int |
O número inicial de instâncias do Compute Engine a serem usadas na execução do pipeline. Esse parâmetro determina quantos workers são iniciados no Dataflow quando o job começa. | Se não for especificado, o Dataflow determinará automaticamente um número apropriado de workers. |
‑‑worker‑region |
String |
A região do Compute Engine para iniciar instâncias de worker a fim de executar o pipeline. A região do worker do Compute Engine pode estar em uma região diferente do que o endpoint regional do Dataflow.
É possível especificar
|
Se não for definido, será usado o padrão do endpoint regional do Dataflow especificado. |
‑‑worker‑zone |
String |
A zona do Compute Engine para inicialização de instâncias de worker a fim de executar o pipeline. A zona do Compute Engine pode estar em uma região diferente do que o endpoint regional do Dataflow.
É possível especificar
|
Se não for definido, o padrão será uma zona no endpoint regional especificado do Dataflow. |
‑‑worker‑machine‑type |
String |
O tipo de máquina do Compute Engine que o Dataflow usa ao iniciar os workers. É possível usar qualquer uma das famílias de tipos de máquinas do Compute Engine disponíveis, bem como tipos de máquinas personalizadas. Para melhores resultados, use tipos de máquina O Dataflow cobra pelo número de vCPUs e GB de memória nos workers. O faturamento não depende da família de tipos de máquinas. |
Se não for definido, o Dataflow escolherá automaticamente o tipo de máquina. |
‑‑service‑account‑email |
String |
O endereço de e-mail da conta de serviço do controlador
com que o pipeline será executado. O endereço de e-mail precisa estar no formato
my-service-account-name@<project-id>.iam.gserviceaccount.com .
|
Se não for definido, os workers do Dataflow usarão a conta de serviço do Compute Engine do projeto atual como a conta de serviço do controlador. |
‑‑disable‑public‑ips |
boolean |
Especifica se os workers do Cloud Dataflow usarão endereços IP públicos. Se definidos, os workers do Dataflow usam endereços IP particulares para todas as comunicações. |
Se não forem definidos, os workers do Dataflow usarão endereços IP públicos. |
‑‑network |
String |
A rede do Compute Engine à qual os workers são atribuídos. | Se não for definido, o padrão será a rede default . |
‑‑subnetwork |
String |
A sub-rede do Compute Engine
à qual os workers são atribuídos. A sub-rede precisa estar no formato
regions/region/subnetworks/subnetwork . |
Se não for definido, o Dataflow determinará automaticamente a sub-rede. |
‑‑dataflow‑kms‑key |
String |
A chave de criptografia gerenciada pelo cliente (CMEK, na sigla em inglês) usada para criptografar dados em repouso. É possível controlar a chave de criptografia usando o Cloud KMS. A chave precisa estar no mesmo local do job. | Se não for especificado, o Dataflow usará a criptografia padrão do Google Cloud em vez de um CMEK. |
Para mais informações, consulte a
referência do comando
gcloud dataflow sql query
.
Como interromper jobs do SQL do Dataflow
Para interromper os jobs do Dataflow SQL, use o comando Cancelar. Não é possível interromper um job do SQL do Dataflow com o Drain.
Preço
O SQL do Dataflow usa os preços padrão do Dataflow. Ele não tem preços separados. Você é cobrado pelos recursos consumidos pelos jobs do Dataflow criados com base nas suas instruções SQL. As cobranças para esses recursos são as cobranças padrão do Dataflow para vCPU, memória, disco permanente, Streaming Engine e Dataflow Shuffle.
Um job do SQL do Dataflow pode consumir recursos adicionais, como o Pub/Sub e o BigQuery, cada um cobrado de acordo com os próprios preços.
Para obter mais informações sobre preços do Dataflow, consulte a página de preços do Dataflow.
A seguir
- Veja o tutorial Como mesclar dados de streaming com o SQL do Dataflow.
- Leia sobre como usar fontes de dados e destinos.
- Explore a ferramenta de linha de comando
gcloud
para o SQL do Dataflow.