Modelos em lote fornecidos pelo Google

O Google fornece um conjunto de modelos de código aberto (em inglês) do Cloud Dataflow. Para informações gerais sobre modelos, consulte a página Visão geral. Para uma lista com todos os modelos fornecidos pelo Google, consulte a página Primeiros passos com os modelos fornecidos pelo Google.

Nesta página, documentamos os modelos em lote:

BigQuery para TFRecords do Cloud Storage

O modelo do BigQuery para TFRecords do Cloud Storage é um pipeline que lê os dados de uma consulta do BigQuery e os grava em um bucket do Cloud Storage no formato TFRecord. É possível especificar as divisões de porcentagem de treinamento, teste e validação. Por padrão, a divisão é 1 ou 100% para o conjunto de treinamento e 0 ou 0% para conjuntos de teste e validação. É importante observar que, ao configurar a divisão do conjunto de dados, a soma de treinamento, teste e validação precisa somar 1 ou 100% (por exemplo, 0,6+0,2+0,2). O Dataflow determina automaticamente o número ideal de fragmentos para cada conjunto de dados de saída.

Requisitos para este pipeline:

  • O conjunto de dados e a tabela do BigQuery precisam existir.
  • O bucket de saída do Cloud Storage precisa existir antes da execução do pipeline. Observe que os subdiretórios de treinamento, teste e validação não precisam ser pré-existentes e serão gerados automaticamente.

Parâmetros do modelo

Parâmetro Descrição
readQuery Uma consulta SQL do BigQuery que extrai dados da origem. Por exemplo, select * from dataset1.sample_table.
outputDirectory O prefixo de caminho de nível superior do Cloud Storage no qual gravar os arquivos TFRecord de treinamento, teste e validação. Por exemplo, gs://mybucket/output. Subdiretórios para treinamento, teste e validação de arquivos TFRecord resultantes serão gerados automaticamente com base no 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 Google 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 a partir de um botão de modelo no Console do Cloud Platform
  5. Selecione no menu suspenso Modelo do Dataflow.
  6. Digite o nome de um job no campo Nome do job. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  7. Digite os valores de parâmetro nos campos fornecidos.
  8. Clique em Executar job.

GCLOUD

Executar na ferramenta de linha de comandogcloud

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

Para fazer a solicitação HTTP, substitua os seguintes valores:

  • Substitua [YOUR_PROJECT_ID] pelo ID do projeto.
  • Substitua [JOB_NAME] por um nome de job de sua escolha. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Substitua [READ_QUERY] pela consulta do BigQuery a ser executada.
  • Substitua [OUTPUT_DIRECTORY] pelo prefixo de caminho do Cloud Storage para conjuntos de dados de saída.
  • Substitua [TRAINING_PERCENTAGE] pela divisão percentual decimal para o conjunto de dados de treinamento.
  • Substitua [TESTING_PERCENTAGE] pela divisão percentual decimal para o conjunto de dados de teste.
  • Substitua [VALIDATION_PERCENTAGE] pela divisão percentual decimal para o conjunto de dados de validação.
  • Substitua [OUTPUT_SUFFIX] pelo sufixo do arquivo de saída preferido do TensorFlow Record.
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=[FILENAME_SUFFIX]

API

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

Para fazer a solicitação HTTP, substitua os seguintes valores:

  • Substitua [YOUR_PROJECT_ID] pelo ID do projeto.
  • Substitua [JOB_NAME] por um nome de job de sua escolha. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Substitua [READ_QUERY] pela consulta do BigQuery a ser executada.
  • Substitua [OUTPUT_DIRECTORY] pelo prefixo de caminho do Cloud Storage para conjuntos de dados de saída.
  • Substitua [TRAINING_PERCENTAGE] pela divisão percentual decimal para o conjunto de dados de treinamento.
  • Substitua [TESTING_PERCENTAGE] pela divisão percentual decimal para o conjunto de dados de teste.
  • Substitua [VALIDATION_PERCENTAGE] pela divisão percentual decimal para o conjunto de dados de validação.
  • Substitua [OUTPUT_SUFFIX] pelo sufixo do arquivo de saída preferido do TensorFlow Record.
POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_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":"[FILENAME_SUFFIX]"
   },
   "environment": { "zone": "us-central1-f" }
}

BigQuery para Cloud Storage Parquet (API Storage)

O modelo do BigQuery para 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. 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 Google 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 a partir de um botão de modelo no Console do Cloud Platform
  5. Selecione the BigQuery to Parquet 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 à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  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

Substitua os valores a seguir neste exemplo:

  • Substitua YOUR_PROJECT_ID pelo ID do projeto.
  • Substitua JOB_NAME por um nome de job de sua escolha. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Substitua BIGQUERY_TABLE pelo nome da tabela do BigQuery.
  • Substitua OUTPUT_DIRECTORY pela pasta do Cloud Storage para arquivos de saída.
  • Substitua NUM_SHARDS pelo número pretendido de fragmentos de arquivo de saída.
  • Substitua FIELDS pela lista de campos separados por vírgulas para selecionar na tabela de entrada do BigQuery.
  • Substitua LOCATION pela região de execução. Por exemplo, us-central1.
gcloud beta dataflow flex-template run JOB_NAME \
    --project=YOUR_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

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.

Substitua os valores a seguir neste exemplo:

  • Substitua YOUR_PROJECT_ID pelo ID do projeto.
  • Substitua JOB_NAME por um nome de job de sua escolha. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Substitua BIGQUERY_TABLE pelo nome da tabela do BigQuery.
  • Substitua OUTPUT_DIRECTORY pela pasta do Cloud Storage para arquivos de saída.
  • Substitua NUM_SHARDS pelo número pretendido de fragmentos de arquivo de saída.
  • Substitua FIELDS pela lista de campos separados por vírgulas para selecionar na tabela de entrada do BigQuery.
  • Substitua LOCATION pela região de execução. Por exemplo, us-central1.
POST https://dataflow.googleapis.com/v1b3/projects/YOUR_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",
   }
}

Cloud Bigtable para Cloud Storage Avro

O modelo do Cloud Bigtable para Cloud Storage Avro é um pipeline que lê dados de uma tabela do Cloud Bigtable e os grava em um bucket do Cloud Storage no formato Avro. Use o modelo para mover dados do Cloud Bigtable para o Cloud Storage.

Requisitos para este pipeline:

  • A tabela do Cloud 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 Cloud Bigtable em que você quer ler dados.
bigtableInstanceId O ID da instância do Cloud Bigtable que contém a tabela.
bigtableTableId O ID da tabela do Cloud Bigtable a ser exportada.
outputDirectory 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 de arquivo do Cloud Bigtable para Cloud Storage Avro

CONSOLE

