Modelos em lote fornecidos pelo Google

O Google fornece um conjunto de modelos de código aberto do Cloud Dataflow. Para informações gerais sobre modelos, consulte a página Visão geral. Para uma lista de todos os modelos fornecidos pelo Google, consulte esta página.

Nesta página, documentamos 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

Executar a partir do Console do Cloud
  1. Acesse a página do Dataflow no Console do Cloud.
  2. Acessar a página do Dataflow
  3. Clique em Criar job usando um modelo.
  4. Criar job usando um botão de modelo no Console do Cloud Platform
  5. Selecione the BigQuery to TFRecords template no menu suspenso Modelo do Dataflow.
  6. Digite o nome de um job no campo Nome do job.
  7. Digite os valores de parâmetro nos campos fornecidos.
  8. Clique em Executar job.

gcloud

Executar a partir da ferramenta de linha de comando gcloud

Observação: para executar modelos com a ferramenta de linha de comando gcloud, é necessário ter o SDK do Cloud versão 138.0.0 ou posterior.

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/Cloud_BigQuery_to_GCS_TensorFlow_Records
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Cloud_BigQuery_to_GCS_TensorFlow_Records \
    --parameters readQuery=READ_QUERY,outputDirectory=OUTPUT_DIRECTORY,trainingPercentage=TRAINING_PERCENTAGE,testingPercentage=TESTING_PERCENTAGE,validationPercentage=VALIDATION_PERCENTAGE,outputSuffix=OUTPUT_FILENAME_SUFFIX

Substitua os seguintes valores:

  • PROJECT_ID: ID do projeto
  • JOB_NAME: um nome de job de sua escolha
  • 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

Executar a partir da API REST

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/Cloud_BigQuery_to_GCS_TensorFlow_Records

Para executar o modelo com a API REST , envie uma solicitação HTTP POST com o ID do projeto. Essa solicitação requer uma autorização.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/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 os seguintes valores:

  • PROJECT_ID: ID do projeto
  • JOB_NAME: um nome de job de sua escolha
  • 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

Executar a partir do Console do Cloud
  1. Acesse a página do Dataflow no Console do Cloud.
  2. Acessar a página do Dataflow
  3. Clique em Criar job usando um modelo.
  4. Criar job usando um botão de modelo no Console do Cloud Platform
  5. Selecione the BigQuery export to Parquet template no menu suspenso Modelo do Dataflow.
  6. Digite o nome de um job no campo Nome do job.
  7. Digite os valores de parâmetro nos campos fornecidos.
  8. Clique em Executar job.

gcloud

Executar a partir da ferramenta de linha de comando gcloud

Observação: para executar modelos Flex usando a ferramenta de linha de comando gcloud, é necessário ter a versão 284.0.0 ou mais recente do SDK do Cloud.

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/flex/BigQuery_to_Parquet
gcloud beta dataflow flex-template run JOB_NAME \
    --project=PROJECT_ID \
    --template-file-gcs-location=gs://dataflow-templates/latest/flex/BigQuery_to_Parquet \
    --parameters \
tableRef=BIGQUERY_TABLE,\
bucket=OUTPUT_DIRECTORY,\
numShards=NUM_SHARDS,\
fields=FIELDS

Substitua os seguintes valores:

  • PROJECT_ID: ID do projeto
  • JOB_NAME: um nome de job de sua escolha
  • BIGQUERY_TABLE: o nome da tabela do BigQuery
  • OUTPUT_DIRECTORY: pasta do Cloud Storage para arquivos de saída
  • NUM_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
  • LOCATION: a região de execução, por exemplo, us-central1.

API

Executar a partir da API REST

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/flex/BigQuery_to_Parquet

Para executar esse modelo com uma solicitação de API REST, envie uma solicitação HTTP POST com o ID do projeto. Essa solicitação requer uma autorização.

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/latest/flex/BigQuery_to_Parquet",
   }
}

Substitua os seguintes valores:

  • PROJECT_ID: ID do projeto
  • JOB_NAME: um nome de job de sua escolha
  • BIGQUERY_TABLE: o nome da tabela do BigQuery
  • OUTPUT_DIRECTORY: pasta do Cloud Storage para arquivos de saída
  • NUM_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
  • LOCATION: a região de execução, por exemplo, us-central1.

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

Executar a partir do Console do Cloud
  1. Acesse a página do Dataflow no Console do Cloud.
  2. Acessar a página do Dataflow
  3. Clique em Criar job usando um modelo.
  4. Criar job usando um botão de modelo no Console do Cloud Platform
  5. Selecione the Cloud Bigtable to Avro Files on Cloud Storage template no menu suspenso Modelo do Dataflow.
  6. Digite o nome de um job no campo Nome do job.
  7. Digite os valores de parâmetro nos campos fornecidos.
  8. Clique em Executar job.

gcloud

Executar a partir da ferramenta de linha de comando gcloud

Observação: para executar modelos usando a ferramenta de linha de comando gcloud, é necessário ter a versão 138.0.0 ou mais recente do SDK do Cloud.

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_Avro
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Cloud_Bigtable_to_GCS_Avro \
    --parameters bigtableProjectId=PROJECT_ID,bigtableInstanceId=INSTANCE_ID,bigtableTableId=TABLE_ID,outputDirectory=OUTPUT_DIRECTORY,filenamePrefix=FILENAME_PREFIX

Use este exemplo de solicitação conforme documentado em Como usar a API REST. Essa solicitação requer autorização, e você precisa especificar um tempLocation em que tenha permissões de gravação. Substitua:

  • PROJECT_ID: ID do projeto
  • JOB_NAME: um nome de job de sua escolha
  • 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

Executar a partir da API REST

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_Avro

Para executar esse modelo com uma solicitação da API REST, envie uma solicitação HTTP POST com o ID do projeto. Essa solicitação requer uma autorização.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/Cloud_Bigtable_to_GCS_Avro
{
   "jobName": "JOB_NAME",
   "parameters": {
       "bigtableProjectId": "PROJECT_ID",
       "bigtableInstanceId": "INSTANCE_ID",
       "bigtableTableId": "TABLE_ID",
       "outputDirectory": "OUTPUT_DIRECTORY",
       "filenamePrefix": "FILENAME_PREFIX",
   },
   "environment": { "zone": "us-central1-f" }
}

Use este exemplo de solicitação conforme documentado em Como usar a API REST. Essa solicitação requer autorização, e você precisa especificar um tempLocation em que tenha permissões de gravação. Substitua:

  • PROJECT_ID: ID do projeto
  • JOB_NAME: um nome de job de sua escolha
  • 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

Executar a partir do Console do Cloud
  1. Acesse a página do Dataflow no Console do Cloud.
  2. Acessar a página do Dataflow
  3. Clique em Criar job usando um modelo.
  4. Criar job usando um botão de modelo no Console do Cloud Platform
  5. Selecione the Cloud Bigtable to Parquet template no menu suspenso Modelo do Dataflow.
  6. Digite o nome de um job no campo Nome do job.
  7. Digite os valores de parâmetro nos campos fornecidos.
  8. Clique em Executar job.

