0

我正在使用Redhshift譜。我創建了一個外部表格,並在S3上傳了一個csv數據文件,其中包含大約550萬條記錄。如果在這個外部表上觸發一個查詢,它會花費大約15秒,而如果我在Amazon Redshift上運行相同的查詢,我在〜2秒內得到相同的結果。 AWS宣稱它是非常高性能的平臺,這可能是導致性能滯後的原因。請使用頻譜建議解決方案以獲得相同的性能Redshift Spectrum的性能問題

+1

我沒有太多的Redshift Spectrum經驗,但這似乎完全合理?不同之處在於Redshift由實例或EBS硬盤支持,Spectrum運行在S3上。我不希望他們具有可比性。 Spectrm專爲PB和以上分析而設計,在Redshift或Hadoop中甚至不可能接近。 – Henry

回答

2

爲了您的性能優化,請查看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

+0

是否有任何在線csv拼花轉換器可用。? –

+0

你可以試試這個:https://github.com/awslabs/aws-big-data-blog/tree/master/aws-blog-spark-parquet-conversion – grundprinzip

0

這些結果是可以預料的。使用Amazon Redshift的全部理由是它以高度優化的方式存儲數據以提供快速查詢。存儲在Redshift之外的數據不會以接近最快的速度運行。

Amazon Redshift Spectrum的目的是提供對存儲在Amazon S3中的數據的訪問,而無需將其加載到Redshift(類似於Amazon Athena),但它沒有任何性能保證。

1

我有點晚回答這個問題。截至2018年2月,AWS支持AWS Spectrum查詢柱狀格式的文件,如Parquet,ORC等。在您的情況下,您將文件存儲爲.CSV。 CSV是基於行的,這會導致查詢任何字段的整行。在查詢之前,我會建議您將.csv中的文件轉換爲Parquet格式。這肯定會帶來更快的性能。來自AWS的詳細信息在 https://aws.amazon.com/redshift/spectrum/

+0

Spectrify可能對此有用:https:// github的.com/hellonarrativ/spectrify –