0

我一直从 BigQuery 得到这个结果:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "internalError",
    "message": "Unexpected. Please try again."
   }
  ],
  "code": 503,
  "message": "Unexpected. Please try again."
 }
}

导致它的查询具有以下形式:

SELECT y.f1, y.f2, y.f3, y.f4, y.f5, y.f6, y.f7,  
       t.f1, t.f2, t.f3, t.f4, t.f5, t.f6, t.f7
FROM
  (
    SELECT 
      f1, f2, f3, f4, f5, f6, f7 
    FROM
      ds.data_20120503 
    WHERE 
      kind='A'
  )
  AS y
  JOIN 
  (
    SELECT 
      f1, f2, f3, f4, f5, f6, f7 
    FROM
      ds.data_20120504 
    WHERE 
      kind='A'
  )
  AS t
  ON y.f7 = t.f7

如果我只运行子选择,它们工作正常,所以我想它与“加入”有关。我应该从这里去哪里?

4

2 回答 2

0

我怀疑您看到的是(1)返回的数据过多,以至于(2)我们返回了一个可怕的错误消息。您是否知道每个子选择中对于固定值的大致有多少行f7

要检查,您可以尝试向LIMIT 10每个子选择添加 a 并再次运行查询。如果可行,我们需要想出一种方法来编写查询以找出您想知道的内容。如果仍然失败,请发送一个job_id以便我们进行调查。

于 2012-05-06T04:06:29.433 回答
0

看起来您在 bigquery 中遇到了一个错误——当两个连接键的名称相同并且都在结果中返回时,我们会得到一个无效的模式并导致查询失败。我已经在内部将此作为错误提交,希望很快会有修复。

作为一种解决方法,如果您从所选结果中删除 y.f7 或 t.f7 (因为您要加入它们的相等性,包括两者,因为结果是多余的)。或者,您可以在其中一个选择中使用 as 子句将其命名为其他名称 - 如f7 as joinedF7.

于 2012-05-07T17:19:51.327 回答