Criar um pipeline de streaming usando um modelo do Dataflow
Neste guia de início rápido, você aprenderá a criar um canal de streaming usando como exemplo um modelo do Dataflow fornecido pelo Google. Mais especificamente, o modelo Pub/Sub para BigQuery é usado como exemplo.
O modelo do Pub/Sub para BigQuery é um pipeline de streaming que pode ler mensagens formatadas em JSON de um tópico do Pub/Sub e gravá-las em uma tabela do BigQuery.
Para seguir as instruções detalhadas desta tarefa diretamente no console do Google Cloud , clique em Orientações:
Antes de começar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Dataflow, Compute Engine, Cloud Logging, Cloud Storage, Google Cloud Storage JSON, BigQuery, Pub/Sub, and Resource Manager APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Dataflow, Compute Engine, Cloud Logging, Cloud Storage, Google Cloud Storage JSON, BigQuery, Pub/Sub, and Resource Manager APIs.
- Crie um bucket do Cloud Storage:
- In the Google Cloud console, go to the Cloud Storage Buckets page.
- Click Create bucket.
- On the Create a bucket page, enter your bucket information. To go to the next
step, click Continue.
- For Name your bucket, enter a unique bucket name. Don't include sensitive information in the bucket name, because the bucket namespace is global and publicly visible.
-
For Choose where to store your data, do the following:
- Select a Location type option.
- Select a Location option.
- For Choose a default storage class for your data, select the following: Standard.
- For Choose how to control access to objects, select an Access control option.
- For Advanced settings (optional), specify an encryption method, a retention policy, or bucket labels.
- Click Create.
- Copie o seguinte, conforme necessário em uma seção posterior:
- Seu nome do bucket do Cloud Storage.
- O ID do seu projeto do Google Cloud .
Para encontrar esse ID, consulte Como identificar projetos.
Para concluir as etapas neste guia de início rápido, sua conta de usuário precisa ter os papéis de Administrador do Dataflow e Usuário da conta de serviço. A conta de serviço padrão do Compute Engine precisa ter o papel de worker do Dataflow, o papel de administrador de objetos do Storage, o papel de editor do Pub/Sub, o papel de editor de dados do BigQuery e o papel de leitor. Para adicionar os papéis necessários no console do Google Cloud :
- Acesse a página IAM e selecione seu projeto.
Acesse o IAM - Na linha que contém sua conta de usuário, clique em Editar principal. Clique em Adicionar outro papel e adicione os seguintes papéis: Administrador do Dataflow e Usuário da conta de serviço.
- Clique em Salvar.
- Na linha que contém a conta de serviço padrão do Compute Engine (PROJECT_NUMBER-compute@developer.gserviceaccount.com), clique em Editar principal.
- Clique em Adicionar outro papel e adicione os seguintes papéis: Worker do Dataflow, Administrador de objetos do Storage, Editor do Pub/Sub, Editor de dados do BigQuery, Leitor.
Clique em Salvar.
Para mais informações sobre como conceder papéis, consulte Conceder um papel do IAM usando o console.
- Acesse a página IAM e selecione seu projeto.
- Por padrão, cada novo projeto começa com uma
rede padrão.
Se a rede padrão do projeto estiver desativada
ou tiver sido excluída, você precisará ter uma rede no projeto em que sua conta de usuário tem o
Papel de usuário de rede do Compute
(
roles/compute.networkUser
).
Criar um conjunto de dados e uma tabela do BigQuery
Crie um conjunto de dados e uma tabela do BigQuery com o esquema apropriado para seu tópico Pub/Sub usando o console do Google Cloud .
Neste exemplo, o nome do conjunto de dados é taxirides
e o nome da
tabela realtime
é. Para criar o conjunto de dados e a tabela, siga estas etapas:
- Acessar a página do BigQuery.
Acesse o BigQuery - No painel Explorer, ao lado do projeto em que você quer criar o conjunto de dados, clique em Ver ações e clique em Criar conjunto de dados.
- No painel Criar conjunto de dados, siga estas etapas:
- Para o código do conjunto de dados, insira
taxirides
. Os IDs de conjunto de dados são exclusivos de cada projeto do Google Cloud . - Em Tipo de local, selecione Multirregião e
EUA (várias regiões nos Estados Unidos). Os conjuntos de dados públicos são armazenados no local
multirregional
US
. Para simplificar, coloque seu conjunto de dados nele também. - Mantenha os valores padrão das outras configurações e clique em Criar conjunto de dados.
- No painel
Explorer , expanda o projeto. - Ao lado do conjunto de dados
taxirides
, clique em Ver ações e, em seguida, Criar tabela. - No painel Criar tabela, siga estas etapas:
- Na seção Origem, em Criar tabela de, selecione Tabela em branco.
- Na seção Destino, insira
realtime
como a Tabela. - Na seção Esquema, clique na opção Editar como texto e cole
na caixa a definição de esquema seguinte:
ride_id:string,point_idx:integer,latitude:float,longitude:float,timestamp:timestamp, meter_reading:float,meter_increment:float,ride_status:string,passenger_count:integer
- Na seção Partição e configurações de cluster, em Particionamento, selecione o campo carimbo de data/hora.
- Mantenha as outras configurações padrão e clique em Criar tabela.
execute o pipeline
Execute um pipeline de streaming usando o modelo do Pub/Sub para o BigQuery fornecido pelo Google. O pipeline recebe dados de entrada a partir do tópico de entrada.
- Acesse a página Jobs do Dataflow.
Acessar Jobs - Clique em
Criar job usando um modelo . - Insira
taxi-data
como o Nome do job para o job do Dataflow. - Em Modelo do Dataflow, selecione o modelo Pub/Sub para BigQuery.
- Em Tabela de saída do BigQuery, digite o seguinte:
PROJECT_ID:taxirides.realtime
Substitua
PROJECT_ID
pelo ID do projeto em que você criou o conjunto de dados do BigQuery. - Na seção Parâmetros de origem opcionais, em Tópico de entrada do Pub/Sub, clique em Inserir tópico manualmente.
- No diálogo, em Nome do tópico, digite o seguinte e clique em Salvar:
projects/pubsub-public-data/topics/taxirides-realtime
Este tópico do Pub/Sub disponível publicamente é baseado no conjunto de dados aberto da Comissão de Táxis e Limusines de Nova York. Veja a seguir uma mensagem de amostra deste tópico, no formato JSON:
{ "ride_id": "19c41fc4-e362-4be5-9d06-435a7dc9ba8e", "point_idx": 217, "latitude": 40.75399, "longitude": -73.96302, "timestamp": "2021-03-08T02:29:09.66644-05:00", "meter_reading": 6.293821, "meter_increment": 0.029003782, "ride_status": "enroute", "passenger_count": 1 }
- Em Local temporário, insira o seguinte:
gs://BUCKET_NAME/temp/
Substitua
BUCKET_NAME
pelo nome do bucket no Cloud Storage. A pastatemp
armazena arquivos temporários, como o job do pipeline preparado. - Se o projeto não tiver uma rede padrão, insira uma Rede e uma Sub-rede. Para mais informações, consulte Especificar uma rede e uma sub-rede.
- Cliquem em Executar job.
Ver os resultados
Para visualizar os dados gravados na tabelarealtime
, siga estas etapas:
Acessar a página do BigQuery.
Clique em
Criar uma nova consulta. Uma nova guia Editor será aberta.SELECT * FROM `PROJECT_ID.taxirides.realtime` WHERE `timestamp` > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY) LIMIT 1000
Substitua
PROJECT_ID
pelo ID do projeto em que você criou o conjunto de dados do BigQuery. Pode levar até cinco minutos para que os dados comecem a aparecer na tabela.Clique em Executar.
A consulta retorna linhas que foram adicionadas à sua tabela nas últimas 24 horas. Também é possível executar consultas usando o SQL padrão.
Limpar
Para evitar cobranças na conta do Google Cloud pelos recursos usados nesta página, siga estas etapas.
Exclua o projeto
A maneira mais fácil de eliminar o faturamento é excluir o projeto Google Cloud criado para o guia de início rápido.- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Excluir recursos individuais
Se você quiser manter o projeto Google Cloud usado neste guia de início rápido, exclua os recursos individuais:
- Acesse a página Jobs do Dataflow.
Acessar o Jobs - Selecione o job de streaming na lista de jobs.
- Na navegação, clique em Parar.
- Na caixa de diálogo Interromper job, cancele ou drene o pipeline e clique em Interromper job.
- Acessar a página do BigQuery.
Ir para o BigQuery - No painel Explorador, expanda o projeto.
- Ao lado do conjunto de dados que você quer excluir, clique em Ver ações e, depois, em Abrir.
- No painel de detalhes, clique em Excluir conjunto de dados e siga as instruções.
- In the Google Cloud console, go to the Cloud Storage Buckets page.
- Click the checkbox for the bucket that you want to delete.
- To delete the bucket, click Delete, and then follow the instructions.