我需要将 bigquery 数据(使用一些过滤器选择)以 json 格式加载到 gcs 存储桶,然后进行压缩。当前的气流操作员正在将表从 bq 导出到 gcs,有没有办法将一些带有过滤器的选择数据从 BQ 推送到 GCS?
答案 0 :(得分:1)
你可以只设置BigQueryToGCSOperator的compression
参数:
from airflow.providers.google.cloud.transfers.bigquery_to_gcs import BigQueryToGCSOperator
bigquery_to_gcs = BigQueryToGCSOperator(
task_id="bigquery_to_gcs",
source_project_dataset_table="DATASET_NAME.TABLE",
destination_cloud_storage_uris=["gs://folder/your_file"],
compression='gzip'
)
答案 1 :(得分:0)
在 BigQuery 中使用 EXPORT DATA 语句可以解决此问题的纯 SQL 解决方案。请参见以下示例:
EXPORT DATA
OPTIONS (
compression = GZIP,
format = JSON,
uri = 'gs://bucket/path/file_*'
) AS
-- query_statement
select 1 as x, 2 as y;
从 GCS 下载文件并从档案中提取后,我得到以下数据:
{"x":"1","y":"2"}