O Google fornece um conjunto de modelos de código aberto do Cloud Dataflow.
Esses modelos do Dataflow ajudam você a resolver tarefas grandes de dados, incluindo importação e exportação de dados, backup e restauração de dados, além de operações em massa da API. Tudo isso sem o uso de um ambiente de desenvolvimento dedicado. Os modelos são criados no Apache Beam e usam o Dataflow para transformar os dados.
Para informações gerais sobre modelos, consulte Modelos do Dataflow. Para uma lista de todos os modelos fornecidos pelo Google, consulte Primeiros passos com os modelos fornecidos pelo Google.Neste guia, documentamos os modelos em lote.
BigQuery para TFRecords do Cloud Storage
O modelo do BigQuery para TFRecords do Cloud Storage é um pipeline que lê os dados de uma consulta do BigQuery e os grava em um bucket do Cloud Storage no formato TFRecord. É possível especificar as divisões de porcentagem de treinamento, teste e validação. Por padrão, a divisão é 1 ou 100% para o conjunto de treinamento e 0 ou 0% para conjuntos de teste e validação. É importante observar que, ao configurar a divisão do conjunto de dados, a soma de treinamento, teste e validação precisa somar 1 ou 100% (por exemplo, 0,6+0,2+0,2). O Dataflow determina automaticamente o número ideal de fragmentos para cada conjunto de dados de saída.
Requisitos para este pipeline:
- O conjunto de dados e a tabela do BigQuery precisam existir.
- O bucket de saída do Cloud Storage precisa existir antes da execução do pipeline. Observe que os subdiretórios de treinamento, teste e validação não precisam ser pré-existentes e serão gerados automaticamente.
Parâmetros do modelo
Parâmetro | Descrição |
---|---|
readQuery |
Uma consulta SQL do BigQuery que extrai dados da origem. Por exemplo, select * from dataset1.sample_table . |
outputDirectory |
O prefixo de caminho de nível superior do Cloud Storage no qual gravar os arquivos TFRecord de treinamento, teste e validação. Por exemplo, gs://mybucket/output Subdiretórios para treinamento, teste e validação de arquivos TFRecord resultantes são gerados automaticamente a partir de outputDirectory . Por exemplo, gs://mybucket/output/train |
trainingPercentage |
(Opcional) A porcentagem de dados de consulta alocados para arquivos TFRecord de treinamento. O valor padrão é 1 ou 100%. |
testingPercentage |
(Opcional) A porcentagem de dados de consulta alocados para arquivos TFRecord de teste. O valor padrão é 0 ou 0%. |
validationPercentage |
(Opcional) A porcentagem de dados de consulta alocados para arquivos TFRecord de validação. O valor padrão é 0 ou 0%. |
outputSuffix |
(Opcional) O sufixo do arquivo para os arquivos TFRecord de treinamento, teste e validação que são gravados. O valor padrão é .tfrecord . |
Como executar o modelo do BigQuery para arquivos TFRecord do Cloud Storage
Console
- Acesse a página Criar job usando um modelo do Dataflow. Acesse Criar job usando um modelo
- No campo Nome do job, insira um nome exclusivo.
- Opcional: em Endpoint regional, selecione um valor no menu suspenso. O endpoint
regional padrão é
us-central1
.Para ver uma lista de regiões em que é possível executar um job do Dataflow, consulte Locais do Dataflow.
- No menu suspenso Modelo do Dataflow, selecione the BigQuery to TFRecords template.
- Nos campos de parâmetro fornecidos, insira os valores de parâmetro.
- Cliquem em Executar job.
gcloud
No shell ou no terminal, execute o modelo:
gcloud dataflow jobs run JOB_NAME \ --gcs-location gs://dataflow-templates/VERSION/Cloud_BigQuery_to_GCS_TensorFlow_Records \ --region REGION_NAME \ --parameters \ readQuery=READ_QUERY,\ outputDirectory=OUTPUT_DIRECTORY,\ trainingPercentage=TRAINING_PERCENTAGE,\ testingPercentage=TESTING_PERCENTAGE,\ validationPercentage=VALIDATION_PERCENTAGE,\ outputSuffix=OUTPUT_FILENAME_SUFFIX
Substitua:
JOB_NAME
: um nome de job de sua escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
REGION_NAME
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
READ_QUERY
: a consulta do BigQuery a ser executada.OUTPUT_DIRECTORY
: o prefixo do caminho do Cloud Storage para conjuntos de dados de saída.TRAINING_PERCENTAGE
: a divisão decimal percentual do conjunto de dados de treinamento.TESTING_PERCENTAGE
: a divisão decimal do conjunto de dados de teste.VALIDATION_PERCENTAGE
: a divisão decimal do conjunto de dados de validação.OUTPUT_FILENAME_SUFFIX
: o sufixo do arquivo de saída preferido do TensorFlow Record
API
Para executar o modelo usando a API REST, envie uma solicitação HTTP POST. Para mais informações sobre a
API e os respectivos escopos de autorização, consulte
projects.templates.launch
.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/Cloud_BigQuery_to_GCS_TensorFlow_Records { "jobName": "JOB_NAME", "parameters": { "readQuery":"READ_QUERY", "outputDirectory":"OUTPUT_DIRECTORY", "trainingPercentage":"TRAINING_PERCENTAGE", "testingPercentage":"TESTING_PERCENTAGE", "validationPercentage":"VALIDATION_PERCENTAGE", "outputSuffix":"OUTPUT_FILENAME_SUFFIX" }, "environment": { "zone": "us-central1-f" } }
Substitua:
PROJECT_ID
: o ID do projeto do Cloud em que você quer executar o job do DataflowJOB_NAME
: um nome de job de sua escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
LOCATION
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
READ_QUERY
: a consulta do BigQuery a ser executada.OUTPUT_DIRECTORY
: o prefixo do caminho do Cloud Storage para conjuntos de dados de saída.TRAINING_PERCENTAGE
: a divisão decimal percentual do conjunto de dados de treinamento.TESTING_PERCENTAGE
: a divisão decimal do conjunto de dados de teste.VALIDATION_PERCENTAGE
: a divisão decimal do conjunto de dados de validação.OUTPUT_FILENAME_SUFFIX
: o sufixo do arquivo de saída preferido do TensorFlow Record
Exportação do BigQuery para Parquet (por meio da API Storage)
A exportação do BigQuery para o modelo Parquet é um pipeline em lote que lê dados de uma tabela do BigQuery e os grava em um bucket do Cloud Storage no formato Parquet. Esse modelo usa a API BigQuery Storage para exportar os dados.
Requisitos para este pipeline:
- A tabela de entrada do BigQuery precisa existir antes de o pipeline ser executado.
- O bucket de saída do Cloud Storage precisa existir antes da execução do pipeline.
Parâmetros do modelo
Parâmetro | Descrição |
---|---|
tableRef |
O local da tabela de entrada do BigQuery. Por exemplo, <my-project>:<my-dataset>.<my-table> . |
bucket |
A pasta do Cloud Storage em que os arquivos Parquet serão gravados. Por exemplo, gs://mybucket/exports |
numShards |
(Opcional) O número de fragmentos de arquivo de saída. O valor padrão é 1. |
fields |
(Opcional) Uma lista de campos separados por vírgulas a ser selecionada na tabela de entrada do BigQuery. |
Como executar o modelo do BigQuery para Cloud Storage Parquet
Console
- Acesse a página Criar job usando um modelo do Dataflow. Acesse Criar job usando um modelo
- No campo Nome do job, insira um nome exclusivo.
- Opcional: em Endpoint regional, selecione um valor no menu suspenso. O endpoint
regional padrão é
us-central1
.Para ver uma lista de regiões em que é possível executar um job do Dataflow, consulte Locais do Dataflow.
- No menu suspenso Modelo do Dataflow, selecione the BigQuery export to Parquet (via Storage API) template.
- Nos campos de parâmetro fornecidos, insira os valores de parâmetro.
- Cliquem em Executar job.
gcloud
No shell ou no terminal, execute o modelo:
gcloud beta dataflow flex-template run JOB_NAME \ --project=PROJECT_ID \ --template-file-gcs-location=gs://dataflow-templates/VERSION/flex/BigQuery_to_Parquet \ --region=REGION_NAME \ --parameters \ tableRef=BIGQUERY_TABLE,\ bucket=OUTPUT_DIRECTORY,\ numShards=NUM_SHARDS,\ fields=FIELDS
Substitua:
PROJECT_ID
: o ID do projeto do Cloud em que você quer executar o job do DataflowJOB_NAME
: um nome de job de sua escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
REGION_NAME
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
BIGQUERY_TABLE
: o nome da tabela do BigQueryOUTPUT_DIRECTORY
: pasta do Cloud Storage para arquivos de saídaNUM_SHARDS
: o número pretendido de fragmentos do arquivo de saída.FIELDS
: a lista de campos separados por vírgulas a ser selecionada na tabela de entrada do BigQuery
API
Para executar o modelo usando a API REST, envie uma solicitação HTTP POST. Para mais informações sobre a
API e os respectivos escopos de autorização, consulte
projects.templates.launch
.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch { "launch_parameter": { "jobName": "JOB_NAME", "parameters": { "tableRef": "BIGQUERY_TABLE", "bucket": "OUTPUT_DIRECTORY", "numShards": "NUM_SHARDS", "fields": "FIELDS" }, "containerSpecGcsPath": "gs://dataflow-templates/VERSION/flex/BigQuery_to_Parquet", } }
Substitua:
PROJECT_ID
: o ID do projeto do Cloud em que você quer executar o job do DataflowJOB_NAME
: um nome de job de sua escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
LOCATION
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
BIGQUERY_TABLE
: o nome da tabela do BigQueryOUTPUT_DIRECTORY
: pasta do Cloud Storage para arquivos de saídaNUM_SHARDS
: o número pretendido de fragmentos do arquivo de saída.FIELDS
: a lista de campos separados por vírgulas a ser selecionada na tabela de entrada do BigQuery
BigQuery para Elasticsearch
O modelo do BigQuery para Elasticsearch é um pipeline em lote que ingere dados de uma tabela do BigQuery no Elasticsearch como documentos. O modelo pode ler toda a tabela ou ler registros específicos usando uma consulta fornecida.
Requisitos para esse pipeline
- A tabela de origem do BigQuery precisa existir.
- Um host Elasticsearch em uma instância do Google Cloud ou no Elastic Cloud com a versão 7.0 ou superior do Elasticsearch e pode ser acessado nas máquinas de worker do Dataflow.
Parâmetros do modelo
Parâmetro | Descrição |
---|---|
connectionUrl |
URL do Elasticsearch no formato https://hostname:[port] ou especifique o CloudID se estiver usando o Elastic Cloud. |
apiKey |
Chave da API codificada em Base64 usada para autenticação. |
index |
O índice do Elasticsearch para onde as solicitações serão emitidas, por exemplo, my-index . |
inputTableSpec |
(Opcional) Tabela do BigQuery de onde ler para inserir no Elasticsearch. Forneça a tabela ou a consulta. Por exemplo, projectId:datasetId.tablename |
query |
(Opcional) Consulta SQL para extrair dados do BigQuery. Forneça a tabela ou a consulta. |
useLegacySql |
(Opcional) Defina como "true" para usar o SQL legado (somente aplicável se a consulta for fornecida). Padrão: false . |
batchSize |
(Opcional) Tamanho do lote em número de documentos. Padrão: 1000 . |
batchSizeBytes |
(Opcional) Tamanho do lote em número de bytes. Padrão: 5242880 (5 mb). |
maxRetryAttempts |
(Opcional) Máximo de tentativas de repetição. Precisa ser > 0. Padrão: no retries . |
maxRetryDuration |
(Opcional) A duração máxima da nova tentativa em milissegundos precisa ser maior que 0. Padrão: no retries . |
propertyAsIndex |
(Opcional) Uma propriedade no documento que está sendo indexado com o valor que especificará os metadados de _index a serem incluídos com o documento na solicitação em massa (tem precedência sobre uma UDF _index ). Padrão: none. |
propertyAsId |
(Opcional) Uma propriedade no documento que está sendo indexado com o valor que especificará os metadados de _id a serem incluídos com o documento na solicitação em massa (tem precedência sobre uma UDF _id ). Padrão: none. |
javaScriptIndexFnGcsPath |
(Opcional) O caminho do Cloud Storage para a origem UDF em JavaScript de uma função que especificará os metadados de _index a serem incluídos com o documento na solicitação em massa. Padrão: none. |
javaScriptIndexFnName |
(Opcional) Nome da função UDF em JavaScript para a função que especificará os metadados de _index a serem incluídos com o documento na solicitação em massa. Padrão: none. |
javaScriptIdFnGcsPath |
(Opcional) O caminho do Cloud Storage para a origem UDF em JavaScript de uma função que especificará os metadados de _id a serem incluídos com o documento na solicitação em massa. Padrão: none. |
javaScriptIdFnName |
(Opcional) Nome da função UDF em JavaScript para a função que especificará os metadados de _id a serem incluídos com o documento na solicitação em massa. Padrão: none. |
javaScriptTypeFnGcsPath |
(Opcional) O caminho do Cloud Storage para a origem UDF em JavaScript de uma função que especificará os metadados de _type a serem incluídos com o documento na solicitação em massa. Padrão: none. |
javaScriptTypeFnName |
(Opcional) Nome da função UDF em JavaScript para a função que especificará os metadados de _type a serem incluídos com o documento na solicitação em massa. Padrão: none. |
javaScriptIsDeleteFnGcsPath |
(Opcional) O caminho do Cloud Storage para a origem UDF em JavaScript de uma função que determina se o documento deve ser excluído em vez de inserido ou atualizado. A função precisa retornar o valor da string "true" ou "false" . Padrão: none. |
javaScriptIsDeleteFnName |
(Opcional) Nome da função UDF em JavaScript de uma função que vai determinar se o documento deve ser excluído em vez de inserido ou atualizado. A função precisa retornar o valor da string "true" ou "false" . Padrão: none. |
usePartialUpdate |
(Opcional) Indica se as atualizações parciais vão ser usadas (atualizar em vez de criar ou indexar, permitindo documentos parciais) com solicitações Elasticsearch. Padrão: false . |
bulkInsertMethod |
(Opcional) Indica se é necessário usar INDEX (índice, permite ajustes) ou CREATE (criar, erros em _id duplicados) com solicitações em massa do Elasticsearch. Padrão: CREATE . |
Como executar o modelo do BigQuery para Elasticsearch
Console
- Acesse a página Criar job usando um modelo do Dataflow. Acesse Criar job usando um modelo
- No campo Nome do job, insira um nome exclusivo.
- Opcional: em Endpoint regional, selecione um valor no menu suspenso. O endpoint
regional padrão é
us-central1
.Para ver uma lista de regiões em que é possível executar um job do Dataflow, consulte Locais do Dataflow.
- No menu suspenso Modelo do Dataflow, selecione the BigQuery to Elasticsearch template.
- Nos campos de parâmetro fornecidos, insira os valores de parâmetro.
- Cliquem em Executar job.
gcloud
No shell ou no terminal, execute o modelo:
gcloud beta dataflow flex-template run JOB_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --template-file-gcs-location=gs://dataflow-templates/VERSION/flex/BigQuery_to_Elasticsearch \ --parameters \ inputTableSpec=INPUT_TABLE_SPEC,\ connectionUrl=CONNECTION_URL,\ apiKey=APIKEY,\ index=INDEX
Substitua:
PROJECT_ID
: o ID do projeto do Cloud em que você quer executar o job do DataflowJOB_NAME
: um nome de job de sua escolhaREGION_NAME
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
VERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
INPUT_TABLE_SPEC
: o nome da tabela do BigQueryCONNECTION_URL
: seu URL do ElasticsearchAPIKEY
: sua chave de API codificada em base64 para autenticação.INDEX
: seu índice do Elasticsearch.
API
Para executar o modelo usando a API REST, envie uma solicitação HTTP POST. Para mais informações sobre a
API e os respectivos escopos de autorização, consulte
projects.templates.launch
.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch { "launch_parameter": { "jobName": "JOB_NAME", "parameters": { "inputTableSpec": "INPUT_TABLE_SPEC", "connectionUrl": "CONNECTION_URL", "apiKey": "APIKEY", "index": "INDEX" }, "containerSpecGcsPath": "gs://dataflow-templates/VERSION/flex/BigQuery_to_Elasticsearch", } }
Substitua:
PROJECT_ID
: o ID do projeto do Cloud em que você quer executar o job do DataflowJOB_NAME
: um nome de job de sua escolhaLOCATION
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
VERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
INPUT_TABLE_SPEC
: o nome da tabela do BigQueryCONNECTION_URL
: seu URL do ElasticsearchAPIKEY
: sua chave de API codificada em base64 para autenticação.INDEX
: seu índice do Elasticsearch.
BigQuery para MongoDB
O modelo BigQuery para MongoDB é um pipeline em lote que lê as linhas de um BigQuery e as grava no MongoDB como documentos. Atualmente, cada linha está armazenada como um documento.
Requisitos para esse pipeline
- A tabela de origem do BigQuery precisa existir.
- A instância de destino do MongoDB precisa ser acessível nas máquinas de trabalho do Dataflow.
Parâmetros do modelo
Parâmetro | Descrição |
---|---|
mongoDbUri |
URI de conexão do MongoDB no formato mongodb+srv://:@ . |
database |
Banco de dados no MongoDB para armazenar a coleção. Por exemplo, my-db . |
collection |
Nome da coleção no banco de dados do MongoDB. Por exemplo, my-collection . |
inputTableSpec |
Tabela do BigQuery que vai ser usada para leitura. Por exemplo, bigquery-project:dataset.input_table . |
Como executar o modelo do BigQuery para MongoDB
Console
- Acesse a página Criar job usando um modelo do Dataflow. Acesse Criar job usando um modelo
- No campo Nome do job, insira um nome exclusivo.
- Opcional: em Endpoint regional, selecione um valor no menu suspenso. O endpoint
regional padrão é
us-central1
.Para ver uma lista de regiões em que é possível executar um job do Dataflow, consulte Locais do Dataflow.
- No menu suspenso Modelo do Dataflow, selecione the BigQuery to MongoDB template.
- Nos campos de parâmetro fornecidos, insira os valores de parâmetro.
- Cliquem em Executar job.
gcloud
No shell ou no terminal, execute o modelo:
gcloud beta dataflow flex-template run JOB_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --template-file-gcs-location=gs://dataflow-templates/VERSION/flex/BigQuery_to_MongoDB \ --parameters \ inputTableSpec=INPUT_TABLE_SPEC,\ mongoDbUri=MONGO_DB_URI,\ database=DATABASE,\ collection=COLLECTION
Substitua:
PROJECT_ID
: o ID do projeto do Cloud em que você quer executar o job do DataflowJOB_NAME
: um nome de job de sua escolhaREGION_NAME
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
VERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
INPUT_TABLE_SPEC
: o nome da tabela de origem do BigQuery.MONGO_DB_URI
: o URI do MongoDB.DATABASE
: o banco de dados do MongoDB.COLLECTION
: sua coleção do MongoDB.
API
Para executar o modelo usando a API REST, envie uma solicitação HTTP POST. Para mais informações sobre a
API e os respectivos escopos de autorização, consulte
projects.templates.launch
.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch { "launch_parameter": { "jobName": "JOB_NAME", "parameters": { "inputTableSpec": "INPUT_TABLE_SPEC", "mongoDbUri": "MONGO_DB_URI", "database": "DATABASE", "collection": "COLLECTION" }, "containerSpecGcsPath": "gs://dataflow-templates/VERSION/flex/BigQuery_to_MongoDB", } }
Substitua:
PROJECT_ID
: o ID do projeto do Cloud em que você quer executar o job do DataflowJOB_NAME
: um nome de job de sua escolhaLOCATION
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
VERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
INPUT_TABLE_SPEC
: o nome da tabela de origem do BigQuery.MONGO_DB_URI
: o URI do MongoDB.DATABASE
: o banco de dados do MongoDB.COLLECTION
: sua coleção do MongoDB.
Bigtable para Cloud Storage Avro
O modelo do Bigtable para Cloud Storage Avro é um pipeline que lê dados de uma tabela do Bigtable e os grava em um bucket do Cloud Storage no formato Avro. É possível usar o modelo para mover dados do Bigtable para o Cloud Storage.
Requisitos para este pipeline:
- A tabela do Bigtable precisa existir.
- O bucket de saída do Cloud Storage precisa existir antes da execução do pipeline.
Parâmetros do modelo
Parâmetro | Descrição |
---|---|
bigtableProjectId |
O ID do projeto do Google Cloud da instância do Bigtable da qual você quer ler os dados. |
bigtableInstanceId |
O ID da instância do Bigtable que contém a tabela. |
bigtableTableId |
O ID da tabela do Cloud Bigtable a ser exportada. |
outputDirectory |
O caminho do Cloud Storage em que os dados são gravados. Por exemplo, gs://mybucket/somefolder . |
filenamePrefix |
O prefixo do nome do arquivo Avro. Por exemplo, output- . |
Como executar o modelo do Bigtable para arquivo Cloud Storage Avro
Console
- Acesse a página Criar job usando um modelo do Dataflow. Acesse Criar job usando um modelo
- No campo Nome do job, insira um nome exclusivo.
- Opcional: em Endpoint regional, selecione um valor no menu suspenso. O endpoint
regional padrão é
us-central1
.Para ver uma lista de regiões em que é possível executar um job do Dataflow, consulte Locais do Dataflow.
- No menu suspenso Modelo do Dataflow, selecione the Cloud Bigtable to Avro Files on Cloud Storage template .
- Nos campos de parâmetro fornecidos, insira os valores de parâmetro.
- Cliquem em Executar job.
gcloud
No shell ou no terminal, execute o modelo:
gcloud dataflow jobs run JOB_NAME \ --gcs-location gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_Avro \ --region REGION_NAME \ --parameters \ bigtableProjectId=BIGTABLE_PROJECT_ID,\ bigtableInstanceId=INSTANCE_ID,\ bigtableTableId=TABLE_ID,\ outputDirectory=OUTPUT_DIRECTORY,\ filenamePrefix=FILENAME_PREFIX
Substitua:
JOB_NAME
: um nome de job de sua escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
REGION_NAME
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
BIGTABLE_PROJECT_ID
: o ID do projeto do Google Cloud da instância do Bigtable da qual você quer ler os dados.INSTANCE_ID
: o ID da instância do Bigtable que contém a tabela.TABLE_ID
: o ID da tabela do Cloud Bigtable a ser exportada.OUTPUT_DIRECTORY
: o caminho do Cloud Storage em que os dados são gravados, por exemplo,gs://mybucket/somefolder
.FILENAME_PREFIX
: prefixo do nome de arquivo Avro, por exemplo,output-
.
API
Para executar o modelo usando a API REST, envie uma solicitação HTTP POST. Para mais informações sobre a
API e os respectivos escopos de autorização, consulte
projects.templates.launch
.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_Avro { "jobName": "JOB_NAME", "parameters": { "bigtableProjectId": "BIGTABLE_PROJECT_ID", "bigtableInstanceId": "INSTANCE_ID", "bigtableTableId": "TABLE_ID", "outputDirectory": "OUTPUT_DIRECTORY", "filenamePrefix": "FILENAME_PREFIX", }, "environment": { "zone": "us-central1-f" } }
Substitua:
PROJECT_ID
: o ID do projeto do Cloud em que você quer executar o job do DataflowJOB_NAME
: um nome de job de sua escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
LOCATION
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
BIGTABLE_PROJECT_ID
: o ID do projeto do Google Cloud da instância do Bigtable da qual você quer ler os dados.INSTANCE_ID
: o ID da instância do Bigtable que contém a tabela.TABLE_ID
: o ID da tabela do Cloud Bigtable a ser exportada.OUTPUT_DIRECTORY
: o caminho do Cloud Storage em que os dados são gravados, por exemplo,gs://mybucket/somefolder
.FILENAME_PREFIX
: prefixo do nome de arquivo Avro, por exemplo,output-
.
Bigtable para Cloud Storage Parquet
O modelo do Bigtable para Cloud Storage Parquet é um pipeline que lê dados de uma tabela do Bigtable e os grava em um bucket do Cloud Storage no formato Parquet. É possível usar o modelo para mover dados do Bigtable para o Cloud Storage.
Requisitos para este pipeline:
- A tabela do Bigtable precisa existir.
- O bucket de saída do Cloud Storage precisa existir antes da execução do pipeline.
Parâmetros do modelo
Parâmetro | Descrição |
---|---|
bigtableProjectId |
O ID do projeto do Google Cloud da instância do Bigtable da qual você quer ler os dados. |
bigtableInstanceId |
O ID da instância do Bigtable que contém a tabela. |
bigtableTableId |
O ID da tabela do Cloud Bigtable a ser exportada. |
outputDirectory |
O caminho do Cloud Storage em que os dados são gravados. Por exemplo, gs://mybucket/somefolder . |
filenamePrefix |
O prefixo do nome de arquivo do Parquet. Por exemplo, output- . |
numShards |
O número de fragmentos do arquivo de saída. Por exemplo, 2 . |
Como executar o modelo do Bigtable para arquivo Cloud Storage Parquet
Console
- Acesse a página Criar job usando um modelo do Dataflow. Acesse Criar job usando um modelo
- No campo Nome do job, insira um nome exclusivo.
- Opcional: em Endpoint regional, selecione um valor no menu suspenso. O endpoint
regional padrão é
us-central1
.Para ver uma lista de regiões em que é possível executar um job do Dataflow, consulte Locais do Dataflow.
- No menu suspenso Modelo do Dataflow, selecione the Cloud Bigtable to Parquet Files on Cloud Storage template.
- Nos campos de parâmetro fornecidos, insira os valores de parâmetro.
- Cliquem em Executar job.
gcloud
No shell ou no terminal, execute o modelo:
gcloud dataflow jobs run JOB_NAME \ --gcs-location gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_Parquet \ --region REGION_NAME \ --parameters \ bigtableProjectId=BIGTABLE_PROJECT_ID,\ bigtableInstanceId=INSTANCE_ID,\ bigtableTableId=TABLE_ID,\ outputDirectory=OUTPUT_DIRECTORY,\ filenamePrefix=FILENAME_PREFIX,\ numShards=NUM_SHARDS
Substitua:
JOB_NAME
: um nome de job de sua escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
REGION_NAME
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
BIGTABLE_PROJECT_ID
: o ID do projeto do Google Cloud da instância do Bigtable da qual você quer ler os dados.INSTANCE_ID
: o ID da instância do Bigtable que contém a tabela.TABLE_ID
: o ID da tabela do Cloud Bigtable a ser exportada.OUTPUT_DIRECTORY
: o caminho do Cloud Storage em que os dados são gravados, por exemplo,gs://mybucket/somefolder
.FILENAME_PREFIX
: prefixo do nome de arquivo Parquet, por exemplo,output-
.NUM_SHARDS
: o número de arquivos Parquet a serem gerados, por exemplo,1
.
API
Para executar o modelo usando a API REST, envie uma solicitação HTTP POST. Para mais informações sobre a
API e os respectivos escopos de autorização, consulte
projects.templates.launch
.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_Parquet { "jobName": "JOB_NAME", "parameters": { "bigtableProjectId": "BIGTABLE_PROJECT_ID", "bigtableInstanceId": "INSTANCE_ID", "bigtableTableId": "TABLE_ID", "outputDirectory": "OUTPUT_DIRECTORY", "filenamePrefix": "FILENAME_PREFIX", "numShards": "NUM_SHARDS" }, "environment": { "zone": "us-central1-f" } }
Substitua:
PROJECT_ID
: o ID do projeto do Cloud em que você quer executar o job do DataflowJOB_NAME
: um nome de job de sua escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
LOCATION
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
BIGTABLE_PROJECT_ID
: o ID do projeto do Google Cloud da instância do Bigtable da qual você quer ler os dados.INSTANCE_ID
: o ID da instância do Bigtable que contém a tabela.TABLE_ID
: o ID da tabela do Cloud Bigtable a ser exportada.OUTPUT_DIRECTORY
: o caminho do Cloud Storage em que os dados são gravados, por exemplo,gs://mybucket/somefolder
.FILENAME_PREFIX
: prefixo do nome de arquivo Parquet, por exemplo,output-
.NUM_SHARDS
: o número de arquivos Parquet a serem gerados, por exemplo,1
.
Bigtable para Cloud Storage SequenceFile
O modelo Bigtable para o Cloud Storage SequenceFile é um pipeline que lê dados de uma tabela do Bigtable e grava os dados em um bucket do Cloud Storage no formato SequenceFile. É possível usar o modelo para copiar dados do Bigtable para o Cloud Storage.
Requisitos para este pipeline:
- A tabela do Bigtable precisa existir.
- O bucket de saída do Cloud Storage precisa existir antes da execução do pipeline.
Parâmetros do modelo
Parâmetro | Descrição |
---|---|
bigtableProject |
O ID do projeto do Google Cloud da instância do Bigtable da qual você quer ler os dados. |
bigtableInstanceId |
O ID da instância do Bigtable que contém a tabela. |
bigtableTableId |
O ID da tabela do Cloud Bigtable a ser exportada. |
bigtableAppProfileId |
O ID do perfil do aplicativo Bigtable a ser usado para a exportação. Se você não especificar um perfil de aplicativo, o Bigtable usará o perfil de aplicativo padrão da instância. |
destinationPath |
O caminho do Cloud Storage em que os dados são gravados. Por exemplo, gs://mybucket/somefolder . |
filenamePrefix |
O prefixo do nome de arquivo do SequenceFile. Por exemplo, output- . |
Como executar o modelo do Bigtable para Cloud Storage SequenceFile
Console
- Acesse a página Criar job usando um modelo do Dataflow. Acesse Criar job usando um modelo
- No campo Nome do job, insira um nome exclusivo.
- Opcional: em Endpoint regional, selecione um valor no menu suspenso. O endpoint
regional padrão é
us-central1
.Para ver uma lista de regiões em que é possível executar um job do Dataflow, consulte Locais do Dataflow.
- No menu suspenso Modelo do Dataflow, selecione the Cloud Bigtable to SequenceFile Files on Cloud Storage template .
- Nos campos de parâmetro fornecidos, insira os valores de parâmetro.
- Cliquem em Executar job.
gcloud
No shell ou no terminal, execute o modelo:
gcloud dataflow jobs run JOB_NAME \ --gcs-location gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_SequenceFile \ --region REGION_NAME \ --parameters \ bigtableProject=BIGTABLE_PROJECT_ID,\ bigtableInstanceId=INSTANCE_ID,\ bigtableTableId=TABLE_ID,\ bigtableAppProfileId=APPLICATION_PROFILE_ID,\ destinationPath=DESTINATION_PATH,\ filenamePrefix=FILENAME_PREFIX
Substitua:
JOB_NAME
: um nome de job de sua escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
REGION_NAME
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
BIGTABLE_PROJECT_ID
: o ID do projeto do Google Cloud da instância do Bigtable da qual você quer ler os dados.INSTANCE_ID
: o ID da instância do Bigtable que contém a tabela.TABLE_ID
: o ID da tabela do Cloud Bigtable a ser exportada.APPLICATION_PROFILE_ID
: o ID do perfil do aplicativo Bigtable a ser usado para a exportação.DESTINATION_PATH
: o caminho do Cloud Storage em que os dados são gravados, por exemplo,gs://mybucket/somefolder
.FILENAME_PREFIX
: prefixo do nome de arquivo do SequenceFile, por exemplo,output-
API
Para executar o modelo usando a API REST, envie uma solicitação HTTP POST. Para mais informações sobre a
API e os respectivos escopos de autorização, consulte
projects.templates.launch
.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_SequenceFile { "jobName": "JOB_NAME", "parameters": { "bigtableProject": "BIGTABLE_PROJECT_ID", "bigtableInstanceId": "INSTANCE_ID", "bigtableTableId": "TABLE_ID", "bigtableAppProfileId": "APPLICATION_PROFILE_ID", "destinationPath": "DESTINATION_PATH", "filenamePrefix": "FILENAME_PREFIX", }, "environment": { "zone": "us-central1-f" } }
Substitua:
PROJECT_ID
: o ID do projeto do Cloud em que você quer executar o job do DataflowJOB_NAME
: um nome de job de sua escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
LOCATION
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
BIGTABLE_PROJECT_ID
: o ID do projeto do Google Cloud da instância do Bigtable da qual você quer ler os dados.INSTANCE_ID
: o ID da instância do Bigtable que contém a tabela.TABLE_ID
: o ID da tabela do Cloud Bigtable a ser exportada.APPLICATION_PROFILE_ID
: o ID do perfil do aplicativo Bigtable a ser usado para a exportação.DESTINATION_PATH
: o caminho do Cloud Storage em que os dados são gravados, por exemplo,gs://mybucket/somefolder
.FILENAME_PREFIX
: prefixo do nome de arquivo do SequenceFile, por exemplo,output-
Datastore para Cloud Storage Text [Obsoleto]
Este modelo está obsoleto e será removido no primeiro trimestre de 2022. Migre para o modelo Firestore no Cloud Storage Text.
O modelo do Datastore para Cloud Storage Text é um pipeline em lote que lê entidades do Datastore e as grava no Cloud Storage como arquivos de texto. É possível fornecer uma função para processar cada entidade como uma string JSON. Se essa função não for fornecida, cada linha do arquivo de saída será uma entidade serializada em JSON.
Requisitos para este pipeline:
O Datastore precisa ser configurado no projeto antes de executar o pipeline.
Parâmetros do modelo
Parâmetro | Descrição |
---|---|
datastoreReadGqlQuery |
Uma consulta GQL que especifica quais entidades serão capturadas. Por exemplo, SELECT * FROM MyKind . |
datastoreReadProjectId |
O ID do projeto do Google Cloud da instância do Datastore da qual você quer ler os dados. |
datastoreReadNamespace |
O namespace das entidades solicitadas. Para usar o namespace padrão, deixe esse parâmetro em branco. |
javascriptTextTransformGcsPath |
(Opcional)
O URI do Cloud Storage do arquivo .js que define a função definida
pelo usuário (UDF, na sigla em inglês) do JavaScript que você quer usar. Por exemplo, gs://my-bucket/my-udfs/my_file.js .
|
javascriptTextTransformFunctionName |
(Opcional)
O nome da função definida pelo usuário (UDF) do JavaScript que você quer usar.
Por exemplo, se o código de função do JavaScript for
myTransform(inJson) { /*...do stuff...*/ } , o nome da função será
myTransform . Para amostras de UDFs do JavaScript, consulte os
exemplos de UDF.
|
textWritePrefix |
O prefixo do caminho do Cloud Storage para especificar onde os dados são gravados. Por exemplo,
gs://mybucket/somefolder/ . |
Como executar o modelo do Datastore para Cloud Storage Text
Console
- Acesse a página Criar job usando um modelo do Dataflow. Acesse Criar job usando um modelo
- No campo Nome do job, insira um nome exclusivo.
- Opcional: em Endpoint regional, selecione um valor no menu suspenso. O endpoint
regional padrão é
us-central1
.Para ver uma lista de regiões em que é possível executar um job do Dataflow, consulte Locais do Dataflow.
- No menu suspenso Modelo do Dataflow, selecione the Datastore to Text Files on Cloud Storage template.
- Nos campos de parâmetro fornecidos, insira os valores de parâmetro.
- Cliquem em Executar job.
gcloud
No shell ou no terminal, execute o modelo:
gcloud dataflow jobs run JOB_NAME \ --gcs-location gs://dataflow-templates/VERSION/Datastore_to_GCS_Text \ --region REGION_NAME \ --parameters \ datastoreReadGqlQuery="SELECT * FROM DATASTORE_KIND",\ datastoreReadProjectId=DATASTORE_PROJECT_ID,\ datastoreReadNamespace=DATASTORE_NAMESPACE,\ javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\ javascriptTextTransformFunctionName=JAVASCRIPT_FUNCTION,\ textWritePrefix=gs://BUCKET_NAME/output/
Substitua:
JOB_NAME
: um nome de job de sua escolhaREGION_NAME
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
VERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
BUCKET_NAME
: o nome do bucket do Cloud StorageDATASTORE_PROJECT_ID
: o ID do projeto do Cloud em que a instância do Datastore existeDATASTORE_KIND
: o tipo das entidades do Datastore.DATASTORE_NAMESPACE
: o namespace das entidades do DatastoreJAVASCRIPT_FUNCTION
: o nome da função definida pelo usuário (UDF) do JavaScript que você quer usarPor exemplo, se o código de função do JavaScript for
myTransform(inJson) { /*...do stuff...*/ }
, o nome da função serámyTransform
. Para amostras de UDFs do JavaScript, consulte os exemplos de UDF.PATH_TO_JAVASCRIPT_UDF_FILE
: o URI do Cloud Storage do arquivo.js
que define a função definida pelo usuário (UDF, na sigla em inglês) do JavaScript que você quer usar, por exemplo,gs://my-bucket/my-udfs/my_file.js
API
Para executar o modelo usando a API REST, envie uma solicitação HTTP POST. Para mais informações sobre a
API e os respectivos escopos de autorização, consulte
projects.templates.launch
.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/Datastore_to_GCS_Text { "jobName": "JOB_NAME", "parameters": { "datastoreReadGqlQuery": "SELECT * FROM DATASTORE_KIND" "datastoreReadProjectId": "DATASTORE_PROJECT_ID", "datastoreReadNamespace": "DATASTORE_NAMESPACE", "javascriptTextTransformGcsPath": "PATH_TO_JAVASCRIPT_UDF_FILE", "javascriptTextTransformFunctionName": "JAVASCRIPT_FUNCTION", "textWritePrefix": "gs://BUCKET_NAME/output/" }, "environment": { "zone": "us-central1-f" } }
Substitua:
PROJECT_ID
: o ID do projeto do Cloud em que você quer executar o job do DataflowJOB_NAME
: um nome de job de sua escolhaLOCATION
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
VERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
BUCKET_NAME
: o nome do bucket do Cloud StorageDATASTORE_PROJECT_ID
: o ID do projeto do Cloud em que a instância do Datastore existeDATASTORE_KIND
: o tipo das entidades do Datastore.DATASTORE_NAMESPACE
: o namespace das entidades do DatastoreJAVASCRIPT_FUNCTION
: o nome da função definida pelo usuário (UDF) do JavaScript que você quer usarPor exemplo, se o código de função do JavaScript for
myTransform(inJson) { /*...do stuff...*/ }
, o nome da função serámyTransform
. Para amostras de UDFs do JavaScript, consulte os exemplos de UDF.PATH_TO_JAVASCRIPT_UDF_FILE
: o URI do Cloud Storage do arquivo.js
que define a função definida pelo usuário (UDF, na sigla em inglês) do JavaScript que você quer usar, por exemplo,gs://my-bucket/my-udfs/my_file.js
Firestore para Cloud Storage Text
O modelo do Firestore para Cloud Storage Text é um pipeline em lote que lê entidades do Firestore e as grava no Cloud Storage como arquivos de texto. É possível fornecer uma função para processar cada entidade como uma string JSON. Se essa função não for fornecida, cada linha do arquivo de saída será uma entidade serializada em JSON.
Requisitos para este pipeline:
O Firestore precisa ser configurado no projeto antes de executar o pipeline.
Parâmetros do modelo
Parâmetro | Descrição |
---|---|
firestoreReadGqlQuery |
Uma consulta GQL que especifica quais entidades serão capturadas. Por exemplo, SELECT * FROM MyKind . |
firestoreReadProjectId |
O ID do projeto do Google Cloud da instância do Firestore da qual você quer ler os dados. |
firestoreReadNamespace |
O namespace das entidades solicitadas. Para usar o namespace padrão, deixe esse parâmetro em branco. |
javascriptTextTransformGcsPath |
(Opcional)
O URI do Cloud Storage do arquivo .js que define a função definida
pelo usuário (UDF, na sigla em inglês) do JavaScript que você quer usar. Por exemplo, gs://my-bucket/my-udfs/my_file.js .
|
javascriptTextTransformFunctionName |
(Opcional)
O nome da função definida pelo usuário (UDF) do JavaScript que você quer usar.
Por exemplo, se o código de função do JavaScript for
myTransform(inJson) { /*...do stuff...*/ } , o nome da função será
myTransform . Para amostras de UDFs do JavaScript, consulte os
exemplos de UDF.
|
textWritePrefix |
O prefixo do caminho do Cloud Storage para especificar onde os dados são gravados. Por exemplo,
gs://mybucket/somefolder/ . |
Como executar o modelo do Firestore para Cloud Storage Text
Console
- Acesse a página Criar job usando um modelo do Dataflow. Acesse Criar job usando um modelo
- No campo Nome do job, insira um nome exclusivo.
- Opcional: em Endpoint regional, selecione um valor no menu suspenso. O endpoint
regional padrão é
us-central1
.Para ver uma lista de regiões em que é possível executar um job do Dataflow, consulte Locais do Dataflow.
- No menu suspenso Modelo do Dataflow, selecione the Firestore to Text Files on Cloud Storage template.
- Nos campos de parâmetro fornecidos, insira os valores de parâmetro.
- Cliquem em Executar job.
gcloud
No shell ou no terminal, execute o modelo:
gcloud dataflow jobs run JOB_NAME \ --gcs-location gs://dataflow-templates/VERSION/Firestore_to_GCS_Text \ --region REGION_NAME \ --parameters \ firestoreReadGqlQuery="SELECT * FROM FIRESTORE_KIND",\ firestoreReadProjectId=FIRESTORE_PROJECT_ID,\ firestoreReadNamespace=FIRESTORE_NAMESPACE,\ javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\ javascriptTextTransformFunctionName=JAVASCRIPT_FUNCTION,\ textWritePrefix=gs://BUCKET_NAME/output/
Substitua:
JOB_NAME
: um nome de job de sua escolhaREGION_NAME
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
VERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
BUCKET_NAME
: o nome do bucket do Cloud StorageFIRESTORE_PROJECT_ID
: o ID do projeto do Cloud em que a instância do Firestore existeFIRESTORE_KIND
: o tipo das suas entidades do FirestoreFIRESTORE_NAMESPACE
: o namespace das entidades do FirestoreJAVASCRIPT_FUNCTION
: o nome da função definida pelo usuário (UDF) do JavaScript que você quer usarPor exemplo, se o código de função do JavaScript for
myTransform(inJson) { /*...do stuff...*/ }
, o nome da função serámyTransform
. Para amostras de UDFs do JavaScript, consulte os exemplos de UDF.PATH_TO_JAVASCRIPT_UDF_FILE
: o URI do Cloud Storage do arquivo.js
que define a função definida pelo usuário (UDF, na sigla em inglês) do JavaScript que você quer usar, por exemplo,gs://my-bucket/my-udfs/my_file.js
API
Para executar o modelo usando a API REST, envie uma solicitação HTTP POST. Para mais informações sobre a
API e os respectivos escopos de autorização, consulte
projects.templates.launch
.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/Firestore_to_GCS_Text { "jobName": "JOB_NAME", "parameters": { "firestoreReadGqlQuery": "SELECT * FROM FIRESTORE_KIND" "firestoreReadProjectId": "FIRESTORE_PROJECT_ID", "firestoreReadNamespace": "FIRESTORE_NAMESPACE", "javascriptTextTransformGcsPath": "PATH_TO_JAVASCRIPT_UDF_FILE", "javascriptTextTransformFunctionName": "JAVASCRIPT_FUNCTION", "textWritePrefix": "gs://BUCKET_NAME/output/" }, "environment": { "zone": "us-central1-f" } }
Substitua:
PROJECT_ID
: o ID do projeto do Cloud em que você quer executar o job do DataflowJOB_NAME
: um nome de job de sua escolhaLOCATION
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
VERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
BUCKET_NAME
: o nome do bucket do Cloud StorageFIRESTORE_PROJECT_ID
: o ID do projeto do Cloud em que a instância do Firestore existeFIRESTORE_KIND
: o tipo das suas entidades do FirestoreFIRESTORE_NAMESPACE
: o namespace das entidades do FirestoreJAVASCRIPT_FUNCTION
: o nome da função definida pelo usuário (UDF) do JavaScript que você quer usarPor exemplo, se o código de função do JavaScript for
myTransform(inJson) { /*...do stuff...*/ }
, o nome da função serámyTransform
. Para amostras de UDFs do JavaScript, consulte os exemplos de UDF.PATH_TO_JAVASCRIPT_UDF_FILE
: o URI do Cloud Storage do arquivo.js
que define a função definida pelo usuário (UDF, na sigla em inglês) do JavaScript que você quer usar, por exemplo,gs://my-bucket/my-udfs/my_file.js
Cloud Spanner para Cloud Storage Avro
O modelo do Cloud Spanner para arquivos Avro no Cloud Storage é um pipeline em lote que exporta todo o banco de dados do Cloud Spanner para o Cloud Storage no formato Avro. A exportação de um banco de dados do Cloud Spanner cria uma pasta no bucket selecionado. A pasta contém:
- Um arquivo
spanner-export.json
. - Um arquivo
TableName-manifest.json
para cada tabela do banco de dados exportado - Um ou mais arquivos
TableName.avro-#####-of-#####
.
Por exemplo, a exportação de um banco de dados com duas tabelas, Singers
e Albums
, gera o seguinte conjunto de arquivos:
Albums-manifest.json
Albums.avro-00000-of-00002
Albums.avro-00001-of-00002
Singers-manifest.json
Singers.avro-00000-of-00003
Singers.avro-00001-of-00003
Singers.avro-00002-of-00003
spanner-export.json
Requisitos para este pipeline:
- O banco de dados do Cloud Spanner precisa existir.
- O bucket de saída do Cloud Storage precisa existir.
- Além dos papéis do IAM necessários para executar jobs do Dataflow, você também precisa ter os papéis do IAM apropriados para ler dados do Cloud Spanner e gravar no bucket do Cloud Storage.
Parâmetros do modelo
Parâmetro | Descrição | |
---|---|---|
instanceId |
O código da instância referente ao banco de dados do Cloud Spanner que você quer exportar. | |
databaseId |
O código do banco de dados referente ao banco de dados do Cloud Spanner que você quer exportar. | |
outputDir |
O caminho do Cloud Storage em que você quer exportar arquivos Avro. O job de exportação cria um novo diretório nesse caminho contendo os arquivos exportados. | |
snapshotTime |
Opcional: o carimbo de data/hora que corresponde à versão do banco de dados do Cloud Spanner que você quer ler. O carimbo de data/hora precisa ser especificado de acordo com o formato Zulu UTC RFC 3339.
Por exemplo, 1990-12-31T23:59:60Z . O carimbo de data/hora precisa estar no passado, e a Inatividade máxima do carimbo de data/hora se aplica. |
|
tableNames |
(Opcional) Uma lista de tabelas separadas por vírgulas especificando o subconjunto do banco de dados do Cloud Spanner a ser exportado. A lista precisa incluir todas as tabelas relacionadas (tabelas mãe, tabelas de chave estrangeira referenciadas). Caso contrário, a sinalização "shouldExportRelatedTables" precisará ser definida para que a exportação seja bem-sucedida. | |
shouldExportRelatedTables |
(Opcional) A sinalização usada com o parâmetro "tableNames" para incluir todas as tabelas relacionadas a serem exportadas. | |
spannerProjectId |
(Opcional) O ID do projeto do Google Cloud referente ao banco de dados do Cloud Spanner de que você quer ler os dados. |
Como executar o modelo do Cloud Spanner para arquivos Avro no Cloud Storage
Console
- Acesse a página Criar job usando um modelo do Dataflow. Acesse Criar job usando um modelo
- No campo Nome do job, insira um nome exclusivo.
Para que o job apareça na página de Instâncias do Spanner do console do Google Cloud, o nome do job precisa corresponder ao seguinte formato:
cloud-spanner-export-SPANNER_INSTANCE_ID-SPANNER_DATABASE_NAME
Substitua:
SPANNER_INSTANCE_ID
: o ID da instância do SpannerSPANNER_DATABASE_NAME
: o nome do banco de dados do Spanner
- Opcional: em Endpoint regional, selecione um valor no menu suspenso. O endpoint
regional padrão é
us-central1
.Para ver uma lista de regiões em que é possível executar um job do Dataflow, consulte Locais do Dataflow.
- No menu suspenso Modelo do Dataflow, selecione the Cloud Spanner to Avro Files on Cloud Storage template.
- Nos campos de parâmetro fornecidos, insira os valores de parâmetro.
- Cliquem em Executar job.
gcloud
No shell ou no terminal, execute o modelo:
gcloud dataflow jobs run JOB_NAME \ --gcs-location gs://dataflow-templates/VERSION/Cloud_Spanner_to_GCS_Avro \ --region REGION_NAME \ --staging-location GCS_STAGING_LOCATION \ --parameters \ instanceId=INSTANCE_ID,\ databaseId=DATABASE_ID,\ outputDir=GCS_DIRECTORY
Substitua:
JOB_NAME
: um nome de job de sua escolhaPara que o job seja exibido na parte do Cloud Spanner no Console do Google Cloud, o nome dele precisa corresponder ao formato
cloud-spanner-export-INSTANCE_ID-DATABASE_ID
.VERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
REGION_NAME
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
GCS_STAGING_LOCATION
: o caminho para gravar arquivos temporários (por exemplo,gs://mybucket/temp
)INSTANCE_ID
: código da instância do Cloud Spanner.DATABASE_ID
: ID do banco de dados do Cloud Spanner.GCS_DIRECTORY
: o caminho do Cloud Storage em que os arquivos Avro são exportados para
API
Para executar o modelo usando a API REST, envie uma solicitação HTTP POST. Para mais informações sobre a
API e os respectivos escopos de autorização, consulte
projects.templates.launch
.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/Cloud_Spanner_to_GCS_Avro { "jobName": "JOB_NAME", "parameters": { "instanceId": "INSTANCE_ID", "databaseId": "DATABASE_ID", "outputDir": "gs://GCS_DIRECTORY" } }
Substitua:
PROJECT_ID
: o ID do projeto do Cloud em que você quer executar o job do DataflowJOB_NAME
: um nome de job de sua escolhaPara que o job seja exibido na parte do Cloud Spanner no Console do Google Cloud, o nome dele precisa corresponder ao formato
cloud-spanner-export-INSTANCE_ID-DATABASE_ID
.VERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
LOCATION
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
GCS_STAGING_LOCATION
: o caminho para gravar arquivos temporários (por exemplo,gs://mybucket/temp
)INSTANCE_ID
: código da instância do Cloud Spanner.DATABASE_ID
: ID do banco de dados do Cloud Spanner.GCS_DIRECTORY
: o caminho do Cloud Storage em que os arquivos Avro são exportados para
Cloud Spanner para Cloud Storage Text
O modelo do Cloud Spanner para Cloud Storage Text é um pipeline em lote que lê dados de uma tabela do Cloud Spanner e os grava no Cloud Storage como arquivos de texto CSV.
Requisitos para este pipeline:
- A tabela de entrada do Spanner precisa existir antes de o pipeline ser executado.
Parâmetros do modelo
Parâmetro | Descrição |
---|---|
spannerProjectId |
O ID do projeto do Google Cloud referente ao banco de dados do Cloud Spanner de que você quer ler os dados. |
spannerDatabaseId |
O ID do banco de dados da tabela solicitada. |
spannerInstanceId |
O ID da instância solicitada. |
spannerTable |
A tabela da qual os dados serão lidos. |
textWritePrefix |
O diretório onde os arquivos de texto de saída são gravados. Adicione uma barra (/) ao final. Exemplo: gs://mybucket/somefolder/ . |
spannerSnapshotTime |
Opcional: o carimbo de data/hora que corresponde à versão do banco de dados do Cloud Spanner que você quer ler. O carimbo de data/hora precisa ser especificado de acordo com o formato Zulu UTC RFC 3339.
Por exemplo, 1990-12-31T23:59:60Z . O carimbo de data/hora precisa estar no passado, e a Inatividade máxima do carimbo de data/hora se aplica. |
Como executar o modelo Cloud Spanner para Cloud Storage Text
Console
- Acesse a página Criar job usando um modelo do Dataflow. Acesse Criar job usando um modelo
- No campo Nome do job, insira um nome exclusivo.
- Opcional: em Endpoint regional, selecione um valor no menu suspenso. O endpoint
regional padrão é
us-central1
.Para ver uma lista de regiões em que é possível executar um job do Dataflow, consulte Locais do Dataflow.
- No menu suspenso Modelo do Dataflow, selecione the Cloud Spanner to Text Files on Cloud Storage template.
- Nos campos de parâmetro fornecidos, insira os valores de parâmetro.
- Cliquem em Executar job.
gcloud
No shell ou no terminal, execute o modelo:
gcloud dataflow jobs run JOB_NAME \ --gcs-location gs://dataflow-templates/VERSION/Spanner_to_GCS_Text \ --region REGION_NAME \ --parameters \ spannerProjectId=SPANNER_PROJECT_ID,\ spannerDatabaseId=DATABASE_ID,\ spannerInstanceId=INSTANCE_ID,\ spannerTable=TABLE_ID,\ textWritePrefix=gs://BUCKET_NAME/output/
Substitua:
JOB_NAME
: um nome de job de sua escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
REGION_NAME
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
SPANNER_PROJECT_ID
: o ID do projeto do Cloud do banco de dados do Spanner em que você quer ler dados.DATABASE_ID
: o ID do banco de dados do SpannerBUCKET_NAME
: o nome do bucket do Cloud StorageINSTANCE_ID
: o ID da instância do SpannerTABLE_ID
: o ID da tabela do Spanner
API
Para executar o modelo usando a API REST, envie uma solicitação HTTP POST. Para mais informações sobre a
API e os respectivos escopos de autorização, consulte
projects.templates.launch
.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/Spanner_to_GCS_Text { "jobName": "JOB_NAME", "parameters": { "spannerProjectId": "SPANNER_PROJECT_ID", "spannerDatabaseId": "DATABASE_ID", "spannerInstanceId": "INSTANCE_ID", "spannerTable": "TABLE_ID", "textWritePrefix": "gs://BUCKET_NAME/output/" }, "environment": { "zone": "us-central1-f" } }
Substitua:
PROJECT_ID
: o ID do projeto do Cloud em que você quer executar o job do DataflowJOB_NAME
: um nome de job de sua escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
LOCATION
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
SPANNER_PROJECT_ID
: o ID do projeto do Cloud do banco de dados do Spanner em que você quer ler dados.DATABASE_ID
: o ID do banco de dados do SpannerBUCKET_NAME
: o nome do bucket do Cloud StorageINSTANCE_ID
: o ID da instância do SpannerTABLE_ID
: o ID da tabela do Spanner
Cloud Storage Avro para Bigtable
O modelo do Cloud Storage Avro para Bigtable é um pipeline que lê dados de arquivos Avro em um bucket do Cloud Storage e grava os dados em uma tabela do Bigtable. É possível usar o modelo para copiar dados do Cloud Storage para o Bigtable.
Requisitos para este pipeline:
- A tabela do Bigtable precisa existir e ter as mesmas famílias de colunas que foram exportadas nos arquivos Avro.
- Os arquivos Avro de entrada precisam existir em um bucket do Cloud Storage antes de o pipeline ser executado.
- O Bigtable espera um esquema específico dos arquivos Avro de entrada.
Parâmetros do modelo
Parâmetro | Descrição |
---|---|
bigtableProjectId |
O ID do projeto do Google Cloud da instância do Bigtable em que você quer gravar os dados. |
bigtableInstanceId |
O ID da instância do Bigtable que contém a tabela. |
bigtableTableId |
O ID da tabela do Bigtable a ser importada. |
inputFilePattern |
O padrão de caminho do Cloud Storage em que os dados estão localizados. Por exemplo, gs://mybucket/somefolder/prefix* . |
Como executar o modelo do arquivo Storage Avro para Cloud Bigtable
Console
- Acesse a página Criar job usando um modelo do Dataflow. Acesse Criar job usando um modelo
- No campo Nome do job, insira um nome exclusivo.
- Opcional: em Endpoint regional, selecione um valor no menu suspenso. O endpoint
regional padrão é
us-central1
.Para ver uma lista de regiões em que é possível executar um job do Dataflow, consulte Locais do Dataflow.
- No menu suspenso Modelo do Dataflow, selecione the Avro Files on Cloud Storage to Cloud Bigtable template.
- Nos campos de parâmetro fornecidos, insira os valores de parâmetro.
- Cliquem em Executar job.
gcloud
No shell ou no terminal, execute o modelo:
gcloud dataflow jobs run JOB_NAME \ --gcs-location gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Bigtable \ --region REGION_NAME \ --parameters \ bigtableProjectId=BIGTABLE_PROJECT_ID,\ bigtableInstanceId=INSTANCE_ID,\ bigtableTableId=TABLE_ID,\ inputFilePattern=INPUT_FILE_PATTERN
Substitua:
JOB_NAME
: um nome de job de sua escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
REGION_NAME
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
BIGTABLE_PROJECT_ID
: o ID do projeto do Google Cloud da instância do Bigtable da qual você quer ler os dados.INSTANCE_ID
: o ID da instância do Bigtable que contém a tabela.TABLE_ID
: o ID da tabela do Cloud Bigtable a ser exportada.INPUT_FILE_PATTERN
: o padrão de caminho do Cloud Storage em que os dados estão localizados, por exemplo,gs://mybucket/somefolder/prefix*
API
Para executar o modelo usando a API REST, envie uma solicitação HTTP POST. Para mais informações sobre a
API e os respectivos escopos de autorização, consulte
projects.templates.launch
.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Bigtable { "jobName": "JOB_NAME", "parameters": { "bigtableProjectId": "BIGTABLE_PROJECT_ID", "bigtableInstanceId": "INSTANCE_ID", "bigtableTableId": "TABLE_ID", "inputFilePattern": "INPUT_FILE_PATTERN", }, "environment": { "zone": "us-central1-f" } }
Substitua:
PROJECT_ID
: o ID do projeto do Cloud em que você quer executar o job do DataflowJOB_NAME
: um nome de job de sua escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
LOCATION
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
BIGTABLE_PROJECT_ID
: o ID do projeto do Google Cloud da instância do Bigtable da qual você quer ler os dados.INSTANCE_ID
: o ID da instância do Bigtable que contém a tabela.TABLE_ID
: o ID da tabela do Cloud Bigtable a ser exportada.INPUT_FILE_PATTERN
: o padrão de caminho do Cloud Storage em que os dados estão localizados, por exemplo,gs://mybucket/somefolder/prefix*
Cloud Storage Avro para Cloud Spanner
O modelo de arquivos Avro do Cloud Storage para o Cloud Spanner é um pipeline em lote que lê arquivos Avro exportados do Cloud Spanner e armazenados em um banco de dados do Cloud Spanner.
Requisitos para este pipeline:
- O banco de dados de destino do Cloud Spanner precisa existir e estar vazio.
- É necessário ter permissões de leitura para o bucket do Cloud Storage e permissões de gravação para o banco de dados de destino do Cloud Spanner.
- O caminho do Cloud Storage precisa existir e incluir um arquivo
spanner-export.json
com uma descrição JSON dos arquivos a serem importados.
Parâmetros do modelo
Parâmetro | Descrição |
---|---|
instanceId |
O código da instância referente ao banco de dados do Cloud Spanner. |
databaseId |
O ID do banco de dados referente ao banco de dados do Cloud Spanner. |
inputDir |
O caminho do Cloud Storage de onde os arquivos Avro são importados. |
Como executar o modelo do Cloud Storage Avro para Cloud Spanner
Console
- Acesse a página Criar job usando um modelo do Dataflow. Acesse Criar job usando um modelo
- No campo Nome do job, insira um nome exclusivo.
Para que o job apareça na página de Instâncias do Spanner do console do Google Cloud, o nome do job precisa corresponder ao seguinte formato:
cloud-spanner-import-SPANNER_INSTANCE_ID-SPANNER_DATABASE_NAME
Substitua:
SPANNER_INSTANCE_ID
: o ID da instância do SpannerSPANNER_DATABASE_NAME
: o nome do banco de dados do Spanner
- Opcional: em Endpoint regional, selecione um valor no menu suspenso. O endpoint
regional padrão é
us-central1
.Para ver uma lista de regiões em que é possível executar um job do Dataflow, consulte Locais do Dataflow.
- No menu suspenso Modelo do Dataflow, selecione the Avro Files on Cloud Storage to Cloud Spanner template.
- Nos campos de parâmetro fornecidos, insira os valores de parâmetro.
- Cliquem em Executar job.
gcloud
No shell ou no terminal, execute o modelo:
gcloud dataflow jobs run JOB_NAME \ --gcs-location gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Spanner \ --region REGION_NAME \ --staging-location GCS_STAGING_LOCATION \ --parameters \ instanceId=INSTANCE_ID,\ databaseId=DATABASE_ID,\ inputDir=GCS_DIRECTORY
Substitua:
JOB_NAME
: um nome de job de sua escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
REGION_NAME
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
INSTANCE_ID
: o ID da instância do Spanner que contém o banco de dados.DATABASE_ID
: o ID do banco de dados do Spanner a ser importadoGCS_DIRECTORY
: o caminho do Cloud Storage de onde os arquivos Avro são importados. Por exemplo,gs://mybucket/somefolder
.
API
Para executar o modelo usando a API REST, envie uma solicitação HTTP POST. Para mais informações sobre a
API e os respectivos escopos de autorização, consulte
projects.templates.launch
.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Spanner { "jobName": "JOB_NAME", "parameters": { "instanceId": "INSTANCE_ID", "databaseId": "DATABASE_ID", "inputDir": "gs://GCS_DIRECTORY" }, "environment": { "machineType": "n1-standard-2" } }
Substitua:
PROJECT_ID
: o ID do projeto do Cloud em que você quer executar o job do DataflowJOB_NAME
: um nome de job de sua escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
LOCATION
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
INSTANCE_ID
: o ID da instância do Spanner que contém o banco de dados.DATABASE_ID
: o ID do banco de dados do Spanner a ser importadoGCS_DIRECTORY
: o caminho do Cloud Storage de onde os arquivos Avro são importados. Por exemplo,gs://mybucket/somefolder
.
Cloud Storage Parquet para Bigtable
O modelo do Cloud Storage Parquet para Bigtable é um pipeline que lê dados de arquivos Parquet em um bucket do Cloud Storage e grava os dados em uma tabela do Bigtable. É possível usar o modelo para copiar dados do Cloud Storage para o Bigtable.
Requisitos para este pipeline:
- A tabela do Bigtable precisa existir e ter as mesmas famílias de colunas que foram exportadas nos arquivos Parquet.
- Os arquivos Parquer de entrada precisam existir em um bucket do Cloud Storage antes de o pipeline ser executado.
- O Bigtable espera um esquema específico dos arquivos Parquet de entrada.
Parâmetros do modelo
Parâmetro | Descrição |
---|---|
bigtableProjectId |
O ID do projeto do Google Cloud da instância do Bigtable em que você quer gravar os dados. |
bigtableInstanceId |
O ID da instância do Bigtable que contém a tabela. |
bigtableTableId |
O ID da tabela do Bigtable a ser importada. |
inputFilePattern |
O padrão de caminho do Cloud Storage em que os dados estão localizados. Por exemplo, gs://mybucket/somefolder/prefix* . |
Como executar o modelo do arquivo Cloud Storage Parquet para Bigtable
Console
- Acesse a página Criar job usando um modelo do Dataflow. Acesse Criar job usando um modelo
- No campo Nome do job, insira um nome exclusivo.
- Opcional: em Endpoint regional, selecione um valor no menu suspenso. O endpoint
regional padrão é
us-central1
.Para ver uma lista de regiões em que é possível executar um job do Dataflow, consulte Locais do Dataflow.
- No menu suspenso Modelo do Dataflow, selecione the Parquet Files on Cloud Storage to Cloud Bigtable template.
- Nos campos de parâmetro fornecidos, insira os valores de parâmetro.
- Cliquem em Executar job.
gcloud
No shell ou no terminal, execute o modelo:
gcloud dataflow jobs run JOB_NAME \ --gcs-location gs://dataflow-templates/VERSION/GCS_Parquet_to_Cloud_Bigtable \ --region REGION_NAME \ --parameters \ bigtableProjectId=BIGTABLE_PROJECT_ID,\ bigtableInstanceId=INSTANCE_ID,\ bigtableTableId=TABLE_ID,\ inputFilePattern=INPUT_FILE_PATTERN
Substitua:
JOB_NAME
: um nome de job de sua escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
REGION_NAME
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
BIGTABLE_PROJECT_ID
: o ID do projeto do Google Cloud da instância do Bigtable da qual você quer ler os dados.INSTANCE_ID
: o ID da instância do Bigtable que contém a tabela.TABLE_ID
: o ID da tabela do Cloud Bigtable a ser exportada.INPUT_FILE_PATTERN
: o padrão de caminho do Cloud Storage em que os dados estão localizados, por exemplo,gs://mybucket/somefolder/prefix*
API
Para executar o modelo usando a API REST, envie uma solicitação HTTP POST. Para mais informações sobre a
API e os respectivos escopos de autorização, consulte
projects.templates.launch
.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/GCS_Parquet_to_Cloud_Bigtable { "jobName": "JOB_NAME", "parameters": { "bigtableProjectId": "BIGTABLE_PROJECT_ID", "bigtableInstanceId": "INSTANCE_ID", "bigtableTableId": "TABLE_ID", "inputFilePattern": "INPUT_FILE_PATTERN", }, "environment": { "zone": "us-central1-f" } }
Substitua:
PROJECT_ID
: o ID do projeto do Cloud em que você quer executar o job do DataflowJOB_NAME
: um nome de job de sua escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
LOCATION
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
BIGTABLE_PROJECT_ID
: o ID do projeto do Google Cloud da instância do Bigtable da qual você quer ler os dados.INSTANCE_ID
: o ID da instância do Bigtable que contém a tabela.TABLE_ID
: o ID da tabela do Cloud Bigtable a ser exportada.INPUT_FILE_PATTERN
: o padrão de caminho do Cloud Storage em que os dados estão localizados, por exemplo,gs://mybucket/somefolder/prefix*
Cloud Storage SequenceFile para Bigtable
O modelo Cloud Storage SequenceFile para Bigtable é um pipeline que lê dados de SequenceFiles em um bucket do Cloud Storage e grava os dados em uma tabela do Bigtable. É possível usar o modelo para copiar dados do Cloud Storage para o Bigtable.
Requisitos para este pipeline:
- A tabela do Bigtable precisa existir.
- Os SequenceFiles de entrada precisam existir em um bucket do Cloud Storage antes do pipeline ser executado.
- Os SequenceFiles de entrada precisam ter sido exportado do Bigtable ou do HBase.
Parâmetros do modelo
Parâmetro | Descrição |
---|---|
bigtableProject |
O ID do projeto do Google Cloud da instância do Bigtable em que você quer gravar os dados. |
bigtableInstanceId |
O ID da instância do Bigtable que contém a tabela. |
bigtableTableId |
O ID da tabela do Bigtable a ser importada. |
bigtableAppProfileId |
O ID do perfil do aplicativo Bigtable a ser usado para a importação. Se você não especificar um perfil de aplicativo, o Bigtable usará o perfil de aplicativo padrão da instância. |
sourcePattern |
O padrão de caminho do Cloud Storage em que os dados estão localizados. Por exemplo, gs://mybucket/somefolder/prefix* . |
Como executar o modelo do Cloud Storage SequenceFile para Bigtable
Console
- Acesse a página Criar job usando um modelo do Dataflow. Acesse Criar job usando um modelo
- No campo Nome do job, insira um nome exclusivo.
- Opcional: em Endpoint regional, selecione um valor no menu suspenso. O endpoint
regional padrão é
us-central1
.Para ver uma lista de regiões em que é possível executar um job do Dataflow, consulte Locais do Dataflow.
- No menu suspenso Modelo do Dataflow, selecione the SequenceFile Files on Cloud Storage to Cloud Bigtable template.
- Nos campos de parâmetro fornecidos, insira os valores de parâmetro.
- Cliquem em Executar job.
gcloud
No shell ou no terminal, execute o modelo:
gcloud dataflow jobs run JOB_NAME \ --gcs-location gs://dataflow-templates/VERSION/GCS_SequenceFile_to_Cloud_Bigtable \ --region REGION_NAME \ --parameters \ bigtableProject=BIGTABLE_PROJECT_ID,\ bigtableInstanceId=INSTANCE_ID,\ bigtableTableId=TABLE_ID,\ bigtableAppProfileId=APPLICATION_PROFILE_ID,\ sourcePattern=SOURCE_PATTERN
Substitua:
JOB_NAME
: um nome de job de sua escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
REGION_NAME
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
BIGTABLE_PROJECT_ID
: o ID do projeto do Google Cloud da instância do Bigtable da qual você quer ler os dados.INSTANCE_ID
: o ID da instância do Bigtable que contém a tabela.TABLE_ID
: o ID da tabela do Cloud Bigtable a ser exportada.APPLICATION_PROFILE_ID
: o ID do perfil do aplicativo Bigtable a ser usado para a exportação.SOURCE_PATTERN
: o padrão de caminho do Cloud Storage em que os dados estão localizados, por exemplo,gs://mybucket/somefolder/prefix*
API
Para executar o modelo usando a API REST, envie uma solicitação HTTP POST. Para mais informações sobre a
API e os respectivos escopos de autorização, consulte
projects.templates.launch
.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/GCS_SequenceFile_to_Cloud_Bigtable { "jobName": "JOB_NAME", "parameters": { "bigtableProject": "BIGTABLE_PROJECT_ID", "bigtableInstanceId": "INSTANCE_ID", "bigtableTableId": "TABLE_ID", "bigtableAppProfileId": "APPLICATION_PROFILE_ID", "sourcePattern": "SOURCE_PATTERN", }, "environment": { "zone": "us-central1-f" } }
Substitua:
PROJECT_ID
: o ID do projeto do Cloud em que você quer executar o job do DataflowJOB_NAME
: um nome de job de sua escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
LOCATION
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
BIGTABLE_PROJECT_ID
: o ID do projeto do Google Cloud da instância do Bigtable da qual você quer ler os dados.INSTANCE_ID
: o ID da instância do Bigtable que contém a tabela.TABLE_ID
: o ID da tabela do Cloud Bigtable a ser exportada.APPLICATION_PROFILE_ID
: o ID do perfil do aplicativo Bigtable a ser usado para a exportação.SOURCE_PATTERN
: o padrão de caminho do Cloud Storage em que os dados estão localizados, por exemplo,gs://mybucket/somefolder/prefix*
Cloud Storage Text para BigQuery
O pipeline em lote do Cloud Storage Text para BigQuery permite ler arquivos de texto armazenados no Cloud Storage, transformá-los usando uma função definida pelo usuário (UDF, na sigla em inglês) do JavaScript fornecida por você e anexar o resultadoem uma tabela do BigQuery.
Requisitos para este pipeline:
- Crie um arquivo JSON que descreva seu esquema do BigQuery.
Verifique se há uma matriz JSON de nível superior intitulada
BigQuery Schema
e se o conteúdo dela segue o padrão{"name": "COLUMN_NAME", "type": "DATA_TYPE"}
.O modelo de lote do Cloud Storage Text para BigQuery não é compatível com a importação de dados para os campos
STRUCT
(Registro) na tabela de destino do BigQuery.Veja no JSON a seguir um exemplo de esquema do BigQuery:
{ "BigQuery Schema": [ { "name": "location", "type": "STRING" }, { "name": "name", "type": "STRING" }, { "name": "age", "type": "STRING" }, { "name": "color", "type": "STRING" }, { "name": "coffee", "type": "STRING" } ] }
- Crie um arquivo JavaScript (
.js
) com a função UDF que fornece a lógica para transformar as linhas de texto. A função precisa retornar uma string JSON.Por exemplo, esta função divide cada linha de um arquivo CSV e retorna uma string JSON depois de transformar os valores.
function transform(line) { var values = line.split(','); var obj = new Object(); obj.location = values[0]; obj.name = values[1]; obj.age = values[2]; obj.color = values[3]; obj.coffee = values[4]; var jsonString = JSON.stringify(obj); return jsonString; }
Parâmetros do modelo
Parâmetro | Descrição |
---|---|
javascriptTextTransformFunctionName |
o nome da função definida pelo usuário (UDF) do JavaScript que você quer usar.
Por exemplo, se o código de função do JavaScript for
myTransform(inJson) { /*...do stuff...*/ } , o nome da função será
myTransform . Para amostras de UDFs do JavaScript, consulte os
exemplos de UDF.
|
JSONPath |
O caminho gs:// para o arquivo JSON que define o esquema do BigQuery, armazenado no Cloud Storage. Por exemplo, gs://path/to/my/schema.json . |
javascriptTextTransformGcsPath |
O URI do Cloud Storage do arquivo .js que define a função definida
pelo usuário (UDF, na sigla em inglês) do JavaScript que você quer usar. Por exemplo, gs://my-bucket/my-udfs/my_file.js .
|
inputFilePattern |
O caminho gs:// do texto no Cloud Storage que você quer processar. Por exemplo, gs://path/to/my/text/data.txt . |
outputTable |
O nome da tabela do BigQuery que você quer criar para armazenar seus dados processados.
Se você reutilizar uma tabela atual do BigQuery, os dados serão anexados à tabela de destino.
Por exemplo, my-project-name:my-dataset.my-table |
bigQueryLoadingTemporaryDirectory |
O diretório temporário do processo de carregamento do BigQuery.
Por exemplo, gs://my-bucket/my-files/temp_dir |
Como executar o modelo do Cloud Storage Text para BigQuery
Console
- Acesse a página Criar job usando um modelo do Dataflow. Acesse Criar job usando um modelo
- No campo Nome do job, insira um nome exclusivo.
- Opcional: em Endpoint regional, selecione um valor no menu suspenso. O endpoint
regional padrão é
us-central1
.Para ver uma lista de regiões em que é possível executar um job do Dataflow, consulte Locais do Dataflow.
- No menu suspenso Modelo do Dataflow, selecione the Text Files on Cloud Storage to BigQuery (Batch) template.
- Nos campos de parâmetro fornecidos, insira os valores de parâmetro.
- Cliquem em Executar job.
gcloud
No shell ou no terminal, execute o modelo:
gcloud dataflow jobs run JOB_NAME \ --gcs-location gs://dataflow-templates/VERSION/GCS_Text_to_BigQuery \ --region REGION_NAME \ --parameters \ javascriptTextTransformFunctionName=JAVASCRIPT_FUNCTION,\ JSONPath=PATH_TO_BIGQUERY_SCHEMA_JSON,\ javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\ inputFilePattern=PATH_TO_TEXT_DATA,\ outputTable=BIGQUERY_TABLE,\ bigQueryLoadingTemporaryDirectory=PATH_TO_TEMP_DIR_ON_GCS
Substitua:
PROJECT_ID
: o ID do projeto do Cloud em que você quer executar o job do DataflowJOB_NAME
: um nome de job de sua escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
REGION_NAME
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
JAVASCRIPT_FUNCTION
: o nome da função definida pelo usuário (UDF) do JavaScript que você quer usarPor exemplo, se o código de função do JavaScript for
myTransform(inJson) { /*...do stuff...*/ }
, o nome da função serámyTransform
. Para amostras de UDFs do JavaScript, consulte os exemplos de UDF.PATH_TO_BIGQUERY_SCHEMA_JSON
: o caminho do Cloud Storage para o arquivo JSON que contém a definição do esquemaPATH_TO_JAVASCRIPT_UDF_FILE
: o URI do Cloud Storage do arquivo.js
que define a função definida pelo usuário (UDF, na sigla em inglês) do JavaScript que você quer usar, por exemplo,gs://my-bucket/my-udfs/my_file.js
PATH_TO_TEXT_DATA
: o caminho do Cloud Storage para o conjunto de dados de textoBIGQUERY_TABLE
: o nome da tabela do BigQueryPATH_TO_TEMP_DIR_ON_GCS
: o caminho do Cloud Storage para o diretório temporário
API
Para executar o modelo usando a API REST, envie uma solicitação HTTP POST. Para mais informações sobre a
API e os respectivos escopos de autorização, consulte
projects.templates.launch
.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/GCS_Text_to_BigQuery { "jobName": "JOB_NAME", "parameters": { "javascriptTextTransformFunctionName": "JAVASCRIPT_FUNCTION", "JSONPath": "PATH_TO_BIGQUERY_SCHEMA_JSON", "javascriptTextTransformGcsPath": "PATH_TO_JAVASCRIPT_UDF_FILE", "inputFilePattern":"PATH_TO_TEXT_DATA", "outputTable":"BIGQUERY_TABLE", "bigQueryLoadingTemporaryDirectory": "PATH_TO_TEMP_DIR_ON_GCS" }, "environment": { "zone": "us-central1-f" } }
Substitua:
PROJECT_ID
: o ID do projeto do Cloud em que você quer executar o job do DataflowJOB_NAME
: um nome de job de sua escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
LOCATION
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
JAVASCRIPT_FUNCTION
: o nome da função definida pelo usuário (UDF) do JavaScript que você quer usarPor exemplo, se o código de função do JavaScript for
myTransform(inJson) { /*...do stuff...*/ }
, o nome da função serámyTransform
. Para amostras de UDFs do JavaScript, consulte os exemplos de UDF.PATH_TO_BIGQUERY_SCHEMA_JSON
: o caminho do Cloud Storage para o arquivo JSON que contém a definição do esquemaPATH_TO_JAVASCRIPT_UDF_FILE
: o URI do Cloud Storage do arquivo.js
que define a função definida pelo usuário (UDF, na sigla em inglês) do JavaScript que você quer usar, por exemplo,gs://my-bucket/my-udfs/my_file.js
PATH_TO_TEXT_DATA
: o caminho do Cloud Storage para o conjunto de dados de textoBIGQUERY_TABLE
: o nome da tabela do BigQueryPATH_TO_TEMP_DIR_ON_GCS
: o caminho do Cloud Storage para o diretório temporário
Cloud Storage Text para Datastore [Obsoleto]
Este modelo está obsoleto e será removido no primeiro trimestre de 2022. Migre para o do Cloud Storage Text para Firestore.
O modelo do Cloud Storage Text para Datastore é um pipeline em lote que lê arquivos de texto armazenados no Cloud Storage e grava entidades JSON codificadas no Datastore. Cada linha nos arquivos de texto de entrada precisa estar no formato JSON especificado.
Requisitos para este pipeline:
- O Datastore precisa estar ativado no projeto de destino.
Parâmetros do modelo
Parâmetro | Descrição |
---|---|
textReadPattern |
Um padrão de caminho do Cloud Storage que especifica o local dos seus arquivos de dados de texto.
Por exemplo, gs://mybucket/somepath/*.json . |
javascriptTextTransformGcsPath |
(Opcional)
O URI do Cloud Storage do arquivo .js que define a função definida
pelo usuário (UDF, na sigla em inglês) do JavaScript que você quer usar. Por exemplo, gs://my-bucket/my-udfs/my_file.js .
|
javascriptTextTransformFunctionName |
(Opcional)
O nome da função definida pelo usuário (UDF) do JavaScript que você quer usar.
Por exemplo, se o código de função do JavaScript for
myTransform(inJson) { /*...do stuff...*/ } , o nome da função será
myTransform . Para amostras de UDFs do JavaScript, consulte os
exemplos de UDF.
|
datastoreWriteProjectId |
O ID do projeto do Google Cloud no qual gravar as entidades do Datastore |
datastoreHintNumWorkers |
(Opcional) Dica para o número esperado de workers na etapa de limitação de aumento do Datastore. O padrão é 500 . |
errorWritePath |
O arquivo de saída do registro de erros a ser usado para falhas de gravação que ocorrem durante o processamento. Por exemplo, gs://bucket-name/errors.txt . |
Como executar o modelo do Cloud Storage Text para Datastore
Console
- Acesse a página Criar job usando um modelo do Dataflow. Acesse Criar job usando um modelo
- No campo Nome do job, insira um nome exclusivo.
- Opcional: em Endpoint regional, selecione um valor no menu suspenso. O endpoint
regional padrão é
us-central1
.Para ver uma lista de regiões em que é possível executar um job do Dataflow, consulte Locais do Dataflow.
- No menu suspenso Modelo do Dataflow, selecione the Text Files on Cloud Storage to Datastore template.
- Nos campos de parâmetro fornecidos, insira os valores de parâmetro.
- Cliquem em Executar job.
gcloud
No shell ou no terminal, execute o modelo:
gcloud dataflow jobs run JOB_NAME \ --gcs-location gs://dataflow-templates/VERSION/GCS_Text_to_Datastore \ --region REGION_NAME \ --parameters \ textReadPattern=PATH_TO_INPUT_TEXT_FILES,\ javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\ javascriptTextTransformFunctionName=JAVASCRIPT_FUNCTION,\ datastoreWriteProjectId=PROJECT_ID,\ errorWritePath=ERROR_FILE_WRITE_PATH
Substitua:
JOB_NAME
: um nome de job de sua escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
REGION_NAME
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
PATH_TO_INPUT_TEXT_FILES
: o padrão de arquivos de entrada no Cloud StorageJAVASCRIPT_FUNCTION
: o nome da função definida pelo usuário (UDF) do JavaScript que você quer usarPor exemplo, se o código de função do JavaScript for
myTransform(inJson) { /*...do stuff...*/ }
, o nome da função serámyTransform
. Para amostras de UDFs do JavaScript, consulte os exemplos de UDF.PATH_TO_JAVASCRIPT_UDF_FILE
: o URI do Cloud Storage do arquivo.js
que define a função definida pelo usuário (UDF, na sigla em inglês) do JavaScript que você quer usar, por exemplo,gs://my-bucket/my-udfs/my_file.js
ERROR_FILE_WRITE_PATH
: o caminho desejado para o arquivo de erros no Cloud Storage.
API
Para executar o modelo usando a API REST, envie uma solicitação HTTP POST. Para mais informações sobre a
API e os respectivos escopos de autorização, consulte
projects.templates.launch
.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/GCS_Text_to_Datastore { "jobName": "JOB_NAME", "parameters": { "textReadPattern": "PATH_TO_INPUT_TEXT_FILES", "javascriptTextTransformGcsPath": "PATH_TO_JAVASCRIPT_UDF_FILE", "javascriptTextTransformFunctionName": "JAVASCRIPT_FUNCTION", "datastoreWriteProjectId": "PROJECT_ID", "errorWritePath": "ERROR_FILE_WRITE_PATH" }, "environment": { "zone": "us-central1-f" } }
Substitua:
PROJECT_ID
: o ID do projeto do Cloud em que você quer executar o job do DataflowJOB_NAME
: um nome de job de sua escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
LOCATION
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
PATH_TO_INPUT_TEXT_FILES
: o padrão de arquivos de entrada no Cloud StorageJAVASCRIPT_FUNCTION
: o nome da função definida pelo usuário (UDF) do JavaScript que você quer usarPor exemplo, se o código de função do JavaScript for
myTransform(inJson) { /*...do stuff...*/ }
, o nome da função serámyTransform
. Para amostras de UDFs do JavaScript, consulte os exemplos de UDF.PATH_TO_JAVASCRIPT_UDF_FILE
: o URI do Cloud Storage do arquivo.js
que define a função definida pelo usuário (UDF, na sigla em inglês) do JavaScript que você quer usar, por exemplo,gs://my-bucket/my-udfs/my_file.js
ERROR_FILE_WRITE_PATH
: o caminho desejado para o arquivo de erros no Cloud Storage.
Cloud Storage Text para Firestore
O modelo do Cloud Storage Text para Firestore é um pipeline em lote que lê arquivos de texto armazenados no Cloud Storage e grava entidades JSON codificadas no Firestore. Cada linha nos arquivos de texto de entrada precisa estar no formato JSON especificado.
Requisitos para este pipeline:
- O Firestore precisa estar ativado no projeto de destino.
Parâmetros do modelo
Parâmetro | Descrição |
---|---|
textReadPattern |
Um padrão de caminho do Cloud Storage que especifica o local dos seus arquivos de dados de texto.
Por exemplo, gs://mybucket/somepath/*.json . |
javascriptTextTransformGcsPath |
(Opcional)
O URI do Cloud Storage do arquivo .js que define a função definida
pelo usuário (UDF, na sigla em inglês) do JavaScript que você quer usar. Por exemplo, gs://my-bucket/my-udfs/my_file.js .
|
javascriptTextTransformFunctionName |
(Opcional)
O nome da função definida pelo usuário (UDF) do JavaScript que você quer usar.
Por exemplo, se o código de função do JavaScript for
myTransform(inJson) { /*...do stuff...*/ } , o nome da função será
myTransform . Para amostras de UDFs do JavaScript, consulte os
exemplos de UDF.
|
firestoreWriteProjectId |
O ID do projeto do Google Cloud no qual gravar as entidades do Firestore |
firestoreHintNumWorkers |
(Opcional) Dica para o número esperado de workers na etapa de limitação de aumento do Firestore. O padrão é 500 . |
errorWritePath |
O arquivo de saída do registro de erros a ser usado para falhas de gravação que ocorrem durante o processamento. Por exemplo, gs://bucket-name/errors.txt . |
Como executar o modelo do Cloud Storage Text para Firestore
Console
- Acesse a página Criar job usando um modelo do Dataflow. Acesse Criar job usando um modelo
- No campo Nome do job, insira um nome exclusivo.
- Opcional: em Endpoint regional, selecione um valor no menu suspenso. O endpoint
regional padrão é
us-central1
.Para ver uma lista de regiões em que é possível executar um job do Dataflow, consulte Locais do Dataflow.
- No menu suspenso Modelo do Dataflow, selecione the Text Files on Cloud Storage to Firestore template.
- Nos campos de parâmetro fornecidos, insira os valores de parâmetro.
- Cliquem em Executar job.
gcloud
No shell ou no terminal, execute o modelo:
gcloud dataflow jobs run JOB_NAME \ --gcs-location gs://dataflow-templates/VERSION/GCS_Text_to_Firestore \ --region REGION_NAME \ --parameters \ textReadPattern=PATH_TO_INPUT_TEXT_FILES,\ javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\ javascriptTextTransformFunctionName=JAVASCRIPT_FUNCTION,\ firestoreWriteProjectId=PROJECT_ID,\ errorWritePath=ERROR_FILE_WRITE_PATH
Substitua:
JOB_NAME
: um nome de job de sua escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
REGION_NAME
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
PATH_TO_INPUT_TEXT_FILES
: o padrão de arquivos de entrada no Cloud StorageJAVASCRIPT_FUNCTION
: o nome da função definida pelo usuário (UDF) do JavaScript que você quer usarPor exemplo, se o código de função do JavaScript for
myTransform(inJson) { /*...do stuff...*/ }
, o nome da função serámyTransform
. Para amostras de UDFs do JavaScript, consulte os exemplos de UDF.PATH_TO_JAVASCRIPT_UDF_FILE
: o URI do Cloud Storage do arquivo.js
que define a função definida pelo usuário (UDF, na sigla em inglês) do JavaScript que você quer usar, por exemplo,gs://my-bucket/my-udfs/my_file.js
ERROR_FILE_WRITE_PATH
: o caminho desejado para o arquivo de erros no Cloud Storage.
API
Para executar o modelo usando a API REST, envie uma solicitação HTTP POST. Para mais informações sobre a
API e os respectivos escopos de autorização, consulte
projects.templates.launch
.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/GCS_Text_to_Firestore { "jobName": "JOB_NAME", "parameters": { "textReadPattern": "PATH_TO_INPUT_TEXT_FILES", "javascriptTextTransformGcsPath": "PATH_TO_JAVASCRIPT_UDF_FILE", "javascriptTextTransformFunctionName": "JAVASCRIPT_FUNCTION", "firestoreWriteProjectId": "PROJECT_ID", "errorWritePath": "ERROR_FILE_WRITE_PATH" }, "environment": { "zone": "us-central1-f" } }
Substitua:
PROJECT_ID
: o ID do projeto do Cloud em que você quer executar o job do DataflowJOB_NAME
: um nome de job de sua escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
LOCATION
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
PATH_TO_INPUT_TEXT_FILES
: o padrão de arquivos de entrada no Cloud StorageJAVASCRIPT_FUNCTION
: o nome da função definida pelo usuário (UDF) do JavaScript que você quer usarPor exemplo, se o código de função do JavaScript for
myTransform(inJson) { /*...do stuff...*/ }
, o nome da função serámyTransform
. Para amostras de UDFs do JavaScript, consulte os exemplos de UDF.PATH_TO_JAVASCRIPT_UDF_FILE
: o URI do Cloud Storage do arquivo.js
que define a função definida pelo usuário (UDF, na sigla em inglês) do JavaScript que você quer usar, por exemplo,gs://my-bucket/my-udfs/my_file.js
ERROR_FILE_WRITE_PATH
: o caminho desejado para o arquivo de erros no Cloud Storage.
Cloud Storage Text para Pub/Sub (Lote)
Esse modelo cria um pipeline em lote que lê registros de arquivos de texto armazenados no Cloud Storage e os publica em um tópico do Pub/Sub. O modelo pode ser usado para publicar registros em um arquivo delimitado por uma nova linha contendo registros JSON ou em um arquivo CSV em um tópico do Pub/Sub para processamento em tempo real. É possível usar esse modelo para reproduzir dados novamente no Pub/Sub.
Esse modelo não configura carimbos de data/hora nos registros individuais. O tempo do evento é igual ao da publicação durante a execução. Se o pipeline depender de um tempo exato do evento para processamento, não o utilize.
Requisitos para este pipeline:
- Os arquivos a serem lidos precisam estar em formato JSON ou CSV delimitado por nova linha. Registros que abrangem várias linhas nos arquivos de origem podem causar problemas posteriormente, já que cada linha nos arquivos será publicada como uma mensagem para o Pub/Sub.
- O tópico do Pub/Sub precisa existir antes da execução do pipeline.
Parâmetros do modelo
Parâmetro | Descrição |
---|---|
inputFilePattern |
O padrão do arquivo de entrada a ser lido. Por exemplo, gs://bucket-name/files/*.json . |
outputTopic |
O tópico de entrada do Pub/Sub a ser gravado. O nome precisa estar no formato projects/<project-id>/topics/<topic-name> . |
Como executar o modelo do Cloud Storage Text para Pub/Sub (Lote)
Console
- Acesse a página Criar job usando um modelo do Dataflow. Acesse Criar job usando um modelo
- No campo Nome do job, insira um nome exclusivo.
- Opcional: em Endpoint regional, selecione um valor no menu suspenso. O endpoint
regional padrão é
us-central1
.Para ver uma lista de regiões em que é possível executar um job do Dataflow, consulte Locais do Dataflow.
- No menu suspenso Modelo do Dataflow, selecione the Text Files on Cloud Storage to Pub/Sub (Batch) template.
- Nos campos de parâmetro fornecidos, insira os valores de parâmetro.
- Cliquem em Executar job.
gcloud
No shell ou no terminal, execute o modelo:
gcloud dataflow jobs run JOB_NAME \ --gcs-location gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_PubSub \ --region REGION_NAME \ --parameters \ inputFilePattern=gs://BUCKET_NAME/files/*.json,\ outputTopic=projects/PROJECT_ID/topics/TOPIC_NAME
Substitua:
PROJECT_ID
: o ID do projeto do Cloud em que você quer executar o job do DataflowJOB_NAME
: um nome de job de sua escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
REGION_NAME
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
TOPIC_NAME
: o nome do tópico do Pub/SubBUCKET_NAME
: o nome do bucket do Cloud Storage
API
Para executar o modelo usando a API REST, envie uma solicitação HTTP POST. Para mais informações sobre a
API e os respectivos escopos de autorização, consulte
projects.templates.launch
.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_PubSub { "jobName": "JOB_NAME", "parameters": { "inputFilePattern": "gs://BUCKET_NAME/files/*.json", "outputTopic": "projects/PROJECT_ID/topics/TOPIC_NAME" }, "environment": { "zone": "us-central1-f" } }
Substitua:
PROJECT_ID
: o ID do projeto do Cloud em que você quer executar o job do DataflowJOB_NAME
: um nome de job de sua escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
LOCATION
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
TOPIC_NAME
: o nome do tópico do Pub/SubBUCKET_NAME
: o nome do bucket do Cloud Storage
Cloud Storage Text para Cloud Spanner
O modelo do Cloud Storage Text para Cloud Spanner é um pipeline em lote que lê arquivos de texto CSV do Cloud Storage e os importa para um banco de dados do Cloud Spanner.
Requisitos para este pipeline:
- O banco de dados e a tabela de destino do Cloud Spanner precisam existir.
- É necessário ter permissões de leitura para o bucket do Cloud Storage e permissões de gravação para o banco de dados de destino do Cloud Spanner.
- O caminho do Cloud Storage que contém os arquivos CSV precisa existir.
- Você precisa criar um arquivo de manifesto de importação com uma descrição em JSON dos arquivos CSV e armazenar esse arquivo de manifesto no Cloud Storage.
- Se o banco de dados de destino do Cloud Spanner já tiver um esquema, todas as colunas especificadas no arquivo de manifesto precisam ter os mesmos tipos de dados das colunas correspondentes no esquema do banco de dados de destino.
-
O arquivo de manifesto, codificado em ASCII ou UTF-8, precisa ter o formato a seguir:
- Os arquivos de texto a serem importados precisam estar no formato CSV, com codificação ASCII ou UTF-8. Recomendamos não usar a marca de ordem de byte (BOM) em arquivos codificados em UTF-8.
- Os dados precisam corresponder a um dos tipos a seguir:
GoogleSQL
BOOL INT64 FLOAT64 NUMERIC STRING DATE TIMESTAMP BYPES JSON
PostgreSQL
boolean bigint double precision numeric character varying, text date timestamp with time zone bytea
Parâmetros do modelo
Parâmetro | Descrição |
---|---|
instanceId |
O código da instância referente ao banco de dados do Cloud Spanner. |
databaseId |
O ID do banco de dados referente ao banco de dados do Cloud Spanner. |
importManifest |
O caminho no Cloud Storage para o arquivo de manifesto de importação. |
columnDelimiter |
O delimitador de coluna usado pelo arquivo de origem. O valor padrão é , . |
fieldQualifier |
O caractere que deve cercar qualquer valor no arquivo de origem que contém o columnDelimiter . O valor padrão é " .
|
trailingDelimiter |
Especifica se as linhas dos arquivos de origem têm delimitadores à direita, ou seja, se o caractere columnDelimiter aparece no final de cada linha, depois do último valor da coluna. O valor padrão é true . |
escape |
O caractere de escape usado pelo arquivo de origem. Por padrão, esse parâmetro não está definido e o modelo não usa o caractere de escape. |
nullString |
A string que representa um valor NULL . Por padrão, esse parâmetro não está definido e o modelo não usa a string nula. |
dateFormat |
O formato usado para analisar as colunas de data. Por padrão, o pipeline tenta analisar as colunas de data como yyyy-M-d[' 00:00:00'] , por exemplo, como 2019-01-31 ou 2019-1-1 00:00:00.
Se o formato da data for diferente, especifique-o usando os padrões java.time.format.DateTimeFormatter . |
timestampFormat |
O formato usado para analisar colunas de carimbo de data/hora. Se o carimbo de data/hora for um número inteiro longo, ele será analisado como no período Unix. Caso contrário, ele será analisado como uma string que usa o formato java.time.format.DateTimeFormatter.ISO_INSTANT . Para outros casos, especifique sua própria string padrão usando, por exemplo,
MMM dd yyyy HH:mm:ss.SSSVV para carimbos de data/hora na forma de
"Jan 21 1998 01:02:03.456+08:00" . |
Se você precisar usar formatos personalizados de data ou carimbos de data/hora, confirme se eles são padrões java.time.format.DateTimeFormatter
válidos. A tabela a seguir mostra mais exemplos de formatos personalizados de colunas de data e carimbo
de data/hora:
Tipo | Valor de entrada | Formato | Observação |
---|---|---|---|
DATE |
2011-3-31 | O modelo pode analisar esse formato por padrão.
Não é necessário especificar o parâmetro dateFormat . |
|
DATE |
2011-3-31 00:00:00 | O modelo pode analisar esse formato por padrão.
Não é necessário especificar o formato. Se preferir, use yyyy-M-d' 00:00:00' . |
|
DATE |
1º de abril de 2018 | dd MMM, aa | |
DATE |
Quarta-feira, 3 de abril de 2019 AD | EEEE, LLLL d, aaaa G | |
TIMESTAMP |
2019-01-02T11:22:33Z 2019-01-02T11:22:33.123Z 2019-01-02T11:22:33.12356789Z |
O formato padrão ISO_INSTANT pode analisar esse tipo de carimbo de data/hora.
Não é necessário informar o parâmetro timestampFormat . |
|
TIMESTAMP |
1568402363 | Por padrão, o modelo pode analisar esse tipo de carimbo de data/hora como o horário Unix da era Unix. | |
TIMESTAMP |
Ter, 3 jun 2008 11:05:30 GMT | EEE, d MMM aaaa HH:mm:ss VV | |
TIMESTAMP |
2018/12/31 110530.123PST | aaaa/MM/dd HHmmss.SSSz | |
TIMESTAMP |
2019-01-02T11:22:33Z ou 2019-01-02T11:22:33.123Z | aaaa-MM-dd'T'HH:mm:ss [.SSS]VV | Se a coluna de entrada for uma combinação de 2019-01-02T11:22:33Z e 2019-01-02T11:22:33.123Z, o formato padrão poderá analisar esse tipo de carimbo de data/hora. Não é necessário fornecer seu próprio parâmetro de formato.
Use yyyy-MM-dd'T'HH:mm:ss[.SSS]VV para lidar com os dois casos. Observe que não é possível usar yyyy-MM-dd'T'HH:mm:ss[.SSS]'Z' , porque o postfix "Z" precisa ser analisado como um ID de fuso horário, não um caractere literal. Internamente, a coluna de carimbo de data/hora é convertida em java.time.Instant .
Portanto, ele precisa ser especificado em UTC ou ter informações de fuso horário associadas a ele.
A data/hora local, como 2019-01-02 11:22:33, não pode ser analisada como um java.time.Instant válido.
|
Como executar os arquivos de texto no Cloud Storage para o modelo do Cloud Spanner
Console
- Acesse a página Criar job usando um modelo do Dataflow. Acesse Criar job usando um modelo
- No campo Nome do job, insira um nome exclusivo.
- Opcional: em Endpoint regional, selecione um valor no menu suspenso. O endpoint
regional padrão é
us-central1
.Para ver uma lista de regiões em que é possível executar um job do Dataflow, consulte Locais do Dataflow.
- No menu suspenso Modelo do Dataflow, selecione the Text Files on Cloud Storage to Cloud Spanner template.
- Nos campos de parâmetro fornecidos, insira os valores de parâmetro.
- Cliquem em Executar job.
gcloud
No shell ou no terminal, execute o modelo:
gcloud dataflow jobs run JOB_NAME \ --gcs-location gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_Spanner \ --region REGION_NAME \ --parameters \ instanceId=INSTANCE_ID,\ databaseId=DATABASE_ID,\ importManifest=GCS_PATH_TO_IMPORT_MANIFEST
Substitua:
JOB_NAME
: um nome de job de sua escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
REGION_NAME
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
INSTANCE_ID
: código da instância do Cloud Spanner.DATABASE_ID
: ID do banco de dados do Cloud Spanner.GCS_PATH_TO_IMPORT_MANIFEST
: o caminho do Cloud Storage para o arquivo de manifesto de importação.
API
Para executar o modelo usando a API REST, envie uma solicitação HTTP POST. Para mais informações sobre a
API e os respectivos escopos de autorização, consulte
projects.templates.launch
.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_Spanner { "jobName": "JOB_NAME", "parameters": { "instanceId": "INSTANCE_ID", "databaseId": "DATABASE_ID", "importManifest": "GCS_PATH_TO_IMPORT_MANIFEST" }, "environment": { "machineType": "n1-standard-2" } }
Substitua:
PROJECT_ID
: o ID do projeto do Cloud em que você quer executar o job do DataflowJOB_NAME
: um nome de job de sua escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
LOCATION
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
INSTANCE_ID
: código da instância do Cloud Spanner.DATABASE_ID
: ID do banco de dados do Cloud Spanner.GCS_PATH_TO_IMPORT_MANIFEST
: o caminho do Cloud Storage para o arquivo de manifesto de importação.
Cloud Storage para Elasticsearch
O modelo do Cloud Storage para Elasticsearch é um pipeline em lote que lê dados de arquivos csv armazenados em um bucket do Cloud Storage e os grava no Elasticsearch como documentos JSON.
Requisitos para este pipeline:
- O bucket do Cloud Storage precisa existir.
- É necessário que haja um host do Elasticsearch em uma instância do Google Cloud ou no Elasticsearch Cloud acessível pelo Dataflow.
- Uma tabela do BigQuery para saída de erros precisa existir.
Parâmetros do modelo
Parâmetro | Descrição |
---|---|
inputFileSpec |
O padrão de arquivo do Cloud Storage para pesquisar arquivos CSV. Exemplo: gs://mybucket/test-*.csv . |
connectionUrl |
URL do Elasticsearch no formato https://hostname:[port] ou especifique o CloudID se estiver usando o Elastic Cloud. |
apiKey |
Chave da API codificada em Base64 usada para autenticação. |
index |
O índice do Elasticsearch para onde as solicitações serão emitidas, como my-index . |
deadletterTable |
A tabela de mensagens inativas do BigQuery para enviar inserções com falha. Exemplo: <your-project>:<your-dataset>.<your-table-name> . |
containsHeaders |
(Opcional) Booleano que indica se os cabeçalhos estão incluídos no CSV. Padrãotrue . |
delimiter |
(Opcional) O delimitador usado pelo CSV. Exemplo: , |
csvFormat |
(Opcional) O formato CSV de acordo com o formato Apache Commons CSV. Padrão: Default . |
jsonSchemaPath |
(Opcional) O caminho para o esquema JSON. Padrão: null . |
largeNumFiles |
(Opcional) Defina como "verdadeiro" se o número de arquivos estiver na casa de milhares. Padrão: false . |
javascriptTextTransformGcsPath |
(Opcional)
O URI do Cloud Storage do arquivo .js que define a função definida
pelo usuário (UDF, na sigla em inglês) do JavaScript que você quer usar. Por exemplo, gs://my-bucket/my-udfs/my_file.js .
|
javascriptTextTransformFunctionName |
(Opcional)
O nome da função definida pelo usuário (UDF) do JavaScript que você quer usar.
Por exemplo, se o código de função do JavaScript for
myTransform(inJson) { /*...do stuff...*/ } , o nome da função será
myTransform . Para amostras de UDFs do JavaScript, consulte os
exemplos de UDF.
|
batchSize |
(Opcional) Tamanho do lote em número de documentos. Padrão: 1000 . |
batchSizeBytes |
(Opcional) Tamanho do lote em número de bytes. Padrão: 5242880 (5 mb). |
maxRetryAttempts |
(Opcional) Máximo de tentativas de repetição. Precisa ser > 0. Padrão: sem novas tentativas. |
maxRetryDuration |
(Opcional) A duração máxima da nova tentativa em milissegundos precisa ser maior que 0. Padrão: sem novas tentativas. |
csvFileEncoding |
(Opcional) Codificação do arquivo CSV. |
propertyAsIndex |
(Opcional) Uma propriedade no documento que está sendo indexado com o valor que especificará os metadados de _index a serem incluídos com o documento na solicitação em massa (tem precedência sobre uma UDF _index ). Padrão: none. |
propertyAsId |
(Opcional) Uma propriedade no documento que está sendo indexado com o valor que especificará os metadados de _id a serem incluídos com o documento na solicitação em massa (tem precedência sobre uma UDF _id ). Padrão: none. |
javaScriptIndexFnGcsPath |
(Opcional) O caminho do Cloud Storage para a origem UDF em JavaScript de uma função que especificará os metadados de _index a serem incluídos com o documento na solicitação em massa. Padrão: none. |
javaScriptIndexFnName |
(Opcional) Nome da função UDF em JavaScript para a função que especificará os metadados de _index a serem incluídos com o documento na solicitação em massa. Padrão: none. |
javaScriptIdFnGcsPath |
(Opcional) O caminho do Cloud Storage para a origem UDF em JavaScript de uma função que especificará os metadados de _id a serem incluídos com o documento na solicitação em massa. Padrão: none. |
javaScriptIdFnName |
(Opcional) Nome da função UDF em JavaScript para a função que especificará os metadados de _id a serem incluídos com o documento na solicitação em massa. Padrão: none. |
javaScriptTypeFnGcsPath |
(Opcional) O caminho do Cloud Storage para a origem UDF em JavaScript de uma função que especificará os metadados de _type a serem incluídos com o documento na solicitação em massa. Padrão: none. |
javaScriptTypeFnName |
(Opcional) Nome da função UDF em JavaScript para a função que especificará os metadados de _type a serem incluídos com o documento na solicitação em massa. Padrão: none. |
javaScriptIsDeleteFnGcsPath |
(Opcional) O caminho do Cloud Storage para a origem UDF em JavaScript de uma função que determina se o documento deve ser excluído em vez de inserido ou atualizado. A função precisa retornar o valor da string "true" ou "false" . Padrão: none. |
javaScriptIsDeleteFnName |
(Opcional) Nome da função UDF em JavaScript de uma função que vai determinar se o documento deve ser excluído em vez de inserido ou atualizado. A função precisa retornar o valor da string "true" ou "false" . Padrão: none. |
usePartialUpdate |
(Opcional) Indica se as atualizações parciais vão ser usadas (atualizar em vez de criar ou indexar, permitindo documentos parciais) com solicitações Elasticsearch. Padrão: false . |
bulkInsertMethod |
(Opcional) Indica se é necessário usar INDEX (índice, permite ajustes) ou CREATE (criar, erros em _id duplicados) com solicitações em massa do Elasticsearch. Padrão: CREATE . |
Como executar o modelo do Cloud Storage para Elasticsearch
Console
- Acesse a página Criar job usando um modelo do Dataflow. Acesse Criar job usando um modelo
- No campo Nome do job, insira um nome exclusivo.
- Opcional: em Endpoint regional, selecione um valor no menu suspenso. O endpoint
regional padrão é
us-central1
.Para ver uma lista de regiões em que é possível executar um job do Dataflow, consulte Locais do Dataflow.
- No menu suspenso Modelo do Dataflow, selecione the Cloud Storage to Elasticsearch template.
- Nos campos de parâmetro fornecidos, insira os valores de parâmetro.
- Cliquem em Executar job.
gcloud
No shell ou no terminal, execute o modelo:
gcloud beta dataflow flex-template run JOB_NAME \ --project=PROJECT_ID\ --region=REGION_NAME \ --template-file-gcs-location=gs://dataflow-templates/VERSION/flex/GCS_to_Elasticsearch \ --parameters \ inputFileSpec=INPUT_FILE_SPEC,\ connectionUrl=CONNECTION_URL,\ apiKey=APIKEY,\ index=INDEX,\ deadletterTable=DEADLETTER_TABLE,\
Substitua:
PROJECT_ID
: o ID do projeto do Cloud em que você quer executar o job do DataflowJOB_NAME
: um nome de job de sua escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
REGION_NAME
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
INPUT_FILE_SPEC
: o padrão de arquivo do Cloud Storage.CONNECTION_URL
: seu URL do ElasticsearchAPIKEY
: sua chave de API codificada em base64 para autenticação.INDEX
: seu índice do Elasticsearch.DEADLETTER_TABLE
: sua tabela do BigQuery.
API
Para executar o modelo usando a API REST, envie uma solicitação HTTP POST. Para mais informações sobre a
API e os respectivos escopos de autorização, consulte
projects.templates.launch
.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch { "launch_parameter": { "jobName": "JOB_NAME", "parameters": { "inputFileSpec": "INPUT_FILE_SPEC", "connectionUrl": "CONNECTION_URL", "apiKey": "APIKEY", "index": "INDEX", "deadletterTable": "DEADLETTER_TABLE" }, "containerSpecGcsPath": "gs://dataflow-templates/VERSION/flex/GCS_to_Elasticsearch", } }
Substitua:
PROJECT_ID
: o ID do projeto do Cloud em que você quer executar o job do DataflowJOB_NAME
: um nome de job de sua escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
LOCATION
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
INPUT_FILE_SPEC
: o padrão de arquivo do Cloud Storage.CONNECTION_URL
: seu URL do ElasticsearchAPIKEY
: sua chave de API codificada em base64 para autenticação.INDEX
: seu índice do Elasticsearch.DEADLETTER_TABLE
: sua tabela do BigQuery.
Java Database Connectivity (JDBC) para BigQuery
O modelo JDBC para BigQuery é um pipeline em lote que copia dados de uma tabela de banco de dados relacional para uma tabela existente do BigQuery. Esse pipeline usa o JDBC para se conectar ao banco de dados relacional. É possível usar esse modelo para copiar dados de qualquer banco de dados relacional com drivers JDBC disponíveis no BigQuery. Para ter uma camada extra de proteção, é possível transmitir uma chave do Cloud KMS com um nome de usuário, senha e parâmetros da string de conexão criptografados em Base64 com a chave do Cloud KMS. Consulte o endpoint de criptografia da API Cloud KMS para saber mais detalhes sobre como criptografar o nome de usuário, senha e parâmetros da string de conexão.
Requisitos para este pipeline:
- É necessário que os drivers do JDBC para o banco de dados relacional estejam disponíveis.
- A tabela do BigQuery precisa existir antes da execução do pipeline.
- A tabela do BigQuery precisa ter um esquema compatível.
- O banco de dados relacional precisa estar acessível na sub-rede em que o Dataflow é executado.
Parâmetros do modelo
Parâmetro | Descrição |
---|---|
driverJars |
Lista separada por vírgulas de arquivos JAR do driver. Por exemplo, gs://<my-bucket>/driver_jar1.jar,gs://<my-bucket>/driver_jar2.jar |
driverClassName |
O nome da classe do driver do JDBC. Por exemplo, com.mysql.jdbc.Driver . |
connectionURL |
A string do URL de conexão do JDBC. Por exemplo, jdbc:mysql://some-host:3306/sampledb Pode ser transmitida como uma string codificada em Base64 e depois criptografada com uma chave do Cloud KMS. |
query |
A consulta a ser executada na origem para extrair os dados. Por exemplo, select * from sampledb.sample_table |
outputTable |
O local da tabela de saída do BigQuery, no formato de <my-project>:<my-dataset>.<my-table> . |
bigQueryLoadingTemporaryDirectory |
O diretório temporário do processo de carregamento do BigQuery.
Por exemplo, gs://<my-bucket>/my-files/temp_dir |
connectionProperties |
(Opcional) String de propriedades a ser usada para a conexão JDBC. O formato da string precisa ser [propertyName=property;]* . Por exemplo, unicode=true;characterEncoding=UTF-8 . |
username |
(Opcional) O nome do usuário a ser usado para a conexão JDBC. Pode ser transmitida como uma string criptografada em Base64 com uma chave do Cloud KMS. |
password |
(Opcional) Senha a ser usada para a conexão JDBC. Pode ser transmitida como uma string criptografada em Base64 com uma chave do Cloud KMS. |
KMSEncryptionKey |
(Opcional) A chave de criptografia do Cloud KMS para descriptografar o nome de usuário, senha e string de conexão. Se a chave do Cloud KMS for transmitida, o nome de usuário, senha e string de conexão precisarão ser transmitidos criptografados. |
disabledAlgorithms |
(Opcional) Algoritmos separados por vírgulas para desativar. Se esse valor for definido como none , nenhum algoritmo será desativado. Use com cuidado, porque é conhecido que os algoritmos desativados por padrão tenham vulnerabilidades ou problemas de desempenho. Exemplo: SSLv3, RC4. |
extraFilesToStage |
Caminhos do Cloud Storage separados ou vírgulas do Secret Manager para que os arquivos sejam organizados no worker. Esses arquivos serão salvos no diretório /extra_files de cada worker. Por exemplo, gs://<my-bucket>/file.txt,projects/<project-id>/secrets/<secret-id>/versions/<version-id> . |
Como executar o modelo do JDBC para BigQuery
Console
- Acesse a página Criar job usando um modelo do Dataflow. Acesse Criar job usando um modelo
- No campo Nome do job, insira um nome exclusivo.
- Opcional: em Endpoint regional, selecione um valor no menu suspenso. O endpoint
regional padrão é
us-central1
.Para ver uma lista de regiões em que é possível executar um job do Dataflow, consulte Locais do Dataflow.
- No menu suspenso Modelo do Dataflow, selecione the JDBC to BigQuery template.
- Nos campos de parâmetro fornecidos, insira os valores de parâmetro.
- Cliquem em Executar job.
gcloud
No shell ou no terminal, execute o modelo:
gcloud dataflow jobs run JOB_NAME \ --gcs-location gs://dataflow-templates/VERSION/Jdbc_to_BigQuery \ --region REGION_NAME \ --parameters \ driverJars=DRIVER_PATHS,\ driverClassName=DRIVER_CLASS_NAME,\ connectionURL=JDBC_CONNECTION_URL,\ query=SOURCE_SQL_QUERY,\ outputTable=PROJECT_ID:DATASET.TABLE_NAME, bigQueryLoadingTemporaryDirectory=PATH_TO_TEMP_DIR_ON_GCS,\ connectionProperties=CONNECTION_PROPERTIES,\ username=CONNECTION_USERNAME,\ password=CONNECTION_PASSWORD,\ KMSEncryptionKey=KMS_ENCRYPTION_KEY
Substitua:
JOB_NAME
: um nome de job de sua escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
REGION_NAME
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
DRIVER_PATHS
: os caminho(s) do Cloud Storage separado(s) por vírgula do(s) driver(s) JDBCDRIVER_CLASS_NAME
: o nome da classe do driveJDBC_CONNECTION_URL
: o URL de conexão de JDBCSOURCE_SQL_QUERY
: a consulta SQL a ser executada no banco de dados de origem.DATASET
: o conjunto de dados do BigQuery e substituaTABLE_NAME
: o nome da tabela do BigQuery.PATH_TO_TEMP_DIR_ON_GCS
: o caminho do Cloud Storage para o diretório temporárioCONNECTION_PROPERTIES
: as propriedades da conexão JDBC, se necessárioCONNECTION_USERNAME
: o nome de usuário da conexão JDBC.CONNECTION_PASSWORD
: a senha de conexão JDBCKMS_ENCRYPTION_KEY
: a chave de criptografia do Cloud KMS
API
Para executar o modelo usando a API REST, envie uma solicitação HTTP POST. Para mais informações sobre a
API e os respectivos escopos de autorização, consulte
projects.templates.launch
.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/Jdbc_to_BigQuery { "jobName": "JOB_NAME", "parameters": { "driverJars": "DRIVER_PATHS", "driverClassName": "DRIVER_CLASS_NAME", "connectionURL": "JDBC_CONNECTION_URL", "query": "SOURCE_SQL_QUERY", "outputTable": "PROJECT_ID:DATASET.TABLE_NAME", "bigQueryLoadingTemporaryDirectory": "PATH_TO_TEMP_DIR_ON_GCS", "connectionProperties": "CONNECTION_PROPERTIES", "username": "CONNECTION_USERNAME", "password": "CONNECTION_PASSWORD", "KMSEncryptionKey":"KMS_ENCRYPTION_KEY" }, "environment": { "zone": "us-central1-f" } }
Substitua:
PROJECT_ID
: o ID do projeto do Cloud em que você quer executar o job do DataflowJOB_NAME
: um nome de job de sua escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
LOCATION
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
DRIVER_PATHS
: os caminho(s) do Cloud Storage separado(s) por vírgula do(s) driver(s) JDBCDRIVER_CLASS_NAME
: o nome da classe do driveJDBC_CONNECTION_URL
: o URL de conexão de JDBCSOURCE_SQL_QUERY
: a consulta SQL a ser executada no banco de dados de origem.DATASET
: o conjunto de dados do BigQuery e substituaTABLE_NAME
: o nome da tabela do BigQuery.PATH_TO_TEMP_DIR_ON_GCS
: o caminho do Cloud Storage para o diretório temporárioCONNECTION_PROPERTIES
: as propriedades da conexão JDBC, se necessárioCONNECTION_USERNAME
: o nome de usuário da conexão JDBC.CONNECTION_PASSWORD
: a senha de conexão JDBCKMS_ENCRYPTION_KEY
: a chave de criptografia do Cloud KMS
Java Database Connectivity (JDBC) para Pub/Sub
O modelo Java Database Connectivity (JDBC) para Pub/Sub é um pipeline de streaming que ingere dados da origem JDBC e grava os registros resultantes em um tópico preexistente do Pub/Sub como uma string JSON.
Requisitos para este pipeline:
- A origem JDBC precisa existir antes da execução do pipeline.
- O tópico de saída do Cloud Pub/Sub precisa existir antes de o pipeline ser executado.
Parâmetros do modelo
Parâmetro | Descrição |
---|---|
driverClassName |
O nome da classe do driver do JDBC. Por exemplo, com.mysql.jdbc.Driver . |
connectionUrl |
A string do URL de conexão do JDBC. Por exemplo, jdbc:mysql://some-host:3306/sampledb Pode ser transmitida como uma string codificada em Base64 e depois criptografada com uma chave do Cloud KMS. |
driverJars |
Caminhos do Cloud Storage separados por vírgulas para drivers JDBC. Por exemplo, gs://your-bucket/driver_jar1.jar,gs://your-bucket/driver_jar2.jar |
username |
(Opcional) O nome do usuário a ser usado para a conexão JDBC. Pode ser transmitida como uma string criptografada em Base64 com uma chave do Cloud KMS. |
password |
(Opcional) Senha a ser usada para a conexão JDBC. Pode ser transmitida como uma string criptografada em Base64 com uma chave do Cloud KMS. |
connectionProperties |
(Opcional) String de propriedades a ser usada para a conexão JDBC. O formato da string precisa ser [propertyName=property;]* . Por exemplo, unicode=true;characterEncoding=UTF-8 . |
query |
A consulta a ser executada na origem para extrair os dados. Por exemplo, select * from sampledb.sample_table |
outputTopic |
O Pub/Sub para publicar, no formato de projects/<project>/topics/<topic> . |
KMSEncryptionKey |
(Opcional) A chave de criptografia do Cloud KMS para descriptografar o nome de usuário, senha e string de conexão. Se a chave do Cloud KMS for transmitida, o nome de usuário, senha e string de conexão precisarão ser transmitidos criptografados. |
extraFilesToStage |
Caminhos do Cloud Storage separados ou vírgulas do Secret Manager para que os arquivos sejam organizados no worker. Esses arquivos serão salvos no diretório /extra_files de cada worker. Por exemplo, gs://<my-bucket>/file.txt,projects/<project-id>/secrets/<secret-id>/versions/<version-id> . |
Como executar o modelo Java Database Connectivity (JDBC) para Pub/Sub
Console
- Acesse a página Criar job usando um modelo do Dataflow. Acesse Criar job usando um modelo
- No campo Nome do job, insira um nome exclusivo.
- Opcional: em Endpoint regional, selecione um valor no menu suspenso. O endpoint
regional padrão é
us-central1
.Para ver uma lista de regiões em que é possível executar um job do Dataflow, consulte Locais do Dataflow.
- No menu suspenso Modelo do Dataflow, selecione the JDBC to Pub/Sub template.
- Nos campos de parâmetro fornecidos, insira os valores de parâmetro.
- Cliquem em Executar job.
gcloud
No shell ou no terminal, execute o modelo:
gcloud dataflow jobs run JOB_NAME \ --gcs-location gs://dataflow-templates/VERSION/flex/Jdbc_to_PubSub \ --region REGION_NAME \ --parameters \ driverClassName=DRIVER_CLASS_NAME,\ connectionURL=JDBC_CONNECTION_URL,\ driverJars=DRIVER_PATHS,\ username=CONNECTION_USERNAME,\ password=CONNECTION_PASSWORD,\ connectionProperties=CONNECTION_PROPERTIES,\ query=SOURCE_SQL_QUERY,\ outputTopic=OUTPUT_TOPIC,\ KMSEncryptionKey=KMS_ENCRYPTION_KEY
Substitua:
JOB_NAME
: um nome de job de sua escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
REGION_NAME
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
DRIVER_CLASS_NAME
: o nome da classe do driverJDBC_CONNECTION_URL
: o URL de conexão de JDBCDRIVER_PATHS
: os caminho(s) do Cloud Storage separado(s) por vírgula do(s) driver(s) JDBCCONNECTION_USERNAME
: o nome de usuário da conexão JDBC.CONNECTION_PASSWORD
: a senha de conexão JDBCCONNECTION_PROPERTIES
: as propriedades da conexão JDBC, se necessárioSOURCE_SQL_QUERY
: a consulta SQL a ser executada no banco de dados de origem.OUTPUT_TOPIC
: o Pub/Sub a ser publicadoKMS_ENCRYPTION_KEY
: a chave de criptografia do Cloud KMS
API
Para executar o modelo usando a API REST, envie uma solicitação HTTP POST. Para mais informações sobre a
API e os respectivos escopos de autorização, consulte
projects.templates.launch
.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch { "jobName": "JOB_NAME", "parameters": { "driverClassName": "DRIVER_CLASS_NAME", "connectionURL": "JDBC_CONNECTION_URL", "driverJars": "DRIVER_PATHS", "username": "CONNECTION_USERNAME", "password": "CONNECTION_PASSWORD", "connectionProperties": "CONNECTION_PROPERTIES", "query": "SOURCE_SQL_QUERY", "outputTopic": "OUTPUT_TOPIC", "KMSEncryptionKey":"KMS_ENCRYPTION_KEY" }, "environment": { "zone": "us-central1-f" }, }
Substitua:
PROJECT_ID
: o ID do projeto do Cloud em que você quer executar o job do DataflowJOB_NAME
: um nome de job de sua escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
LOCATION
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
DRIVER_CLASS_NAME
: o nome da classe do driverJDBC_CONNECTION_URL
: o URL de conexão de JDBCDRIVER_PATHS
: os caminho(s) do Cloud Storage separado(s) por vírgula do(s) driver(s) JDBCCONNECTION_USERNAME
: o nome de usuário da conexão JDBC.CONNECTION_PASSWORD
: a senha de conexão JDBCCONNECTION_PROPERTIES
: as propriedades da conexão JDBC, se necessárioSOURCE_SQL_QUERY
: a consulta SQL a ser executada no banco de dados de origem.OUTPUT_TOPIC
: o Pub/Sub a ser publicadoKMS_ENCRYPTION_KEY
: a chave de criptografia do Cloud KMS
Apache Cassandra para Cloud Bigtable
O modelo do Apache Cassandra para o Cloud Bigtable copia uma tabela do Apache Cassandra para o Cloud Bigtable. Esse modelo precisa de configuração mínima e replica a estrutura da tabela no Cassandra da maneira mais semelhante possível no Cloud Bigtable.
O modelo do Apache Cassandra para Cloud Bigtable é útil para:
- migrar o banco de dados do Apache Cassandra quando um tempo de inatividade curto é aceitável;
- replicar periodicamente as tabelas do Cassandra no Cloud Bigtable para exibição global.
Requisitos para este pipeline:
- A tabela de destino do Bigtable precisa existir antes da execução do pipeline.
- Conexão de rede entre workers do Dataflow e nós do Apache Cassandra.
Conversão de tipo
O modelo do Apache Cassandra para Cloud Bigtable converte automaticamente os tipos de dados do Apache Cassandra para os tipos de dados do Cloud Bigtable.
A maioria dos primitivos é representada da mesma forma no Cloud Bigtable e no Apache Cassandra, mas estes são diferentes:
Date
eTimestamp
são convertidos em objetosDateTime
UUID
é convertida emString
Varint
é convertida emBigDecimal
O Apache Cassandra também é compatível nativamente com tipos mais complexos como Tuple
, List
, Set
e Map
.
As tuplas não são compatíveis com esse pipeline por que não há um tipo correspondente no Apache Beam.
Por exemplo, no Apache Cassandra, é possível ter uma coluna do tipo List
chamada "mylist" e valores como os da tabela a seguir:
row | mylist |
---|---|
1 | (a,b,c) |
O pipeline expande a coluna de lista em três colunas diferentes, conhecidas no Cloud Bigtable como qualificadoras de colunas. O nome das colunas é "mylist", mas o pipeline anexa o índice do item na lista, como "mylist [0]".
row | mylist[0] | mylist[1] | mylist[2] |
---|---|---|---|
1 | a | b | c |
O pipeline processa os conjuntos da mesma forma que as listas, mas adiciona um sufixo extra para indicar se a célula é uma chave ou um valor.
row | mymap |
---|---|
1 | {"first_key":"first_value","another_key":"different_value"} |
Após a transformação, a tabela aparece da seguinte maneira:
row | mymap[0].key | mymap[0].value | mymap[1].key | mymap[1].value |
---|---|---|---|---|
1 | first_key | first_value | another_key | different_value |
Conversão de chave primária
No Apache Cassandra, uma chave primária é definida usando a linguagem de definição de dados. Ela pode ser simples, composta ou constituída por colunas de clustering. O Cloud Bigtable é compatível com a construção de chave de linha manual, lexicograficamente ordenada em uma matriz de bytes. O pipeline coleta automaticamente informações sobre o tipo de chave e cria uma chave com base nas práticas recomendadas para criar chaves de linha com base em diversos valores.
Parâmetros do modelo
Parâmetro | Descrição |
---|---|
cassandraHosts |
Os hosts dos nós do Apache Cassandra em uma lista separada por vírgulas. |
cassandraPort |
(Opcional) A porta TCP para acessar o Apache Cassandra nos nós (o padrão é 9042 ). |
cassandraKeyspace |
Espaço de chaves do Apache Cassandra em que a tabela está localizada. |
cassandraTable |
A tabela do Apache Cassandra a ser copiada. |
bigtableProjectId |
O ID do projeto do Google Cloud da instância do Bigtable em que a tabela do Apache Cassandra é copiada. |
bigtableInstanceId |
O ID da instância do Bigtable em que a tabela do Apache Cassandra será copiada. |
bigtableTableId |
O nome da tabela do Bigtable em que a tabela do Apache Cassandra será copiada. |
defaultColumnFamily |
Opcional: o nome do grupo de colunas da tabela do Bigtable. O padrão é default . |
rowKeySeparator |
(Opcional) O separador usado para criar a chave de linha (o padrão é # ). |
Como executar o modelo do Apache Cassandra para Cloud Bigtable
Console
- Acesse a página Criar job usando um modelo do Dataflow. Acesse Criar job usando um modelo
- No campo Nome do job, insira um nome exclusivo.
- Opcional: em Endpoint regional, selecione um valor no menu suspenso. O endpoint
regional padrão é
us-central1
.Para ver uma lista de regiões em que é possível executar um job do Dataflow, consulte Locais do Dataflow.
- No menu suspenso Modelo do Dataflow, selecione the Cassandra to Cloud Bigtable template.
- Nos campos de parâmetro fornecidos, insira os valores de parâmetro.
- Cliquem em Executar job.
gcloud
No shell ou no terminal, execute o modelo:
gcloud dataflow jobs run JOB_NAME \ --gcs-location gs://dataflow-templates/VERSION/Cassandra_To_Cloud_Bigtable \ --region REGION_NAME \ --parameters \ bigtableProjectId=BIGTABLE_PROJECT_ID,\ bigtableInstanceId=BIGTABLE_INSTANCE_ID,\ bigtableTableId=BIGTABLE_TABLE_ID,\ cassandraHosts=CASSANDRA_HOSTS,\ cassandraKeyspace=CASSANDRA_KEYSPACE,\ cassandraTable=CASSANDRA_TABLE
Substitua:
JOB_NAME
: um nome de job de sua escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
REGION_NAME
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
BIGTABLE_PROJECT_ID
: o ID do projeto em que o Cloud Bigtable está localizado.BIGTABLE_INSTANCE_ID
: ID da instância do Cloud Bigtable.BIGTABLE_TABLE_ID
: o nome da tabela do Cloud Bigtable.CASSANDRA_HOSTS
: a lista de hosts do Apache Cassandra. Se forem fornecidos vários hosts, siga as instruções sobre como fazer escape de vírgulas.CASSANDRA_KEYSPACE
: o espaço de chaves do Apache Cassandra em que a tabela está localizada.CASSANDRA_TABLE
: a tabela do Apache Cassandra que precisa ser migrada
API
Para executar o modelo usando a API REST, envie uma solicitação HTTP POST. Para mais informações sobre a
API e os respectivos escopos de autorização, consulte
projects.templates.launch
.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/Cassandra_To_Cloud_Bigtable { "jobName": "JOB_NAME", "parameters": { "bigtableProjectId": "BIGTABLE_PROJECT_ID", "bigtableInstanceId": "BIGTABLE_INSTANCE_ID", "bigtableTableId": "BIGTABLE_TABLE_ID", "cassandraHosts": "CASSANDRA_HOSTS", "cassandraKeyspace": "CASSANDRA_KEYSPACE", "cassandraTable": "CASSANDRA_TABLE" }, "environment": { "zone": "us-central1-f" } }
Substitua:
PROJET_ID
: o ID do projeto do Cloud em que você quer executar o job do DataflowJOB_NAME
: um nome de job de sua escolhaVERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
LOCATION
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
BIGTABLE_PROJECT_ID
: o ID do projeto em que o Cloud Bigtable está localizado.BIGTABLE_INSTANCE_ID
: ID da instância do Cloud Bigtable.BIGTABLE_TABLE_ID
: o nome da tabela do Cloud Bigtable.CASSANDRA_HOSTS
: a lista de hosts do Apache Cassandra. Se forem fornecidos vários hosts, siga as instruções sobre como fazer escape de vírgulas.CASSANDRA_KEYSPACE
: o espaço de chaves do Apache Cassandra em que a tabela está localizada.CASSANDRA_TABLE
: a tabela do Apache Cassandra que precisa ser migrada
MongoDB para BigQuery
O modelo MongoDB para BigQuery é um pipeline em lote que lê os documentos do MongoDB e grava no BigQuery, conforme especificado pelo parâmetro userOption
.
Requisitos para esse pipeline
- O conjunto de dados de destino do BigQuery precisa existir.
- A instância de origem do MongoDB precisa ser acessível nas máquinas de trabalho do Dataflow.
Parâmetros do modelo
Parâmetro | Descrição |
---|---|
mongoDbUri |
URI de conexão do MongoDB no formato mongodb+srv://:@ . |
database |
Banco de dados no MongoDB para leitura da coleção. Por exemplo, my-db . |
collection |
Nome da coleção dentro do banco de dados MongoDB. Por exemplo, my-collection . |
outputTableSpec |
Tabela do BigQuery a ser gravada. Por exemplo, bigquery-project:dataset.output_table . |
userOption |
FLATTEN ou NONE . FLATTEN nivela os documentos no primeiro nível. NONE armazena todo o documento como uma string JSON. |
Como executar o modelo do MongoDB para BigQuery
Console
- Acesse a página Criar job usando um modelo do Dataflow. Acesse Criar job usando um modelo
- No campo Nome do job, insira um nome exclusivo.
- Opcional: em Endpoint regional, selecione um valor no menu suspenso. O endpoint
regional padrão é
us-central1
.Para ver uma lista de regiões em que é possível executar um job do Dataflow, consulte Locais do Dataflow.
- No menu suspenso Modelo do Dataflow, selecione the MongoDB to BigQuery template.
- Nos campos de parâmetro fornecidos, insira os valores de parâmetro.
- Cliquem em Executar job.
gcloud
No shell ou no terminal, execute o modelo:
gcloud beta dataflow flex-template run JOB_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --template-file-gcs-location=gs://dataflow-templates/VERSION/flex/MongoDB_to_BigQuery \ --parameters \ outputTableSpec=OUTPUT_TABLE_SPEC,\ mongoDbUri=MONGO_DB_URI,\ database=DATABASE,\ collection=COLLECTION,\ userOption=USER_OPTION
Substitua:
PROJECT_ID
: o ID do projeto do Cloud em que você quer executar o job do DataflowJOB_NAME
: um nome de job de sua escolhaREGION_NAME
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
VERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
OUTPUT_TABLE_SPEC
: o nome da tabela de destino do BigQuery.MONGO_DB_URI
: o URI do MongoDB.DATABASE
: o banco de dados do MongoDB.COLLECTION
: sua coleção do MongoDB.USER_OPTION
: FLATTEN ou NENHUM.
API
Para executar o modelo usando a API REST, envie uma solicitação HTTP POST. Para mais informações sobre a
API e os respectivos escopos de autorização, consulte
projects.templates.launch
.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch { "launch_parameter": { "jobName": "JOB_NAME", "parameters": { "inputTableSpec": "INPUT_TABLE_SPEC", "mongoDbUri": "MONGO_DB_URI", "database": "DATABASE", "collection": "COLLECTION", "userOption": "USER_OPTION" }, "containerSpecGcsPath": "gs://dataflow-templates/VERSION/flex/MongoDB_to_BigQuery", } }
Substitua:
PROJECT_ID
: o ID do projeto do Cloud em que você quer executar o job do DataflowJOB_NAME
: um nome de job de sua escolhaLOCATION
: o endpoint regional em que você quer implantar o job do Dataflow, por exemplo,us-central1
VERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates/latest/- o nome da versão, como
2021-09-20-00_RC00
, para usar uma versão específica do modelo, que pode ser aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates
OUTPUT_TABLE_SPEC
: o nome da tabela de destino do BigQuery.MONGO_DB_URI
: o URI do MongoDB.DATABASE
: o banco de dados do MongoDB.COLLECTION
: sua coleção do MongoDB.USER_OPTION
: FLATTEN ou NENHUM.