【问题标题】:Error - "Unexpected. Please try again." in BigQuery错误 - “意外。请重试。”在 BigQuery 中
【发布时间】:2014-07-24 06:51:11
【问题描述】:

我正在尝试使用“select *”和“--destination_table”选项将数据从一个表移动到另一个表,但我不断收到“意外”错误。尝试使用 where 子句(将数据限制为 5 秒间隔)进行相同的查询会导致成功。

失败的 JobId - god-builder-586:bqjob_r7fe3d3a191881823_0000014662d302c5_1

成功的 JobId - god-builder-586:bqjob_r7f879846473f9b08_00000146631d5857_1

有什么想法吗?

查询成功如下:

选择 tstamp,uniq_id,INTEGER(ip) 作为 ip,devtype,FLOAT(price) 作为价格,FLOAT(altitude) 作为高度,FLOAT(longitude) 作为经度,FLOAT(latitude) 作为纬度 FROM [bigquery_processed.table_rc2] WHERE tstamp >='2014-05-01 00:00:00' 和 tstamp

职位 ID:神职人员-586:bqjob_r7f879846473f9b08_00000146631d5857_1

开始时间:2014 年 6 月 4 日凌晨 12:33

结束时间:2014 年 6 月 4 日凌晨 12:41

处理的字节数:22.8 TB

目标表:divine-builder-586:bigquery_processed.table_rc3

写入偏好:附加到表格

允许大结果:true

失败的查询没有where子句,其余相同。

【问题讨论】:

  • 请分享两个查询的文本(失败的和成功的)。
  • @IanGSY - 嗨,Ian,编辑了我的问题以包含查询。
  • 谢谢,查询看起来没问题。可能是 tstamp >='2014-05-01 00:00:00' 和 tstamp price 的值可能无法解析为整数。
  • 听起来可能很奇怪,但是您是否尝试过使用类似 WHERE 1=1 的 where 子句的查询?
  • 感谢伊恩的建议,会尝试的。

标签: google-bigquery


【解决方案1】:

一种解决方法是使用带有 mod 函数的 WHERE 子句将数据分成更小的部分。

试试这个?

Select tstamp,uniq_id,INTEGER(ip) as ip,devtype, FLOAT(price) as price,FLOAT(altitude) as altitude,FLOAT(longitude) as longitude,FLOAT(latitude) as latitude FROM [bigquery_processed.table_rc2] WHERE ABS(HASH(devtype) % 2) = 0

然后用相同的查询追加表,只是WHERE ABS(HASH(devtype) % 2) = 1。

老实说,这应该只是临时解决方法。它应该能够运行您的原始查询,因为没有带有大桶的 JOIN 或 GROUP BY。

【讨论】:

  • 这就是我们现在所做的,按日期范围分割数据。但这是一个昂贵的解决方法,因为每次运行查询时,我都会为扫描的整个数据集付费:(
【解决方案2】:

这是我了解到的 - 当 BigQuery 中存在一些内部问题时,通常会发生意外错误。大多数情况下,在一段时间后再次运行作业可以解决问题。但有时 Google 需要调试和修复问题(如果您联系他们的支持团队)

希望它可以帮助某人:)

【讨论】:

    猜你喜欢
    • 2014-07-27
    • 2012-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-30
    • 2014-08-27
    • 2013-11-10
    • 1970-01-01
    相关资源
    最近更新 更多