Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google bigquery 尝试使用GROUP BY返回表DISCT rows时出现“SHUDFLE failed with error”消息_Google Bigquery - Fatal编程技术网

Google bigquery 尝试使用GROUP BY返回表DISCT rows时出现“SHUDFLE failed with error”消息

Google bigquery 尝试使用GROUP BY返回表DISCT rows时出现“SHUDFLE failed with error”消息,google-bigquery,Google Bigquery,我们有一个1.01TB的表,其中包含已知的重复项。我们正在尝试使用“分组依据”消除重复项 有一条错误消息,我们需要一些帮助来破译 查询失败 错误: 洗牌失败,错误:一次洗牌不能洗牌超过3.00T。此查询中的一个洗牌分区超过了3.84G。解决此错误的策略可在go/dremelfaq上找到 作业ID:Job_mg3rvucksdcegrscssga3z3faswtshq7i 正如您所想象的,这个查询有很多,看起来有点像这样 选择二十个不同的列,用于重复数据消除。。。 包括一些整数转换版本, 另外,D

我们有一个1.01TB的表,其中包含已知的重复项。我们正在尝试使用“分组依据”消除重复项

有一条错误消息,我们需要一些帮助来破译

查询失败 错误: 洗牌失败,错误:一次洗牌不能洗牌超过3.00T。此查询中的一个洗牌分区超过了3.84G。解决此错误的策略可在go/dremelfaq上找到

作业ID:Job_mg3rvucksdcegrscssga3z3faswtshq7i

正如您所想象的,这个查询有很多,看起来有点像这样

选择二十个不同的列,用于重复数据消除。。。 包括一些整数转换版本, 另外,DAYOFWEEKSEC到timestampIntegerItemsTamp作为字符串,转换, 还有,HOUROFDAYSEC到timestampintegrationstamp作为字符串,转换, 和_a,IFREGEXP _MATCHlong _string _字段,r'ab=\d+',TRUE,NULL作为_计数的标志_, 带有一些、连接的、引用的列, 计数*作为重复计数 来自[MainDataset.ReallyBigTable]的原始数据 左外部联接[RefDataSet.ReferenceTable]作为ref ON ref.id=原始refid 按…分组。。。选择栏中的所有列将显示计数。。。 问题 这个错误意味着什么?它是不是在尝试洗牌- 最后,错误消息中引用的dremelfaq是否在Google之外可用?它是否有助于理解发生了什么

旁注 为了完整起见,我们每个人都尝试了一个更温和的小组

选择我们的,二十,九,字符串,列,表, 计数*作为重复计数 来自[MainDataSet.ReallyBigTable] 按所有、那些、二十、九、字符串、列分组 我们得到了一个更微妙的结果

错误:查询执行期间超出了资源

作业ID:Job_D6VZEHB4BWZXNMXMMPWUCVJ7CKLKZNK4


Bigquery是否应该能够执行此类重复数据消除查询?我们应该如何最好地解决这个问题?

实际上,所涉及的洗牌更接近于此:

当您使用'EACH'关键字时,您正在指示查询引擎洗牌您的数据。。。你可以把它想象成一个巨大的排序操作

这很可能接近我们在BigQuery中设置的集群限制。我将与BigQuery团队中的一些其他人员交谈,看看是否有办法让您的查询工作起来

同时,一种选择是将数据划分到较小的表中,并在这些较小的表上执行重复数据消除,然后使用表复制/追加操作创建最终的输出表。要对数据进行分区,可以执行以下操作:

从[your_big_table]中选择*,其中ABSHASHcolumn1%10==1


不幸的是,这将非常昂贵,因为它需要在1 TB表上运行查询10次。

谢谢。感谢使用哈希函数创建分区。ps像LMFAO的洗牌算法我们也遇到了这些错误,它基本上是我们的交易破坏者-回到hadoop我想…嗨Matt。。。我们正在追踪一个bug,在该bug中,每个查询都会在组中遇到意外的资源超出错误。你有工作id吗?很好,有人发现了这个,我们也有一些问题。