Amazon Redshift unterstützt ab dem 1. November 2025 nicht mehr die Erstellung neuer Python-UDFs. Wenn Sie Python-UDFs verwenden möchten, erstellen Sie die UDFs vor diesem Datum. Bestehende Python-UDFs funktionieren weiterhin wie gewohnt. Weitere Informationen finden Sie im Blog-Posting
Anwendungsfälle
Die folgenden Anwendungsfälle demonstrieren die Verwendung von CREATE MODEL je nach Ihren Anforderungen.
Einfaches CREATE MODEL
Im Folgenden werden die grundlegenden Optionen der CREATE MODEL-Syntax zusammengefasst.
Einfache CREATE MODEL-Syntax
CREATE MODEL model_name FROM { table_name | ( select_query ) } TARGET column_name FUNCTION prediction_function_name IAM_ROLE { default } SETTINGS ( S3_BUCKET 'amzn-s3-demo-bucket', [ MAX_CELLS integer ] )
Einfache CREATE MODEL-Parameter
- model_name
-
Der Name des Modells Der Modellname in einem Schema muss eindeutig sein.
- FROM { table_name | ( select_query ) }
-
Der Tabellenname oder die Abfrage, die die Trainingsdaten spezifiziert. Dabei kann es sich entweder um eine bestehende Tabelle im System oder eine Amazon-Redshift-kompatible SELECT-Abfrage handeln, die in Klammern () eingeschlossen ist. Das Abfrageergebnis muss mindestens zwei Spalten enthalten.
- TARGET column_name
-
Der Name der Spalte, die zum Vorhersageziel wird. Die Spalte muss in der FROM-Klausel vorhanden sein.
- FUNCTION prediction_function_name
-
Ein Wert, der den Namen der Machine-Learning-Funktion von Amazon Redshift angibt, die von CREATE MODELL generiert und zur Erstellung von Prognosen mit diesem Modell verwendet wird. Die Funktion wird im selben Schema wie das Modellobjekt erstellt und kann überladen werden.
Machine Learning in Amazon Redshift unterstützt Modelle wie Xtreme Gradient Boosted Tree (XGBoost) für Regression und Klassifizierung.
- IAM_ROLE { default | 'arn:aws:iam::<account-id>:role/<role-name>' }
-
Verwenden Sie das Standardstichwort, damit Amazon Redshift die IAM-Rolle verwendet, die als Standard festgelegt und mit dem Cluster verknüpft ist, wenn der CREATE MODEL-Befehl ausgeführt wird. Alternativ können Sie den ARN einer IAM-Rolle angeben, um diese Rolle zu verwenden.
- S3_BUCKET 'amzn-s3-demo-bucket'
-
Der Name des Amazon-S3-Buckets, den Sie zuvor erstellt haben, um Trainingsdaten und Artefakte zwischen Amazon Redshift und SageMaker AI auszutauschen. Amazon Redshift erstellt einen Unterordner in diesem Bucket, bevor die Trainingsdaten entladen werden. Wenn das Training abgeschlossen ist, löscht Amazon Redshift den erstellten Unterordner und dessen Inhalt.
- MAX_CELLS Ganzzahl
-
Die maximale Anzahl von Zellen, die aus der FROM-Klausel exportiert werden sollen. Der Standardwert ist 1 000 000.
Die Anzahl der Zellen ist das Produkt aus der Anzahl der Zeilen in den Trainingsdaten (erzeugt durch die FROM-Klausel-Tabelle oder -Abfrage) mal der Anzahl der Spalten. Wenn die Anzahl der Zellen in den Trainingsdaten die durch den Parameter max_cells angegebene Anzahl übersteigt, führt CREATE MODEL ein Downsampling der Trainingsdaten aus der FROM-Klausel durch, um die Größe des Trainingssatzes unter MAX_CELLS zu reduzieren. Größere Trainingsdatensätze können zu einer höheren Genauigkeit führen, aber auch bedeuten, dass das Modell länger zum Trainieren braucht und mehr kostet.
Informationen zu den Kosten für die Nutzung von Amazon Redshift finden Sie unter Kosten für die Verwendung von Amazon Redshift ML.
Weitere Informationen zu den Kosten für unterschiedliche Zellanzahlen und kostenlosen Testversionen finden Sie unter Amazon-Redshift-Preise
.
CREATE MODEL mit Benutzerführung
Nachfolgend finden Sie eine Beschreibung der Optionen für CREATE MODEL, die zusätzlich zu den unter beschriebenen gelten Einfaches CREATE MODEL.
Standardmäßig sucht CREATE MODEL nach der besten Kombination aus Vorverarbeitung und Modell für Ihren jeweiligen Datensatz. Vielleicht benötigen Sie zusätzliche Kontrolle über das Modell oder möchten zusätzliches Fachwissen (z. B. Problemtyp oder Zielsetzung) einführen. Wenn in einem Kundenabwanderungsszenario das Ergebnis „Kunde ist nicht aktiv“ selten ist, wird das F1-Ziel häufig dem Ziel „Genauigkeit“ vorgezogen. Modelle mit einer hohen Genauigkeit sagen wahrscheinlich immer „Kunde ist aktiv“ voraus. Dies ergibt zwar eine hohe Genauigkeit, jedoch ist der geschäftliche Wert gering. Weitere Informationen zu F1-Zielen finden Sie unter AutoMLJobObjective in der API-Referenz zu Amazon SageMaker AI.
Dann folgt CREATE MODEL Ihren Vorschlägen zu den angegebenen Aspekten, wie zum Beispiel dem Ziel. Gleichzeitig ermittelt CREATE MODEL automatisch die besten Präprozessoren und die besten Hyperparameter.
CREATE MODEL mit Benutzerführung – Syntax
CREATE MODEL bietet mehr Flexibilität bei den Aspekten, die Sie angeben können, und den Aspekten, die Amazon Redshift automatisch erkennt.
CREATE MODEL model_name FROM { table_name | ( select_statement ) } TARGET column_name FUNCTION function_name IAM_ROLE { default } [ MODEL_TYPE { XGBOOST | MLP | LINEAR_LEARNER} ] [ PROBLEM_TYPE ( REGRESSION | BINARY_CLASSIFICATION | MULTICLASS_CLASSIFICATION ) ] [ OBJECTIVE ( 'MSE' | 'Accuracy' | 'F1' | 'F1Macro' | 'AUC') ] SETTINGS ( S3_BUCKET 'amzn-s3-demo-bucket', | S3_GARBAGE_COLLECT { ON | OFF }, | KMS_KEY_ID 'kms_key_id', | MAX_CELLS integer, | MAX_RUNTIME integer (, ...) )
CREATE MODEL mit Benutzerführung – Parameter
- MODEL_TYPE { XGBOOST | MLP | LINEAR_LEARNER }
-
(Optional) Gibt den Modelltyp an. Sie können angeben, ob Sie ein Modell eines bestimmten Modelltyps trainieren möchten, beispielsweise XGBoost, Multilayer Perceptron (MLP) oder Linear Learner – alles Algorithmen, die Amazon SageMaker AI Autopilot unterstützt. Wenn Sie den Parameter nicht angeben, werden beim Training alle unterstützten Modelltypen nach dem besten Modell durchsucht.
- PROBLEM_TYPE ( REGRESSION | BINARY_CLASSIFICATION | MULTICLASS_CLASSIFICATION )
-
(Optional) Gibt den Problemtyp an. Wenn Sie den Problemtyp kennen, können Sie Amazon Redshift so einschränken, dass es nur nach dem besten Modell dieses bestimmten Modelltyps sucht. Wenn Sie diesen Parameter nicht angeben, wird während des Trainings auf der Grundlage Ihrer Daten ein Problemtyp ermittelt.
- OBJECTIVE ( 'MSE' | 'Accuracy' | 'F1' | 'F1Macro' | 'AUC')
-
(Optional) Gibt den Namen der objektiven Metrik an, die zur Messung der Vorhersagequalität eines Machine-Learning-Systems verwendet wird. Diese Metrik wird während des Trainings optimiert, um die beste Schätzung der Modellparameterwerte aus den Daten zu erhalten. Wenn Sie nicht explizit eine Metrik angeben, wird standardmäßig automatisch MSE: für Regression, F1: für die binäre Klassifikation und Accuracy: für die Multiklassen-Klassifikation verwendet. Weitere Informationen zu Zielen finden Sie unter AutoMLJobObjective in der API-Referenz zu Amazon SageMaker AI.
- MAX_CELLS Ganzzahl
-
(Optional) Gibt die Anzahl der Zellen in den Trainingsdaten an. Dieser Wert ist das Produkt aus der Anzahl der Datensätze (in der Trainingsabfrage oder Tabelle) mal der Anzahl der Spalten. Der Standardwert ist 1 000 000.
- MAX_RUNTIME Ganzzahl
-
(Optional) Gibt die Höchstdauer für das Training an. Je nach Größe des Datensatzes sind die Trainingsjobs oft schneller abgeschlossen. Damit legen Sie fest, wie lange das Training maximal dauern soll. Der Standardwert ist 5.400 (90 Minuten).
- S3_GARBAGE_COLLECT { ON | OFF }
-
(Optional) Gibt an, ob Amazon Redshift eine Garbage Collection für die resultierenden Datensätze, die zum Trainieren von Modellen verwendet werden, und die Modelle durchführt. Wenn diese Option auf OFF gesetzt ist, werden die resultierenden Datensätze zum Trainieren von Modellen verwendet und die Modelle bleiben in Amazon S3 und können für andere Zwecke verwendet werden. Wenn die Option auf ON gesetzt ist, löscht Amazon Redshift die Artefakte in Amazon S3, nachdem das Training abgeschlossen ist. Die Standardeinstellung ist ON.
- KMS_KEY_ID 'kms_key_id'
-
(Optional) Gibt an, ob Amazon Redshift serverseitige Verschlüsselung mit einem AWS KMS-Schlüssel verwendet, um Data-at-Rest zu schützen. Bei der Übertragung von Daten werden mit Secure Sockets Layer (SSL) geschützt.
- PREPROCESSORS 'string'
-
(Optional) Gibt bestimmte Kombinationen von Präprozessoren für bestimmte Spalten an. Das Format ist eine Liste von columnSets und entsprechenden Transformern, die auf jede Gruppe von Spalten angewendet werden sollen. Amazon Redshift wendet alle Transformer in einer Transformer-Liste auf alle Spalten im entsprechenden columnSet an. Um zum Beispiel OneHotEncoder mit Imputer auf die Spalten t1 und t2 anzuwenden, verwenden Sie den folgenden Beispielbefehl.
CREATE MODEL customer_churn FROM customer_data TARGET 'Churn' FUNCTION predict_churn IAM_ROLE { default | 'arn:aws:iam::<account-id>:role/<role-name>' } PROBLEM_TYPE BINARY_CLASSIFICATION OBJECTIVE 'F1' PREPROCESSORS '[ ... {"ColumnSet": [ "t1", "t2" ], "Transformers": [ "OneHotEncoder", "Imputer" ] }, {"ColumnSet": [ "t3" ], "Transformers": [ "OneHotEncoder" ] }, {"ColumnSet": [ "temp" ], "Transformers": [ "Imputer", "NumericPassthrough" ] } ]' SETTINGS ( S3_BUCKET 'amzn-s3-demo-bucket' )
Amazon Redshift unterstützt die folgenden Transformer:
-
OneHotEncoder – Wird in der Regel verwendet, um einen diskreten Wert in einen binären Vektor mit einem Wert ungleich Null zu kodieren. Dieser Transformer ist für viele Machine-Learning-Modelle geeignet.
-
OrdinalEncoder – Kodiert diskrete Werte in eine einzelne Ganzzahl. Dieser Transformer ist für bestimmte Machine-Learning-Modelle geeignet, wie MLP und Linear Learner.
-
NumericPassthrough – Übergibt die Eingabe unverändert in das Modell.
-
Imputer – Füllt mit fehlenden Werten und Not-a-Number(NaN)-Werten auf.
-
ImputerWithIndicator – Füllt mit fehlenden Werten und NaN-Werten auf. Dieser Transformer erzeugt auch einen Indikator, ob Werte gefehlt haben und aufgefüllt wurden.
-
Normalizer – Normalisiert Werte, was die Leistung vieler ML-Algorithmen verbessern kann.
-
DateTimeVectorizer – Erzeugt eine Vektoreinbettung, die eine Spalte des Datentyps datetime darstellt und in ML-Modellen verwendet werden kann.
-
PCA – Projiziert die Daten in einen niedrigdimensionalen Raum, um die Anzahl der Merkmale zu reduzieren und gleichzeitig so viele Informationen wie möglich zu erhalten.
-
StandardScaler – Standardisiert Features durch das Entfernen des Mittelwerts und die Skalierung der Einheitenvarianz.
-
MinMax – Transformiert Features durch Skalierung jedes Features auf einen bestimmten Bereich.
Amazon Redshift ML speichert die trainierten Transformer und wendet sie automatisch als Teil der Vorhersageabfrage an. Sie müssen diese nicht angeben, wenn Sie Prognosen aus Ihrem Modell erstellen.
CREATE XGBoost-Modelle mit AUTO OFF
AUTO OFF CREATE MODEL hat generell andere Ziele als das normale CREATE MODEL.
Als fortgeschrittener Benutzer, der bereits den gewünschten Modelltyp und die Hyperparameter kennt, die beim Training dieser Modelle verwendet werden sollen, können Sie CREATE MODEL mit AUTO OFF verwenden, um die automatische Erkennung von Präprozessoren und Hyperparametern durch CREATE MODEL zu deaktivieren. Dazu geben Sie explizit den Modelltyp an. XGBoost ist derzeit der einzige Modelltyp, der unterstützt wird, wenn AUTO auf OFF gesetzt ist. Sie können Hyperparameter angeben. Amazon Redshift verwendet Standardwerte für alle von Ihnen angegebenen Hyperparameter.
CREATE XGBoost-Modelle mit AUTO OFF – Syntax
CREATE MODEL model_name FROM { table_name | (select_statement ) } TARGET column_name FUNCTION function_name IAM_ROLE { default } AUTO OFF MODEL_TYPE XGBOOST OBJECTIVE { 'reg:squarederror' | 'reg:squaredlogerror' | 'reg:logistic' | 'reg:pseudohubererror' | 'reg:tweedie' | 'binary:logistic' | 'binary:hinge' | 'multi:softmax' | 'rank:pairwise' | 'rank:ndcg' } HYPERPARAMETERS DEFAULT EXCEPT ( NUM_ROUND '10', ETA '0.2', NUM_CLASS '10', (, ...) ) PREPROCESSORS 'none' SETTINGS ( S3_BUCKET 'amzn-s3-demo-bucket', | S3_GARBAGE_COLLECT { ON | OFF }, | KMS_KEY_ID 'kms_key_id', | MAX_CELLS integer, | MAX_RUNTIME integer (, ...) )
CREATE XGBoost-Modelle mit AUTO OFF – Parameter
- AUTO OFF
-
Deaktiviert die automatische Erkennung des Präprozessors, des Algorithmus und der Auswahl der Hyperparameter bei CREATE MODEL.
- MODEL_TYPE XGBOOST
-
Legt fest, dass XGBOOST zum Trainieren des Modells verwendet werden soll.
- OBJECTIVE str
-
Gibt ein vom Algorithmus erkanntes Ziel an. Amazon Redshift unterstützt reg:squarederror, reg:squaredlogerror, reg:logistic, reg:pseudohubererror, reg:tweedie, binary:logistic, binary:hinge, multi:softmax. Weitere Informationen zu diesen Zielen finden Sie unter Parameter für die Lernaufgabe
in der XGBoost-Dokumentation. - HYPERPARAMETERS { DEFAULT | DEFAULT EXCEPT ( key ‘value’ (,..) ) }
-
Gibt an, ob die Standard-XGBoost-Parameter verwendet oder durch benutzerdefinierte Werte überschrieben werden. Die Werte müssen in einfache Anführungszeichen eingeschlossen werden. Im Folgenden finden Sie Beispiele für Parameter für XGBoost und deren Standardwerte.
Parametername Parameterwert Standardwert Hinweise num_class
Ganzzahl Erforderlich für die Multiclass-Klassifizierung.
N/A num_round
Ganzzahl 100
N/A tree_method
Zeichenfolge Automatisch N/A max_depth
Ganzzahl 6 [0, 10] min_child_weight Gleitkommazahl 1 MinValue: 0, MaxValue: 120 subsample Gleitkommazahl 1 MinValue: 0.5, MaxValue: 1 gamma Gleitkommazahl 0 MinValue: 0, MaxValue: 5 alpha Gleitkommazahl 0 MinValue: 0, MaxValue: 1000 eta Gleitkommazahl 0.3 MinValue: 0.1, MaxValue: 0.5 colsample_byleve Gleitkommazahl 1 MinValue: 0.1, MaxValue: 1 colsample_bynode Gleitkommazahl 1 MinValue: 0.1, MaxValue: 1 colsample_bytree Gleitkommazahl 1 MinValue: 0.5, MaxValue: 1 Lambda Gleitkommazahl 1 MinValue: 0, MaxValue: 1000 max_delta_step Ganzzahl 0 [0, 10]
Im folgenden Beispiel werden Daten für XGBoost vorbereitet.
DROP TABLE IF EXISTS abalone_xgb; CREATE TABLE abalone_xgb ( length_val float, diameter float, height float, whole_weight float, shucked_weight float, viscera_weight float, shell_weight float, rings int, record_number int); COPY abalone_xgb FROM 's3://redshift-downloads/redshift-ml/abalone_xg/' REGION 'us-east-1' IAM_ROLE default IGNOREHEADER 1 CSV;
Im folgenden Beispiel wird ein XGBoost-Modell mit erweiterten Optionen, wie MODEL_TYPE, OBJECTIVE und PREPROCESSORS, erstellt.
DROP MODEL abalone_xgboost_multi_predict_age; CREATE MODEL abalone_xgboost_multi_predict_age FROM ( SELECT length_val, diameter, height, whole_weight, shucked_weight, viscera_weight, shell_weight, rings FROM abalone_xgb WHERE record_number < 2500 ) TARGET rings FUNCTION ml_fn_abalone_xgboost_multi_predict_age IAM_ROLE default AUTO OFF MODEL_TYPE XGBOOST OBJECTIVE 'multi:softmax' PREPROCESSORS 'none' HYPERPARAMETERS DEFAULT EXCEPT (NUM_ROUND '100', NUM_CLASS '30') SETTINGS (S3_BUCKET 'amzn-s3-demo-bucket');
Im folgenden Beispiel wird eine Inferenzabfrage verwendet, um das Alter der Fische mit einer Datensatznummer größer als 2 500 vorherzusagen. Sie verwendet die Funktion ml_fn_abalone_xgboost_multi_predict_age, die mit dem obigen Befehl erstellt wurde.
select ml_fn_abalone_xgboost_multi_predict_age(length_val, diameter, height, whole_weight, shucked_weight, viscera_weight, shell_weight)+1.5 as age from abalone_xgb where record_number > 2500;
Bring Your Own Model (BYOM) - lokale Inferenz
Amazon Redshift ML unterstützt die Verwendung von „Bring Your Own Model“ (BYOM) bei der lokalen oder Remote-Inferenz.
Im Folgenden werden die grundlegenden Optionen der CREATE MODEL-Syntax für BYOM zusammengefasst. Sie können ein Modell, das außerhalb von Amazon Redshift mit Amazon SageMaker AI trainiert wurde, für datenbankinterne Inferenzen lokal in Amazon Redshift verwenden.
CREATE MODEL-Syntax für lokale Inferenz
Im Folgenden wird die CREATE MODEL-Syntax für lokale Inferenz beschrieben.
CREATE MODEL model_name FROM ('job_name' | 's3_path' ) FUNCTION function_name ( data_type [, ...] ) RETURNS data_type IAM_ROLE { default } [ SETTINGS ( S3_BUCKET 'amzn-s3-demo-bucket', | --required KMS_KEY_ID 'kms_string') --optional ];
Amazon Redshift unterstützt zurzeit nur vortrainierte XGBoost-, MLP- und Linear-Learner-Modelle für BYOM. Über diesen Pfad können Sie SageMaker AI Autopilot und Modelle importieren, die direkt in Amazon SageMaker AI für lokale Inferenzen trainiert wurden.
CREATE MODEL-Parameter für lokale Inferenz
- model_name
-
Der Name des Modells Der Modellname in einem Schema muss eindeutig sein.
- FROM ('job_name' | 's3_path' )
-
Der job_name verwendet einen Jobnamen aus Amazon SageMaker AI als Eingabe. Der Jobname kann ein Trainingsjobname von Amazon SageMaker AI oder ein Jobname von Amazon SageMaker AI Autopilot sein. Der Auftrag muss in demselben AWS-Konto erstellt werden, das Besitzer des Amazon-Redshift-Clusters ist. Starten Sie Amazon SageMaker AI, um den Namen des Auftrags zu suchen. Wählen Sie im Drop-down-Menü Training Training jobs (Trainingsaufträge) aus.
Der 's3_pfad' gibt den S3-Speicherort der .tar.gz-Modellartefaktdatei an, die beim Erstellen des Modells verwendet werden soll.
- FUNCTION function_name ( data_type [, ...] )
-
Der Name der zu erstellenden Funktion und die Datentypen der Eingabeargumente. Sie können einen Schemamen angeben.
- RETURNS data_type
-
Der Datentyp des Werts, der von der Funktion zurückgegeben wird.
- IAM_ROLE { default | 'arn:aws:iam::<account-id>:role/<role-name>'}
-
Verwenden Sie das Standardstichwort, damit Amazon Redshift die IAM-Rolle verwendet, die als Standard festgelegt und mit dem Cluster verknüpft ist, wenn der CREATE MODEL-Befehl ausgeführt wird.
Verwenden Sie den Amazon-Ressourcennamen (ARN) für eine IAM-Rolle, die von Ihrem Cluster für Authentifizierung und Autorisierung verwendet wird.
- SETTINGS ( S3_BUCKET 'amzn-s3-demo-bucket', | KMS_KEY_ID 'kms_string')
-
Die S3_BUCKET-Klausel gibt den Amazon-S3-Speicherort an, der zum Speichern von Zwischenergebnissen verwendet wird.
(Optional) Die Klausel KMS_KEY_ID gibt an, ob Amazon Redshift serverseitige Verschlüsselung mit einem AWS KMS-Schlüssel verwendet, um Data-at-Rest zu schützen. Bei der Übertragung von Daten werden mit Secure Sockets Layer (SSL) geschützt.
Weitere Informationen finden Sie unter CREATE MODEL mit Benutzerführung.
CREATE MODEL für lokale Inferenz – Beispiel
Im folgenden Beispiel wird ein Modell erstellt, das zuvor in Amazon SageMaker AI trainiert wurde, außerhalb von Amazon Redshift. Da der Modelltyp von Amazon Redshift ML für die lokale Inferenz unterstützt wird, erstellt das folgende CREATE MODEL eine Funktion, die lokal in Amazon Redshift verwendet werden kann. Sie können den Namen eines SageMaker-AI-Trainingsjobs angeben.
CREATE MODEL customer_churn FROM 'training-job-customer-churn-v4' FUNCTION customer_churn_predict (varchar, int, float, float) RETURNS int IAM_ROLE default SETTINGS (S3_BUCKET 'amzn-s3-demo-bucket');
Nachdem das Modell erstellt wurde, können Sie die Funktion customer_churn_predict mit den angegebenen Argumenttypen verwenden, um Prognosen zu erstellen.
Bring Your Own Model (BYOM) - Remote-Inferenz
Amazon Redshift ML unterstützt die Verwendung von „Bring Your Own Model“ (BYOM) für die Remote-Inferenz.
Im Folgenden werden die grundlegenden Optionen der CREATE MODEL-Syntax für BYOM zusammengefasst.
CREATE MODEL-Syntax für Remote-Inferenz
Im Folgenden wird die CREATE MODEL-Syntax für Remote-Inferenz beschrieben.
CREATE MODEL model_name FUNCTION function_name ( data_type [, ...] ) RETURNS data_type SAGEMAKER 'endpoint_name'[:'model_name'] IAM_ROLE { default | 'arn:aws:iam::<account-id>:role/<role-name>' } [SETTINGS (MAX_BATCH_ROWS integer)];
CREATE MODEL-Parameter für Remote-Inferenz
- model_name
-
Der Name des Modells Der Modellname in einem Schema muss eindeutig sein.
- FUNCTION fn_name ( [data_type] [, ...] )
-
Der Name der Funktion und die Datentypen der Eingabeargumente. Alle unterstützten Datentypen finden Sie unter Datentypen.
Geography,geometryundhllsketchwerden nicht unterstützt.Sie können einen Funktionsnamen auch innerhalb eines Schemas angeben, indem Sie eine zweiteilige Notation verwenden, z. B.
myschema.myfunction. - RETURNS data_type
-
Der Datentyp des Werts, der von der Funktion zurückgegeben wird. Alle unterstützten Datentypen finden Sie unter Datentypen.
Geography,geometryundhllsketchwerden nicht unterstützt. - SAGEMAKER 'endpoint_name'[:'model_name']
-
Der Name des Endpunkts von Amazon SageMaker AI. Wenn der Endpunktname auf einen Multimodell-Endpunkt verweist, fügen Sie den Namen des zu verwendenden Modells hinzu. Der Endpunkt muss in derselben AWS-Region und im selben AWS-Konto wie der Amazon-Redshift-Cluster gehostet werden. Starten Sie Amazon SageMaker AI, um Ihren Endpunkt zu finden. Wählen Sie im Drop-down-Menü Inference (Inferenz) Endpoints (Endpunkte) aus.
- IAM_ROLE { default | 'arn:aws:iam::<account-id>:role/<role-name>'}
-
Verwenden Sie das Standardstichwort, damit Amazon Redshift die IAM-Rolle verwendet, die als Standard festgelegt und mit dem Cluster verknüpft ist, wenn der CREATE MODEL-Befehl ausgeführt wird. Alternativ können Sie den ARN einer IAM-Rolle angeben, um diese Rolle zu verwenden.
- MAX_BATCH_ROWS integer
-
Die maximale Zeilenanzahl, die Amazon Redshift in einer einzelnen Batch-Anforderung für einen SageMaker-AI-Aufruf sendet. Sie wird nur für BYOM mit Remote-Inferenz unterstützt. Die tatsächliche Anzahl der Zeilen in einem Batch ist auch von der Eingabegröße abhängig, ist jedoch kleiner als dieser Wert oder gleich diesem Wert. Der Mindestwert für diesen Parameter ist 1. Der maximale Wert lautet
INT_MAXoder 2 147 483 647. Dieser Parameter ist nur erforderlich, wenn sowohl Eingabe- als auch RückgabedatentypenSUPERsind. Der Standardwert lautetINT_MAXoder 2 147 483 647.
Wenn das Modell an einem SageMaker-AI-Endpunkt bereitgestellt wird, erstellt SageMaker AI die Informationen des Modells in Amazon Redshift. Anschließend führt es eine Inferenz über die externe Funktion durch. Sie können den Befehl SHOW MODEL verwenden, um die Modellinformationen auf Ihrem Amazon-Redshift-Cluster anzuzeigen.
CREATE MODEL für Remote-Inferenz – Hinweise zur Verwendung
Bevor Sie CREATE MODEL für Remote-Inferenz verwenden, sollten Sie Folgendes beachten:
-
Der Endpunkt muss von demselben AWS-Konto gehostet werden, das auch Besitzer des Amazon-Redshift-Clusters ist.
-
Stellen Sie sicher, dass der Endpunkt in Amazon SageMaker AI entweder über genügend Ressourcen verfügt, um Inferenzaufrufe von Amazon Redshift zu verarbeiten, oder automatisch skaliert werden kann.
-
Wenn Sie den Datentyp
SUPERnicht als Eingabe verwenden, akzeptiert das Modell nur Eingaben in Form kommagetrennter Werte (CSV), was dem Inhaltstyptext/CSVin SageMaker AI entspricht. -
Wenn Sie den Datentyp
SUPERnicht als Eingabe verwenden, ist die Ausgabe von Modellen ein einzelner Wert des Typs, den Sie beim Erstellen der Funktion angegeben haben. Die Ausgabe erfolgt in Form kommagetrennter Werte (CSV) über den Inhaltstyptext/CSVin SageMaker AI.VARCHAR-Datentypen dürfen nicht in Anführungszeichen gesetzt werden, dürfen keine neuen Zeilen enthalten und jede Ausgabe muss in einer neuen Zeile erfolgen. -
Modelle akzeptieren Nullen als leere Zeichenfolgen.
-
Wenn der Eingabedatentyp
SUPERist, wird nur ein Eingabeargument unterstützt. -
Wenn der Eingabedatentyp
SUPERist, muss auch der RückgabedatentypSUPERsein. -
MAX_BATCH_ROWS ist erforderlich, wenn sowohl der Eingabe- als auch der Rückgabedatentyp SUPER ist.
-
Wenn der Eingabedatentyp
SUPERist, ist der Inhaltstyp des Endpunktaufrufsapplication/json, wenn MAX_BATCH_ROWS1ist. In allen anderen Fällen ist erapplication/jsonlines. -
Wenn der Rückgabedatentyp
SUPERist, ist der Akzeptanztyp des Endpunktaufrufsapplication/json, wenn MAX_BATCH_ROWS1ist. In allen anderen Fällen ist erapplication/jsonlines.
CREATE MODEL für Remote-Inferenz – Beispiel
Im folgenden Beispiel wird ein Modell erstellt, das einen SageMaker-AI-Endpunkt zur Erstellung von Prognosen verwendet. Vergewissern Sie sich, dass der Endpunkt ausgeführt wird, um Prognosen zu erstellen, und geben Sie seinen Namen in dem Befehl CREATE MODEL an.
CREATE MODEL remote_customer_churn FUNCTION remote_fn_customer_churn_predict (varchar, int, float, float) RETURNS int SAGEMAKER 'customer-churn-endpoint' IAM_ROLE default;
Im folgenden Beispiel wird ein BYOM mit Remote-Inferenz mit einem großen Sprachmodell (LLM) erstellt. LLMs, die in Amazon SageMaker AI Jumpstart gehostet werden, akzeptieren den Inhaltstyp application/json und geben ihn zurück. Sie unterstützen ein einzelnes JSON pro Aufruf. Die Eingabe- und Rückgabedatentypen müssen den Typ SUPER haben und MAX_BATCH_ROWS muss auf 1 festgelegt sein.
CREATE MODEL sample_super_data_model FUNCTION sample_super_data_model_predict(super) RETURNS super SAGEMAKER 'sample_super_data_model_endpoint' IAM_ROLE default SETTINGS (MAX_BATCH_ROWS 1);
CREATE MODEL mit K-MEANS
Amazon Redshift unterstützt den K-Means-Algorithmus, der Daten gruppiert, die nicht markiert sind. Dieser Algorithmus löst Clusterprobleme, bei denen Sie Gruppierungen in den Daten erkennen möchten. Nicht klassifizierte Daten werden aufgrund ihrer Ähnlichkeiten und Unterschiede gruppiert und partitioniert.
CREATE MODEL mit K-MEANS – Syntax
CREATE MODEL model_name FROM { table_name | ( select_statement ) } FUNCTION function_name IAM_ROLE { default | 'arn:aws:iam::<account-id>:role/<role-name>' } AUTO OFF MODEL_TYPE KMEANS PREPROCESSORS 'string' HYPERPARAMETERS DEFAULT EXCEPT ( K 'val' [, ...] ) SETTINGS ( S3_BUCKET 'amzn-s3-demo-bucket', KMS_KEY_ID 'kms_string', | -- optional S3_GARBAGE_COLLECT on / off, | -- optional MAX_CELLS integer, | -- optional MAX_RUNTIME integer -- optional);
CREATE MODEL mit K-MEANS – Parameter
- AUTO OFF
-
Deaktiviert die automatische Erkennung des Präprozessors, des Algorithmus und der Auswahl der Hyperparameter bei CREATE MODEL.
- MODEL_TYPE KMEANS
-
Legt fest, dass KMEANS zum Trainieren des Modells verwendet werden soll.
- PREPROCESSORS 'string'
-
Gibt bestimmte Kombinationen von Präprozessoren für bestimmte Spalten an. Das Format ist eine Liste von columnSets und entsprechenden Transformern, die auf jede Gruppe von Spalten angewendet werden sollen. Amazon Redshift unterstützt drei K-Means-Präprozessoren: StandardScaler, MinMax und NumericPassThrough. Wenn Sie keine Vorverarbeitung für K-Means anwenden möchten, wählen Sie als Transformer explizit NumericPassthrough aus. Weitere Informationen zu unterstützten Transformern finden Sie unter CREATE MODEL mit Benutzerführung – Parameter.
Der K-Means-Algorithmus verwendet einen euklidischen Abstand zum Berechnen der Ähnlichkeit. Die Vorverarbeitung der Daten stellt sicher, dass die Features des Modells im gleichen Maßstab bleiben und zuverlässige Ergebnisse liefern.
- HYPERPARAMETERS DEFAULT EXCEPT ( K 'val' [, ...] )
-
Gibt an, ob die K-Means-Parameter verwendet werden. Sie müssen den
K-Parameter angeben, wenn Sie den K-Means-Algorithmus verwenden. Weitere Informationen finden Sie unter K-Means-Hyperparameter im Entwicklerhandbuch für Amazon SageMaker AI.
Im folgenden Beispiel werden Daten für K-Means vorbereitet.
CREATE MODEL customers_clusters FROM customers FUNCTION customers_cluster IAM_ROLE default AUTO OFF MODEL_TYPE KMEANS PREPROCESSORS '[ { "ColumnSet": [ "*" ], "Transformers": [ "NumericPassthrough" ] } ]' HYPERPARAMETERS DEFAULT EXCEPT ( K '5' ) SETTINGS (S3_BUCKET 'amzn-s3-demo-bucket'); select customer_id, customers_cluster(...) from customers;customer_id | customers_cluster -------------------- 12345 1 12346 2 12347 4 12348
CREATE MODEL mit Forecast
Prognosemodelle in Redshift ML verwenden Amazon Forecast, um präzise Zeitreihenprognosen zu erstellen. Auf diese Weise können Sie historische Daten über einen bestimmten Zeitraum verwenden, um Vorhersagen über zukünftige Ereignisse zu treffen. Zu den häufigsten Anwendungsfällen von Amazon Forecast gehören die Verwendung von Einzelhandelsproduktdaten, um zu entscheiden, wie der Lagerbestand bewertet werden soll, die Vewendung von Herstellungsmengendaten, um vorherzusagen, wie viel von einem Artikel bestellt werden soll, und die Verwendung von Web-Traffic-Daten, um zu prognostizieren, wie viel Traffic ein Webserver empfangen könnte.
Kontingentlimits von Amazon Forecast werden in Amazon-Redshift-Prognosemodellen durchgesetzt. Die maximale Anzahl von Prognosen ist beispielsweise 100, wobei diese jedoch anpassbar ist. Wenn Sie ein Prognosemodell löschen, werden die zugehörigen Ressourcen in Amazon Forecast nicht automatisch entfernt. Wenn Sie einen Redshift-Cluster löschen, werden auch alle zugehörigen Modelle entfernt.
Beachten Sie, dass Prognosemodelle derzeit nur in den folgenden Regionen verfügbar sind:
-
USA Ost (Ohio): (us-east-2)
-
USA Ost (Nord-Virginia): (us-east-1)
-
USA West (Oregon): (us-west-2)
-
Asien-Pazifik (Mumbai): (ap-south-1)
-
Asien-Pazifik (Seoul): (ap-northeast-2)
-
Asien-Pazifik (Singapur): (ap-southeast-1)
-
Asien-Pazifik (Sydney): (ap-southeast-2)
-
Asien-Pazifik (Tokyo) (ap-northeast-1)
-
Europa (Frankfurt) (eu-central-1)
-
Europa (Irland) (eu-west-1)
CREATE MODEL mit Forecast-Syntax
CREATE [ OR REPLACE ] MODEL forecast_model_name FROM { table_name | ( select_query ) } TARGET column_name IAM_ROLE { default | 'arn:aws:iam::<account-id>:role/<role-name>'} AUTO ON MODEL_TYPE FORECAST SETTINGS ( S3_BUCKET 'amzn-s3-demo-bucket', HORIZON integer, FREQUENCY forecast_frequency [PERCENTILES '0.1', '0.5', '0.9'] )
CREATE MODEL mit Forecast-Parametern
- forecast_model_name
-
Der Name des Modells Der Modellname muss eindeutig sein.
- FROM { table_name | ( select_query ) }
-
Der Tabellenname oder die Abfrage, die die Trainingsdaten spezifiziert. Dabei kann es sich entweder um eine bestehende Tabelle im System oder um eine mit Amazon Redshift kompatible SELECT-Abfrage handeln, die in Klammern eingeschlossen ist. Das Tabellen- oder Abfrageergebnis muss mindestens drei Spalten haben: (1) eine Varchar-Spalte, die den Namen der Zeitreihe angibt. Jeder Datensatz kann mehrere Zeitreihen, (2) eine datetime-Spalte und (3) die vorherzusagende Zielspalte enthalten. Diese Zielspalte muss entweder eine Ganzzahl oder ein Gleitkommawert sein. Wenn Sie einen Datensatz mit mehr als drei Spalten angeben, geht Amazon Redshift davon aus, dass alle zusätzlichen Spalten Teil einer verwandten Zeitreihe sind. Beachten Sie, dass verwandte Zeitreihen vom Typ „int“ (Ganzzahl) oder „float“ (Gleitkommawert) sein müssen. Weitere Informationen zu verwandten Zeitreihen finden Sie unter Verwenden von Datasets verwandter Zeitreihen.
- TARGET column_name
-
Der Name der Spalte, die zum Vorhersageziel wird. Die Spalte muss in der FROM-Klausel vorhanden sein.
- IAM_ROLE { default | 'arn:aws:iam::<account-id>:role/<role-name>' }
-
Verwenden Sie das Standardstichwort, damit Amazon Redshift die IAM-Rolle verwendet, die als Standard festgelegt und mit dem Cluster verknüpft ist, wenn der CREATE MODEL-Befehl ausgeführt wird. Alternativ können Sie einen ARN einer IAM-Rolle angeben, um diese Rolle zu verwenden.
- AUTO ON
-
Aktiviert die automatische Erkennung des Algorithmus und die Auswahl der Hyperparameter bei CREATE MODEL. Wenn Sie bei der Erstellung eines Prognosemodells „on“ angeben, bedeutet dies, dass Sie einen Forecast AutoPredictor verwenden möchten, bei dem Amazon Forecast die optimalen Kombinationen von Algorithmen auf jede Zeitreihe in Ihrem Datensatz anwendet.
- MODEL_TYPE FORECAST
-
Legt fest, dass FORECAST zum Trainieren des Modells verwendet werden soll.
- S3_BUCKET 'amzn-s3-demo-bucket'
-
Der Name des Buckets von Amazon Simple Storage Service, den Sie zuvor erstellt haben und der verwendet wird, um Trainingsdaten und Artefakte zwischen Amazon Redshift und Amazon Forecast auszutauschen. Amazon Redshift erstellt einen Unterordner in diesem Bucket, bevor die Trainingsdaten entladen werden. Wenn das Training abgeschlossen ist, löscht Amazon Redshift den erstellten Unterordner und dessen Inhalt.
- HORIZON-Ganzzahl
-
Die maximale Anzahl von Vorhersagen, die das Prognosemodell zurückgeben kann. Sobald das Modell trainiert ist, können Sie diese Ganzzahl nicht mehr ändern.
- FREQUENCY forecast_frequency
-
Gibt an, wie detailliert die Prognosen sein sollen. Verfügbare Optionen sind
Y | M | W | D | H | 30min | 15min | 10min | 5min | 1min. Erforderlich, wenn Sie ein Prognosemodell trainieren. - PERCENTILES-Zeichenfolge
-
Eine durch Komma getrennte Zeichenfolge, die die Prognosetypen angibt, mit denen ein Prädiktor trainiert wird. Bei den Prognosetypen kann es sich um Quantile von 0,01 bis 0,99 handeln, und zwar in Schritten von 0,01 oder höher. Sie können den Mittelwert der Prognose auch mit Mittelwert angeben. Sie können maximal fünf Prognosetypen angeben.
Das folgende Beispiel zeigt, wie ein einfaches Prognosemodell erstellt wird.
CREATE MODEL forecast_example FROM forecast_electricity_ TARGET target IAM_ROLE 'arn:aws:iam::<account-id>:role/<role-name>' AUTO ON MODEL_TYPE FORECAST SETTINGS (S3_BUCKET 'amzn-s3-demo-bucket', HORIZON 24, FREQUENCY 'H', PERCENTILES '0.25,0.50,0.75,mean', S3_GARBAGE_COLLECT OFF);
Nachdem Sie das Prognosemodell erstellt haben, können Sie eine neue Tabelle mit den Prognosedaten erstellen.
CREATE TABLE forecast_model_results as SELECT Forecast(forecast_example)
Anschließend können Sie die neue Tabelle abfragen, um Vorhersagen zu erhalten.
SELECT * FROM forecast_model_results