gcloud

Executar a partir da ferramenta de linha de comando gcloud

Observação: para executar modelos usando a ferramenta de linha de comando gcloud, é necessário ter a versão 138.0.0 ou mais recente do SDK do Cloud.

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_Parquet
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Cloud_Bigtable_to_GCS_Parquet \
    --parameters bigtableProjectId=PROJECT_ID,bigtableInstanceId=INSTANCE_ID,bigtableTableId=TABLE_ID,outputDirectory=OUTPUT_DIRECTORY,filenamePrefix=FILENAME_PREFIX,numShards=NUM_SHARDS

Use este exemplo de solicitação conforme documentado em Como usar a API REST. Essa solicitação requer autorização, e você precisa especificar um tempLocation em que tenha permissões de gravação. Substitua:

  • PROJECT_ID: ID do projeto
  • JOB_NAME: um nome de job de sua escolha
  • 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

Executar a partir da API REST

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_Parquet

Para executar esse modelo com uma solicitação de API REST, envie uma solicitação HTTP POST com o ID do projeto. Essa solicitação requer uma autorização.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/Cloud_Bigtable_to_GCS_Parquet
{
   "jobName": "JOB_NAME",
   "parameters": {
       "bigtableProjectId": "PROJECT_ID",
       "bigtableInstanceId": "INSTANCE_ID",
       "bigtableTableId": "TABLE_ID",
       "outputDirectory": "OUTPUT_DIRECTORY",
       "filenamePrefix": "FILENAME_PREFIX",
       "numShards": "NUM_SHARDS"
   },
   "environment": { "zone": "us-central1-f" }
}

Use este exemplo de solicitação conforme documentado em Como usar a API REST. Essa solicitação requer autorização, e você precisa especificar um tempLocation em que tenha permissões de gravação. Substitua:

  • PROJECT_ID: ID do projeto
  • JOB_NAME: um nome de job de sua escolha
  • 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

Executar a partir do Console do Cloud
  1. Acesse a página do Dataflow no Console do Cloud.
  2. Acessar a página do Dataflow
  3. Clique em Criar job usando um modelo.
  4. Criar job usando um botão de modelo no Console do Cloud Platform
  5. Selecione the Cloud Bigtable to SequenceFile Files on Cloud Storage template no menu suspenso Modelo do Dataflow.
  6. Digite o nome de um job no campo Nome do job.
  7. Digite os valores de parâmetro nos campos fornecidos.
  8. Clique em Executar job.

gcloud

Executar a partir da ferramenta de linha de comando gcloud

Observação: para executar modelos usando a ferramenta de linha de comando gcloud, é necessário ter a versão 138.0.0 ou mais recente do SDK do Cloud.

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_SequenceFile
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Cloud_Bigtable_to_GCS_SequenceFile \
    --parameters bigtableProject=PROJECT_ID,bigtableInstanceId=INSTANCE_ID,bigtableTableId=TABLE_ID,bigtableAppProfileId=APPLICATION_PROFILE_ID,destinationPath=DESTINATION_PATH,filenamePrefix=FILENAME_PREFIX

Use este exemplo de solicitação conforme documentado em Como usar a API REST. Essa solicitação requer autorização, e você precisa especificar um tempLocation em que tenha permissões de gravação. Substitua:

  • PROJECT_ID: ID do projeto
  • JOB_NAME: um nome de job de sua escolha
  • 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

Executar a partir da API REST

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_SequenceFile

Para executar esse modelo com uma solicitação de API REST, envie uma solicitação HTTP POST com o ID do projeto. Essa solicitação requer uma autorização.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/Cloud_Bigtable_to_GCS_SequenceFile
{
   "jobName": "JOB_NAME",
   "parameters": {
       "bigtableProject": "PROJECT_ID",
       "bigtableInstanceId": "INSTANCE_ID",
       "bigtableTableId": "TABLE_ID",
       "bigtableAppProfileId": "APPLICATION_PROFILE_ID",
       "destinationPath": "DESTINATION_PATH",
       "filenamePrefix": "FILENAME_PREFIX",
   },
   "environment": { "zone": "us-central1-f" }
}

Use este exemplo de solicitação conforme documentado em Como usar a API REST. Essa solicitação requer autorização, e você precisa especificar um tempLocation em que tenha permissões de gravação. Substitua:

  • PROJECT_ID: ID do projeto
  • JOB_NAME: um nome de job de sua escolha
  • 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

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 Um caminho do Cloud Storage que contém todo o código do JavaScript. Por exemplo, gs://mybucket/mytransforms/*.js. Se não quiser fornecer uma função, deixe esse parâmetro em branco.
javascriptTextTransformFunctionName Nome da função JavaScript a ser chamada. Por exemplo, se a função JavaScript for function myTransform(inJson) { ...dostuff...}, o nome da função será myTransform. Se não quiser fornecer uma função, deixe esse parâmetro em branco.
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

Executar a partir do Console do Cloud
  1. Acesse a página do Dataflow no Console do Cloud.
  2. Acessar a página do Dataflow
  3. Clique em Criar job usando um modelo.
  4. Criar job usando um botão de modelo no Console do Cloud Platform
  5. Selecione the Datastore to Text Files on Cloud Storage template no menu suspenso Modelo do Dataflow.
  6. Digite o nome de um job no campo Nome do job.
  7. Digite os valores de parâmetro nos campos fornecidos.
  8. Clique em Executar job.

gcloud

Executar a partir da ferramenta de linha de comando gcloud

Observação: para executar modelos usando a ferramenta de linha de comando gcloud, é necessário ter a versão 138.0.0 ou mais recente do SDK do Cloud.

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/Datastore_to_GCS_Text
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Datastore_to_GCS_Text \
    --parameters \
datastoreReadGqlQuery="SELECT * FROM DATASTORE_KIND",\
datastoreReadProjectId=PROJECT_ID,\
datastoreReadNamespace=DATASTORE_NAMESPACE,\
javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\
javascriptTextTransformFunctionName=JAVASCRIPT_FUNCTION,\
textWritePrefix=gs://BUCKET_NAME/output/

Substitua:

  • PROJECT_ID: ID do projeto
  • JOB_NAME: um nome de job de sua escolha
  • BUCKET_NAME: o nome do bucket do Cloud Storage
  • DATASTORE_KIND: o tipo das entidades do Datastore.
  • DATASTORE_NAMESPACE: o namespace das entidades do Datastore
  • JAVASCRIPT_FUNCTION: o nome da função do JavaScript
  • PATH_TO_JAVASCRIPT_UDF_FILE: o caminho do Cloud Storage para o arquivo .js que contém o código do JavaScript

API

Executar a partir da API REST

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/Datastore_to_GCS_Text