Executar a partir do Console do Google 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 a partir de um botão de modelo no Console do Cloud Platform
  5. Selecione the Cloud Bigtable to Avro 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 à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  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

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 os valores a seguir neste exemplo:

  • Substitua [YOUR_PROJECT_ID] pelo ID do projeto.
  • Substitua [JOB_NAME] por um nome de job de sua escolha. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Substitua [PROJECT_ID] pelo ID do projeto do Google Cloud da instância do Cloud Bigtable da qual você quer ler os dados.
  • Substitua [INSTANCE_ID] pelo ID da instância do Cloud Bigtable que contém a tabela.
  • Substitua [TABLE_ID] pelo ID da tabela do Cloud Bigtable a ser exportada.
  • Substitua [OUTPUT_DIRECTORY] pelo caminho do Cloud Storage em que os dados são gravados. Por exemplo, gs://mybucket/somefolder.
  • Substitua [FILENAME_PREFIX] pelo prefixo do nome do arquivo Avro. Por exemplo, output-.
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]

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.

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 os valores a seguir neste exemplo:

  • Substitua [YOUR_PROJECT_ID] pelo ID do projeto.
  • Substitua [JOB_NAME] por um nome de job de sua escolha. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Substitua [PROJECT_ID] pelo ID do projeto do Google Cloud da instância do Cloud Bigtable da qual você quer ler os dados.
  • Substitua [INSTANCE_ID] pelo ID da instância do Cloud Bigtable que contém a tabela.
  • Substitua [TABLE_ID] pelo ID da tabela do Cloud Bigtable a ser exportada.
  • Substitua [OUTPUT_DIRECTORY] pelo caminho do Cloud Storage em que os dados são gravados. Por exemplo, gs://mybucket/somefolder.
  • Substitua [FILENAME_PREFIX] pelo prefixo do nome do arquivo Avro. Por exemplo, output-.
POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_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" }
}

Cloud Bigtable para Cloud Storage Parquet

O modelo Cloud Bigtable para Cloud Storage Parquet é um pipeline que lê dados de uma tabela do Cloud Bigtable e os grava em um bucket do Cloud Storage no formato Parquet. Use o modelo para mover dados do Cloud Bigtable para o Cloud Storage.

Requisitos para este pipeline:

  • A tabela do Cloud 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 Cloud Bigtable em que você quer ler dados.
bigtableInstanceId O ID da instância do Cloud Bigtable que contém a tabela.
bigtableTableId O ID da tabela do Cloud Bigtable a ser exportada.
outputDirectory 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 arquivos em parquet a serem gerados. Por exemplo, 2.

Como executar o modelo do Cloud Bigtable para arquivo Cloud Storage Parquet

CONSOLE

Executar a partir do Console do Google 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 a partir de 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. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  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

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 os valores a seguir neste exemplo:

  • Substitua [YOUR_PROJECT_ID] pelo ID do projeto.
  • Substitua [JOB_NAME] por um nome de job de sua escolha. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Substitua [PROJECT_ID] pelo ID do projeto do Google Cloud da instância do Cloud Bigtable da qual você quer ler os dados.
  • Substitua [INSTANCE_ID] pelo ID da instância do Cloud Bigtable que contém a tabela.
  • Substitua [TABLE_ID] pelo ID da tabela do Cloud Bigtable a ser exportada.
  • Substitua [OUTPUT_DIRECTORY] pelo caminho do Cloud Storage em que os dados são gravados. Por exemplo, gs://mybucket/somefolder.
  • Substitua [FILENAME_PREFIX] pelo prefixo do nome do arquivo Parquet. Por exemplo, output-.
  • Substitua [NUM_SHARDS] pelo número de arquivos Parquet a serem gerados. Por exemplo, 1.
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]

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 da API REST, envie uma solicitação HTTP POST com o ID do projeto. Essa solicitação requer uma autorização.

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 os valores a seguir neste exemplo:

  • Substitua [YOUR_PROJECT_ID] pelo ID do projeto.
  • Substitua [JOB_NAME] por um nome de job de sua escolha. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Substitua [PROJECT_ID] pelo ID do projeto do Google Cloud da instância do Cloud Bigtable da qual você quer ler os dados.
  • Substitua [INSTANCE_ID] pelo ID da instância do Cloud Bigtable que contém a tabela.
  • Substitua [TABLE_ID] pelo ID da tabela do Cloud Bigtable a ser exportada.
  • Substitua [OUTPUT_DIRECTORY] pelo caminho do Cloud Storage em que os dados são gravados. Por exemplo, gs://mybucket/somefolder.
  • Substitua [FILENAME_PREFIX] pelo prefixo do nome do arquivo Parquet. Por exemplo, output-.
  • Substitua [NUM_SHARDS] pelo número de arquivos Parquet a serem gerados. Por exemplo, 1.
POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_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" }
}

Cloud Bigtable para Cloud Storage SequenceFile

O modelo do Cloud Bigtable para Cloud Storage SequenceFile é um pipeline que lê dados de uma tabela do Cloud Bigtable e os grava em um bucket do Cloud Storage no formato SequenceFile. Use o modelo para copiar dados do Cloud Bigtable para o Cloud Storage.

Requisitos para este pipeline:

  • A tabela do Cloud 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 Cloud Bigtable em que você quer ler dados.
bigtableInstanceId O ID da instância do Cloud Bigtable que contém a tabela.
bigtableTableId O código da tabela do Cloud Bigtable a ser exportada.
bigtableAppProfileId O código do perfil do aplicativo Cloud Bigtable a ser usado para a exportação. O Cloud Bigtable usará o perfil padrão de aplicativo da instância se você não especificar um.
destinationPath 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 Cloud Bigtable para Cloud Storage SequenceFile

CONSOLE

Executar a partir do Console do Google 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 a partir de um botão de modelo no Console do Cloud Platform
  5. Selecione the Cloud Bigtable to SequenceFile 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 à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  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

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 os valores a seguir neste exemplo:

  • Substitua [YOUR_PROJECT_ID] pelo ID do projeto.
  • Substitua [JOB_NAME] por um nome de job de sua escolha. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Substitua [PROJECT_ID] pelo ID do projeto do Google Cloud da instância do Cloud Bigtable da qual você quer ler os dados.
  • Substitua [INSTANCE_ID] pelo ID da instância do Cloud Bigtable que contém a tabela.
  • Substitua [TABLE_ID] pelo ID da tabela do Cloud Bigtable a ser exportada.
  • Substitua [APPLICATION_PROFILE_ID] pelo ID do perfil do aplicativo Cloud Bigtable a ser usado para a exportação.
  • Substitua [DESTINATION_PATH] pelo caminho do Cloud Storage em que os dados são gravados. Por exemplo, gs://mybucket/somefolder.
  • Substitua [FILENAME_PREFIX] pelo prefixo do nome de arquivo do SequenceFile. Por exemplo, output-.
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]

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.

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 os valores a seguir neste exemplo:

  • Substitua [YOUR_PROJECT_ID] pelo ID do projeto.
  • Substitua [JOB_NAME] por um nome de job de sua escolha. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Substitua [PROJECT_ID] pelo ID do projeto do Google Cloud da instância do Cloud Bigtable da qual você quer ler os dados.
  • Substitua [INSTANCE_ID] pelo ID da instância do Cloud Bigtable que contém a tabela.
  • Substitua [TABLE_ID] pelo ID da tabela do Cloud Bigtable a ser exportada.
  • Substitua [APPLICATION_PROFILE_ID] pelo ID do perfil do aplicativo Cloud Bigtable a ser usado para a exportação.
  • Substitua [DESTINATION_PATH] pelo caminho do Cloud Storage em que os dados são gravados. Por exemplo, gs://mybucket/somefolder.
  • Substitua [FILENAME_PREFIX] pelo prefixo do nome de arquivo do SequenceFile. Por exemplo, output-.
POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_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" }
}

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 devem ser gravados. Por exemplo, gs://mybucket/somefolder/.

Como executar o modelo do Datastore para Cloud Storage Text

CONSOLE

Executar a partir do Console do Google 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 a partir de um botão de modelo no Console do Cloud Platform
  5. Selecione the Datastore to Cloud Storage Text 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 à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  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

Substitua os valores a seguir neste exemplo:

  • Substitua YOUR_PROJECT_ID pelo ID do projeto.
  • Substitua JOB_NAME por um nome de job de sua escolha. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Substitua YOUR_BUCKET_NAME pelo nome do bucket no Cloud Storage.
  • Substitua YOUR_DATASTORE_KIND pelo tipo das entidades do Datastore.
  • Substitua YOUR_DATASTORE_NAMESPACE pelo namespace das entidades do Datastore.
  • Substitua YOUR_JAVASCRIPT_FUNCTION pelo nome da função do JavaScript.
  • Substitua PATH_TO_JAVASCRIPT_UDF_FILE pelo caminho do Cloud Storage para o arquivo .js que contém o código do JavaScript.
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Datastore_to_GCS_Text \
    --parameters \
datastoreReadGqlQuery="SELECT * FROM YOUR_DATASTORE_KIND",\
datastoreReadProjectId=YOUR_PROJECT_ID,\
datastoreReadNamespace=YOUR_DATASTORE_NAMESPACE,\
javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\
javascriptTextTransformFunctionName=YOUR_JAVASCRIPT_FUNCTION,\
textWritePrefix=gs://YOUR_BUCKET_NAME/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/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.

Substitua os valores a seguir neste exemplo:

  • Substitua YOUR_PROJECT_ID pelo ID do projeto.
  • Substitua JOB_NAME por um nome de job de sua escolha. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Substitua YOUR_BUCKET_NAME pelo nome do bucket no Cloud Storage.
  • Substitua YOUR_DATASTORE_KIND pelo tipo das entidades do Datastore.
  • Substitua YOUR_DATASTORE_NAMESPACE pelo namespace das entidades do Datastore.
  • Substitua YOUR_JAVASCRIPT_FUNCTION pelo nome da função do JavaScript.
  • Substitua PATH_TO_JAVASCRIPT_UDF_FILE pelo caminho do Cloud Storage para o arquivo .js que contém o código do JavaScript.
POST https://dataflow.googleapis.com/v1b3/projects/YOUR_PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/Datastore_to_GCS_Text
{
   "jobName": "JOB_NAME",
   "parameters": {
       "datastoreReadGqlQuery": "SELECT * FROM YOUR_DATASTORE_KIND"
       "datastoreReadProjectId": "YOUR_PROJECT_ID",
       "datastoreReadNamespace": "YOUR_DATASTORE_NAMESPACE",
       "javascriptTextTransformGcsPath": "PATH_TO_JAVASCRIPT_UDF_FILE",
       "javascriptTextTransformFunctionName": "YOUR_JAVASCRIPT_FUNCTION",
       "textWritePrefix": "gs://YOUR_BUCKET_NAME/output/"
   },
   "environment": { "zone": "us-central1-f" }
}

Cloud Spanner para Cloud Storage Avro

O modelo do Cloud Spanner para 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.

Como executar o modelo

CONSOLE

Executar a partir do Console do Google 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 a partir de um botão de modelo no Console do Cloud Platform
  5. Selecione the Spanner to Cloud Storage Avro 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 à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
    • 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

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 os valores a seguir neste exemplo:

  • Substitua [DATAFLOW_REGION] pela região em que você quer que o job do Dataflow seja executado (como us-central1).
  • Substitua [YOUR_INSTANCE_ID] pelo ID da instância do Cloud Spanner.
  • Substitua [YOUR_DATABASE_ID] pelo ID do banco de dados do Cloud Spanner.
  • Substitua [YOUR_GCS_DIRECTORY] pelo caminho do Cloud Storage para que os arquivos Avro devem ser exportados. .
  • Substitua [JOB_NAME] por um nome de job de sua escolha.
    • O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
    • 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.
gcloud dataflow jobs run [JOB_NAME] \
    --gcs-location='gs://dataflow-templates/[VERSION]/Cloud_Spanner_to_GCS_Avro' \
    --region=[DATAFLOW_REGION] \
    --parameters='instanceId=[YOUR_INSTANCE_ID],databaseId=[YOUR_DATABASE_ID],outputDir=[YOUR_GCS_DIRECTORY]

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

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 os valores a seguir neste exemplo:

  • Substitua [YOUR_PROJECT_ID] pelo ID do projeto.
  • Substitua [DATAFLOW_REGION] pela região em que você quer que o job do Dataflow seja executado (como us-central1).
  • Substitua [YOUR_INSTANCE_ID] pelo ID da instância do Cloud Spanner.
  • Substitua [YOUR_DATABASE_ID] pelo ID do banco de dados do Cloud Spanner.
  • Substitua [YOUR_GCS_DIRECTORY] pelo caminho do Cloud Storage para que os arquivos Avro devem ser exportados. .
  • Substitua [JOB_NAME] por um nome de job de sua escolha.
    • O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
    • 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.
POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_PROJECT_ID]/locations/[DATAFLOW_REGION]/templates:launch?gcsPath=gs://dataflow-templates/[VERSION]/Cloud_Spanner_to_GCS_Avro
{
   "jobName": "[JOB_NAME]",
   "parameters": {
       "instanceId": "[YOUR_INSTANCE_ID]",
       "databaseId": "[YOUR_DATABASE_ID]",
       "outputDir": "gs://[YOUR_GCS_DIRECTORY]"
   }
}

Cloud Spanner para Cloud Storage Text

O modelo do Cloud Spanner para Cloud Storage Text é um pipeline em lote que lê dados de uma tabela do Cloud Spanner, 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 código do projeto do GCP relativo ao banco de dados do Cloud Spanner de que você quer ler os dados.
spannerDatabaseId Banco de dados da tabela solicitada.
spannerInstanceId Instância da tabela solicitada.
spannerTable Tabela para exportar.
textWritePrefix Diretório em que os arquivos de texto de saída serão gravados. Adicione uma barra (/) no final. Por 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] Nome da função do 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 do Cloud Spanner para Cloud Storage Text

CONSOLE

Executar a partir do Console do Google 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 a partir de um botão de modelo no Console do Cloud Platform
  5. Selecione the Cloud Spanner to Cloud Storage Text 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 à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  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

