我们可以像在 Hive 中一样在 Big Query 中创建动态分区吗?

Posted

技术标签:

【中文标题】我们可以像在 Hive 中一样在 Big Query 中创建动态分区吗?【英文标题】:Can we create dynamic partition in Big Query as in Hive? 【发布时间】:2017-10-03 14:13:50 【问题描述】:

我希望将存储在 Bucket 中的所有数据(例如:/bucket/project/odate/odate_cust.txt)加载到 Big Query 中的 DAY 分区表中?我需要一个一个文件导入并加载还是可以直接加载到多个分区中。

**bq mk --time_partitioning_type=DAY market.cust custid:string,grp:integer,odate:string**

【问题讨论】:

【参考方案1】:

目前,您需要为每个负载指定分区 (using the $ decorator syntax) 以将其放入相应的分区。否则,BigQuery 将使用加载作业的 UTC 时间来选择分区。有一个即将推出的功能将允许按您自己的字段进行分区(我假设您的文件中有一个 TIMESTAMP 或 DATE 字段,您可以根据这些字段进行分区)。但是,他们还没有推出它(它很快就会进入 alpha 阶段)。您可以跟踪其进度here。

如果您赶时间,那么有一些解决方法(例如,将其全部加载到未分区的表中,然后使用 SQL 或 Cloud Dataflow 对其进行分区)。看看here。

最后,如果您的文件名包含分区的日期/日期,那么您可以很容易地自己编写脚本,查看文件名并运行多个加载作业并将数据填充到相应的分区中桌子。

【讨论】:

非常感谢您的回复。因此,这意味着未来将有一个与数据集中存在的其他列进行分区的功能。

以上是关于我们可以像在 Hive 中一样在 Big Query 中创建动态分区吗?的主要内容,如果未能解决你的问题,请参考以下文章

Hive 插入查询,如 SQL

HIVE SQL拒绝big int比较解决方法

我们可以像在 android asyncTask 中一样显示加载状态,直到我们在 swift 中使用 HTTP Post 请求得到响应

我们可以像在 android 中一样在 windows 中创建 XMPP 聊天客户端代码吗?

在 sparklyr 中禁用 hive 支持

我如何使用 s & $ 访问 Pyspark 中的变量,就像在 Scala 中一样