我们在 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 数据库的新外部架构,但出现了同样的问题。
我还能检查什么?是否有任何可能导致表从目录中删除的情况?