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
- Aceda à página do fluxo de dados Criar tarefa a partir de um modelo. Aceda a Criar tarefa a partir de modelo
- No campo Nome da tarefa, introduza um nome exclusivo para a tarefa.
- 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.
- No menu pendente Modelo do fluxo de dados, selecione the BigQuery export to Parquet (via Storage API) template.
- Nos campos de parâmetros fornecidos, introduza os valores dos parâmetros.
- 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 CloudJOB_NAME
: um nome de tarefa exclusivo à sua escolhaVERSION
: a versão do modelo que quer usarPode usar os seguintes valores:
latest
para usar a versão mais recente do modelo, que está disponível na pasta principal sem data no contentor: gs://dataflow-templates-REGION_NAME/latest/- o nome da versão, como
2023-09-12-00_RC00
, para usar uma versão específica do modelo, que pode ser encontrada aninhada na pasta principal com a data correspondente no contentor: gs://dataflow-templates-REGION_NAME/
REGION_NAME
: a região onde quer implementar a tarefa do Dataflow, por exemplo,us-central1
BIGQUERY_TABLE
: o nome da tabela do BigQueryOUTPUT_DIRECTORY
: a sua pasta do Cloud Storage para ficheiros de saídaNUM_SHARDS
: o número desejado de fragmentos de ficheiros de saídaFIELDS
: 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 CloudJOB_NAME
: um nome de tarefa exclusivo à sua escolhaVERSION
: a versão do modelo que quer usarPode usar os seguintes valores:
latest
para usar a versão mais recente do modelo, que está disponível na pasta principal sem data no contentor: gs://dataflow-templates-REGION_NAME/latest/- o nome da versão, como
2023-09-12-00_RC00
, para usar uma versão específica do modelo, que pode ser encontrada aninhada na pasta principal com a data correspondente no contentor: gs://dataflow-templates-REGION_NAME/
LOCATION
: a região onde quer implementar a tarefa do Dataflow, por exemplo,us-central1
BIGQUERY_TABLE
: o nome da tabela do BigQueryOUTPUT_DIRECTORY
: a sua pasta do Cloud Storage para ficheiros de saídaNUM_SHARDS
: o número desejado de fragmentos de ficheiros de saídaFIELDS
: a lista de campos separados por vírgulas a selecionar na tabela do BigQuery de entrada
O que se segue?
- Saiba mais sobre os modelos do Dataflow.
- Consulte a lista de modelos fornecidos pela Google.