【问题标题】:Creating partitioned external table in bigquery在 bigquery 中创建分区外部表
【发布时间】:2018-10-12 05:00:11
【问题描述】:

我想在 bigquery 中创建一个从谷歌云存储加载数据的外部表。 在从 Web UI 创建表期间,Partitioning Type 选项被禁用。 有什么方法可以创建分区外部表吗? 我的数据已经在 GCS 上按日期格式进行了分区 例如:/somepath/data/dt=2018-03-22

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    当您使用文件名作为变量 (_FILE_NAME) 时,GCS 中的联合表会自动充当分区表。

    例如,此视图将文件名转换为本地日期:

    #standardSQL
    CREATE VIEW `fh-bigquery.views.wikipedia_views_test_ddl`
    AS SELECT
      PARSE_TIMESTAMP('%Y%m%d-%H%M%S', REGEXP_EXTRACT(_FILE_NAME, '[0-9]+-[0-9]+')) datehour
      , _FILE_NAME filename
      , line
    FROM `fh-bigquery.views.wikipedia_views_gcs`
    

    稍后我可以编写如下查询:

    #standardSQL
    SELECT *
    FROM `fh-bigquery.views.wikipedia_views_test_ddl`
    WHERE EXTRACT(YEAR FROM datehour)=2015
    AND EXTRACT(MONTH FROM datehour)=10
    AND EXTRACT(DAY FROM datehour)=21
    AND EXTRACT(HOUR FROM datehour)=7
    

    ...这些查询只会打开名称与此模式匹配的文件。

    我在https://medium.com/google-cloud/bigquery-lazy-data-loading-ddl-dml-partitions-and-half-a-trillion-wikipedia-pageviews-cd3eacd657b6 写了一个完整的故事。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-28
      • 2017-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多