加入2个表会导致BigQuery中的资源超出错误

时间:2017-04-02 23:11:02

标签: sql google-bigquery

我试图通过加入2个表来获取记录,在这种情况下,我考虑了6个月的数据。 我得到了#34;资源超出错误"。

有人可以请一些有助于我绕过此错误的查询增强功能吗?

提前致谢!!

    SELECT
      *
    FROM (
      SELECT
        A.Id1 AS Id1,
        A.Id2 AS Id1,
        StartTime,
        StopTime,
        Duration AS ID,
        Latitude,
        Longitude,
        DateTime
      FROM (
        SELECT
          *
        FROM
          `Tb1`
        WHERE
          HardwareId IN (
            735,
            8055,
            8620,
            9489,
            214,
            7543,
            2471,
            681,
            451)
          AND _PARTITIONTIME BETWEEN TIMESTAMP('2016-01-01')
          AND TIMESTAMP('2016-12-31') ) AS A
      JOIN (
        SELECT
          *
        FROM
          `Tb2.T2016*`
        WHERE
          _TABLE_SUFFIX BETWEEN "0601"
          AND "1231"
          AND HardwareId IN (
            735,
            8055,
            8620,
            9489,
            214,
            7543,
            2471,
            681,
            451) ) AS B
      ON
        A.StartTime < B.DateTime
        AND A.StopTime >= B.DateTime
        AND A.Id1 = B.Id1 )
    ORDER BY
      Id1,
      Id2,
      DateTime`

1 个答案:

答案 0 :(得分:1)

首先删除ORDER BY部分查询!

ORDER BY
  Id1,
  Id2,
  DateTime  

通常,这是

的主要原因
resources exceeded error in BigQuery

我还注意到您的查询存在一些问题,这很可能与您略微模糊原始查询的事实有关

1 - 使用相同的列名

A.Id1 AS Id1,  
A.Id2 AS Id1,   

2 - 不同的时间段

'2016-01-01' - '2016-12-31'

BETWEEN TIMESTAMP('2016-01-01') AND TIMESTAMP('2016-12-31')  

VS。 '2016-06-01' - '2016-12-31'

BETWEEN "0601" AND "1231"