Verwendung von Machine Learning (ML) mit Amazon Athena - 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.

Verwendung von Machine Learning (ML) mit Amazon Athena

Mit Machine Learning (ML) mit Amazon Athena können Sie Athena verwenden, um SQL-Anweisungen zu schreiben, die Machine Learning (ML) -Inferenzen mithilfe von Amazon ausführen. SageMaker Dieses Feature vereinfacht den Zugriff auf ML-Modelle zum Zweck von Datenanalysen. Daher müssen keine komplexen Programmiermethoden verwendet werden, um Inferenzen auszuführen.

Um ML mit Athena zu verwenden, definieren Sie eine ML mit Athena Funktion mit der USING EXTERNAL FUNCTION-Klausel. Die Funktion zeigt auf den SageMaker Modellendpunkt, den Sie verwenden möchten, und gibt die Variablennamen und Datentypen an, die an das Modell übergeben werden sollen. Die folgenden Klauseln in der Abfrage verweisen auf die Funktion, um Werte an das Modell zu übergeben. Das Modell führt Inferenzen basierend auf den von der Abfrage übergebenen Werten aus und gibt anschließend Inferenzergebnisse zurück. Weitere Informationen zu SageMaker und zur Funktionsweise von SageMaker Endgeräten finden Sie im Amazon SageMaker Developer Guide.

Ein Beispiel, das ML mit Athena und SageMaker Inferenz verwendet, um einen anomalen Wert in einer Ergebnismenge zu erkennen, finden Sie im AWS Big Data-Blogartikel Erkennen anomaler Werte durch Aufrufen der Amazon Athena Athena-Inferenzfunktion für maschinelles Lernen.

Überlegungen und Einschränkungen

  • Verfügbare Regionen — Die Athena ML-Funktion ist eine Funktion, AWS-Regionen in der die Athena Engine Version 2 oder höher unterstützt wird.

  • SageMaker model endpoint must accept and return text/csv — Weitere Informationen zu Datenformaten finden Sie unter Common Data Formats for Inference im Amazon SageMaker Developer Guide.

  • Athena sendet keine CSV-Header — Wenn Ihr SageMaker Endpunkt dies isttext/csv, sollte Ihr Eingabe-Handler nicht davon ausgehen, dass die erste Zeile der Eingabe ein CSV-Header ist. Da Athena keine CSV-Header sendet, enthält die an Athena zurückgegebene Ausgabe eine Zeile weniger als von Athena erwartet, und verursacht einen Fehler.

  • SageMaker Endpunktskalierung — Stellen Sie sicher, dass der SageMaker Referenzmodellendpunkt für Athena-Aufrufe an den Endpunkt ausreichend hochskaliert ist. Weitere Informationen finden Sie unter Automatisches Skalieren von SageMaker Modellen im Amazon SageMaker Developer Guide und CreateEndpointConfigin der Amazon SageMaker API-Referenz.

  • IAM-Berechtigungen — Um eine Abfrage auszuführen, die eine ML mit Athena-Funktion spezifiziert, muss der IAM-Prinzipal, der die Abfrage ausführt, berechtigt sein, die sagemaker:InvokeEndpoint Aktion für den referenzierten SageMaker Modellendpunkt auszuführen. Weitere Informationen finden Sie unter Erlauben des Zugriffs für ML mit Athena.

  • ML-Athena-Funktionen dürfen in GROUP BY-Klauseln nicht direkt verwendet werden

ML mit Athena-Syntax

Die Klausel USING EXTERNAL FUNCTION gibt eine ML-Athena-Funktion oder mehrere Funktionen an, auf die durch eine nachfolgende SELECT-Anweisung in der Abfrage verwiesen werden kann. Sie definieren den Funktionsnamen, die Variablennamen und die Datentypen für die Variablen und Rückgabewerte.

Syntax

Die folgende Syntax zeigt ein eUSING EXTERNAL FUNCTION-Klausel, die eine ML-Athena-Funktion angibt.

USING EXTERNAL FUNCTION ml_function_name (variable1 data_type[, variable2 data_type][,...]) RETURNS data_type SAGEMAKER 'sagemaker_endpoint' SELECT ml_function_name()

Parameter

USING EXTERNAL FUNCTION ml_function_name (variable1 data_type[, variable2 data_type][,...])

ml_function_name definiert den Namen der Funktion. Dieser kann in nachfolgenden Abfrageklauseln verwendet werden. Jede Variable data_type spezifiziert eine benannte Variable und den entsprechenden Datentyp, den SageMaker das Modell als Eingabe akzeptiert. Der angegebene Datentyp muss ein unterstützter Athena-Datentyp sein.

RETURNS data_type

data_type gibt den SQL-Datentyp an, den ml_function_name als Ausgabe aus dem Modell an die Abfrage zurückgibt. SageMaker

SAGEMAKER 'sagemaker_endpoint'

sagemaker_endpoint gibt den Endpunkt des Modells an. SageMaker

SELECT [...] ml_function_name(expression) [...]

Die SELECT-Abfrage, die Werte an Funktionsvariablen und das SageMaker Modell weitergibt, um ein Ergebnis zurückzugeben. ml_function_name gibt die zuvor in der Abfrage definierte Funktion an, gefolgt von einem Ausdruck, der ausgewertet wird, um Werte zu übergeben. Die übergebenen und zurückgegebenen Werte müssen mit den Datentypen übereinstimmen, die in der Klausel USING EXTERNAL FUNCTION für die Funktion angegeben sind.

Beispiel

Das folgende Beispiel zeigt eine Abfrage mittels ML mit Athena.

USING EXTERNAL FUNCTION predict_customer_registration(age INTEGER) RETURNS DOUBLE SAGEMAKER 'xgboost-2019-09-20-04-49-29-303' SELECT predict_customer_registration(age) AS probability_of_enrolling, customer_id FROM "sampledb"."ml_test_dataset" WHERE predict_customer_registration(age) < 0.5;

Beispiele für die Verwendung von Kunden

Die folgenden Videos, in denen die Vorschauversion von Machine Learning (ML) mit Amazon Athena verwendet wird, zeigen, wie Sie es SageMaker mit Athena verwenden können.

Vorhersage der Kundenabwanderung

Das folgende Video zeigt, wie Athena mit den maschinellen Lernfunktionen von Amazon kombiniert werden kann, SageMaker um die Kundenabwanderung vorherzusagen.

Erkennen von Bot-Netzen

Das folgende Video zeigt, wie ein Unternehmen Amazon Athena und Amazon SageMaker zur Erkennung von Botnetzen verwendet.