0

Ich verwende Redshift-Spektrum. Ich habe eine externe Tabelle erstellt und eine CSV-Datei auf S3 mit ca. 5,5 Millionen Datensätzen hochgeladen. Wenn eine Abfrage auf dieser externen Tabelle ausgelöst wird, dauert es ~ 15 Sekunden, wenn ich dieselbe Abfrage auf Amazon Rotverschiebung ausführen, bekam ich das gleiche Ergebnis in ~ 2 Sekunden. Was könnte der Grund für diese Leistungsverzögerung sein, wenn AWS behauptet, es sei eine sehr leistungsstarke Plattform? Bitte schlagen Sie eine Lösung für die gleiche Leistung unter Verwendung des Spektrums vor.Leistungsprobleme mit Redshift Spectrum

+1

Ich habe nicht viel Erfahrung mit Redshift Spectrum, aber das scheint völlig in Ordnung? Der Unterschied besteht darin, dass Redshift von Instanz- oder EBS-Festplattenlaufwerken unterstützt wird und Spectrum über S3 läuft. Ich würde nicht erwarten, dass sie vergleichbar sind. Spectrm ist für PB- und darüber hinaus-Analysen ausgelegt, die in Redshift oder Hadoop nicht einmal annähernd möglich wären. – Henry

Antwort

2

Für Ihre Leistungsoptimierungen sehen Sie sich bitte http://docs.aws.amazon.com/redshift/latest/dg/c-spectrum-external-performance.html an, um Ihre Anfrage zu verstehen.

Im Moment ist die beste Leistung, wenn Sie nicht eine einzelne CSV-Datei, sondern mehrere haben. Normalerweise können Sie sagen, dass Sie eine hohe Leistung erzielen, wenn die Anzahl der Dateien pro Abfrage mindestens um eine Größenordnung höher ist als die Anzahl der Knoten in Ihrem Cluster.

Außerdem, wenn Sie Parkett-Dateien verwenden, erhalten Sie den Vorteil eines spaltenförmigen Formats auf S3 anstatt CSV zu lesen, das die gesamte Datei von S3 liest - und Ihre Kosten ebenfalls verringert.

Sie können das folgende Skript verwenden, um Daten zu Parkett konvertieren:

https://github.com/awslabs/aws-big-data-blog/tree/master/aws-blog-spark-parquet-conversion

+0

Gibt es einen Online-CSV zu Parkett-Konverter zur Verfügung? –

+0

Sie können dies versuchen: https://github.com/awslabs/aws-big-data-blog/tree/master/aws-blog-spark-parquet-conversion – grundprinzip

0

Diese Ergebnisse sind zu erwarten. Der Hauptgrund für die Verwendung von Amazon Redshift ist, dass es Daten in einer hochoptimierten Weise speichert, um schnelle Abfragen zu ermöglichen. Daten, die außerhalb von Redshift gespeichert sind, werden nicht annähernd so schnell ausgeführt.

Das Ziel von Amazon Redshift Spectrum ist es, den Zugriff auf in Amazon S3 gespeicherte Daten zu ermöglichen, ohne es in Redshift laden zu müssen (ähnlich wie bei Amazon Athena), aber es gibt keine Leistungsgarantie.

1

Ich bin etwas spät, um dies zu beantworten. Ab Februar 2018 unterstützt AWS die AWS Spectrum-Abfragen für Dateien in spaltenförmigen Formaten wie Parkett, ORC usw. In Ihrem Fall speichern Sie die Datei als .CSV. CSV basiert auf Zeilen, was dazu führt, dass die gesamte Zeile für jedes abgefragte Feld herausgezogen wird. Ich empfehle Ihnen, die Dateien vor dem Abfragen von .csv in das Parquet-Format zu konvertieren. Dies wird sicherlich zu einer viel schnelleren Leistung führen. Details von AWS bei https://aws.amazon.com/redshift/spectrum/

+0

Spectrify könnte dafür nützlich sein: https: // github .com/hellonarativ/spektroskopieren –