Modelo de exportação do BigQuery para o formato Parquet (através da API Storage)

O modelo de exportação do BigQuery para o formato Parquet é um pipeline em lote que lê dados de uma tabela do BigQuery e os escreve num contentor do Cloud Storage no formato Parquet. Este modelo usa a API BigQuery Storage para exportar os dados.

Requisitos do pipeline

  • A tabela do BigQuery de entrada tem de existir antes de executar o pipeline.
  • O contentor do Cloud Storage de saída tem de existir antes de executar o pipeline.

Parâmetros de modelos

Parâmetros obrigatórios

  • tableRef: a localização da tabela de entrada do BigQuery. Por exemplo, your-project:your-dataset.your-table-name.
  • bucket: a pasta do Cloud Storage para a qual os ficheiros Parquet são escritos. Por exemplo, gs://your-bucket/export/.

Parâmetros opcionais

  • numShards: o número de fragmentos de ficheiros de saída. O valor predefinido é 1.
  • fields: uma lista de campos separados por vírgulas a selecionar na tabela do BigQuery de entrada.
  • rowRestriction: lê apenas as linhas que correspondem ao filtro especificado, que tem de ser uma expressão SQL compatível com a SQL padrão da Google (https://cloud.google.com/bigquery/docs/reference/standard-sql). Se não for especificado nenhum valor, são devolvidas todas as linhas.

Execute o modelo

Consola

  1. Aceda à página do fluxo de dados Criar tarefa a partir de um modelo.
  2. Aceda a Criar tarefa a partir de modelo
  3. No campo Nome da tarefa, introduza um nome exclusivo para a tarefa.
  4. Opcional: para Ponto final regional, selecione um valor no menu pendente. A região predefinida é us-central1.

    Para ver uma lista das regiões onde pode executar uma tarefa do Dataflow, consulte as localizações do Dataflow.

  5. No menu pendente Modelo do fluxo de dados, selecione the BigQuery export to Parquet (via Storage API) template.
  6. Nos campos de parâmetros fornecidos, introduza os valores dos parâmetros.
  7. Clique em Executar tarefa.

gcloud

Na 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 o seguinte:

  • PROJECT_ID: o ID do projeto onde quer executar a tarefa do Dataflow Google Cloud
  • JOB_NAME: um nome de tarefa exclusivo à sua escolha
  • VERSION: a versão do modelo que quer usar

    Pode usar os seguintes valores:

  • REGION_NAME: a região onde quer implementar a tarefa do Dataflow, por exemplo, us-central1
  • BIGQUERY_TABLE: o nome da tabela do BigQuery
  • OUTPUT_DIRECTORY: a sua pasta do Cloud Storage para ficheiros de saída
  • NUM_SHARDS: o número desejado de fragmentos de ficheiros de saída
  • FIELDS: a lista de campos separados por vírgulas a selecionar na tabela do BigQuery de entrada

API

Para executar o modelo através da API REST, envie um pedido HTTP POST. Para mais informações sobre a API e os respetivos âmbitos 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 o seguinte:

  • PROJECT_ID: o ID do projeto onde quer executar a tarefa do Dataflow Google Cloud
  • JOB_NAME: um nome de tarefa exclusivo à sua escolha
  • VERSION: a versão do modelo que quer usar

    Pode usar os seguintes valores:

  • LOCATION: a região onde quer implementar a tarefa do Dataflow, por exemplo, us-central1
  • BIGQUERY_TABLE: o nome da tabela do BigQuery
  • OUTPUT_DIRECTORY: a sua pasta do Cloud Storage para ficheiros de saída
  • NUM_SHARDS: o número desejado de fragmentos de ficheiros de saída
  • FIELDS: a lista de campos separados por vírgulas a selecionar na tabela do BigQuery de entrada

O que se segue?