资源超出谷歌大查询中的错误

时间:2017-03-16 01:09:16

标签: sql google-bigquery

我正在尝试连接两个表Tb1和Tb2,并且在table1的字段Id1和table2的Id2上进行连接。

当我运行此查询时,我收到错误"在查询执行期间超出资源"。

如果有人可以就此查询改进提供反馈,我们将不胜感激。

        SELECT
          *,
          DATE(DateTime) AS Date
        FROM (
          SELECT
            a.Id AS Id,
            b.DateTime AS DateTime,
            b.Location1 AS Latitude,
            b.Location2 AS Longitude
          FROM (
            SELECT
              *
            FROM (
              SELECT
                Id AS Hid1,
              FROM
                [Tb1]
              WHERE
                DBName LIKE '%honda%') AS a
            INNER JOIN (
              SELECT
                Id AS Hid2,
                DateTime AS DateTime,
                Location1 AS Latitude,
                Location2 AS Longitude
              FROM
                TABLE_DATE_RANGE([Tb2],TIMESTAMP('2017-02-13'),TIMESTAMP('2017-02-14'))) AS b
            ON
              a.Id1 = b.Id2 ))
        WHERE
          DATE(DateTime) BETWEEN '2017-02-13'
          AND '2017-02-14'
        ORDER BY
          Id,
          Date

1 个答案:

答案 0 :(得分:0)

这很具有讽刺意味。今天下午我们观看了关于BigQuery性能的谷歌视频。其中一个主要问题是排序。所以,如果你的结果真的很大,那么排序是一个大问题。 (我之前见过的东西。)

最简单的解决方案是吞下柠檬水并确定你真的非常喜欢limit并且不需要整个结果集。因此,添加limit 100limit 10000并查看问题是否消失。

不幸的是,如果您需要对整个结果集进行排序,我没有具体的建议。

相关问题