Para executar esse modelo com uma solicitação de API REST, envie uma solicitação HTTP POST com o ID do projeto. Essa solicitação requer uma autorização.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/Datastore_to_GCS_Text
{
   "jobName": "JOB_NAME",
   "parameters": {
       "datastoreReadGqlQuery": "SELECT * FROM DATASTORE_KIND"
       "datastoreReadProjectId": "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: ID do projeto
  • JOB_NAME: um nome de job de sua escolha
  • BUCKET_NAME: o nome do bucket do Cloud Storage
  • DATASTORE_KIND: o tipo das entidades do Datastore.
  • DATASTORE_NAMESPACE: o namespace das entidades do Datastore
  • JAVASCRIPT_FUNCTION: o nome da função do JavaScript
  • PATH_TO_JAVASCRIPT_UDF_FILE: o caminho do Cloud Storage para o arquivo .js que contém o código do JavaScript

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.
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

Executar a partir do Console do Cloud
  1. Acesse a página do Dataflow no Console do Cloud.
  2. Acessar a página do Dataflow
  3. Clique em Criar job usando um modelo.
  4. Criar job usando um botão de modelo no Console do Cloud Platform
  5. Selecione the Cloud Spanner to Avro Files on Cloud Storage template no menu suspenso Modelo do Dataflow.
  6. Digite o nome de um job no campo Nome do job.
    • O nome do job precisa corresponder ao formato cloud-spanner-export-[YOUR_INSTANCE_ID]-[YOUR_DATABASE_ID] para aparecer na parte do Cloud Spanner do Console do Cloud.
  7. Digite os valores de parâmetro nos campos fornecidos.
  8. Clique em Executar job.

gcloud

Executar a partir da ferramenta de linha de comando gcloud

Observação: para executar modelos usando a ferramenta de linha de comando gcloud, é necessário ter a versão 138.0.0 ou mais recente do SDK do Cloud.

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/Cloud_Spanner_to_GCS_Avro
gcloud dataflow jobs run JOB_NAME \
    --gcs-location='gs://dataflow-templates/VERSION/Cloud_Spanner_to_GCS_Avro' \
    --region=DATAFLOW_REGION \
    --parameters='instanceId=INSTANCE_ID,databaseId=DATABASE_ID,outputDir=GCS_DIRECTORY'

Substitua:

  • JOB_NAME: um nome de job de sua escolha
  • DATAFLOW_REGION: a região em que o job do Dataflow será executado (como 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

Executar a partir da API REST

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/Cloud_Spanner_to_GCS_Avro
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/DATAFLOW_REGION/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"
   }
}

Use este exemplo de solicitação conforme documentado em Como usar a API REST. Essa solicitação requer uma autorização e você precisa especificar um tempLocation em que tenha permissões de gravação. Substitua:

  • PROJECT_ID: ID do projeto
  • DATAFLOW_REGION: a região em que o job do Dataflow será executado (como us-central1).
  • 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
  • JOB_NAME: um nome de job de sua escolha
    • O nome do job precisa corresponder ao formato cloud-spanner-export-INSTANCE_ID-DATABASE_ID para aparecer na parte do Cloud Spanner do Console do Cloud.

Cloud Spanner para Cloud Storage Text

O modelo Cloud Spanner para Cloud Storage Text é um pipeline em lote que lê dados de uma tabela do Cloud Spanner, transforma-os por meio de uma função definida pelo usuário (UDF, na sigla em inglês) do JavaScript 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/.
javascriptTextTransformGcsPath (Opcional) Um caminho do Cloud Storage que contém todo o código do JavaScript. Por exemplo, gs://mybucket/mytransforms/*.js Se não quiser fornecer uma função, deixe esse parâmetro em branco.
javascriptTextTransformFunctionName (Opcional) O nome da função JavaScript a ser chamada. Por exemplo, se a função JavaScript for function myTransform(inJson) { ...dostuff...}, o nome da função será myTransform. Se não quiser fornecer uma função, deixe esse parâmetro em branco.

Como executar o modelo Cloud Spanner para Cloud Storage Text

Console

Executar a partir do Console do Cloud
  1. Acesse a página do Dataflow no Console do Cloud.
  2. Acessar a página do Dataflow
  3. Clique em Criar job usando um modelo.
  4. Criar job usando um botão de modelo no Console do Cloud Platform
  5. Selecione the Cloud Spanner to Text Files on Cloud Storage template no menu suspenso Modelo do Dataflow.
  6. Digite o nome de um job no campo Nome do job.
  7. Digite os valores de parâmetro nos campos fornecidos.
  8. Clique em Executar job.

gcloud

Executar a partir da ferramenta de linha de comando gcloud

Observação: para executar modelos usando a ferramenta de linha de comando gcloud, é necessário ter a versão 138.0.0 ou mais recente do SDK do Cloud.

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/Spanner_to_GCS_Text
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Spanner_to_GCS_Text \
    --parameters \
spannerProjectId=PROJECT_ID,\
spannerDatabaseId=DATABASE_ID,\
spannerInstanceId=INSTANCE_ID,\
spannerTable=TABLE_ID,\
textWritePrefix=gs://BUCKET_NAME/output/,\
javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\
javascriptTextTransformFunctionName=JAVASCRIPT_FUNCTION

Substitua:

  • PROJECT_ID: ID do projeto
  • JOB_NAME: um nome de job de sua escolha
  • DATABASE_ID: o ID do banco de dados do Spanner
  • BUCKET_NAME: o nome do bucket do Cloud Storage
  • INSTANCE_ID: o ID da instância do Spanner
  • TABLE_ID: o ID da tabela do Spanner
  • PATH_TO_JAVASCRIPT_UDF_FILE: o caminho do Cloud Storage para o arquivo .js que contém o código do JavaScript
  • JAVASCRIPT_FUNCTION: o nome da função do JavaScript

API

Executar a partir da API REST

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/Spanner_to_GCS_Text

Para executar esse modelo com uma solicitação de API REST, envie uma solicitação HTTP POST com o ID do projeto. Essa solicitação requer uma autorização.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/Spanner_to_GCS_Text
{
   "jobName": "JOB_NAME",
   "parameters": {
       "spannerProjectId": "PROJECT_ID",
       "spannerDatabaseId": "DATABASE_ID",
       "spannerInstanceId": "INSTANCE_ID",
       "spannerTable": "TABLE_ID",
       "textWritePrefix": "gs://BUCKET_NAME/output/",
       "javascriptTextTransformGcsPath": "PATH_TO_JAVASCRIPT_UDF_FILE",
       "javascriptTextTransformFunctionName": "JAVASCRIPT_FUNCTION"
   },
   "environment": { "zone": "us-central1-f" }
}

Substitua:

  • PROJECT_ID: ID do projeto
  • JOB_NAME: um nome de job de sua escolha
  • DATABASE_ID: o ID do banco de dados do Spanner
  • BUCKET_NAME: o nome do bucket do Cloud Storage
  • INSTANCE_ID: o ID da instância do Spanner
  • TABLE_ID: o ID da tabela do Spanner
  • PATH_TO_JAVASCRIPT_UDF_FILE: o caminho do Cloud Storage para o arquivo .js que contém o código do JavaScript
  • JAVASCRIPT_FUNCTION: o nome da função do JavaScript

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

Executar a partir do Console do Cloud
  1. Acesse a página do Dataflow no Console do Cloud.
  2. Acessar a página do Dataflow
  3. Clique em Criar job usando um modelo.
  4. Criar job usando um botão de modelo no Console do Cloud Platform
  5. Selecione the Avro Files on Cloud Storage to Cloud Bigtable template no menu suspenso Modelo do Dataflow.
  6. Digite o nome de um job no campo Nome do job.
  7. Digite os valores de parâmetro nos campos fornecidos.
  8. Clique em Executar job.

gcloud

Executar a partir da ferramenta de linha de comando gcloud

Observação: para executar modelos usando a ferramenta de linha de comando gcloud, é necessário ter a versão 138.0.0 ou mais recente do SDK do Cloud.

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Bigtable
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/GCS_Avro_to_Cloud_Bigtable \
    --parameters bigtableProjectId=PROJECT_ID,bigtableInstanceId=INSTANCE_ID,bigtableTableId=TABLE_ID,inputFilePattern=INPUT_FILE_PATTERN

Use este exemplo de solicitação conforme documentado em Como usar a API REST. Essa solicitação requer autorização, e você precisa especificar um tempLocation em que tenha permissões de gravação. Substitua:

  • PROJECT_ID: ID do projeto
  • JOB_NAME: um nome de job de sua escolha
  • 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

Executar a partir da API REST

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Bigtable

Para executar esse modelo com uma solicitação de API REST, envie uma solicitação HTTP POST com o ID do projeto. Essa solicitação requer uma autorização.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/GCS_Avro_to_Cloud_Bigtable
{
   "jobName": "JOB_NAME",
   "parameters": {
       "bigtableProjectId": "PROJECT_ID",
       "bigtableInstanceId": "INSTANCE_ID",
       "bigtableTableId": "TABLE_ID",
       "inputFilePattern": "INPUT_FILE_PATTERN",
   },
   "environment": { "zone": "us-central1-f" }
}

Use este exemplo de solicitação conforme documentado em Como usar a API REST. Essa solicitação requer autorização, e você precisa especificar um tempLocation em que tenha permissões de gravação. Substitua:

  • PROJECT_ID: ID do projeto
  • JOB_NAME: um nome de job de sua escolha
  • 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

Executar a partir do Console do Cloud
  1. Acesse a página do Dataflow no Console do Cloud.
  2. Acessar a página do Dataflow
  3. Clique em Criar job usando um modelo.
  4. Criar job usando um botão de modelo no Console do Cloud Platform
  5. Selecione the Avro Files on Cloud Storage to Cloud Spanner template no menu suspenso Modelo do Dataflow.
  6. Digite o nome de um job no campo Nome do job.
    • O nome do job precisa corresponder ao formato cloud-spanner-import-[YOUR_INSTANCE_ID]-[YOUR_DATABASE_ID] para aparecer na parte do Cloud Spanner do Console do Cloud.
  7. Digite os valores de parâmetro nos campos fornecidos.
  8. Clique em Executar job.

gcloud

Executar a partir da ferramenta de linha de comando gcloud

Observação: para executar modelos usando a ferramenta de linha de comando gcloud, é necessário ter a versão 138.0.0 ou mais recente do SDK do Cloud.

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Spanner
gcloud dataflow jobs run JOB_NAME \
    --gcs-location='gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Spanner' \
    --region=DATAFLOW_REGION \
    --staging-location=GCS_STAGING_LOCATION \
    --parameters='instanceId=INSTANCE_ID,databaseId=DATABASE_ID,inputDir=GCS_DIRECTORY'

Use este exemplo de solicitação conforme documentado em Como usar a API REST. Essa solicitação requer autorização, e você precisa especificar um tempLocation em que tenha permissões de gravação. Substitua:

  • (somente API)PROJECT_ID: o ID do projeto
  • DATAFLOW_REGION: a região em que o job do Dataflow será executado (como us-central1).
  • JOB_NAME: um nome de job de sua escolha
  • 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 importado
  • (somente gcloud) GCS_STAGING_LOCATION: o caminho para gravar arquivos temporários, por exemplo, gs://mybucket/temp.
  • GCS_DIRECTORY: o caminho do Cloud Storage de onde os arquivos Avro são importados. Por exemplo, gs://mybucket/somefolder.

API

Executar a partir da API REST

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Spanner
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/DATAFLOW_REGION/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"
   }
}

