AWS Redshift - не удалось включить внешнюю таблицу в локальный каталог

Возникла проблема с одной из наших внешних таблиц в красном смещении.

У нас в AWS Glue более 300 таблиц, которые были добавлены в наш кластер красных смещений как внешняя схема events, Большинство таблиц в events могут быть запросы в порядке. Но при запросе одной из таблиц называется item_loaded мы получаем следующую ошибку;

select * from events.item_loaded limit 1;
ERROR:  XX000: Failed to incorporate external table "events"."item_loaded" into local catalog.
LOCATION:  localize_external_table, /home/ec2-user/padb/src/external_catalog/external_catalog_api.cpp:358

Что странно, так это то, что они есть в каталоге;

select *
from SVV_EXTERNAL_TABLES
where tablename = 'item_loaded';

-[ RECORD 1 ]-----+------------------------------------------
schemaname        | events
tablename         | item_loaded
location          | s3://my_bucket/item_loaded
input_format      | org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat
output_format     | org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat
serialization_lib | org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe 
serde_parameters  | {"serialization.format":"1"}
compressed        | 0
parameters        | {"EXTERNAL":"TRUE","parquet.compress":"SNAPPY","transient_lastDdlTime":"1504792238"}

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

Что еще я мог бы проверить? Есть ли что-нибудь, что может привести к удалению таблицы из каталога?

3 ответа

Решение

Согласно сообщению на форуме о том же:

Внешняя таблица имеет ряд столбцов, которые превышают пределы Redshift:

  • 1600 столбцов в таблице для локальной таблицы Redshift
  • 1598 колонок для внешнего стола Redshift Spectrum

Вы можете проверить количество столбцов внешней таблицы, запросив svv_external_columns

Я совсем недавно столкнулся с проблемой,

В дополнение к вышеупомянутому решению, есть еще несколько потоков

  1. https://forums.aws.amazon.com/message.jspa?messageID=845538&tstart=0 (Решение от Джо)
  2. https://forums.aws.amazon.com/thread.jspa?messageID=780552 (говорит, что исправление включено)
  3. Я столкнулся с этой проблемой с ролью IAM, имеющей полный доступ AWS Glue. Я также намеренно добавил AthenaFullAccess и перезапустил кластер Redshift, который решил проблему. Не уверен, что вызвало проблему и как она была решена в этом случае

это также может произойти, если в конфиге есть опечатки. например, следующее не удается:

      SECRET_ARN ' arn:aws:secretsmanager:us-east-1:123:secret:stage/data/redshift-rds'

и последующие работы

      SECRET_ARN 'arn:aws:secretsmanager:us-east-1:123:secret:stage/data/redshift-rds'

Обратите внимание на дополнительный пробел в начале rn

Другие вопросы по тегам