Modelos em lote fornecidos pelo Google

O Google fornece um conjunto de modelos de código aberto do Cloud Dataflow. Para informações gerais sobre modelos, consulte a página Visão geral. Para uma lista 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:

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 intervalo 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 intervalo 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 GCP referente à 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 no Console do Google Cloud Platform
  1. Acesse a página do Cloud Dataflow no Console do GCP.
  2. Acessar a página do Cloud Dataflow
  3. Clique em Criar job a partir do modelo.
  4. Botão
  5. Selecione no menu suspenso Modelo do Cloud 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/

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 GCP referente à instância do Cloud Bigtable em que você quer ler 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/ \
    --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/

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 GCP referente à instância do Cloud Bigtable em que você quer ler 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/
{
   "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 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 intervalo 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 intervalo 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 GCP referente à 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.
bigtableAppProfileId O ID 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 no Console do Google Cloud Platform
  1. Acesse a página do Cloud Dataflow no Console do GCP.
  2. Acessar a página do Cloud Dataflow
  3. Clique em Criar job a partir do modelo.
  4. Botão
  5. Selecione no menu suspenso Modelo do Cloud 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/

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 GCP referente à instância do Cloud Bigtable em que você quer ler 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/ \
    --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/

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 GCP referente à instância do Cloud Bigtable em que você quer ler 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/
{
   "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" }
}

Cloud Datastore para Cloud Storage Text

O modelo do Cloud Datastore para Cloud Storage Text é um pipeline em lote que lê entidades do Cloud 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 Cloud 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 GCP referente à instância do Cloud Datastore em que você quer ler 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 Cloud Datastore para Cloud Storage Text

CONSOLE

Executar a partir do Console do Google Cloud Platform
  1. Acesse a página do Cloud Dataflow no Console do GCP.
  2. Acessar a página do Cloud Dataflow
  3. Clique em Criar job a partir do modelo.
  4. Botão
  5. Selecione the Cloud Datastore to Cloud Storage Text template no menu suspenso Modelo do Cloud 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/Datastore_to_GCS_Text

Substitua os valores a seguir neste exemplo:

  • Substitua YOUR-PROJECT-ID pelo ID do projeto.
  • Substitua JOB_NAME pelo nome de um 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 seu intervalo do Cloud Storage.
  • Substitua YOUR_DATASTORE_KIND pelo seu tipo de entidade do Datastore.
  • Substitua YOUR_DATASTORE_NAMESPACE pelo namespace das suas entidades do Datastore.
  • Substitua YOUR_JAVASCRIPT_FUNCTION pelo nome da sua 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 da 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 pelo nome de um 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 seu intervalo do Cloud Storage.
  • Substitua YOUR_DATASTORE_KIND pelo seu tipo de entidade do Datastore.
  • Substitua YOUR_DATASTORE_NAMESPACE pelo namespace das suas entidades do Datastore.
  • Substitua YOUR_JAVASCRIPT_FUNCTION pelo nome da sua 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 intervalo selecionado. Veja o que 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 intervalo de saída do Cloud Storage precisa existir.
  • Além dos papéis do Cloud IAM necessários para executar jobs do Cloud Dataflow, você também precisa ter os papéis apropriados do Cloud IAM para ler dados do Cloud Spanner e gravá-los no intervalo do Cloud Storage.

Parâmetros do modelo

Parâmetro Descrição
instanceId O ID da instância referente ao banco de dados do Cloud Spanner que você quer exportar.
databaseId O ID 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 no Console do Google Cloud Platform
  1. Acesse a página do Cloud Dataflow no Console do GCP.
  2. Acessar a página do Cloud Dataflow
  3. Clique em Criar job a partir do modelo.
  4. Botão
  5. Selecione the Cloud Spanner to Cloud Storage Avro template no menu suspenso Modelo do Cloud 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 ter o formato export cloud-spanner--[YOUR_INSTANCE_ID]-[YOUR_DATABASE_ID] para aparecer na parte do Cloud Spanner do Console do GCP.
  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/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 Cloud 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 ter o formato export cloud-spanner--[YOUR_INSTANCE_ID]-[YOUR_DATABASE_ID] para aparecer na parte do Cloud Spanner do Console do GCP.
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 Cloud 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 ter o formato export cloud-spanner--[YOUR_INSTANCE_ID]-[YOUR_DATABASE_ID] para aparecer na parte do Cloud Spanner do Console do GCP.
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 Cloud Spanner precisa existir antes de o pipeline ser executado.

Parâmetros do modelo