Substitua os valores a seguir neste exemplo:

  • Substitua YOUR_PROJECT_ID pelo ID do projeto.
  • Substitua JOB_NAME por um nome de job de sua escolha. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Substitua YOUR_DATABASE_ID pelo ID do banco de dados do Spanner.
  • Substitua YOUR_BUCKET_NAME pelo nome do bucket no Cloud Storage.
  • Substitua YOUR_INSTANCE_ID pelo ID da instância do Spanner.
  • Substitua YOUR_TABLE_ID pelo ID da tabela do Spanner.
  • Substitua PATH_TO_JAVASCRIPT_UDF_FILE pelo caminho do Cloud Storage para o arquivo .js que contém o código do JavaScript.
  • Substitua YOUR_JAVASCRIPT_FUNCTION pelo nome da função do JavaScript.
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Spanner_to_GCS_Text \
    --parameters \
spannerProjectId=YOUR_PROJECT_ID,\
spannerDatabaseId=YOUR_DATABASE_ID,\
spannerInstanceId=YOUR_INSTANCE_ID,\
spannerTable=YOUR_TABLE_ID,\
textWritePrefix=gs://YOUR_BUCKET_NAME/output/,\
javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\
javascriptTextTransformFunctionName=YOUR_JAVASCRIPT_FUNCTION

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.

Substitua os valores a seguir neste exemplo:

  • Substitua YOUR_PROJECT_ID pelo ID do projeto.
  • Substitua JOB_NAME por um nome de job de sua escolha. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Substitua YOUR_DATABASE_ID pelo ID do banco de dados do Spanner.
  • Substitua YOUR_BUCKET_NAME pelo nome do bucket no Cloud Storage.
  • Substitua YOUR_INSTANCE_ID pelo ID da instância do Spanner.
  • Substitua YOUR_TABLE_ID pelo ID da tabela do Spanner.
  • Substitua PATH_TO_JAVASCRIPT_UDF_FILE pelo caminho do Cloud Storage para o arquivo .js que contém o código do JavaScript.
  • Substitua YOUR_JAVASCRIPT_FUNCTION pelo nome da função do JavaScript.
POST https://dataflow.googleapis.com/v1b3/projects/YOUR_PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/Spanner_to_GCS_Text
{
   "jobName": "JOB_NAME",
   "parameters": {
       "spannerProjectId": "YOUR_PROJECT_ID",
       "spannerDatabaseId": "YOUR_DATABASE_ID",
       "spannerInstanceId": "YOUR_INSTANCE_ID",
       "spannerTable": "YOUR_TABLE_ID",
       "textWritePrefix": "gs://YOUR_BUCKET_NAME/output/",
       "javascriptTextTransformGcsPath": "PATH_TO_JAVASCRIPT_UDF_FILE",
       "javascriptTextTransformFunctionName": "YOUR_JAVASCRIPT_FUNCTION"
   },
   "environment": { "zone": "us-central1-f" }
}

Cloud Storage Avro para Cloud Bigtable

O modelo do Cloud Storage Avro para Cloud Bigtable é um pipeline que lê dados de arquivos Avro em um bucket do Cloud Storage e os grava em uma tabela do Cloud Bigtable. É possível usar o modelo para copiar dados do Cloud Storage para Cloud Bigtable.

Requisitos para este pipeline:

  • A tabela do Cloud 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 Cloud 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 Cloud Bigtable em que você quer gravar dados.
bigtableInstanceId O ID da instância do Cloud Bigtable que contém a tabela.
bigtableTableId O ID da tabela do Cloud 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 de arquivo Avro do Cloud Storage para Cloud Bigtable

CONSOLE

Executar a partir do Console do Google 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 a partir de um botão de modelo no Console do Cloud Platform
  5. Selecione the Cloud Spanner to Cloud Storage Text 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 à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  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

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 os valores a seguir neste exemplo:

  • Substitua [YOUR_PROJECT_ID] pelo ID do projeto.
  • Substitua [JOB_NAME] por um nome de job de sua escolha. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Substitua [PROJECT_ID] pelo ID do projeto do Google Cloud da instância do Cloud Bigtable da qual você quer ler os dados.
  • Substitua [INSTANCE_ID] pelo ID da instância do Cloud Bigtable que contém a tabela.
  • Substitua [TABLE_ID] pelo ID da tabela do Cloud Bigtable a ser exportada.
  • Substitua [INPUT_FILE_PATTERN] pelo padrão de caminho do Cloud Storage em que os dados estão localizados. Por exemplo, gs://mybucket/somefolder/prefix*.
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]

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.

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 os valores a seguir neste exemplo:

  • Substitua [YOUR_PROJECT_ID] pelo ID do projeto.
  • Substitua [JOB_NAME] por um nome de job de sua escolha. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Substitua [PROJECT_ID] pelo ID do projeto do Google Cloud da instância do Cloud Bigtable da qual você quer ler os dados.
  • Substitua [INSTANCE_ID] pelo ID da instância do Cloud Bigtable que contém a tabela.
  • Substitua [TABLE_ID] pelo ID da tabela do Cloud Bigtable a ser exportada.
  • Substitua [INPUT_FILE_PATTERN] pelo padrão de caminho do Cloud Storage em que os dados estão localizados. Por exemplo, gs://mybucket/somefolder/prefix*.
POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_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" }
}

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 do qual os arquivos Avro precisam ser importados.

Como executar o modelo do Cloud Storage Avro para Cloud Spanner

CONSOLE

Executar a partir do Console do Google 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 a partir de um botão de modelo no Console do Cloud Platform
  5. Selecione the Cloud Storage Avro to 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 à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
    • 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

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 os valores a seguir neste exemplo:

  • (Somente API) Substitua [YOUR_PROJECT_ID] pelo ID do projeto.
  • Substitua [DATAFLOW_REGION] pela região em que você quer que o job do Dataflow seja executado (como us-central1).
  • Substitua [JOB_NAME] por um nome de job de sua escolha. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Substitua [YOUR_INSTANCE_ID] pelo ID da instância do Spanner que contém o banco de dados.
  • Substitua [YOUR_DATABASE_ID] pelo ID do banco de dados do Spanner para o qual importar.
  • (Somente na gcloud) Substitua [YOUR_GCS_STAGING_LOCATION] pelo caminho para gravar arquivos temporários. Por exemplo, gs://mybucket/temp.
  • Substitua [YOUR_GCS_DIRECTORY] pelo caminho do Cloud Storage de onde os arquivos Avro precisam ser importados. Por exemplo, gs://mybucket/somefolder.
