Optimieren Sie die Nutzung des Dienstes - Amazon Athena

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.

Optimieren Sie die Nutzung des Dienstes

Zu den Überlegungen zum Service Level gehören die Anzahl der Workloads, die Sie pro Konto ausführen, Servicekontingente nicht nur für Athena, sondern für alle Dienste sowie Überlegungen zur Reduzierung von Fehlern aufgrund unzureichender Ressourcen.

Führen Sie einen Workload pro Konto aus, um Servicekontingentbeschränkungen zu vermeiden

Athena setzt Kontingente für Kennzahlen wie die Laufzeit von Abfragen, die Anzahl gleichzeitiger Abfragen in einem Konto und API die Anforderungsraten durch. Weitere Hinweise zu diesen Kontingenten finden Sie unter Service Quotas. Eine Überschreitung dieser Kontingente führt dazu, dass eine Abfrage fehlschlägt – entweder beim Absenden oder während der Abfrageausführung.

Viele der Tipps zur Leistungsoptimierung auf dieser Seite können dazu beitragen, die Laufzeit von Abfragen zu reduzieren. Durch die Optimierung wird Kapazität freigesetzt, sodass Sie mehr Abfragen innerhalb des Parallelitätskontingents ausführen können, und verhindert, dass Abfragen abgebrochen werden, weil sie zu lange laufen.

Die Kontingente für die Anzahl gleichzeitiger Abfragen und API Anfragen gelten pro und. AWS-Konto AWS-Region Wir empfehlen, einen Workload pro Workload auszuführen AWS-Konto (oder separate bereitgestellte Kapazitätsreservierungen zu verwenden), um zu verhindern, dass Workloads um dasselbe Kontingent konkurrieren.

Wenn Sie zwei Workloads in demselben Konto ausführen, kann einer der Workloads eine ganze Reihe von Abfragen ausführen. Dies kann dazu führen, dass der verbleibende Workload gedrosselt oder daran gehindert wird, Abfragen auszuführen. Um dies zu vermeiden, können Sie die Workloads auf separate Konten verschieben, um jedem Workload ein eigenes Parallelitätskontingent zuzuweisen. Durch das Erstellen einer bereitgestellten Kapazitätsreservierung für eine oder beide Workloads wird dasselbe Ziel erreicht.

Ziehen Sie Kontingente in anderen Diensten in Betracht

Wenn Athena eine Abfrage ausführt, kann es andere Services aufrufen, die Kontingente durchsetzen. Während der Abfrageausführung kann Athena Amazon S3 und andere AWS Dienste wie IAM und API AWS KMS aufrufen. AWS Glue Data Catalog Wenn Sie föderierte Abfragen verwenden, ruft Athena auch auf. AWS Lambda Alle diese Services haben ihre eigenen Grenzwerte und Kontingente, die überschritten werden können. Wenn bei der Ausführung einer Abfrage Fehler von diesen Services auftreten, schlägt sie fehl und schließt den Fehler des Quellservices mit ein. Behebbare Fehler werden wiederholt, aber Abfragen können trotzdem fehlschlagen, wenn sich das Problem nicht rechtzeitig von selbst löst. Lesen Sie sich die Fehlermeldungen sorgfältig durch, um festzustellen, ob sie von Athena oder einem anderen Service stammen. Einige der relevanten Fehler werden in diesem Abschnitt zur Leistungsoptimierung behandelt.

Weitere Informationen zur Umgehung von Fehlern, die durch Amazon-S3-Servicekontingente verursacht werden, finden Sie unter Zu viele Dateien vermeiden weiter unten in diesem Dokument. Weitere Informationen zur Amazon-S3-Leistungsoptimierung finden Sie unter Bewährte Entwurfsmuster: Optimierung der Leistung von Amazon S3 im Amazon-S3-Benutzerhandbuch.

Reduzieren Sie Fehler aufgrund unzureichender Ressourcen

Athena führt Abfragen in einer verteilten Abfrage-Engine aus. Wenn Sie eine Abfrage einreichen, schätzt der Athena-Engine-Abfrageplaner die Rechenkapazität, die für die Ausführung der Abfrage erforderlich ist, und bereitet entsprechend einen Cluster von Rechenknoten vor. Einige Abfragen wie DDL Abfragen werden nur auf einem Knoten ausgeführt. Komplexe Abfragen über große Datensätze werden auf viel größeren Clustern ausgeführt. Die Knoten sind einheitlich und haben dieselben Speicher CPU - und Festplattenkonfigurationen. Athena aufskaliert, nicht ab, um anspruchsvollere Anfragen zu bearbeiten.

Manchmal übersteigen die Anforderungen einer Abfrage die Ressourcen, die dem Cluster zur Verfügung stehen, auf dem die Abfrage ausgeführt wird. In diesem Fall schlägt die Abfrage fehl und es wird folgende Fehlermeldung angezeigt: Abfrage erschöpfte Ressourcen mit diesem Skalierungsfaktor.

Die am häufigsten erschöpfte Ressource ist Arbeitsspeicher, in seltenen Fällen kann es sich aber auch um Festplattenspeicher handeln. Speicherfehler treten häufig auf, wenn die Engine eine Join- oder Fensterfunktion ausführt. Sie können jedoch auch in unterschiedlichen Zählungen und Aggregationen auftreten.

Selbst wenn eine Abfrage einmal mit dem Fehler „Nicht genügend Ressourcen“ fehlschlägt, kann sie erfolgreich sein, wenn Sie sie erneut ausführen. Die Abfrageausführung ist nicht deterministisch. Faktoren wie die Dauer des Ladens von Daten und die Verteilung der Zwischendatensätze auf die Knoten können zu einer unterschiedlichen Ressourcennutzung führen. Stellen Sie sich beispielsweise eine Abfrage vor, die zwei Tabellen miteinander verbindet und die Verteilung der Werte für die Join-Bedingung stark verzerrt ist. Eine solche Abfrage kann in den meisten Fällen erfolgreich sein, schlägt aber gelegentlich fehl, wenn die häufigsten Werte von demselben Knoten verarbeitet werden.

Verwenden Sie die in diesem Dokument genannten Tipps zur Leistungsoptimierung, um zu verhindern, dass Ihre Abfragen die verfügbaren Ressourcen überschreiten. Insbesondere Tipps zur Optimierung von Abfragen, die die verfügbaren Ressourcen erschöpfen, finden Sie unter Verknüpfungen optimieren, Reduzieren Sie den Umfang der Fensterfunktionen oder entfernen Sie sie und Optimieren Sie Abfragen mithilfe von Näherungen.