将一些东西移植到bigquery,并遇到一个问题 . 我们有一堆没有唯一键值的数据 . 遗憾的是,某些报告逻辑需要每行具有唯一值 .
所以在像Oracle这样的系统中我只会使用 ROWNUM
或 ROWID
psudeo列 .
在vertica中,没有那些psudeo列,我会使用 ROW_NUMBER() OVER()
. 但是在出现错误的bigquery中失败了:
'dataset:bqjob_r79e7b4147102bdd7_0000016482b3957c_1': Resources exceeded during query execution: The query could not be executed in the allotted memory.
OVER() operator used too much memory..
该值不必是持久的,只是查询结果中的唯一值 .
如果可能的话,想避免提取 - 进程 - 重新加载 .
那么有没有办法在bigquery SQL中为查询结果行分配unqiue值?
编辑:对不起,应该澄清一下 . 使用标准的sql,而不是遗留的
1 回答
要
ROW_NUMBER() OVER()
进行缩放,您需要使用PARTITION
.见https://stackoverflow.com/a/16534965/132438