Запрос не выполнен с ошибкой RESOURCE_EXHAUSTED (ORDER BY без ORDER BY) - PullRequest
0 голосов
/ 12 июня 2019

У меня есть запрос приведенной ниже формы, работающий на большой таблице (~ 60 ГБ). Я полагаю, что С СМЕЩЕНИЕМ это своего рода ЗАКАЗ под капотом? Любые идеи, как излечить эту проблему, приветствуются.

Я получаю следующую ошибку: Сбой задания xxx с ошибкой RESOURCE_EXHAUSTED: Превышены ресурсы во время выполнения запроса: запрос не может быть выполнен в выделенной памяти. Пиковое использование: 112% от лимита. Главный потребитель (и) памяти: операции ORDER BY: 98%, другие / не отнесены: 2%; JobID: ххх

WITH
  test_data AS (
  SELECT
    CAST(CURRENT_TIMESTAMP() as DATETIME) datetime,
    'xyz' AS grp,
    '["7f9f98fh9g4ef393d3h5", "chg3g33f26949hg6067d", "g477e5973ec04g7c3232", "0de1ec83304d761he786", "3c1h1f153530g90g35c2", "946637g145h48322686f"]' AS ids
  UNION ALL
  SELECT
    CAST(CURRENT_TIMESTAMP() as DATETIME) datetime,
    'abc' AS grp,
    '["7f9f98fh9g4ef393d3h5", "chg3g33fdsfsdfs49hg6067d", "g477e5973ec04g7c3232", "0de1ec83304d761he786", "3c1h1f153530g90g35c2", "946637g145h48322686f"]' AS ids ),

  as_list AS (
    SELECT
      datetime,
      grp,
      id,
      pos
    FROM
     test_data, UNNEST(SPLIT(REGEXP_REPLACE(JSON_EXTRACT(ids,'$'), r'[\[\]\"]', ''), ',')) AS id WITH OFFSET AS pos)

SELECT
  *
FROM
  as_list
ORDER BY
  grp, datetime

1 Ответ

2 голосов
/ 12 июня 2019

Чтобы решить эту проблему, просто удалите ORDER BY или добавьте LIMIT

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...