我正在计划用以下参数分析TSV文件
文件大小将达到350-400 MB
我的问题在这里
由于我是AWS Athena的新手,欢迎任何建议或反馈?
我认为雅典娜在处理400 MB文件时不会遇到任何问题。您可以将它们分成两个大小相等的文件(是的,也使用压缩)然后查询。通常 - 如果拆分文件太小(小于128 MB)并且文件太多,您可能会发现拆分文件实际上需要更多时间。对于您的总文件大小,我认为即使它是单个文件也不会发现任何差异。
但是将TSV转换为柱状格式将为您提供最佳性能。尝试将TSV / CSV转换为Parquet并进行查询。你不太可能所有的查询都是select * from
所以继续前进和镶木地板。查看converting to columnar formats的用户指南
对于雅典娜来说,这是一个非常小的数据集,除非很多人不断使用它,否则优化可能不值得。如果您所做的一切都是从1.6秒 - .8秒查询,那么时间可能会更好。回答你的问题:
我是否需要拆分成多个文件以获得更好的性能?不会。这可能会影响这种规模的表现。
我应该分区吗?减少扫描并节省成本?不太可能,很难想象一个值得它的场景。
如何加快选择查询?索引如何在TSV文件中工作?如果你留在关于排序等的TSV文件中,你可以做的事情并不多。
Snappy压缩会减小文件的大小吗? 30%-40%(文件将为280-300 MB)。它会。
将它转换为Apache ORC会有助于减小尺寸吗?是。这将是最值得采取的行动。转换为ORC或Parquet的最小努力可能会比上述任何其他方面带来更大的收益。