Amazon redshift AWS红移-无法将外部表合并到本地目录中
我们的一个外部表出现红移问题 AWS Glue中有300多个表,它们作为名为Amazon redshift AWS红移-无法将外部表合并到本地目录中,amazon-redshift,amazon-redshift-spectrum,Amazon Redshift,Amazon Redshift Spectrum,我们的一个外部表出现红移问题 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
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数据库的新外部模式,但出现了相同的问题
我还可以检查什么?是否存在任何可能导致表从目录中删除的情况?
外部表中有许多列超出了红移限制:
- 本地红移表的每个表1600列
- 1598列用于红移光谱外部表
您可以通过查询
svv\u external\u columns
来验证外部表的列数
除了上述解决方案之外,还有几个线程
您可以在红移端检查以下视图:SVV_外部_模式、SVV_外部_表、SVV_外部_分区、SVV_外部_列。也可能是这样的:SVL_S3QUERY_Summary我的列数有限(50),但我仍然面临这个问题,可能是什么问题?表中是否有嵌套的数据列?您可以通过Redshift论坛()向我发送一条包含集群详细信息的私人消息,我将进一步调查。没有嵌套列,这是从频谱表中直接选择的