Anwendungsfälle - Amazon Redshift

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.

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 '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 'bucket'

Der Name des Amazon S3 S3-Buckets, den Sie zuvor erstellt haben, um Trainingsdaten und Artefakte zwischen Amazon Redshift und SageMaker 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. Informationen zum F1-Ziel finden Sie unter AutoML JobObjective in der Amazon SageMaker API-Referenz.

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 '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 wie XGBoost, Multilayer Perceptron (MLP) oder Linear Learner trainieren möchten. Dies sind alles Algorithmen, die Amazon Autopilot unterstützt. SageMaker 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 AutoML JobObjective in der Amazon SageMaker API-Referenz.

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 Transformatoren in einer bestimmten Transformer-Liste auf alle Spalten in den entsprechenden ColumnSet Spalten an. Um beispielsweise OneHotEncoder mit Imputer eine Anwendung 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 'bucket' )

Amazon Redshift unterstützt die folgenden Transformer:

  • OneHotEncoder — Wird normalerweise 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 an das Modell.

  • Imputer – Füllt mit fehlenden Werten und Not-a-Number(NaN)-Werten auf.

  • ImputerWithIndicator — Füllt fehlende Werte und NaN-Werte aus. 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 vom Datentyp Datetime darstellt, die in Modellen für maschinelles Lernen 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 Merkmale, indem der Mittelwert entfernt und auf die Varianz pro Einheit skaliert wird.

  • MinMax — Transformiert Merkmale, indem jedes Merkmal auf einen bestimmten Bereich skaliert wird.

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 '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: 100
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: 100
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 'DOC-EXAMPLE-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 außerhalb von Amazon Redshift mit Amazon trainiertes Modell SageMaker 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 '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 Autopilot und Modelle importieren, die direkt in Amazon SageMaker 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 SageMaker Amazon-Jobnamen als Eingabe. Der Jobname kann entweder ein SageMaker Amazon-Schulungsjobname oder ein Amazon SageMaker Autopilot-Jobname sein. Der Job muss in demselben AWS Konto erstellt werden, dem der Amazon Redshift Redshift-Cluster gehört. Um den Jobnamen zu finden, starten Sie Amazon SageMaker. 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 '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 KMS_KEY_ID-Klausel gibt an, ob Amazon Redshift serverseitige Verschlüsselung mit einem AWS KMS Schlüssel verwendet, um Daten im Ruhezustand 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 außerhalb von Amazon SageMaker Redshift trainiert wurde. 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 einen Namen für den SageMaker Schulungsjob 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 'DOC-EXAMPLE-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.

Dies ist eine Vorabveröffentlichungsdokumentation für den SUPER-Datentyp für die Eingabe in BYOM-Modelle in Amazon Redshift ML, der sich in der Vorabversion befindet. Sowohl die Dokumentation als auch die Funktion können sich ändern. Wir empfehlen, diese Funktion nur mit Testclustern und nicht in Produktionsumgebungen zu verwenden. Weitere Informationen zu den Nutzungsbedingungen finden Sie unter Beta- und Vorschauversionen in den AWS -Servicebedingungen.

Wenn Sie angeben, dass der SUPER-Datentyp als Eingabedaten und der zurückgegebene Datentyp verwendet werden sollen, bedeutet dies, dass Sie ein in Amazon SageMaker JumpStart gehostetes Large Language Model (LLM) erstellen möchten. Das Erstellen von LLMs ist derzeit nur als Vorschau-Feature verfügbar. Diese Vorschau ist im Folgenden AWS-Regionen verfügbar.

  • USA Ost (Ohio): (us-east-2)

  • USA Ost (Nord-Virginia): (us-east-1)

  • Asien-Pazifik (Tokyo) (ap-northeast-1)

  • Europa (Irland) (eu-west-1)

  • Europa (Stockholm) (eu-north-1)