Use este exemplo de solicitação conforme documentado em Como usar a API REST. Essa solicitação requer autorização, e você precisa especificar um tempLocation em que tenha permissões de gravação. Substitua:

  • (somente API)PROJECT_ID: o ID do projeto
  • DATAFLOW_REGION: a região em que o job do Dataflow será executado (como us-central1).
  • JOB_NAME: um nome de job de sua escolha
  • 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 importado
  • (somente gcloud) GCS_STAGING_LOCATION: o caminho para gravar arquivos temporários, por exemplo, gs://mybucket/temp.
  • GCS_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

Executar a partir do Console do Cloud
  1. Acesse a página do Dataflow no Console do Cloud.
  2. Acessar a página do Dataflow
  3. Clique em Criar job usando um modelo.
  4. Criar job usando um botão de modelo no Console do Cloud Platform
  5. Selecione the Parquet files on Cloud Storage to Cloud Bigtable template no menu suspenso Modelo do Dataflow.
  6. Digite o nome de um job no campo Nome do job.
  7. Digite os valores de parâmetro nos campos fornecidos.
  8. Clique em Executar job.

gcloud

Executar a partir da ferramenta de linha de comando gcloud

Observação: para executar modelos usando a ferramenta de linha de comando gcloud, é necessário ter a versão 138.0.0 ou mais recente do SDK do Cloud.

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/GCS_Parquet_to_Cloud_Bigtable
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/GCS_Parquet_to_Cloud_Bigtable \
    --parameters bigtableProjectId=PROJECT_ID,bigtableInstanceId=INSTANCE_ID,bigtableTableId=TABLE_ID,inputFilePattern=INPUT_FILE_PATTERN

Use este exemplo de solicitação conforme documentado em Como usar a API REST. Essa solicitação requer autorização, e você precisa especificar um tempLocation em que tenha permissões de gravação. Substitua:

  • PROJECT_ID: ID do projeto
  • JOB_NAME: um nome de job de sua escolha
  • 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

Executar a partir da API REST

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/GCS_Parquet_to_Cloud_Bigtable

Para executar esse modelo com uma solicitação de API REST, envie uma solicitação HTTP POST com o ID do projeto. Essa solicitação requer uma autorização.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/GCS_Parquet_to_Cloud_Bigtable
{
   "jobName": "JOB_NAME",
   "parameters": {
       "bigtableProjectId": "PROJECT_ID",
       "bigtableInstanceId": "INSTANCE_ID",
       "bigtableTableId": "TABLE_ID",
       "inputFilePattern": "INPUT_FILE_PATTERN",
   },
   "environment": { "zone": "us-central1-f" }
}

