Bigquery 在日分区表中加载数据
Posted
技术标签:
【中文标题】Bigquery 在日分区表中加载数据【英文标题】:Bigquery load data in Day-partitioned tables 【发布时间】:2016-06-09 16:04:58 【问题描述】:我想创建按天分区的数据并从 Cloude Storage 加载数据。 我已经完成的步骤
bq mk --time_partitioning_type=DAY myDataSet.dailytable
bq load --source_format=AVRO myProjectId:myDataSet.dailytable$20150510 gs://myBucket/path/2016-05-10/*
实际结果:
我有 2 个表:dailyTable 和 dailyTable$0150510
预期结果:
我有 2 张桌子 dailyTable 和 dailyTable$20150510
这是预期的行为吗?
【问题讨论】:
【参考方案1】:在 Unix shell 上,'$' 是一个特殊字符,您需要对其进行转义,或者将整个表名放在单引号中,如下所述:
https://cloud.google.com/bigquery/docs/partitioned-tables#addressing_table_partitions
这样你不会得到两张桌子。 myDataSet.dailytable 将有一个单独的分区“myDataSet.dailytable$20150510”,对应于 2015 年 5 月 10 日。该分区是可寻址的,就好像它是一个表一样。
【讨论】:
谢谢,它有帮助。 bq load --source_format=AVRO 'myProjectId:myDataSet.dailytable$20160510' gs://myBucket/2016-05-10/* 工作正常 是否可以使用通配符来避免一次加载一天? 目前不可能。我们正在努力支持对用户指定的日期或时间戳列进行分区,此时您将能够直接使用表名。当我们有可用的功能时,我们将提供更新。谢谢! @PavanEdara 有关此功能的更多信息?将“遗留”数据加载到 BQ 时会非常有用。以上是关于Bigquery 在日分区表中加载数据的主要内容,如果未能解决你的问题,请参考以下文章