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.

Betreiben Sie mehrere Workloads innerhalb desselben Kontos

Athena verwendet Kontingente, um die Parallelität von Abfragen und die API-Anforderungsraten auf Kontoebene zu begrenzen. Eine Überschreitung dieser Kontingente kann dazu führen, dass Abfragen während der Ausführung oder bei der Übermittlung fehlschlagen. Weitere Hinweise zu diesen Kontingenten finden Sie unter Service Quotas.

Wenn Sie mehrere Workloads innerhalb desselben AWS Kontos betreiben, konkurrieren Ihre Workloads um dasselbe Kontingent auf Kontoebene. Wenn beispielsweise bei einem Workload ein unerwarteter Anstieg von Anfragen auftritt, kann es zu einer Drosselung der Abfrageübermittlung oder zu erhöhten Wartezeiten kommen.

Wir empfehlen Ihnen, die Nutzung Ihrer Dienste mithilfe von Diagrammen und Dashboards CloudWatch zu überwachen. Sie können auch CloudWatch Alarme konfigurieren, die Sie benachrichtigen, wenn sich Ihre Nutzung dem Servicekontingent für gleichzeitige Abfragen nähert, sodass Sie Maßnahmen ergreifen können, bevor die Kontingentgrenzen erreicht werden. Weitere Informationen finden Sie unter Überwachen Sie die Nutzungsmetriken von Athena mit CloudWatch.

Verwenden Sie Kapazitätsreservierungen, um die Parallelität von Abfragen zu kontrollieren und Workloads innerhalb Ihres Kontos zu isolieren. Kapazitätsreservierungen bieten dedizierte Kapazität zur Abfrageverarbeitung innerhalb eines einzigen Kontos. Die Kapazität wird in Datenverarbeitungseinheiten (DPUs) gemessen und kann hinzugefügt oder entfernt werden, um die Parallelität von Abfragen zu erhöhen bzw. zu verringern. Kapazitätsreservierungen ermöglichen es Ihnen, Workloads innerhalb Ihres Accounts voneinander zu isolieren, indem Sie einer oder mehreren Arbeitsgruppen Kapazität zuweisen. Weitere Informationen finden Sie unter Kapazität zur Abfrageverarbeitung verwalten.

Die Aufteilung von Workloads auf verschiedene AWS Konten kann zwar für organisatorische Zwecke nützlich sein (z. B. die Isolierung von Entwicklungs- und Produktionsumgebungen), aber dieser Ansatz bietet keine skalierbare Möglichkeit, die Parallelität von Abfragen zu erhöhen. Verwenden Sie stattdessen Kapazitätsreservierungen, um Ihre Anforderungen an die Abfrageverarbeitung innerhalb eines einzigen Kontos zu verwalten und zu skalieren.

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 API-Aufrufe an Amazon S3 und andere AWS Dienste wie IAM und tätigen. AWS Glue Data Catalog AWS KMS 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, bei denen nicht genügend Ressourcen zur Verfügung stehen

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.