Ошибка нехватки памяти при создании таблицы, но SELECT работает - PullRequest
4 голосов
/ 24 октября 2019

Я пытаюсь СОЗДАТЬ таблицу, используя CREATE TABLE AS, которая выдает следующую ошибку:

[Amazon](500310) Invalid operation: Out Of Memory: 
Details: 
 -----------------------------------------------
  error:  Out Of Memory: 
  code:      1004
  context:   alloc(524288,MtPool)
  query:     6041453
  location:  alloc.cpp:405
  process:   query2_98_6041453 [pid=8414]
  -----------------------------------------------;

Я получаю эту ошибку каждый раз, когда выполняю запрос, но выполняю только SELECTчасть запроса (без CREATE TABLE AS) работает нормально. Результат имеет около 38 тыс. Строк. Однако я вижу, что есть резкое различие в возвращенных байтах при последовательном сканировании на одной таблице.

ВЫБРАТЬ

enter image description here enter image description here


СОЗДАТЬТАБЛИЦА КАК ВЫБРАТЬ enter image description here enter image description here


Я не понимаю, почему между этими двумя сценариями так много различий и что может бытьсделано, чтобы смягчить это. Я также пытался создать TEMP TABLE, но это также приводит к ошибке памяти.

Я не очень разбираюсь в планах запросов (никогда не находил подробное руководство по нему для Redshift, поэтому, если вы могли бы сослаться на некоторыересурс, который был бы бонусом.)

Обновление : также попытался сначала создать таблицу, а затем вставить данные с помощью SELECT, что также выдает ту же ошибку.

Обновление 2 : пробовал set wlm_query_slot_count to 40; или даже 50, но все равно та же ошибка.

1 Ответ

0 голосов
/ 29 октября 2019

Мы столкнулись с подобной проблемой после того, как наши кластеры были обновлены до последней версии (1.0.10694).

Две вещи, которые помогли:

Мы подозреваем, что AWS, возможно, что-то изменил с управлением памятью с последними обновлениями. Я обновлю, как только мы ответим.

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