我使用红移光谱查询 S3 数据,但遇到保留字冲突问题
Posted
技术标签:
【中文标题】我使用红移光谱查询 S3 数据,但遇到保留字冲突问题【英文标题】:I used redshift spectrum to query S3 data, but I am having a reserved word conflict problem 【发布时间】:2021-10-13 16:02:05 【问题描述】:我尝试使用红移光谱查询 S3 数据。
该表有一个oid
列,该表是使用胶水爬虫创建的。
我尝试在 redshift 中使用此命令获取数据。
select * from db.table order by pid desc limit 1
但出现错误。
[XX000] ERROR: Failed to incorporate external table "db"."table" into local catalog. Error=column name "oid" conflicts with a system column name
很难更改文件。有没有办法在不更改文件的情况下解决这个问题?
【问题讨论】:
【参考方案1】:有趣。如果这是一个普通表,则必须将用作列名的保留字双引号。这如何扩展到外部表可能很有趣。有没有
select "pid", "oid" from db.table order by pid desc limit 1;
工作?
我认为 Redshift 可能会将 * 扩展到列名中,然后再将它们传递给频谱引擎。 (或者它可能是其他东西。)如果这可行,它建议扩展列并引用保留字列名作为解决方法。
【讨论】:
感谢您的回答。我试过了,但还是显示了同样的错误信息。 最佳猜测,但没有奏效。在这一点上,我会就“在 Spectrum 中转义保留字列名”联系 AWS 支持。我担心可能没有解决方案,但他们会知道。以上是关于我使用红移光谱查询 S3 数据,但遇到保留字冲突问题的主要内容,如果未能解决你的问题,请参考以下文章