Parâmetro Descrição
spannerProjectId O ID 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 no Console do Google Cloud Platform
  1. Acesse a página do Cloud Dataflow no Console do GCP.
  2. Acessar a página do Cloud Dataflow
  3. Clique em Criar job a partir do modelo.
  4. Botão
  5. Selecione the Cloud Spanner to Cloud Storage Text template no menu suspenso Modelo do Cloud 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/Spanner_to_GCS_Text

Substitua os valores a seguir neste exemplo:

  • Substitua YOUR-PROJECT-ID pelo ID do projeto.
  • Substitua JOB_NAME pelo nome de um 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 Cloud Spanner.
  • Substitua YOUR_BUCKET_NAME pelo nome do seu intervalo do Cloud Storage.
  • Substitua YOUR_INSTANCE_ID pelo ID da instância do Cloud Spanner.
  • Substitua YOUR_TABLE_ID pelo ID da tabela do Cloud 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 sua 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 da 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 pelo nome de um 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 Cloud Spanner.
  • Substitua YOUR_BUCKET_NAME pelo nome do seu intervalo do Cloud Storage.
  • Substitua YOUR_INSTANCE_ID pelo ID da instância do Cloud Spanner.
  • Substitua YOUR_TABLE_ID pelo ID da tabela do Cloud 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 sua 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 intervalo 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 intervalo 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 GCP referente à instância do Cloud Bigtable em que os dados são gravados.
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 no Console do Google Cloud Platform
  1. Acesse a página do Cloud Dataflow no Console do GCP.
  2. Acessar a página do Cloud Dataflow
  3. Clique em Criar job a partir do modelo.
  4. Botão
  5. Selecione the Cloud Spanner to Cloud Storage Text template no menu suspenso Modelo do Cloud 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/Spanner_to_GCS_Text

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 GCP referente à instância do Cloud Bigtable em que você quer ler 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/Spanner_to_GCS_Text \
    --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/Spanner_to_GCS_Text

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 GCP referente à instância do Cloud Bigtable em que você quer ler 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/Spanner_to_GCS_Text
{
   "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 do Cloud Storage Avro para Cloud Spanner é um pipeline em lote que lê arquivos Avro do Cloud Storage e os importa para 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 intervalo 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 ID 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

CONSOLE

Executar no Console do Google Cloud Platform
  1. Acesse a página do Cloud Dataflow no Console do GCP.
  2. Acessar a página do Cloud Dataflow
  3. Clique em Criar job a partir do modelo.
  4. Botão
  5. Selecione the Cloud Storage Avro to Cloud Spanner template no menu suspenso Modelo do Cloud 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 ter o formato import cloud-spanner--[YOUR_INSTANCE_ID]-[YOUR_DATABASE_ID] para aparecer na parte do Cloud Spanner do Console do GCP.
  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_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:

  • 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 GCP referente à instância do Cloud Bigtable em que você quer ler 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/[VERSION]/GCS_Avro_to_Cloud_Spanner' \
    --region=[DATAFLOW_REGION] \
    --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:

  • 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 GCP referente à instância do Cloud Bigtable em que você quer ler 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]/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 SequenceFile para Cloud Bigtable