gcloud dataflow jobs run [JOB_NAME] \
    --gcs-location='gs://dataflow-templates/[VERSION]/GCS_Avro_to_Cloud_Spanner' \
    --region=[DATAFLOW_REGION] \
    --staging-location=[YOUR_GCS_STAGING_LOCATION] \
    --parameters='instanceId=[YOUR_INSTANCE_ID],databaseId=[YOUR_DATABASE_ID],inputDir=[YOUR_GCS_DIRECTORY]'

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

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 os valores a seguir neste exemplo:

  • (Somente API) Substitua [YOUR_PROJECT_ID] pelo ID do projeto.
  • Substitua [DATAFLOW_REGION] pela região em que você quer que o job do Dataflow seja executado (como us-central1).
  • Substitua [JOB_NAME] por um nome de job de sua escolha. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Substitua [YOUR_INSTANCE_ID] pelo ID da instância do Spanner que contém o banco de dados.
  • Substitua [YOUR_DATABASE_ID] pelo ID do banco de dados do Spanner para o qual importar.
  • (Somente na gcloud) Substitua [YOUR_GCS_STAGING_LOCATION] pelo caminho para gravar arquivos temporários. Por exemplo, gs://mybucket/temp.
  • Substitua [YOUR_GCS_DIRECTORY] pelo caminho do Cloud Storage de onde os arquivos Avro precisam ser importados. Por exemplo, gs://mybucket/somefolder.
POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_PROJECT_ID]/locations/[DATAFLOW_REGION]/templates:launch?gcsPath=gs://dataflow-templates/[VERSION]/GCS_Avro_to_Cloud_Spanner
{
   "jobName": "[JOB_NAME]",
   "parameters": {
       "instanceId": "[YOUR_INSTANCE_ID]",
       "databaseId": "[YOUR_DATABASE_ID]",
       "inputDir": "gs://[YOUR_GCS_DIRECTORY]"
   },
   "environment": {
       "machineType": "n1-standard-2"
   }
}

Cloud Storage Parquet para Cloud Bigtable

O modelo Cloud Storage Parquet para Cloud Bigtable é um pipeline que lê dados de arquivos Parquet em um bucket do Cloud Storage e os grava em uma tabela do Cloud Bigtable. É possível usar o modelo para copiar dados do Cloud Storage para Cloud Bigtable.

Requisitos para este pipeline:

  • A tabela do Cloud Bigtable precisa existir e ter as mesmas famílias de colunas que foram exportadas nos arquivos Parquet.
  • Os arquivos Parquet de entrada precisam existir em um bucket do Cloud Storage antes de o pipeline ser executado.
  • O Cloud 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 Cloud Bigtable em que você quer gravar dados.
bigtableInstanceId O ID da instância do Cloud Bigtable que contém a tabela.
bigtableTableId O ID da tabela do Cloud 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 Cloud Bigtable

CONSOLE

Executar a partir do Console do Google 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 a partir de um botão de modelo no Console do Cloud Platform
  5. Selecione the Cloud Storage Avro to 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 à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  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

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 os valores a seguir neste exemplo:

  • Substitua [YOUR_PROJECT_ID] pelo ID do projeto.
  • Substitua [JOB_NAME] por um nome de job de sua escolha. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Substitua [PROJECT_ID] pelo ID do projeto do Google Cloud da instância do Cloud Bigtable da qual você quer ler os dados.
  • Substitua [INSTANCE_ID] pelo ID da instância do Cloud Bigtable que contém a tabela.
  • Substitua [TABLE_ID] pelo ID da tabela do Cloud Bigtable a ser exportada.
  • Substitua [INPUT_FILE_PATTERN] pelo padrão de caminho do Cloud Storage em que os dados estão localizados. Por exemplo, gs://mybucket/somefolder/prefix*.
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]

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.

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 os valores a seguir neste exemplo:

  • Substitua [YOUR_PROJECT_ID] pelo ID do projeto.
  • Substitua [JOB_NAME] por um nome de job de sua escolha. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Substitua [PROJECT_ID] pelo ID do projeto do Google Cloud da instância do Cloud Bigtable da qual você quer ler os dados.
  • Substitua [INSTANCE_ID] pelo ID da instância do Cloud Bigtable que contém a tabela.
  • Substitua [TABLE_ID] pelo ID da tabela do Cloud Bigtable a ser exportada.
  • Substitua [INPUT_FILE_PATTERN] pelo padrão de caminho do Cloud Storage em que os dados estão localizados. Por exemplo, gs://mybucket/somefolder/prefix*.
POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_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" }
}

Cloud Storage SequenceFile para Cloud Bigtable

O modelo do Cloud Storage SequenceFile para Cloud Bigtable é um pipeline que lê dados de SequenceFiles em um bucket do Cloud Storage e os grava em uma tabela do Cloud Bigtable. É possível usar o modelo para copiar dados do Cloud Storage para Cloud Bigtable.

Requisitos para este pipeline:

  • A tabela do Cloud Bigtable precisa existir.
  • Os SequenceFiles de entrada precisam existir em um bucket do Cloud Storage antes de o pipeline ser executado.
  • Os SequenceFiles de entrada precisam ter sido exportado do Cloud Bigtable ou do HBase.

Parâmetros do modelo

Parâmetro Descrição
bigtableProject O ID do projeto do Google Cloud da instância do Cloud Bigtable em que você quer gravar dados.
bigtableInstanceId O ID da instância do Cloud Bigtable que contém a tabela.
bigtableTableId O código da tabela do Cloud Bigtable a ser importada.
bigtableAppProfileId O código do perfil do aplicativo Cloud Bigtable a ser usado para a importação. O Cloud Bigtable usará o perfil padrão de aplicativo da instância se você não especificar um.
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 Cloud Bigtable

CONSOLE

Executar a partir do Console do Google 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 a partir de um botão de modelo no Console do Cloud Platform
  5. Selecione the SequenceFile 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. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  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

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 os valores a seguir neste exemplo:

  • Substitua [YOUR_PROJECT_ID] pelo ID do projeto.
  • Substitua [JOB_NAME] por um nome de job de sua escolha. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Substitua [PROJECT_ID] pelo ID do projeto do Google Cloud da instância do Cloud Bigtable da qual você quer ler os dados.
  • Substitua [INSTANCE_ID] pelo ID da instância do Cloud Bigtable que contém a tabela.
  • Substitua [TABLE_ID] pelo ID da tabela do Cloud Bigtable a ser exportada.
  • Substitua [APPLICATION_PROFILE_ID] pelo ID do perfil do aplicativo Cloud Bigtable a ser usado para a exportação.
  • Substitua [SOURCE_PATTERN] pelo padrão de caminho do Cloud Storage em que os dados estão localizados. Por exemplo, gs://mybucket/somefolder/prefix*.
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]

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.

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 os valores a seguir neste exemplo:

  • Substitua [YOUR_PROJECT_ID] pelo ID do projeto.
  • Substitua [JOB_NAME] por um nome de job de sua escolha. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Substitua [PROJECT_ID] pelo ID do projeto do Google Cloud da instância do Cloud Bigtable da qual você quer ler os dados.
  • Substitua [INSTANCE_ID] pelo ID da instância do Cloud Bigtable que contém a tabela.
  • Substitua [TABLE_ID] pelo ID da tabela do Cloud Bigtable a ser exportada.
  • Substitua [APPLICATION_PROFILE_ID] pelo ID do perfil do aplicativo Cloud Bigtable a ser usado para a exportação.
  • Substitua [SOURCE_PATTERN] pelo padrão de caminho do Cloud Storage em que os dados estão localizados. Por exemplo, gs://mybucket/somefolder/prefix*.
POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_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" }
}

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 gerar o resultado no BigQuery.

IMPORTANTE: se você reutilizar uma tabela atual do BigQuery, ela será substituída.

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 existente do BigQuery, ela será substituída. Por exemplo, my-project-name:my-dataset.my-table.
bigQueryLoadingTemporaryDirectory Diretório temporário para o 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 Google 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 a partir de um botão de modelo no Console do Cloud Platform
  5. Selecione the Cloud Storage Text to BigQuery 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 à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  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

Substitua os valores a seguir neste exemplo:

  • Substitua YOUR_PROJECT_ID pelo ID do projeto.
  • Substitua JOB_NAME por um nome de job de sua escolha. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido
  • Substitua YOUR_JAVASCRIPT_FUNCTION pelo nome da UDF.
  • Substitua PATH_TO_BIGQUERY_SCHEMA_JSON pelo caminho do Cloud Storage para o arquivo JSON que contém a definição do esquema.
  • Substitua PATH_TO_JAVASCRIPT_UDF_FILE pelo caminho do Cloud Storage para o arquivo .js que contém o código do JavaScript.
  • Substitua PATH_TO_YOUR_TEXT_DATA pelo caminho do Cloud Storage para o conjunto de dados de texto.
  • Substitua BIGQUERY_TABLE pelo nome da tabela do BigQuery.
  • Substitua PATH_TO_TEMP_DIR_ON_GCS pelo caminho do Cloud Storage para o diretório temporário.
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/GCS_Text_to_BigQuery \
    --parameters \
javascriptTextTransformFunctionName=YOUR_JAVASCRIPT_FUNCTION,\
JSONPath=PATH_TO_BIGQUERY_SCHEMA_JSON,\
javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\
inputFilePattern=PATH_TO_YOUR_TEXT_DATA,\
outputTable=BIGQUERY_TABLE,\
bigQueryLoadingTemporaryDirectory=PATH_TO_TEMP_DIR_ON_GCS

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.

Substitua os valores a seguir neste exemplo:

  • Substitua YOUR_PROJECT_ID pelo ID do projeto.
  • Substitua JOB_NAME por um nome de job de sua escolha. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido
  • Substitua YOUR_JAVASCRIPT_FUNCTION pelo nome da UDF.
  • Substitua PATH_TO_BIGQUERY_SCHEMA_JSON pelo caminho do Cloud Storage para o arquivo JSON que contém a definição do esquema.
  • Substitua PATH_TO_JAVASCRIPT_UDF_FILE pelo caminho do Cloud Storage para o arquivo .js que contém o código do JavaScript.
  • Substitua PATH_TO_YOUR_TEXT_DATA pelo caminho do Cloud Storage para o conjunto de dados de texto.
  • Substitua BIGQUERY_TABLE pelo nome da tabela do BigQuery.
  • Substitua PATH_TO_TEMP_DIR_ON_GCS pelo caminho do Cloud Storage para o diretório temporário.
POST https://dataflow.googleapis.com/v1b3/projects/YOUR_PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/GCS_Text_to_BigQuery
{
   "jobName": "JOB_NAME",
   "parameters": {
       "javascriptTextTransformFunctionName": "YOUR_JAVASCRIPT_FUNCTION",
       "JSONPath": "PATH_TO_BIGQUERY_SCHEMA_JSON",
       "javascriptTextTransformGcsPath": "PATH_TO_JAVASCRIPT_UDF_FILE",
       "inputFilePattern":"PATH_TO_YOUR_TEXT_DATA",
       "outputTable":"BIGQUERY_TABLE",
       "bigQueryLoadingTemporaryDirectory": "PATH_TO_TEMP_DIR_ON_GCS"
   },
   "environment": { "zone": "us-central1-f" }
}

Cloud Storage Text para Datastore

O modelo Cloud Storage Text para Datastore é um pipeline em lote que lê arquivos de texto armazenados no Cloud Storage e grava entidades codificadas em JSON no Datastore. Cada linha nos arquivos de texto de entrada deve estar no formato JSON especificado em https://cloud.google.com/datastore/docs/reference/rest/v1/Entity.

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 de arquivo 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 Google 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 a partir de um botão de modelo no Console do Cloud Platform
  5. Selecione the Cloud Storage Text to Datastore 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 à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  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

Substitua os valores a seguir neste exemplo:

  • Substitua YOUR_PROJECT_ID pelo ID do projeto.
  • Substitua JOB_NAME por um nome de job de sua escolha. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Substitua PATH_TO_INPUT_TEXT_FILES pelo padrão de arquivos de entrada no Cloud Storage.
  • Substitua YOUR_JAVASCRIPT_FUNCTION pelo nome da função do JavaScript.
  • Substitua PATH_TO_JAVASCRIPT_UDF_FILE pelo caminho do Cloud Storage para o arquivo .js que contém o código do JavaScript.
  • Substitua ERROR_FILE_WRITE_PATH pelo caminho desejado para o arquivo de erros no Cloud Storage.
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=YOUR_JAVASCRIPT_FUNCTION,\
datastoreWriteProjectId=YOUR_PROJECT_ID,\
errorWritePath=ERROR_FILE_WRITE_PATH

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.

Substitua os valores a seguir neste exemplo:

  • Substitua YOUR_PROJECT_ID pelo ID do projeto.
  • Substitua JOB_NAME por um nome de job de sua escolha. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Substitua PATH_TO_INPUT_TEXT_FILES pelo padrão de arquivos de entrada no Cloud Storage.
  • Substitua YOUR_JAVASCRIPT_FUNCTION pelo nome da função do JavaScript.
  • Substitua PATH_TO_JAVASCRIPT_UDF_FILE pelo caminho do Cloud Storage para o arquivo .js que contém o código do JavaScript.
  • Substitua ERROR_FILE_WRITE_PATH pelo caminho desejado para o arquivo de erros no Cloud Storage.
POST https://dataflow.googleapis.com/v1b3/projects/YOUR_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": "YOUR_JAVASCRIPT_FUNCTION",
       "datastoreWriteProjectId": "YOUR_PROJECT_ID",
       "errorWritePath": "ERROR_FILE_WRITE_PATH"
   },
   "environment": { "zone": "us-central1-f" }
}

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.

Observe que esse modelo não configura carimbos de data/hora nos registros individuais, assim o horário do evento será igual ao da publicação durante a execução. Se o processamento do pipeline depender de um tempo de evento preciso, 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 de o pipeline ser executado.

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 Google 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 a partir de um botão de modelo no Console do Cloud Platform
  5. Selecione the Cloud Storage Text to Pub/Sub (Batch) 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 à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  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

