2014-11-13 11 views
5

Ich verwende json_extract_path_text Funktion, um Werte aus JSON zu extrahieren. Wenn die Zeilendaten zunehmen, dauert die Ausführung der Abfrage lange Zeit und schlägt für einige Zeit fehl.So beschleunigen Sie Redshift-Abfragen

Gibt es eine Möglichkeit Abfrageausführungszeit zu reduzieren oder verbessern josn_extract_path_text Funktion

+0

können Sie ein Beispiel hinzufügen? Im Allgemeinen führen alle Textmanipulationen dazu, dass die Abfragen länger ausgeführt werden. Die Abfrage kann jedoch hilfreich sein – alexanderlz

Antwort

1

Die Lösung ist: speichern Sie Ihre Daten in tabellarischer Form anstelle von JSON. JSON ist keine gute Wahl zum Speichern größerer Datensätze, da JSON durch die Speicherung unterschiedlicher Daten in einer einzelnen Spalte nicht die Spaltenspeicherarchitektur von Amazon Redshift nutzt. Oder ändern Sie Ihren Knotentyp alternativ zu einem größeren.

-1

Redshift ist ein säulenartiger Speicher. Das Speichern von Daten im JSON-Format beschleunigt die Abfrage nicht. Dies würde mit einer NOSQL-Datenbank des Dokumentmodells funktionieren, nicht jedoch mit RedShift. Um RedShift-Abfragen effizient zu gestalten, ist der Verteilungsstil (selbst für das Szenario, in dem Daten keiner bestimmten Reihenfolge folgen oder zufällig sind) der Tabellen wichtig, basierend auf der Anzahl der Cluster, die Sie haben. Außerdem würde Ihnen der Verteilungsschlüssel in der Primärschlüsselspalte (in einem anderen RDBMS-Modell) und der Sortierschlüssel für dieselben in Joins helfen (er würde den Join zum Sortieren von Zusammenführungen anstelle des längeren Hash-Joins verwenden).

Weitere Details hierzu finden Sie in der Dokumentation. RTFM ist dein Freund hier.