AWS Spectrum 为 AWS Glue 生成的镶木地板文件提供空白结果
Posted
技术标签:
【中文标题】AWS Spectrum 为 AWS Glue 生成的镶木地板文件提供空白结果【英文标题】:AWS Spectrum giving blank result for parquet files generated by AWS Glue 【发布时间】:2017-11-13 09:17:49 【问题描述】:我们正在使用 AWS Glue 构建 ETL。为了优化查询性能,我们将数据存储在 apache parquet 中。一旦数据以镶木地板格式保存在 S3 上。我们正在使用 AWS Spectrum 来查询该数据。
我们成功地在我们的开发 AWS 账户上测试了整个堆栈。但是当我们转移到我们的生产 AWS 账户时。我们遇到了一个奇怪的问题。当我们查询时返回行,但数据是空白的。
虽然计数查询返回了一个不错的数字
经过进一步调查,我们了解到开发 AWS 账户中的 apache parquet 文件是 RLE 编码的,而生产 AWS 账户中的文件是 BITPACKED 编码的。为了使这种情况更强大,我想将 BITPACKED 转换为 RLE 并查看我是否能够查询数据。
我对镶木地板文件很陌生,在转换编码方面找不到太多帮助。任何人都可以告诉我这样做的方法。
目前我们的主要怀疑是不同的编码。但如果你能猜到任何其他问题。我很乐意探索各种可能性。
【问题讨论】:
【参考方案1】:我们发现我们的配置错误。我们的外部表的列名与 AWS Glue 中指定的列名不一致。我们修复了这个问题,现在可以查看数据。 AWS Spectrum 部分的不足之处在于没有给出适当的错误消息。
【讨论】:
以上是关于AWS Spectrum 为 AWS Glue 生成的镶木地板文件提供空白结果的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 AWS RedShift Spectrum 为 S3 存储建模以进行查询