Sie können einen Amazon-Redshift-Cluster in der Vorschau erstellen, um neue Funktionen von Amazon Redshift zu testen. Sie haben nicht die Möglichkeit, diese Funktionen in der Produktion zu verwenden oder Ihren Vorschau-Cluster in einen Produktionscluster oder einen Cluster auf einem anderen Pfad zu verschieben. Weitere Informationen zu den Bedingungen für Vorschauversionen finden Sie unter Betas und Vorversionen in den AWS -Servicebedingungen.

Erstellen eines Clusters in der Vorschau
  1. Melden Sie sich bei der Amazon Redshift Redshift-Konsole an AWS Management Console und öffnen Sie sie unter https://console.aws.amazon.com/redshiftv2/.

  2. Wählen Sie im Navigationsmenü Provisioned clusters dashboard (Dashboard für bereitgestellte Cluster) und dann Clusters (Cluster) aus. Die aktuellen Cluster für Ihr Konto AWS-Region sind aufgeführt. Eine Teilmenge der Eigenschaften jedes Clusters wird in den Spalten der Liste angezeigt.

  3. Auf der Seite mit der Clusterliste (Clusters) wird ein Banner angezeigt, das die Vorschau vorstellt. Wählen Sie die Schaltfläche Create preview cluster (Vorschau-Cluster erstellen) aus, um die Seite zum Erstellen von Clustern zu öffnen.

  4. Geben Sie Eigenschaften für Ihren Cluster ein. Wählen Sie den Vorschaupfad (Preview track) aus, der die zu testenden Funktionen enthält. Wir empfehlen, einen Namen für den Cluster zu verwenden, der darauf hinweist, dass sich dieser auf einem Vorschaupfad befindet. Wählen Sie Optionen für Ihren Cluster, einschließlich Optionen mit der Bezeichnung -preview (Vorschau), für die zu testenden Funktionen. Allgemeine Informationen zum Erstellen von Clustern finden Sie unter Erstellen eines Clusters im Amazon-Redshift-Verwaltungshandbuch.

  5. Wählen Sie Vorschau-Cluster erstellen aus, um einen Cluster in der Vorschau zu erstellen.

    Anmerkung

    Der preview_2023-Track ist der neueste verfügbare Vorschau-Track. Dieser Track unterstützt nur die Erstellung von Clustern mit RA3-Knotentypen. Der Knotentyp DC2 und alle älteren Knotentypen werden nicht unterstützt.

  6. Wenn Ihr Vorschau-Cluster verfügbar ist, verwenden Sie Ihren SQL-Client, um Daten zu laden und abzufragen.

Sie können außerdem eine Vorschau-Arbeitsgruppe erstellen, um ein LLM zu erstellen. Sie können diese Features nicht in der Produktion verwenden und Ihre Vorschau-Arbeitsgruppe auch nicht in eine andere Arbeitsgruppe verschieben. Weitere Informationen zu den Nutzungsbedingungen finden Sie unter „Beta- und Vorschauversionen“ in den AWS -Servicebedingungen. Eine Anleitung zur Erstellung einer Vorschau-Arbeitsgruppe finden Sie unter Erstellen einer Vorschau-Arbeitsgruppe.

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>' }

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, geometry und hllsketch werden nicht unterstützt. Wenn Sie angeben, dass der SUPER-Datentyp als Eingabedaten und der zurückgegebene Datentyp verwendet werden sollen, bedeutet dies, dass Sie ein in Amazon SageMaker JumpStart gehostetes Large Language Model (LLM) erstellen möchten.

Alternativ können Sie angeben, dass nur der SUPER-Datentyp als Eingabedaten verwendet werden soll, ohne ihn auch als zurückgegebenen Datentyp zu verwenden. Die Verwendung des SUPER-Datentyps als Eingabe ist nur als Vorschaufunktion verfügbar.

Sie können anstelle eines Funktionsnamens auch einen Schemanamen angeben.

RETURNS data_type

