【发布时间】:2016-03-04 06:10:21
【问题描述】:
假设您有一个包含多行的非规范化架构,如下所示:
uuid | property | value
------------------------------------------
abc | first_name | John
abc | last_name | Connor
abc | age | 26
...
所有行的属性集相同,不一定要排序。 如何使用 BigQuery 等创建表(即无客户端):
表用户属性:
uuid | first_name | last_name | age
--------------------------------------------------------
abc | John | Connor | 26
在传统 SQL 中,为此目的存在“STUFF”关键字。
如果我至少可以得到按 uuid 排序的结果,这样客户端就不需要加载整个表 (4GB) 来进行排序,这样就可以对每个表进行水合实体通过顺序扫描具有相同 uuid 的行。但是,这样的查询:
SELECT * FROM user_properties ORDER BY uuid;
超出 BigQuery 中的可用资源(使用 allowLargeResults 禁止 ORDER BY)。除非我订阅高端机器,否则我似乎无法在 BigQuery 中对大表(4GB)进行排序。有什么想法吗?
【问题讨论】:
标签: sql google-bigquery