Как изменить внешнюю таблицу в спектре красного смещения?

#amazon-redshift #amazon-redshift-spectrum

#amazon-redshift #amazon-redshift-spectrum

Вопрос:

Я хочу добавить раздел данных в свою внешнюю таблицу, но я получаю сообщение об ошибке: ALTER EXTERNAL TABLE не может выполняться внутри блока транзакции.

Я удалил НАЧАЛЬНУЮ / КОНЕЧНУЮ транзакцию, но все та же ошибка сохраняется. Я читал на некоторых форумах, что добавление уровня изоляции может решить проблему, но хотел узнать мнение других, если кто-то сталкивался с этим раньше.

Комментарии:

1. вероятно, вам нужно, чтобы режим фиксации транзакции был «автоматическим», а не «ручным». настройка этого зависит от способа подключения. использование psql из командной строки — самый безопасный способ.

2. Было бы полезно, если бы вы могли предоставить пример кода для воспроизведения ошибки, а также объяснить, какие клиентские инструменты и драйверы вы используете,

3. @JonScott Любой код, который вы можете опубликовать для выполнения этого из клиента psql? Я пытаюсь сделать то же самое (например, сначала я использую unload для записи таблицы в корзину s3), затем пытаюсь разделить внешнюю таблицу. Обычная команда alter table, которую я использую в своем клиенте SQLworkbenchJ, выдает ошибку, когда я пытаюсь выполнить ту же команду с клиентом psql в crontab

Ответ №1:

Стандартное утверждение, подобное этому, работает для меня. Если вы также получаете ошибку из-за этого, пожалуйста, поделитесь своим точным утверждением?

 ALTER TABLE spectrum_schema.spect_test 
ADD PARTITION (column_part='2019-07-23') 
LOCATION 's3://bucketname/folder1/column_part=2019-07-23/';