Abfragen mit benutzerdefinierten Funktionen
Mit benutzerdefinierten Funktionen (UDF) in Amazon Athena können Sie eigene Funktionen zum Verarbeiten von Datensätzen oder Datensatzgruppen erstellen. Eine UDF akzeptiert Parameter, führt Arbeit aus und gibt dann ein Ergebnis zurück.
Um eine UDF in Athena zu verwenden, schreiben Sie eine USING EXTERNAL FUNCTION-Klausel vor eine SELECT-Anweisung in einer SQL-Abfrage. Die SELECT-Anweisung verweist auf die UDF und definiert die Variablen, die beim Ausführen der Abfrage an die UDF übergeben werden. Die SQL-Abfrage ruft eine Lambda-Funktion mit der Java-Laufzeitumgebung auf, wenn sie die UDF aufruft. UDFs werden innerhalb der Lambda-Funktion als Methoden in einem Java-Bereitstellungspaket definiert. Mehrere UDFs können im gleichen Java-Bereitstellungspaket für eine Lambda-Funktion definiert werden. Sie geben auch den Namen der Lambda-Funktion in der USING EXTERNAL FUNCTION-Klausel an.
Sie haben zwei Optionen zum Bereitstellen einer Lambda-Funktion für Athena-UDFs. Sie können die Funktion direkt mit Lambda bereitstellen, oder Sie können die verwenden AWS Serverless Application Repository. Um vorhandene Lambda-Funktionen für UDFs zu finden, können Sie das öffentliche AWS Serverless Application Repository oder das private Repository durchsuchen und dann auf Lambda bereitstellen. Sie können auch Java-Quellcode erstellen oder ändern, ihn in eine JAR-Datei verpacken und mit Lambda oder dem bereitstellen AWS Serverless Application Repository. Beispiele für Java-Quellcode und -Pakete für den Einstieg finden Sie unter Erstellen und Bereitstellen einer UDF mit Lambda. Weitere Informationen zu Lambda finden Sie im AWS Lambda-Entwicklerhandbuch. Weitere Informationen über AWS Serverless Application Repository finden Sie im AWS Serverless Application Repository-Entwicklerleitfaden.
Ein Beispiel, das UDFs mit Athena zum Übersetzen und Analysieren von Text verwendet, finden Sie im AWS-Machine-Learning-Blog-Artikel Übersetzen und analysieren Sie Text mit SQL-Funktionen mit Amazon Athena, Amazon Translate und Amazon Comprehend
Ein Beispiel für die Verwendung von UDFs zur Erweiterung von Geodatenabfragen in Amazon Athena finden Sie unter Erweitern von Geodatenabfragen in Amazon Athena mit UDFs und AWS Lambda