Substitua os valores a seguir neste exemplo:

  • Substitua YOUR_PROJECT_ID pelo ID do projeto.
  • Substitua JOB_NAME por um nome de job de sua escolha. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido
  • Substitua YOUR_TOPIC_NAME pelo nome do tópico do Pub/Sub.
  • Substitua YOUR_BUCKET_NAME pelo nome do bucket do Cloud Storage.
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/GCS_Text_to_Cloud_PubSub \
    --parameters \
inputFilePattern=gs://YOUR_BUCKET_NAME/files/*.json,\
outputTopic=projects/YOUR_PROJECT_ID/topics/YOUR_TOPIC_NAME

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.

Substitua os valores a seguir neste exemplo:

  • Substitua YOUR_PROJECT_ID pelo ID do projeto.
  • Substitua JOB_NAME por um nome de job de sua escolha. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido
  • Substitua YOUR_TOPIC_NAME pelo nome do tópico do Pub/Sub.
  • Substitua YOUR_BUCKET_NAME pelo nome do bucket do Cloud Storage.
POST https://dataflow.googleapis.com/v1b3/projects/YOUR_PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/GCS_Text_to_Cloud_PubSub
{
   "jobName": "JOB_NAME",
   "parameters": {
       "inputFilePattern": "gs://YOUR_BUCKET_NAME/files/*.json",
       "outputTopic": "projects/YOUR_PROJECT_ID/topics/YOUR_TOPIC_NAME"
   },
   "environment": { "zone": "us-central1-f" }
}

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 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 era 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. No entanto, é possível usar 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 o modelo

Console

Execute no Console do Google 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 a partir de um botão de modelo no Console do Cloud Platform
  5. Selecione the Cloud Storage Text 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 à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  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

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 os valores a seguir neste exemplo:

  • Substitua [DATAFLOW_REGION] pela região em que você quer que o job do Dataflow seja executado (como us-central1).
  • Substitua [YOUR_INSTANCE_ID] pelo ID da instância do Cloud Spanner.
  • Substitua [YOUR_DATABASE_ID] pelo ID do banco de dados do Cloud Spanner.
  • Substitua [GCS_PATH_TO_IMPORT_MANIFEST] pelo caminho do Cloud Storage para o arquivo de manifesto de importação.
  • Substitua [JOB_NAME] por um nome de job de sua escolha. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
gcloud dataflow jobs run [JOB_NAME] \
    --gcs-location='gs://dataflow-templates/[VERSION]/GCS_Text_to_Cloud_Spanner' \
    --region=[DATAFLOW_REGION] \
    --parameters='instanceId=[YOUR_INSTANCE_ID],databaseId=[YOUR_DATABASE_ID],importManifest=[GCS_PATH_TO_IMPORT_MANIFEST]'

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

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 os valores a seguir neste exemplo:

  • Substitua [YOUR_PROJECT_ID] pelo ID do projeto.
  • Substitua [DATAFLOW_REGION] pela região em que você quer que o job do Dataflow seja executado (como us-central1).
  • Substitua [YOUR_INSTANCE_ID] pelo ID da instância do Cloud Spanner.
  • Substitua [YOUR_DATABASE_ID] pelo ID do banco de dados do Cloud Spanner.
  • Substitua [GCS_PATH_TO_IMPORT_MANIFEST] pelo caminho do Cloud Storage para o arquivo de manifesto de importação.
  • Substitua [JOB_NAME] por um nome de job de sua escolha. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_PROJECT_ID]/locations/[DATAFLOW_REGION]/templates:launch?gcsPath=gs://dataflow-templates/[VERSION]/GCS_Text_to_Cloud_Spanner

{
   "jobName": "[JOB_NAME]",
   "parameters": {
       "instanceId": "[YOUR_INSTANCE_ID]",
       "databaseId": "[YOUR_DATABASE_ID]",
       "importManifest": "[GCS_PATH_TO_IMPORT_MANIFEST]"
   },
   "environment": {
       "machineType": "n1-standard-2"
   }
}

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 jars de 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 criptografada em Base64 com uma chave do Cloud KMS.
query 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 Diretório temporário para o 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] 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 Google 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 a partir de 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. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  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

Substitua os valores a seguir neste exemplo:

  • Substitua YOUR_PROJECT_ID pelo ID do projeto.
  • Substitua JOB_NAME por um nome de job de sua escolha. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Substitua DRIVER_PATHS pelo(s) caminho(s) do Cloud Storage separados por vírgula do(s) driver(s) do JDBC.
  • Substitua DRIVER_CLASS_NAME pelo nome da classe da unidade.
  • Substitua JDBC_CONNECTION_URL pelo URL de conexão JDBC.
  • Substitua SOURCE_SQL_QUERY pela consulta SQL a ser executada no banco de dados de origem.
  • Substitua YOUR_DATASET pelo conjunto de dados do BigQuery e YOUR_TABLE_NAME pelo nome da tabela do BigQuery.
  • Substitua PATH_TO_TEMP_DIR_ON_GCS pelo caminho do Cloud Storage para o diretório temporário.
  • Substitua CONNECTION_PROPERTIES pelas propriedades de conexão JDBC, se necessário.
  • Substitua CONNECTION_USERNAME pelo nome de usuário da conexão JDBC.
  • Substitua CONNECTION_PASSWORD pela senha de conexão JDBC.
  • Substitua KMS_ENCRYPTION_KEY pela chave de criptografia do Cloud KMS.
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=YOUR_PROJECT_ID:YOUR_DATASET.YOUR_TABLE_NAME,
bigQueryLoadingTemporaryDirectory=PATH_TO_TEMP_DIR_ON_GCS,\
connectionProperties=CONNECTION_PROPERTIES,\
username=CONNECTION_USERNAME,\
password=CONNECTION_PASSWORD,\
KMSEncryptionKey=KMS_ENCRYPTION_KEY

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.

Substitua os valores a seguir neste exemplo:

  • Substitua YOUR_PROJECT_ID pelo ID do projeto.
  • Substitua JOB_NAME por um nome de job de sua escolha. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Substitua DRIVER_PATHS pelo(s) caminho(s) do Cloud Storage separados por vírgula do(s) driver(s) do JDBC.
  • Substitua DRIVER_CLASS_NAME pelo nome da classe da unidade.
  • Substitua JDBC_CONNECTION_URL pelo URL de conexão JDBC.
  • Substitua SOURCE_SQL_QUERY pela consulta SQL a ser executada no banco de dados de origem.
  • Substitua YOUR_DATASET pelo conjunto de dados do BigQuery e YOUR_TABLE_NAME pelo nome da tabela do BigQuery.
  • Substitua PATH_TO_TEMP_DIR_ON_GCS pelo caminho do Cloud Storage para o diretório temporário.
  • Substitua CONNECTION_PROPERTIES pelas propriedades de conexão JDBC, se necessário.
  • Substitua CONNECTION_USERNAME pelo nome de usuário da conexão JDBC.
  • Substitua CONNECTION_PASSWORD pela senha de conexão JDBC.
  • Substitua KMS_ENCRYPTION_KEY pela chave de criptografia do Cloud KMS.
