我正在使用Redhshift谱。我创建了一个外部表格,并在S3上传了一个csv数据文件,其中包含大约550万条记录。如果在这个外部表上触发一个查询,它会花费大约15秒,而如果我在Amazon Redshift上运行相同的查询,我在〜2秒内得到相同的结果。 AWS宣称它是非常高性能的平台,这可能是导致性能滞后的原因。请使用频谱建议解决方案以获得相同的性能Redshift Spectrum的性能问题
回答
为了您的性能优化,请查看http://docs.aws.amazon.com/redshift/latest/dg/c-spectrum-external-performance.html以了解您的查询。
现在,如果您没有单个CSV文件但是多个文件,效果最佳。通常情况下,如果每个查询的文件数量至少比您的群集的节点数量大一个数量级,则可以说您获得了出色的性能。另外,如果你使用Parquet文件,你可以在S3上获得柱状格式的优势,而不需要阅读从S3读取整个文件的CSV文件 - 并且降低了你的成本。
您可以使用下面的脚本把数据转换为实木复合地板:
https://github.com/awslabs/aws-big-data-blog/tree/master/aws-blog-spark-parquet-conversion
是否有任何在线csv拼花转换器可用。? –
你可以试试这个:https://github.com/awslabs/aws-big-data-blog/tree/master/aws-blog-spark-parquet-conversion – grundprinzip
这些结果是可以预料的。使用Amazon Redshift的全部理由是它以高度优化的方式存储数据以提供快速查询。存储在Redshift之外的数据不会以接近最快的速度运行。
Amazon Redshift Spectrum的目的是提供对存储在Amazon S3中的数据的访问,而无需将其加载到Redshift(类似于Amazon Athena),但它没有任何性能保证。
我有点晚回答这个问题。截至2018年2月,AWS支持AWS Spectrum查询柱状格式的文件,如Parquet,ORC等。在您的情况下,您将文件存储为.CSV。 CSV是基于行的,这会导致查询任何字段的整行。在查询之前,我会建议您将.csv中的文件转换为Parquet格式。这肯定会带来更快的性能。来自AWS的详细信息在 https://aws.amazon.com/redshift/spectrum/
Spectrify可能对此有用:https:// github的.com/hellonarrativ/spectrify –
- 1. redshift sql current_date get_date()性能问题
- 2. Amazon Redshift - 复制 - 数据加载与查询性能问题
- 3. 删除双引号“,同时将数据加载到Amazon Redshift Spectrum
- 4. AWS Redshift Spectrum - 如何在外部表中获取s3文件名
- 5. Amazon Redshift安全组问题
- 6. 性能问题
- 7. 性能问题
- 8. 性能问题
- 9. 性能问题
- 10. 性能问题
- 11. 性能问题
- 12. 性能问题
- 13. 。性能问题
- 14. 性能问题
- 15. 性能问题
- 16. 性能问题
- 17. 性能问题
- 18. SQL Workbench/J中的Redshift连接问题
- 19. PBRT Spectrum toRGB range
- 20. Nginx性能问题
- 21. StreamInsight性能问题
- 22. MemSQL性能问题
- 23. Directory.GetFiles()性能问题
- 24. Javascript性能问题
- 25. C#性能问题
- 26. requestAnimationFrame()性能问题
- 27. SSRS性能问题
- 28. Primefaces性能问题
- 29. xsl性能问题
- 30. FragmentStatePagerAdapter性能问题
我没有太多的Redshift Spectrum经验,但这似乎完全合理?不同之处在于Redshift由实例或EBS硬盘支持,Spectrum运行在S3上。我不希望他们具有可比性。 Spectrm专为PB和以上分析而设计,在Redshift或Hadoop中甚至不可能接近。 – Henry