Use este exemplo de solicitação conforme documentado em Como usar a API REST. Essa solicitação requer autorização, e você precisa especificar um tempLocation em que tenha permissões de gravação. Substitua:

  • PROJECT_ID: ID do projeto
  • JOB_NAME: um nome de job de sua escolha
  • 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

Executar a partir do Console do Cloud
  1. Acesse a página do Dataflow no Console do Cloud.
  2. Acessar a página do Dataflow
  3. Clique em Criar job usando um modelo.
  4. Criar job usando um botão de modelo no Console do Cloud Platform
  5. Selecione the Parquet files on Cloud Storage to Cloud Bigtable template no menu suspenso Modelo do Dataflow.
  6. Digite o nome de um job no campo Nome do job.
  7. Digite os valores de parâmetro nos campos fornecidos.
  8. Clique em Executar job.

gcloud

Executar a partir da ferramenta de linha de comando gcloud

Observação: para executar modelos usando a ferramenta de linha de comando gcloud, é necessário ter a versão 138.0.0 ou mais recente do SDK do Cloud.

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/GCS_SequenceFile_to_Cloud_Bigtable
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/GCS_SequenceFile_to_Cloud_Bigtable \
    --parameters bigtableProject=PROJECT_ID,bigtableInstanceId=INSTANCE_ID,bigtableTableId=TABLE_ID,bigtableAppProfileId=APPLICATION_PROFILE_ID,sourcePattern=SOURCE_PATTERN

Use este exemplo de solicitação conforme documentado em Como usar a API REST. Essa solicitação requer autorização, e você precisa especificar um tempLocation em que tenha permissões de gravação. Substitua:

  • PROJECT_ID: ID do projeto
  • JOB_NAME: um nome de job de sua escolha
  • 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

Executar a partir da API REST

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/GCS_SequenceFile_to_Cloud_Bigtable

Para executar esse modelo com uma solicitação de API REST, envie uma solicitação HTTP POST com o ID do projeto. Essa solicitação requer uma autorização.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/GCS_SequenceFile_to_Cloud_Bigtable
{
   "jobName": "JOB_NAME",
   "parameters": {
       "bigtableProject": "PROJECT_ID",
       "bigtableInstanceId": "INSTANCE_ID",
       "bigtableTableId": "TABLE_ID",
       "bigtableAppProfileId": "APPLICATION_PROFILE_ID",
       "sourcePattern": "SOURCE_PATTERN",
   },
   "environment": { "zone": "us-central1-f" }
}

