【发布时间】:2021-11-24 09:04:18
【问题描述】:
我正在尝试创建一个 DAG,它将从 BigQuery 查询中提取数据并以 parquet 格式写入 gcs 存储桶。我查看了this question 并在这里得到了一些帮助。它建议使用BigQueryOperator 执行查询,然后使用BigQueryToCloudStorageOperator 写入gcs 存储桶。使用这种方法,我必须首先将查询结果写入表中,然后从该表中写入 gcs 存储桶。
分两步:
bq_query = bigquery_operator.BigQueryOperator(
task_id='bq_query',
sql="""
<select query with filters>
""".format(date=date1),
use_legacy_sql=False,
destination_dataset_table=<table_name>
location="southamerica-east1",
write_disposition="WRITE_EMPTY",
create_disposition="CREATE_IF_NEEDED")
export_to_gcs = bigquery_to_gcs.BigQueryToCloudStorageOperator(
task_id='export_to_gcs',
source_project_dataset_table=destination_dataset_table,
destination_cloud_storage_uris=[output_file],
export_format='PARQUET')
有没有一种方法可以直接将大查询数据写入 gcs 存储桶而无需先写入表?我相信直接导出是可能的,但我正在寻找使用过滤器运行查询然后写入 gcs。
【问题讨论】: