首页 > 解决方案 > 将 BigQuery DDL 中的变量与外部 GCS 存储桶一起使用

问题描述

仅使用 BigQuery 数据定义语言和标准 SQL,是否可以将当前日期用作变量以将其用作gs://以下查询中的路径?

CREATE OR REPLACE EXTERNAL TABLE staging.my_table
OPTIONS (
  format = 'NEWLINE_DELIMITED_JSON',
  uris = ['gs://bucket/path/to/logs/2020-10-08/*.jsonl']
)

标签: google-bigquerygoogle-cloud-storage

解决方案


EXECUTE IMMEDIATE format("""
  CREATE OR REPLACE EXTERNAL TABLE staging.my_table
  OPTIONS (
    format = 'NEWLINE_DELIMITED_JSON',
    uris = ['gs://bucket/path/to/%s/*.jsonl']
  )
""", CAST(CURRENT_DATE() AS STRING));

最佳实践是在 GCS 上使用Hive 分区


推荐阅读