AWS Builder Center: Learn, Build and Connect with builders in the AWS community
AWS Builder Center is the official home for builders on AWS. Share and read what others are working on, follow people who inspire you, explore training and workshops, and find tools to support what you're building.
Wie kann ich eine Amazon-Athena-Abfrage planen?
Ich möchte Abfragen in Amazon Athena planen.
Kurzbeschreibung
Geplante Abfragen haben viele Anwendungsfälle, z. B. regelmäßige Berichte oder das Laden neuer Partitionen in regelmäßigen Intervallen. Wähle je nach Anwendungsfall eine der folgenden Methoden, um Abfragen in Athena zu planen:
- Erstelle eine AWS-Lambda-Funktion, um die Abfrage zu planen, und erstelle dann eine Amazon-EventBridge-Regel, um die Lambda-Funktion zu planen.
- Verwende AWS Step Functions, um eine ETL-Pipeline zu erstellen, die Athena verwendet.
- Verwende auf einem Linux-Computer crontab, um die Abfrage zu planen.
- Verwende einen AWS-Glue-Python-Shell-Auftrag.
Lösung
Verwendung einer Lambda-Funktion und einer EventBridge-Regel, um eine Athena-Abfrage zu planen
Du kannst eine Lambda-Funktion und eine EventBridge-Regel verwenden, um eine Athena-Abfrage zu planen. Gehe dazu wie folgt vor:
-
Erstelle eine AWS Identity and Access Management (IAM)-Servicerolle für Lambda. Füge dann eine Richtlinie an, die den Zugriff auf Athena, Amazon Simple Storage Service (Amazon S3) und Amazon CloudWatch Logs ermöglicht. Beispielsweise kannst du der Rolle die Berechtigungen AmazonAthenaFullAccess and CloudWatchLogsFullAccess hinzufügen. AmazonAthenaFullAccess ermöglicht den vollen Zugriff auf Athena und beinhaltet grundlegende Berechtigungen für Amazon S3. CloudWatchLogsFullAccess ermöglicht den vollen Zugriff auf CloudWatch Logs.
-
Öffne die Lambda-Konsole.
-
Wähle Funktion erstellen.
-
Vergewissere dich, dass Ohne Vorgabe erstellen ausgewählt ist, und konfiguriere dann die folgenden Optionen:
Gib unter Name einen Namen für deine Funktion ein.
Wähle für Laufzeit eine der Python-Optionen.
Wähle für Rolle die Option Verwenden einer vorhandenen Rolle aus, und wähle dann die IAM-Rolle aus, die du in Schritt 1 erstellt hast. -
Wähle Funktion erstellen.
-
Füge deinen Code in den Abschnitt Funktionscode ein. Das folgende Beispiel verwendet Python 3.7. Ersetze im Beispiel die folgenden Werte:
Standard: der Athena-Datenbankname
SELECT* FROM default.tb: die Abfrage, die du planen möchtest
s3://AWSDOC-EXAMPLE-BUCKET/: der S3-Bucket für die Abfrageausgabeimport boto3 # Query string to execute query = 'SELECT * FROM database.tb' # Database to execute the query against DATABASE = 'database' # Output location for query results output='s3://OUTPUTBUCKET/' def lambda_handler(event, context): # Initiate the Boto3 Client client = boto3.client('athena') # Start the query execution response = client.start_query_execution( QueryString=query, QueryExecutionContext={ 'Database': DATABASE }, ResultConfiguration={ 'OutputLocation': output } ) # Return response after starting the query execution return response -
Wähle Bereitstellen.
-
Öffne die Amazon-EventBridge-Konsole.
-
Wähle im Navigationsbereich Regeln und dann Regel erstellen aus.
-
Gib einen Namen und eine Beschreibung für die Regel ein.
-
Wähle unter Muster definieren die Option Zeitplan aus.
-
Wähle Cron-Ausdruck aus und gib dann einen Cron-Ausdruck ein.
-
Wähle für Ereignisbus auswählen die Option AWS-Standard-Ereignisbus aus.
-
Gehe im Abschnitt Ziele auswählen wie folgt vor:
Wähle für Ziel die Lambda-Funktion aus der Dropdown-Liste aus.
Wähle für Funktion den Namen deiner Lambda-Funktion aus der Dropdown-Liste aus. -
Wähle Erstellen.
Hinweis: Es gibt Kontingente für die zulässige Anzahl von Aufrufen der Athena-API pro Konto. Stelle sicher, dass du die Kontingente einhältst, wenn du mehrere Abfragen planen möchtest. Weitere Informationen findest du unter API-Aufrufkontingente pro Konto.
Eine ETL-Pipeline mit Step Functions erstellen
Wenn du Step Functions verwendest, um eine ETL-Pipeline zu erstellen, die Athena enthält, kannst du die Step Functions verwenden, um eine Athena-Abfrage zu planen.
crontab von einem Linux-Computer aus verwenden
Wenn du einen Linux-Computer verwendest, kannst du crontab verwenden, um eine Athena-Abfrage zu planen.
Einen AWS-Glue-Python-Shell-Auftrag verwenden
Du kannst einen AWS-Glue-Python-Shell-Auftrag verwenden, um die Athena-Abfrage mit der Athena-Boto3-API auszuführen. Definiere dann einen Zeitplan für den AWS-Glue-Auftrag.
Ähnliche Informationen
Tutorial: Eine geplante EventBridge-Regel für AWS-Lambda-Funktionen erstellen
Erstellen einer Regel, die nach einem Zeitplan in Amazon EventBridge ausgeführt wird
- Themen
- Analytics
- Tags
- Amazon Athena
- Sprache
- Deutsch
Ähnliche Videos


Relevanter Inhalt
AWS OFFICIALAktualisiert vor einem Jahr
AWS OFFICIALAktualisiert vor 4 Jahren
AWS OFFICIALAktualisiert vor einem Jahr
AWS OFFICIALAktualisiert vor einem Jahr