Use este exemplo de solicitação conforme documentado em Como usar a API REST. Essa solicitação requer autorização, e você precisa especificar um tempLocation em que tenha permissões de gravação. Substitua:

  • PROJECT_ID: ID do projeto
  • JOB_NAME: um nome de job de sua escolha
  • 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"}. Exemplo:

    {
      "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 que você quer chamar do arquivo .js.
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 caminho gs:// para o arquivo JavaScript que define a UDF. Por exemplo, gs://path/to/my/javascript_function.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

Executar a partir do Console do Cloud
  1. Acesse a página do Dataflow no Console do Cloud.
  2. Acessar a página do Dataflow
  3. Clique em Criar job usando um modelo.
  4. Criar job usando um botão de modelo no Console do Cloud Platform
  5. Selecione the Text Files on Cloud Storage to BigQuery template no menu suspenso Modelo do Dataflow.
  6. Digite o nome de um job no campo Nome do job.
  7. Digite os valores de parâmetro nos campos fornecidos.
  8. Clique em Executar job.

gcloud

Executar a partir da ferramenta de linha de comando gcloud

Observação: para executar modelos usando a ferramenta de linha de comando gcloud, é necessário ter a versão 138.0.0 ou mais recente do SDK do Cloud.

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/GCS_Text_to_BigQuery
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/GCS_Text_to_BigQuery \
    --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: ID do projeto
  • JOB_NAME: um nome de job de sua escolha
  • JAVASCRIPT_FUNCTION: o nome da UDF
  • PATH_TO_BIGQUERY_SCHEMA_JSON: o caminho do Cloud Storage para o arquivo JSON que contém a definição do esquema
  • PATH_TO_JAVASCRIPT_UDF_FILE: o caminho do Cloud Storage para o arquivo .js que contém o código do JavaScript
  • PATH_TO_TEXT_DATA: o caminho do Cloud Storage para o conjunto de dados de texto
  • BIGQUERY_TABLE: o nome da tabela do BigQuery
  • PATH_TO_TEMP_DIR_ON_GCS: o caminho do Cloud Storage para o diretório temporário

API

Executar a partir da API REST

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/GCS_Text_to_BigQuery

Para executar esse modelo com uma solicitação de API REST, envie uma solicitação HTTP POST com o ID do projeto. Essa solicitação requer uma autorização.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/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: ID do projeto
  • JOB_NAME: um nome de job de sua escolha
  • JAVASCRIPT_FUNCTION: o nome da UDF
  • PATH_TO_BIGQUERY_SCHEMA_JSON: o caminho do Cloud Storage para o arquivo JSON que contém a definição do esquema
  • PATH_TO_JAVASCRIPT_UDF_FILE: o caminho do Cloud Storage para o arquivo .js que contém o código do JavaScript
  • PATH_TO_TEXT_DATA: o caminho do Cloud Storage para o conjunto de dados de texto
  • BIGQUERY_TABLE: o nome da tabela do BigQuery
  • PATH_TO_TEMP_DIR_ON_GCS: o caminho do Cloud Storage para o diretório temporário

Cloud Storage Text para Datastore

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 Um padrão de caminho do Cloud Storage que contém todo o código do JavaScript. Por exemplo, gs://mybucket/mytransforms/*.js. Se não quiser fornecer uma função, deixe esse parâmetro em branco.
javascriptTextTransformFunctionName Nome da função JavaScript a ser chamada. Por exemplo, se a função JavaScript for function myTransform(inJson) { ...dostuff...}, o nome da função será myTransform. Se não quiser fornecer uma função, deixe esse parâmetro em branco.
datastoreWriteProjectId O ID do projeto do Google Cloud no qual gravar as entidades do Datastore
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

Executar a partir do Console do Cloud
  1. Acesse a página do Dataflow no Console do Cloud.
  2. Acessar a página do Dataflow
  3. Clique em Criar job usando um modelo.
  4. Criar job usando um botão de modelo no Console do Cloud Platform
  5. Selecione the Text Files on Cloud Storage to Datastore template no menu suspenso Modelo do Dataflow.
  6. Digite o nome de um job no campo Nome do job.
  7. Digite os valores de parâmetro nos campos fornecidos.
  8. Clique em Executar job.

gcloud

Executar a partir da ferramenta de linha de comando gcloud

Observação: para executar modelos usando a ferramenta de linha de comando gcloud, é necessário ter a versão 138.0.0 ou mais recente do SDK do Cloud.

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/GCS_Text_to_Datastore
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/GCS_Text_to_Datastore \
    --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:

  • PROJECT_ID: ID do projeto
  • JOB_NAME: um nome de job de sua escolha
  • PATH_TO_INPUT_TEXT_FILES: o padrão de arquivos de entrada no Cloud Storage
  • JAVASCRIPT_FUNCTION: o nome da função do JavaScript
  • PATH_TO_JAVASCRIPT_UDF_FILE: o caminho do Cloud Storage para o arquivo .js que contém o código do JavaScript
  • ERROR_FILE_WRITE_PATH: o caminho desejado para o arquivo de erros no Cloud Storage.

API

Executar a partir da API REST

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/GCS_Text_to_Datastore

Para executar esse modelo com uma solicitação de API REST, envie uma solicitação HTTP POST com o ID do projeto. Essa solicitação requer uma autorização.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/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: ID do projeto
  • JOB_NAME: um nome de job de sua escolha
  • PATH_TO_INPUT_TEXT_FILES: o padrão de arquivos de entrada no Cloud Storage
  • JAVASCRIPT_FUNCTION: o nome da função do JavaScript
  • PATH_TO_JAVASCRIPT_UDF_FILE: o caminho do Cloud Storage para o arquivo .js que contém o código do JavaScript
  • 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

Executar a partir do Console do Cloud
  1. Acesse a página do Dataflow no Console do Cloud.
  2. Acessar a página do Dataflow
  3. Clique em Criar job usando um modelo.
  4. Criar job usando um botão de modelo no Console do Cloud Platform
  5. Selecione the Text Files on Cloud Storage to Pub/Sub (Batch) template no menu suspenso Modelo do Dataflow.
  6. Digite o nome de um job no campo Nome do job.
  7. Digite os valores de parâmetro nos campos fornecidos.
  8. Clique em Executar job.

gcloud

Executar a partir da ferramenta de linha de comando gcloud

Observação: para executar modelos usando a ferramenta de linha de comando gcloud, é necessário ter a versão 138.0.0 ou mais recente do SDK do Cloud.

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_PubSub
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/GCS_Text_to_Cloud_PubSub \
    --parameters \
inputFilePattern=gs://BUCKET_NAME/files/*.json,\
outputTopic=projects/PROJECT_ID/topics/TOPIC_NAME

Substitua:

  • PROJECT_ID: ID do projeto
  • JOB_NAME: um nome de job de sua escolha
  • TOPIC_NAME: o nome do tópico do Pub/Sub
  • BUCKET_NAME: o nome do bucket do Cloud Storage

API

Executar a partir da API REST

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_PubSub

Para executar esse modelo com uma solicitação de API REST, envie uma solicitação HTTP POST com o ID do projeto. Essa solicitação requer uma autorização.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/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: ID do projeto
  • JOB_NAME: um nome de job de sua escolha
  • TOPIC_NAME: o nome do tópico do Pub/Sub
  • BUCKET_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:
    • INT64
    • FLOAT64
    • BOOL
    • STRING
    • DATE
    • TIMESTAMP

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

Executar no Console do Cloud
  1. Acesse a página do Dataflow no Console do Cloud.
  2. Acessar a página do Dataflow
  3. Clique em Criar job usando um modelo.
  4. Criar job usando um botão de modelo no Console do Cloud Platform
  5. Selecione the Text Files on Cloud Storage to Cloud Spanner template no menu suspenso Modelo do Dataflow.
  6. Digite o nome de um job no campo Nome do job.
  7. Digite os valores de parâmetro nos campos fornecidos.
  8. Clique em Executar job.

gcloud

Executar com a ferramenta de linha de comando gcloud

Observação: para executar modelos usando a ferramenta de linha de comando gcloud, é necessário ter a versão 138.0.0 ou mais recente do SDK do Cloud.

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_Spanner
gcloud dataflow jobs run JOB_NAME \
    --gcs-location='gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_Spanner' \
    --region=DATAFLOW_REGION \
    --parameters='instanceId=INSTANCE_ID,databaseId=DATABASE_ID,importManifest=GCS_PATH_TO_IMPORT_MANIFEST'

Use este exemplo de solicitação conforme documentado em Como usar a API REST. Essa solicitação requer uma autorização e você precisa especificar um tempLocation em que tenha permissões de gravação. Substitua:

  • DATAFLOW_REGION: a região em que o job do Dataflow será executado (como 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.
  • JOB_NAME: um nome de job de sua escolha

API

Executar com a API REST

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_Spanner
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/DATAFLOW_REGION/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"
   }
}