O modelo do Cloud Storage SequenceFile para Cloud Bigtable é um pipeline que lê dados de SequenceFiles em um intervalo 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 intervalo 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 GCP referente à instância do Cloud Bigtable em que os dados são gravados.
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.
bigtableAppProfileId O ID 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 no Console do Google Cloud Platform
  1. Acesse a página do Cloud Dataflow no Console do GCP.
  2. Acessar a página do Cloud Dataflow
  3. Clique em Criar job a partir do modelo.
  4. Botão
  5. Selecione the Cloud Storage Avro to Cloud Spanner template no menu suspenso Modelo do Cloud 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_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:

  • 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 GCP referente à instância do Cloud Bigtable em que você quer ler 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_Avro_to_Cloud_Spanner \
    --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_Avro_to_Cloud_Spanner

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 GCP referente à instância do Cloud Bigtable em que você quer ler 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_Avro_to_Cloud_Spanner
{
   "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 no Console do Google Cloud Platform
  1. Acesse a página do Cloud Dataflow no Console do GCP.
  2. Acessar a página do Cloud Dataflow
  3. Clique em Criar job a partir do modelo.
  4. Botão
  5. Selecione the Cloud Storage Text to BigQuery template no menu suspenso Modelo do Cloud 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_BigQuery

Substitua os valores a seguir neste exemplo:

  • Substitua YOUR-PROJECT-ID pelo ID do projeto.
  • Substitua JOB_NAME pelo nome de um 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 sua 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 textuais.
  • 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 da 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 pelo nome de um 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 sua 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 textuais.
  • 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 Cloud Datastore

O modelo do Cloud Storage Text para Cloud Datastore é um pipeline em lote que lê arquivos de texto armazenados no Cloud Storage e grava entidades JSON codificadas no Cloud 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 GCP em que gravar as entidades do Cloud 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 no Console do Google Cloud Platform
  1. Acesse a página do Cloud Dataflow no Console do GCP.
  2. Acessar a página do Cloud Dataflow
  3. Clique em Criar job a partir do modelo.
  4. Botão
  5. Selecione the Cloud Storage Text to Datastore template no menu suspenso Modelo do Cloud 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_Datastore

Substitua os valores a seguir neste exemplo:

  • Substitua YOUR-PROJECT-ID pelo ID do projeto.
  • Substitua JOB_NAME pelo nome de um 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 sua 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 em que você quer gravar o arquivo de erro 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 da 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 pelo nome de um 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 sua 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 em que você quer gravar o arquivo de erro 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 Cloud 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 Cloud Pub/Sub. O modelo pode ser usado para publicar registros em um arquivo CSV ou um arquivo delimitado por nova linha que contenha registros JSON em um tópico do Cloud Pub/Sub para processamento em tempo real. Você pode usar esse modelo para reproduzir dados no Cloud 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 Cloud Pub/Sub.
  • O tópico do Cloud 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 Cloud Pub/Sub a ser gravado. O nome deve estar no formato projects/<project-id>/topics/<topic-name>.

Como executar o modelo do Cloud Storage Text para Cloud Pub/Sub (lote)

CONSOLE

Executar no Console do Google Cloud Platform
  1. Acesse a página do Cloud Dataflow no Console do GCP.
  2. Acessar a página do Cloud Dataflow
  3. Clique em Criar job a partir do modelo.
  4. Botão
  5. Selecione the Cloud Storage Text to Cloud Pub/Sub (Batch) template no menu suspenso Modelo do Cloud 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_PubSub

Substitua os valores a seguir neste exemplo:

  • Substitua YOUR-PROJECT-ID pelo ID do projeto.
  • Substitua JOB_NAME pelo nome de um 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 Cloud Pub/Sub.
  • Substitua YOUR_BUCKET_NAME pelo nome do intervalo 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 da 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 pelo nome de um 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 Cloud Pub/Sub.
  • Substitua YOUR_BUCKET_NAME pelo nome do intervalo 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 intervalo 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 ID 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 Platform
  1. Acesse a página do Cloud Dataflow no Console do GCP.
  2. Acessar a página do Cloud Dataflow
  3. Clique em Criar job a partir do modelo.
  4. Botão
  5. Selecione the Cloud Storage Text to Cloud Spanner template no menu suspenso Modelo do Cloud 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 Cloud 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 Cloud 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 do 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 Cloud 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 no Console do Google Cloud Platform
  1. Acesse a página do Cloud Dataflow no Console do GCP.
  2. Acessar a página do Cloud Dataflow
  3. Clique em Criar job a partir do modelo.
  4. Botão
  5. Selecione the JDBC to BigQuery template no menu suspenso Modelo do Cloud 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/Jdbc_to_BigQuery

Substitua os valores a seguir neste exemplo:

  • Substitua YOUR-PROJECT-ID pelo ID do projeto.
  • Substitua JOB_NAME pelo nome de um 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 pelos caminhos do Cloud Storage separados por vírgula do(s) driver(s) JDBC.
  • Substitua DRIVER_CLASS_NAME pelo nome da classe do drive.
  • Substitua JDBC_CONNECTION_URL pelo URL de conexão do 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 substitua 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 do JDBC, se necessário.
  • Substitua CONNECTION_USERNAME pelo nome de usuário da conexão do JDBC.
  • Substitua CONNECTION_PASSWORD pela senha de conexão do 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 da 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 pelo nome de um 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 pelos caminhos do Cloud Storage separados por vírgula do(s) driver(s) JDBC.
  • Substitua DRIVER_CLASS_NAME pelo nome da classe do drive.
  • Substitua JDBC_CONNECTION_URL pelo URL de conexão do 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 substitua 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 do JDBC, se necessário.
  • Substitua CONNECTION_USERNAME pelo nome de usuário da conexão do JDBC.
  • Substitua CONNECTION_PASSWORD pela senha de conexão do 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" }
}