Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Bewährte Methoden für die Verwendung von Amazon Redshift Spectrum
Dieser Abschnitt bietet einen Überblick über bewährte Methoden für die Verwendung von Amazon Redshift Spectrum. Wir empfehlen Ihnen, die folgenden bewährten Methoden zu befolgen, um eine optimale Leistung bei der Verwendung von Redshift Spectrum zu erzielen:
-
Bedenken Sie, dass Dateitypen einen erheblichen Einfluss auf die Redshift Spectrum-Abfrageleistung haben. Verwenden Sie zur Verbesserung der Leistung spaltencodierte Dateien wie ORC oder Parquet und das CSV-Format nur für Tabellen mit sehr kleinen Dimensionen.
-
Verwenden Sie präfixbasierte Partitionierung, um die Vorteile der Partitionsbereinigung zu nutzen. Das bedeutet, Filter zu verwenden, die den Partitionen in Ihrem Data Lake zugeordnet sind.
-
Redshift Spectrum skaliert automatisch, um große Anfragen zu verarbeiten, also tun Sie so viel wie möglich in Redshift Spectrum (z. B. Predicate Pushdown).
-
Achten Sie darauf, Dateien in häufig gefilterten Spalten zu partitionieren. Wenn Daten nach einer oder mehreren gefilterten Spalten partitioniert sind, kann Redshift Spectrum die Vorteile der Partitionsbereinigung nutzen und das Scannen nicht benötigter Partitionen und Dateien überspringen. Häufig werden die Daten nach der Zeit partitioniert.
-
Sie können die Effektivität Ihrer Partitionen und die Effizienz Ihrer Redshift Spectrum-Abfrage überprüfen, indem Sie die folgende Abfrage verwenden.
Select query, segment, max(assigned_partitions) as total_partitions, max(qualified_partitions) as qualified_partitions From svl_s3partition Where query=pg_last_query_id() Group by 1,2;
Die vorherige Abfrage zeigt Folgendes:
-
total_partitions — Die Anzahl der Partitionen, die von der erkannt wurden AWS Glue Data Catalog
-
qualified_partitions — Die Anzahl der Präfixe auf Amazon Simple Storage Service (Amazon S3), auf die für die Redshift Spectrum-Abfrage zugegriffen wird
-
-
Sie können auch die
SVL_S3QUERY_SUMMARY
Systemtabelle überprüfen, um mehr über die Effektivität Ihrer Partitionen und die Effizienz Ihrer Redshift Spectrum-Abfrage zu erfahren. Verwenden Sie dazu die folgende Anweisung.Select * From svl_s3query_summary Where query=pg_last_query_id();
Die vorherige Abfrage gibt noch mehr Informationen zurück, einschließlich
is_partitioned
, unds3_returned_rows/bytes
Wertes3_scanned_rows/bytes
, zusätzlich zu Dateien, die die Effizienz der Partitionsbereinigung belegen.
Prädikats-Pushdown in Redshift Spectrum
Durch die Verwendung von Predicate Pushdown wird der Ressourcenverbrauch im Amazon Redshift Redshift-Cluster vermieden. Sie können viele SQL-Operationen auf die Redshift Spectrum-Ebene übertragen. Wir empfehlen, dies wo immer möglich zu nutzen.
Beachten Sie Folgendes:
-
Sie können einige Arten von SQL-Operationen vollständig innerhalb der Redshift Spectrum-Ebene auswerten, darunter die folgenden:
-
GROUP BY
Klauseln -
Bedingungen für Vergleich und Musterabgleich (zum Beispiel)
LIKE
-
Aggregatfunktionen (z. B.,
COUNT
,SUM
AVG
MIN
, und)MAX
-
regex_replace
,to_upper
date_trunc
, und andere Funktionen
-
-
Sie können einige Operationen nicht auf die Redshift Spectrum-Ebene übertragen, einschließlich
DISTINCT
undORDER BY
. Führen Sie möglichstORDER BY
nur auf der obersten Ebene der Abfrage aus, da die Sortierung im Leader-Knoten erfolgt. -
Prüfen Sie Ihren
EXPLAIN
Abfrageplan, um zu überprüfen, ob das Prädikat Pushdown wirksam ist. Gehen Sie wie folgt vor, um Redshift Spectrum-Teile in einemEXPLAIN
Befehl zu finden:-
S3 Seq Scan
-
S3 HashAggregate
-
S3 Query Scan
-
Seq Scan PartitionInfo
-
Partition Loop
-
-
Verwenden Sie die geringste Anzahl von Spalten in Ihrer Abfrage. Redshift Spectrum kann Spalten für das Scannen eliminieren, wenn Daten im Parquet- oder ORC-Format vorliegen.
-
Verwenden Sie Partitionen ausgiebig für die Parallelverarbeitung und die Eliminierung von Partitionen und halten Sie die Dateigrößen nach Möglichkeit auf mindestens 64 MB.
-
Stellen Sie das ein
TABLE PROPERTIES
'numRows'='nnn'
, wenn SieCREATE EXTERNAL TABLE
oder verwendenALTER TABLE
. Amazon Redshift analysiert keine externen Tabellen, um Tabellenstatistiken zu generieren, die der Abfrageoptimierer zur Generierung eines Abfrageplans verwendet. Wenn die Statistiken nicht festgelegt sind, geht Amazon Redshift davon aus, dass externe Tabellen die größeren Tabellen und lokale Tabellen die kleineren Tabellen sind.
Tipps zur Abfrageoptimierung für Redshift Spectrum
Wir empfehlen Ihnen, bei der Optimierung Ihrer Abfragen Folgendes zu beachten:
-
Die Anzahl der Redshift Spectrum-Knoten, die Ihr Amazon Redshift Redshift-Cluster für eine Abfrage verwenden kann, ist an die Anzahl der Slices in Ihrem Cluster gebunden.
-
Die Größe Ihres Clusters nach oben kann den lokalen Rechenprofilen, Speicherprofilen und den Abfragefunktionen der Amazon S3 S3-Data-Lake-Abfrage zugute kommen.
-
Der Amazon-Redshift-Abfrageplaner pusht Prädikate und Aggregationen nach Möglichkeit auf die Redshift-Spectrum-Abfrageebene.
-
Wenn große Mengen von Daten von Amazon S3 zurückgegeben werden, ist die Verarbeitung durch die Ressourcen Ihres Clusters begrenzt.
-
Da Redshift Spectrum automatisch skaliert, um große Anfragen zu verarbeiten, verbessert sich Ihre Gesamtleistung, wenn Sie die Verarbeitung auf die Redshift Spectrum-Ebene übertragen können.