POST https://dataflow.googleapis.com/v1b3/projects/YOUR_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": "YOUR_PROJECT_ID:YOUR_DATASET.YOUR_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" }
}

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 Cloud 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"}

Depois da transformação, a tabela será semelhante a esta:

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 constrói a chave com base nas práticas recomendadas para criar chaves de linha com base em vários 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 Cloud Bigtable em que a tabela do Apache Cassandra precisa ser copiada.
bigtableInstanceId O ID da instância do Cloud Bigtable no qual copiar a tabela do Apache Cassandra.
bigtableTableId O nome da tabela do Cloud Bigtable em que a tabela do Apache Cassandra será copiada.
defaultColumnFamily (Opcional) O nome do grupo de colunas da tabela do Cloud 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 Google 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 a partir de 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. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  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

Substitua os valores a seguir neste exemplo:

  • Substitua YOUR_PROJECT_ID pelo ID do projeto em que o Cloud Bigtable está localizado.
  • Substitua JOB_NAME por um nome de job de sua escolha. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Substitua YOUR_BIGTABLE_INSTANCE_ID pelo ID da instância do Cloud Bigtable.
  • Substitua YOUR_BIGTABLE_TABLE_ID pelo nome da tabela do Cloud Bigtable.
  • Substitua YOUR_CASSANDRA_HOSTS pela lista de hosts do Apache Cassandra. Se vários hosts forem fornecidos, siga as instruções sobre como escapar das vírgulas.
  • Substitua YOUR_CASSANDRA_KEYSPACE pelo keyspace do Apache Cassandra em que a tabela está localizada.
  • Substitua YOUR_CASSANDRA_TABLE pela tabela do Apache Cassandra que precisa ser migrada.
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Cassandra_To_Cloud_Bigtable \
    --parameters\
bigtableProjectId=YOUR_PROJECT_ID,\
bigtableInstanceId=YOUR_BIGTABLE_INSTANCE_ID,\
bigtableTableId=YOUR_BIGTABLE_TABLE_ID,\
cassandraHosts=YOUR_CASSANDRA_HOSTS,\
cassandraKeyspace=YOUR_CASSANDRA_KEYSPACE,\
cassandraTable=YOUR_CASSANDRA_TABLE

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.

Substitua os valores a seguir neste exemplo:

  • Substitua YOUR_PROJECT_ID pelo ID do projeto em que o Cloud Bigtable está localizado.
  • Substitua JOB_NAME por um nome de job de sua escolha. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Substitua YOUR_BIGTABLE_INSTANCE_ID pelo ID da instância do Cloud Bigtable.
  • Substitua YOUR_BIGTABLE_TABLE_ID pelo nome da tabela do Cloud Bigtable.
  • Substitua YOUR_CASSANDRA_HOSTS pela lista de hosts do Apache Cassandra. Se vários hosts forem fornecidos, siga as instruções sobre como escapar das vírgulas.
  • Substitua YOUR_CASSANDRA_KEYSPACE pelo keyspace do Apache Cassandra em que a tabela está localizada.
  • Substitua YOUR_CASSANDRA_TABLE pela tabela do Apache Cassandra que precisa ser migrada.
POST https://dataflow.googleapis.com/v1b3/projects/YOUR_PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/Cassandra_To_Cloud_Bigtable
{
   "jobName": "JOB_NAME",
   "parameters": {
       "bigtableProjectId": "YOUR_PROJECT_ID",
       "bigtableInstanceId": "YOUR_BIGTABLE_INSTANCE_ID",
       "bigtableTableId": "YOUR_BIGTABLE_TABLE_ID",
       "cassandraHosts": "YOUR_CASSANDRA_HOSTS",
       "cassandraKeyspace": "YOUR_CASSANDRA_KEYSPACE",
       "cassandraTable": "YOUR_CASSANDRA_TABLE"
   },
   "environment": { "zone": "us-central1-f" }
}

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 Cloud Bigtable 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 Google 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 a partir de 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. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  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

Substitua:

  • PROJECT_ID: o ID do projeto em que o BigQuery está localizado.
  • JOB_NAME: nome do job de sua escolha. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • DATASET: seu 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.
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

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.

Substitua:

  • PROJECT_ID: o ID do projeto em que o BigQuery está localizado.
  • JOB_NAME: nome do job de sua escolha. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • DATASET: seu 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.
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" }
}

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 Formato do arquivo de entrada. Precisa ser um dos seguintes valores: [csv, avro, parquet].
outputFileFormat Formato de arquivo de saída. Precisa ser um dos seguintes valores: [avro, parquet].
inputFileSpec 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 Caminho do Cloud Storage para o arquivo de esquema 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). Padrão: false. Obrigatório somente durante a leitura de arquivos CSV.
csvFormat [Opcional] Especificação de formato CSV a ser usada para analisar registros. Padrão: Default. Consulte Formato CSV do Apache Commons para mais detalhes.
delimiter [Opcional] Delimitador de campo usado pelos arquivos CSV de entrada.
outputFilePrefix [Opcional] Prefixo do arquivo de saída. 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 Google 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 a partir de um botão de modelo no Console do Cloud Platform
  5. Selecione the File Format Conversion 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 à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  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

Substitua os valores a seguir neste exemplo:

  • Substitua YOUR_PROJECT_ID pelo ID do projeto.
  • Substitua JOB_NAME por um nome de job de sua escolha. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Substitua INPUT_FORMAT pelo formato de arquivo dos arquivos de entrada. Precisa ser um dos seguintes valores: [csv, avro, parquet].
  • Substitua OUTPUT_FORMAT pelo formato dos arquivos de saída. Precisa ser um dos seguintes valores: [avro, parquet].
  • Substitua INPUT_FILES pelo padrão de caminho dos arquivos de entrada.
  • Substitua OUTPUT_FOLDER pela pasta do Cloud Storage para arquivos de saída.
  • Substitua SCHEMA pelo caminho para o arquivo de esquema Avro.
  • Substitua LOCATION pela região de execução. Por exemplo, us-central1.
gcloud beta dataflow flex-template run JOB_NAME \
    --project=YOUR_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

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.

Substitua os valores a seguir neste exemplo:

  • Substitua YOUR_PROJECT_ID pelo ID do projeto.
  • Substitua JOB_NAME por um nome de job de sua escolha. O nome do job precisa corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Substitua INPUT_FORMAT pelo formato de arquivo dos arquivos de entrada. Precisa ser um dos seguintes valores: [csv, avro, parquet].
  • Substitua OUTPUT_FORMAT pelo formato dos arquivos de saída. Precisa ser um dos seguintes valores: [avro, parquet].
  • Substitua INPUT_FILES pelo padrão de caminho dos arquivos de entrada.
  • Substitua OUTPUT_FOLDER pela pasta do Cloud Storage para arquivos de saída.
  • Substitua SCHEMA pelo caminho para o arquivo de esquema Avro.
  • Substitua LOCATION pela região de execução. Por exemplo, us-central1.
POST https://dataflow.googleapis.com/v1b3/projects/YOUR_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",
   }
}