Exportação do BigQuery para o modelo Parquet (por meio da API Storage)

A exportação do BigQuery para o modelo Parquet é um pipeline em lote que lê dados de uma tabela do BigQuery e os grava em um bucket do Cloud Storage no formato Parquet. Esse modelo usa a API BigQuery Storage para exportar os dados.

Requisitos de 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âmetros obrigatórios

  • tableRef: local da tabela de entrada do BigQuery. (Exemplo: your-project:your-dataset.your-table-name).
  • bucket: a pasta do Cloud Storage onde os arquivos Parquet serão gravados. (Exemplo: gs://your-bucket/export/).

Parâmetros opcionais

  • numShards : o número de fragmentos de arquivo de saída. O valor padrão é 1.
  • fields : uma lista de campos separados por vírgulas a ser selecionada na tabela de entrada do BigQuery.
  • rowRestriction : leia somente linhas que correspondam ao filtro especificado, que precisa ser uma expressão SQL compatível com o SQL padrão do Google (https://cloud.google.com/bigquery/docs/reference/standard-sql). Se nenhum valor for especificado, todas as linhas serão retornadas.

Executar o modelo

Console

  1. Acesse a página Criar job usando um modelo do Dataflow.
  2. Acesse Criar job usando um modelo
  3. No campo Nome do job, insira um nome exclusivo.
  4. Opcional: em Endpoint regional, selecione um valor no menu suspenso. A região padrão é us-central1.

    Para ver uma lista de regiões em que é possível executar um job do Dataflow, consulte Locais do Dataflow.

  5. No menu suspenso Modelo do Dataflow, selecione the BigQuery export to Parquet (via Storage API) template.
  6. Nos campos de parâmetro fornecidos, insira os valores de parâmetro.
  7. Cliquem em Executar job.

gcloud

No shell ou no terminal, execute o modelo:

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

Substitua:

  • PROJECT_ID: o ID do projeto do Google Cloud em que você quer executar o job do Dataflow
  • JOB_NAME: um nome de job de sua escolha
  • VERSION: a versão do modelo que você quer usar

    Use estes valores:

  • REGION_NAME: a região em que você quer implantar o job do Dataflow, por exemplo, us-central1
  • BIGQUERY_TABLE: o nome da tabela do BigQuery
  • OUTPUT_DIRECTORY: pasta do Cloud Storage para arquivos de saída
  • NUM_SHARDS: o número pretendido de fragmentos do arquivo de saída.
  • FIELDS: a lista de campos separados por vírgulas a ser selecionada na tabela de entrada do BigQuery

API

Para executar o modelo usando a API REST, envie uma solicitação HTTP POST. Para mais informações sobre a API e os respectivos escopos de autorização, consulte projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch
{
   "launch_parameter": {
      "jobName": "JOB_NAME",
      "parameters": {
          "tableRef": "BIGQUERY_TABLE",
          "bucket": "OUTPUT_DIRECTORY",
          "numShards": "NUM_SHARDS",
          "fields": "FIELDS"
      },
      "containerSpecGcsPath": "gs://dataflow-templates-LOCATION/VERSION/flex/BigQuery_to_Parquet",
   }
}

Substitua:

  • PROJECT_ID: o ID do projeto do Google Cloud em que você quer executar o job do Dataflow
  • JOB_NAME: um nome de job de sua escolha
  • VERSION: a versão do modelo que você quer usar

    Use estes valores:

  • LOCATION: a região em que você quer implantar o job do Dataflow, por exemplo, us-central1
  • BIGQUERY_TABLE: o nome da tabela do BigQuery
  • OUTPUT_DIRECTORY: pasta do Cloud Storage para arquivos de saída
  • NUM_SHARDS: o número pretendido de fragmentos do arquivo de saída.
  • FIELDS: a lista de campos separados por vírgulas a ser selecionada na tabela de entrada do BigQuery

A seguir