Der Datentyp des Werts, der von der Funktion zurückgegeben wird. Alle unterstützten Datentypen finden Sie unter Datentypen. Geography, geometry und hllsketch werden nicht unterstützt. Wenn Sie angeben, dass der SUPER-Datentyp als Eingabedaten und der zurückgegebene Datentyp verwendet werden sollen, bedeutet dies, dass Sie ein in Amazon SageMaker JumpStart gehostetes Large Language Model (LLM) erstellen möchten.

Alternativ können Sie angeben, dass nur der SUPER-Datentyp als zurückgegebenen Datentyp verwendet werden soll, ohne ihn auch als Eingabedaten zu verwenden.

SAGEMAKER 'endpoint_name'[:'model_name']

Der Name des SageMaker Amazon-Endpunkts. 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 wie der Amazon Redshift Redshift-Cluster gehostet werden. Um Ihren Endpunkt zu finden, starten Sie Amazon SageMaker. 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.

Wenn das Modell auf einem SageMaker Endpunkt bereitgestellt wird, werden die Informationen des Modells in Amazon Redshift SageMaker erstellt. 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:

  • BYOM-Modelle können nur ein Argument unterstützen, wenn Sie den SUPER-Datentyp als Eingabedaten verwenden, und die zurückgegebene Ausgabe muss ebenfalls den Datentyp SUPER haben.

  • Das Modell muss Eingaben im Format kommagetrennter Werte (CSV) über den Inhaltstyp Text/CSV in akzeptieren. SageMaker Gilt nur, wenn Sie nicht den Datentyp SUPER als Eingabe verwenden.

  • Der Endpunkt muss von demselben AWS Konto gehostet werden, dem der Amazon Redshift Redshift-Cluster gehört.

  • Bei den Ausgaben von Modellen muss es sich um einen einzelnen Wert des Typs handeln, der bei der Erstellung der Funktion angegeben wurde, und zwar im Format von kommagetrennten Werten (CSV) über den Inhaltstyp Text/CSV in. SageMaker Varchar-Datentypen dürfen nicht in Anführungszeichen gesetzt werden. Jede Ausgabe muss in einer neuen Zeile stehen. Gilt nur, wenn Sie angegeben haben, dass das Modell den SUPER-Datentyp nicht zurückgeben soll.

  • Modelle akzeptieren Nullen als leere Zeichenfolgen.

  • Stellen Sie sicher, dass der SageMaker Amazon-Endpunkt entweder über genügend Ressourcen verfügt, um Inferenzrufe von Amazon Redshift aufzunehmen, oder dass der SageMaker Amazon-Endpunkt automatisch skaliert werden kann.

  • Wenn der zurückgegebene Typ SUPER ist, muss die Modellausgabe JSON und der Inhaltstyp application/jsonlines sein.

  • Wenn der Ein- und der Ausgabetyp SUPER sind, muss das Modell JSON über den Inhaltstyp application/json akzeptieren und zurückgeben.

CREATE MODEL für Remote-Inferenz – Beispiel

Im folgenden Beispiel wird ein Modell erstellt, das einen SageMaker Endpunkt verwendet, um Vorhersagen zu treffen. 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 großes Sprachmodell (LLM) erstellt, indem der SUPER-Datentyp als Eingabedaten verwendet und der SUPER-Datentyp ausgegeben wird. LLMs werden in SageMaker Jumpstart gehostet.

CREATE MODEL sample_super_data_model FUNCTION sample_super_data_model_predict(super) RETURNS super SAGEMAKER 'sample_super_data_model_endpoint' IAM_ROLE default;

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 '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 3 K-Means-Präprozessoren, nämlich StandardScaler, und MinMax. NumericPassthrough Wenn Sie keine Vorverarbeitung für K-Means anwenden möchten, wählen Sie NumericPassthrough explizit als Transformator. 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 Hyperparameters im Amazon SageMaker Developer Guide

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 'DOC-EXAMPLE-BUCKET'); select customer_id, customers_cluster(...) from customers; customer_id | customers_cluster -------------------- 12345 1 12346 2 12347 4 12348 0

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 '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 ein angeben, wird eine Forecast verwendet AutoPredictor, bei der 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 '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 'DOC-EXAMPLE-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