0

我们正在使用 AWS Glue 构建 ETL。为了优化查询性能,我们将数据存储在 apache parquet 中。一旦数据以镶木地板格式保存在 S3 上。我们正在使用 AWS Spectrum 来查询该数据。

我们成功地在我们的开发 AWS 账户上测试了整个堆栈。但是当我们转移到我们的生产 AWS 账户时。我们遇到了一个奇怪的问题。当我们查询时返回行,但数据是空白的。 在此处输入图像描述

虽然 count 查询返回一个好数字 在此处输入图像描述

经过进一步调查,我们了解到开发 AWS 账户中的 apache parquet 文件是 RLE 编码的,而生产 AWS 账户中的文件是 BITPACKED 编码的。为了使这种情况更强大,我想将 BITPACKED 转换为 RLE 并查看我是否能够查询数据。

我对镶木地板文件很陌生,在转换编码方面找不到太多帮助。任何人都可以告诉我这样做的方法。

目前我们的主要怀疑是不同的编码。但如果你能猜到任何其他问题。我很乐意探索各种可能性。

4

1 回答 1

0

我们发现我们的配置错误。我们的外部表的列名与 AWS Glue 中指定的列名不一致。我们修复了这个问题,现在可以查看数据。我对 AWS Spectrum 部分的不足之处是没有给出适当的错误消息。

于 2017-11-13T10:33:34.220 回答