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
Я совсем недавно столкнулся с проблемой,
В дополнение к вышеупомянутому решению, есть еще несколько потоков
- https://forums.aws.amazon.com/message.jspa?messageID=845538&tstart=0 (Решение от Джо)
- https://forums.aws.amazon.com/thread.jspa?messageID=780552 (говорит, что исправление включено)
- Я столкнулся с этой проблемой с ролью 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