Use este exemplo de solicitação conforme documentado em Como usar a API REST. Essa solicitação requer uma autorização e você precisa especificar um tempLocation em que tenha permissões de gravação. Substitua:

  • PROJECT_ID: ID do projeto
  • DATAFLOW_REGION: a região em que o job do Dataflow será executado (como 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.
  • JOB_NAME: um nome de job de sua escolha

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. 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.

Como executar o modelo do JDBC para BigQuery

Console

Executar a partir do Console do Cloud
  1. Acesse a página do Dataflow no Console do Cloud.
  2. Acessar a página do Dataflow
  3. Clique em Criar job usando um modelo.
  4. Criar job usando um botão de modelo no Console do Cloud Platform
  5. Selecione the JDBC to BigQuery template no menu suspenso Modelo do Dataflow.
  6. Digite o nome de um job no campo Nome do job.
  7. Digite os valores de parâmetro nos campos fornecidos.
  8. Clique em Executar job.

gcloud

Executar a partir da ferramenta de linha de comando gcloud

Observação: para executar modelos usando a ferramenta de linha de comando gcloud, é necessário ter a versão 138.0.0 ou mais recente do SDK do Cloud.

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/Jdbc_to_BigQuery
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Jdbc_to_BigQuery \
    --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:

  • PROJECT_ID: ID do projeto
  • JOB_NAME: um nome de job de sua escolha
  • DRIVER_PATHS: os caminho(s) do Cloud Storage separado(s) por vírgula do(s) driver(s) JDBC
  • DRIVER_CLASS_NAME: o nome da classe do drive
  • JDBC_CONNECTION_URL: o URL de conexão de JDBC
  • SOURCE_SQL_QUERY: a consulta SQL a ser executada no banco de dados de origem.
  • DATASET: o conjunto de dados do BigQuery e substitua TABLE_NAME: o nome da tabela do BigQuery.
  • PATH_TO_TEMP_DIR_ON_GCS: o caminho do Cloud Storage para o diretório temporário
  • CONNECTION_PROPERTIES: as propriedades da conexão JDBC, se necessário
  • CONNECTION_USERNAME: o nome de usuário da conexão JDBC.
  • CONNECTION_PASSWORD: a senha de conexão JDBC
  • KMS_ENCRYPTION_KEY: a chave de criptografia do Cloud KMS

API

Executar a partir da API REST

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/Jdbc_to_BigQuery

Para executar esse modelo com uma solicitação de API REST, envie uma solicitação HTTP POST com o ID do projeto. Essa solicitação requer uma autorização.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/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: ID do projeto
  • JOB_NAME: um nome de job de sua escolha
  • DRIVER_PATHS: os caminho(s) do Cloud Storage separado(s) por vírgula do(s) driver(s) JDBC
  • DRIVER_CLASS_NAME: o nome da classe do drive
  • JDBC_CONNECTION_URL: o URL de conexão de JDBC
  • SOURCE_SQL_QUERY: a consulta SQL a ser executada no banco de dados de origem.
  • DATASET: o conjunto de dados do BigQuery e substitua TABLE_NAME: o nome da tabela do BigQuery.
  • PATH_TO_TEMP_DIR_ON_GCS: o caminho do Cloud Storage para o diretório temporário
  • CONNECTION_PROPERTIES: as propriedades da conexão JDBC, se necessário
  • CONNECTION_USERNAME: o nome de usuário da conexão JDBC.
  • CONNECTION_PASSWORD: a senha de conexão JDBC
  • KMS_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 e Timestamp são convertidos em objetos DateTime
  • UUID é convertida em String
  • Varint é convertida em BigDecimal

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

Executar a partir do Console do Cloud
  1. Acesse a página do Dataflow no Console do Cloud.
  2. Acessar a página do Dataflow
  3. Clique em Criar job usando um modelo.
  4. Criar job usando um botão de modelo no Console do Cloud Platform
  5. Selecione the Apache Cassandra to Cloud Bigtable template no menu suspenso Modelo do Dataflow.
  6. Digite o nome de um job no campo Nome do job.
  7. Digite os valores de parâmetro nos campos fornecidos.
  8. Clique em Executar job.

gcloud

Executar a partir da ferramenta de linha de comando gcloud

Observação: para executar modelos usando a ferramenta de linha de comando gcloud, é necessário ter a versão 138.0.0 ou mais recente do SDK do Cloud.

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/Cassandra_To_Cloud_Bigtable
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Cassandra_To_Cloud_Bigtable \
    --parameters\
bigtableProjectId=PROJECT_ID,\
bigtableInstanceId=BIGTABLE_INSTANCE_ID,\
bigtableTableId=BIGTABLE_TABLE_ID,\
cassandraHosts=CASSANDRA_HOSTS,\
cassandraKeyspace=CASSANDRA_KEYSPACE,\
cassandraTable=CASSANDRA_TABLE

Substitua:

  • PROJECT_ID: o ID do projeto em que o Cloud Bigtable está localizado.
  • JOB_NAME: um nome de job de sua escolha
  • 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

Executar a partir da API REST

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/Cassandra_To_Cloud_Bigtable

Para executar esse modelo com uma solicitação de API REST, envie uma solicitação HTTP POST com o ID do projeto. Essa solicitação requer uma autorização.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/Cassandra_To_Cloud_Bigtable
{
   "jobName": "JOB_NAME",
   "parameters": {
       "bigtableProjectId": "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:

  • PROJECT_ID: o ID do projeto em que o Cloud Bigtable está localizado.
  • JOB_NAME: um nome de job de sua escolha
  • 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

Apache Hive para BigQuery

O modelo Apache Hive para BigQuery é um pipeline em lote que lê uma tabela do Apache Hive e a grava em uma tabela do BigQuery.

Requisitos para este pipeline:

  • A tabela de destino do BigQuery precisa existir antes da execução do pipeline.
  • A conexão de rede precisa existir entre workers do Dataflow e nós do Apache Hive.
  • A conexão de rede precisa existir entre workers do Dataflow e o nó do servidor Apache Thrift.
  • O conjunto de dados do BigQuery precisa existir antes da execução do pipeline.

Parâmetros do modelo

Parâmetro Descrição
metastoreUri O URI do servidor do Apache Thrift, como thrift://thrift-server-host:port.
hiveDatabaseName O nome do banco de dados Apache Hive que contém a tabela que você quer exportar.
hiveTableName O nome da tabela Apache Hive que você quer exportar.
outputTableSpec O local da tabela de saída do BigQuery, no formato de <my-project>:<my-dataset>.<my-table>
hivePartitionCols (Opcional) A lista separada por vírgulas das colunas de partição do Apache Hive.
filterString (Opcional) A string de filtro para a tabela de entrada do Apache Hive.
partitionType (Opcional) O tipo de partição no BigQuery. Atualmente, somente Time é aceito.
partitionCol (Opcional) O nome da coluna da partição na tabela de saída do BigQuery.

Como executar o modelo do Apache Hive para BigQuery

Console

Executar a partir do Console do Cloud
  1. Acesse a página do Dataflow no Console do Cloud.
  2. Acessar a página do Dataflow
  3. Clique em Criar job usando um modelo.
  4. Criar job usando um botão de modelo no Console do Cloud Platform
  5. Selecione the Apache Hive to BigQuery template no menu suspenso Modelo do Dataflow.
  6. Digite o nome de um job no campo Nome do job.
  7. Digite os valores de parâmetro nos campos fornecidos.
  8. Clique em Executar job.

gcloud

Executar a partir da ferramenta de linha de comando gcloud

Observação: para executar modelos usando a ferramenta de linha de comando gcloud, é necessário ter a versão 138.0.0 ou mais recente do SDK do Cloud.

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/Hive_To_BigQuery
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Hive_To_BigQuery \
    --parameters\
metastoreUri=METASTORE_URI,\
hiveDatabaseName=HIVE_DATABASE_NAME,\
hiveTableName=HIVE_TABLE_NAME,\
outputTableSpec=PROJECT_ID:DATASET.TABLE_NAME,\
hivePartitionCols=HIVE_PARTITION_COLS,\
filterString=FILTER_STRING,\
partitionType=PARTITION_TYPE,\
partitionCol=PARTITION_COL

Substitua:

  • PROJECT_ID: o ID do projeto em que o BigQuery está localizado
  • JOB_NAME: o nome do job de sua escolha
  • DATASET: o conjunto de dados do BigQuery
  • TABLE_NAME: o nome da tabela do BigQuery.
  • METASTORE_URI: o URI do servidor do Apache Thrift.
  • HIVE_DATABASE_NAME: o nome do banco de dados do Apache Hive que contém a tabela a ser exportada
  • HIVE_TABLE_NAME: o nome da tabela do Apache Hive que você quer exportar
  • HIVE_PARTITION_COLS: a lista separada por vírgulas das colunas de partição do Apache Hive
  • FILTER_STRING: a string de filtro da tabela de entrada do Apache Hive
  • PARTITION_TYPE: o tipo de partição no BigQuery
  • PARTITION_COL: o nome da coluna de partição do BigQuery

API

Executar a partir da API REST

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/Hive_To_BigQuery

Para executar esse modelo com uma solicitação de API REST, envie uma solicitação HTTP POST com o ID do projeto. Essa solicitação requer uma autorização.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/Hive_To_BigQuery
{
   "jobName": "JOB_NAME",
   "parameters": {
       "metastoreUri": "METASTORE_URI",
       "hiveDatabaseName": "HIVE_DATABASE_NAME",
       "hiveTableName": "HIVE_TABLE_NAME",
       "outputTableSpec": "PROJECT_ID:DATASET.TABLE_NAME",
       "hivePartitionCols": "HIVE_PARTITION_COLS",
       "filterString": "FILTER_STRING",
       "partitionType": "PARTITION_TYPE",
       "partitionCol": "PARTITION_COL"
   },
   "environment": { "zone": "us-central1-f" }
}

Substitua:

  • PROJECT_ID: o ID do projeto em que o BigQuery está localizado
  • JOB_NAME: o nome do job de sua escolha
  • DATASET: o conjunto de dados do BigQuery
  • TABLE_NAME: o nome da tabela do BigQuery.
  • METASTORE_URI: o URI do servidor do Apache Thrift.
  • HIVE_DATABASE_NAME: o nome do banco de dados do Apache Hive que contém a tabela a ser exportada
  • HIVE_TABLE_NAME: o nome da tabela do Apache Hive que você quer exportar
  • HIVE_PARTITION_COLS: a lista separada por vírgulas das colunas de partição do Apache Hive
  • FILTER_STRING: a string de filtro da tabela de entrada do Apache Hive
  • PARTITION_TYPE: o tipo de partição no BigQuery
  • PARTITION_COL: o nome da coluna de partição do BigQuery

Conversão de formato de arquivo (Avro, Parquet, CSV)

O modelo de conversão do formato de arquivo é um pipeline em lote que converte arquivos armazenados no Cloud Storage de um formato compatível para outro.

As conversões de formato a seguir são compatíveis:

  • CSV para Avro.
  • CSV para Parquet.
  • Avro para Parquet.
  • Parquet para Avro.

Requisitos para este pipeline:

  • O bucket de saída do Cloud Storage precisa existir antes da execução do pipeline.

Parâmetros do modelo

Parâmetro Descrição
inputFileFormat O formato do arquivo de entrada. Precisa ser um dos seguintes valores: [csv, avro, parquet].
outputFileFormat O formato do arquivo de saída. Precisa ser um dos seguintes valores: [avro, parquet].
inputFileSpec O padrão de caminho do Cloud Storage para arquivos de entrada. Por exemplo, gs://bucket-name/path/*.csv.
outputBucket Pasta do Cloud Storage para gravar arquivos de saída. Esse caminho precisa terminar com uma barra. Por exemplo, gs://bucket-name/output/.
schema O caminho do Cloud Storage para o arquivo de esquema do Avro. Por exemplo, gs://bucket-name/schema/my-schema.avsc.
containsHeaders (Opcional) Os arquivos CSV de entrada contêm um registro de cabeçalho (verdadeiro/falso). O valor padrão é false. Obrigatório somente durante a leitura de arquivos CSV.
csvFormat (Opcional) A especificação de formato CSV a ser usada para analisar registros. O valor padrão é Default. Consulte Formato CSV do Apache Commons para mais detalhes.
delimiter (Opcional) O delimitador de campo usado pelos arquivos CSV de entrada.
outputFilePrefix (Opcional) O prefixo do arquivo de saída. O valor padrão é output.
numShards (Opcional) O número de fragmentos de arquivo de saída.

Como executar o modelo de conversão do formato de arquivo

Console

Executar a partir do Console do Cloud
  1. Acesse a página do Dataflow no Console do Cloud.
  2. Acessar a página do Dataflow
  3. Clique em Criar job usando um modelo.
  4. Criar job usando um botão de modelo no Console do Cloud Platform
  5. Selecione the Convert file formats template no menu suspenso Modelo do Dataflow.
  6. Digite o nome de um job no campo Nome do job.
  7. Digite os valores de parâmetro nos campos fornecidos.
  8. Clique em Executar job.

gcloud

Executar a partir da ferramenta de linha de comando gcloud

Observação: para executar modelos Flex usando a ferramenta de linha de comando gcloud, é necessário ter a versão 284.0.0 ou mais recente do SDK do Cloud.

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/flex/File_Format_Conversion
gcloud beta dataflow flex-template run JOB_NAME \
    --project=PROJECT_ID \
    --template-file-gcs-location=gs://dataflow-templates/latest/flex/File_Format_Conversion \
    --parameters \
inputFileFormat=INPUT_FORMAT,\
outputFileFormat=OUTPUT_FORMAT,\
inputFileSpec=INPUT_FILES,\
schema=SCHEMA,\
outputBucket=OUTPUT_FOLDER

Substitua:

  • PROJECT_ID: ID do projeto
  • JOB_NAME: um nome de job de sua escolha
  • INPUT_FORMAT: o formato do arquivo de entrada. Precisa ser um dos seguintes: [csv, avro, parquet]
  • OUTPUT_FORMAT: o formato do arquivo de saída. Precisa ser um dos seguintes: [avro, parquet]
  • INPUT_FILES: o padrão de caminho para arquivos de entrada
  • OUTPUT_FOLDER: pasta do Cloud Storage para arquivos de saída
  • SCHEMA: o caminho para o arquivo de esquema Avro
  • LOCATION: a região de execução, por exemplo, us-central1.

API

Executar a partir da API REST

Ao executar este modelo, é necessário indicar o caminho dele no Cloud Storage:

gs://dataflow-templates/VERSION/flex/File_Format_Conversion

Para executar esse modelo com uma solicitação de API REST, envie uma solicitação HTTP POST com o ID do projeto. Essa solicitação requer uma autorização.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch
{
   "launch_parameter": {
      "jobName": "JOB_NAME",
      "parameters": {
          "inputFileFormat": "INPUT_FORMAT",
          "outputFileFormat": "OUTPUT_FORMAT",
          "inputFileSpec": "INPUT_FILES",
          "schema": "SCHEMA",
          "outputBucket": "OUTPUT_FOLDER"
      },
      "containerSpecGcsPath": "gs://dataflow-templates/latest/flex/File_Format_Conversion",
   }
}

Substitua:

  • PROJECT_ID: ID do projeto
  • JOB_NAME: um nome de job de sua escolha
  • INPUT_FORMAT: o formato do arquivo de entrada. Precisa ser um dos seguintes: [csv, avro, parquet]
  • OUTPUT_FORMAT: o formato do arquivo de saída. Precisa ser um dos seguintes: [avro, parquet]
  • INPUT_FILES: o padrão de caminho para arquivos de entrada
  • OUTPUT_FOLDER: pasta do Cloud Storage para arquivos de saída
  • SCHEMA: o caminho para o arquivo de esquema Avro
  • LOCATION: a região de execução, por exemplo, us-central1.