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ção:
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.
-
Verify 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.
-
Verify 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.
- 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.
-
In the Choose where to store your data section, do the following:
- Select a Location type.
- Choose a location where your bucket's data is permanently stored from the Location type drop-down menu.
- If you select the dual-region location type, you can also choose to enable turbo replication by using the relevant checkbox.
- To set up cross-bucket replication, select
Add cross-bucket replication via Storage Transfer Service and
follow these steps:
Set up cross-bucket replication
- In the Bucket menu, select a bucket.
In the Replication settings section, click Configure to configure settings for the replication job.
The Configure cross-bucket replication pane appears.
- To filter objects to replicate by object name prefix, enter a prefix that you want to include or exclude objects from, then click Add a prefix.
- To set a storage class for the replicated objects, select a storage class from the Storage class menu. If you skip this step, the replicated objects will use the destination bucket's storage class by default.
- Click Done.
-
In the Choose how to store your data section, do the following:
- In the Set a default class section, select the following: Standard.
- To enable hierarchical namespace, in the Optimize storage for data-intensive workloads section, select Enable hierarchical namespace on this bucket.
- In the Choose how to control access to objects section, select whether or not your bucket enforces public access prevention, and select an access control method for your bucket's objects.
-
In the Choose how to protect object data section, do the
following:
- Select any of the options under Data protection that you
want to set for your bucket.
- To enable soft delete, click the Soft delete policy (For data recovery) checkbox, and specify the number of days you want to retain objects after deletion.
- To set Object Versioning, click the Object versioning (For version control) checkbox, and specify the maximum number of versions per object and the number of days after which the noncurrent versions expire.
- To enable the retention policy on objects and buckets, click the Retention (For compliance) checkbox, and then do the following:
- To enable Object Retention Lock, click the Enable object retention checkbox.
- To enable Bucket Lock, click the Set bucket retention policy checkbox, and choose a unit of time and a length of time for your retention period.
- To choose how your object data will be encrypted, expand the Data encryption section (Data encryption method. ), and select a
- Select any of the options under Data protection that you
want to set for your bucket.
- 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 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 os papéis Worker do Dataflow, Administrador de objetos do Storage, Editor do Pub/Sub, Editor de dados do BigQuery e Leitor. Para adicionar os papéis necessários no console 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 Google Cloud console.
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 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 sua conta do Google Cloud pelos recursos usados nesta página, siga estas etapas.
Excluir o projeto
A maneira mais fácil de eliminar o faturamento é excluir o projeto Google Cloud que você criou 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.