Amazon Redshift non supporterà più la creazione di nuove UDF Python a partire dal 1º novembre 2025. Se desideri utilizzare le UDF Python, creale prima di tale data. Le UDF Python esistenti continueranno a funzionare normalmente. Per ulteriori informazioni, consulta il post del blog
CREATE MODEL
Argomenti
Prerequisiti
Prima di utilizzare l'istruzione CREATE MODEL, completare i prerequisiti descritti in Configurazione del cluster per l'utilizzo di Amazon Redshift ML. Di seguito è riportato un riepilogo approfondito dei prerequisiti.
-
Creazione di un cluster Amazon Redshift con la Console di gestione di AWS o l'interfaccia a riga di comando di AWS (AWS CLI).
-
Collegare la policy AWS Identity and Access Management (IAM) durante la creazione del cluster.
-
Per consentire ad Amazon Redshift e SageMaker AI di assumere il ruolo per interagire con altri servizi, aggiungi la seguente policy di attendibilità al ruolo IAM.
Per maggiori dettagli sul ruolo IAM, sulla policy di attendibilità e su altri prerequisiti, consultare Configurazione del cluster per l'utilizzo di Amazon Redshift ML.
Di seguito, è possibile trovare diversi casi d'uso per l'istruzione CREATE MODEL.
Privilegi richiesti
Di seguito sono riportati i privilegi richiesti per CREATE MODEL:
-
Superuser
-
Utenti con il privilegio CREATE MODEL
-
Ruoli con il privilegio GRANT CREATE MODEL
Controllo dei costi
Amazon Redshift ML utilizza le risorse cluster esistenti per creare modelli di previsione, quindi non sono previsti costi aggiuntivi. Tuttavia, si potrebbero avere costi aggiuntivi se si deve ridimensionare il cluster o se si desidera addestrare i propri modelli. Amazon Redshift ML utilizza Amazon SageMaker AI per l’addestramento dei modelli, che ha un costo aggiuntivo associato. Esistono modi per controllare i costi aggiuntivi, come la limitazione della quantità massima di tempo che l'addestramento può richiedere o limitando il numero di esempi di addestramento utilizzati per addestrare il modello. Per ulteriori informazioni consulta Costi per l'utilizzo di Amazon Redshift ML.
CREATE MODEL completo
Di seguito viene riportato un riepilogo delle opzioni di base della sintassi di CREATE MODEL.
Sintassi completa di CREATE MODEL
Di seguito è riportata la sintassi completa dell'istruzione CREATE MODEL.
Importante
Quando si crea un modello utilizzando l'istruzione CREATE MODEL, seguire l'ordine delle parole chiave nella sintassi seguente.
CREATE MODEL model_name FROM { table_name | ( select_statement ) | 'job_name' } [ TARGET column_name ] FUNCTION function_name [ ( data_type [, ...] ) ] [ RETURNS data_type ] -- supported only for BYOM [ SAGEMAKER 'endpoint_name'[:'model_name']] -- supported only for BYOM remote inference IAM_ROLE { default | 'arn:aws:iam::<account-id>:role/<role-name>' } [ AUTO ON / OFF ] -- default is AUTO ON [ MODEL_TYPE { XGBOOST | MLP | LINEAR_LEARNER | KMEANS | FORECAST } ] -- not required for non AUTO OFF case, default is the list of all supported types -- required for AUTO OFF [ PROBLEM_TYPE ( REGRESSION | BINARY_CLASSIFICATION | MULTICLASS_CLASSIFICATION ) ] -- not supported when AUTO OFF [ OBJECTIVE ( 'MSE' | 'Accuracy' | 'F1' | 'F1_Macro' | 'AUC' | 'reg:squarederror' | 'reg:squaredlogerror'| 'reg:logistic'| 'reg:pseudohubererror' | 'reg:tweedie' | 'binary:logistic' | 'binary:hinge', 'multi:softmax' | 'RMSE' | 'WAPE' | 'MAPE' | 'MASE' | 'AverageWeightedQuantileLoss' ) ] -- for AUTO ON: first 5 are valid -- for AUTO OFF: 6-13 are valid -- for FORECAST: 14-18 are valid [ PREPROCESSORS 'string' ] -- required for AUTO OFF, when it has to be 'none' -- optional for AUTO ON [ HYPERPARAMETERS { DEFAULT | DEFAULT EXCEPT ( Key 'value' (,...) ) } ] -- support XGBoost hyperparameters, except OBJECTIVE -- required and only allowed for AUTO OFF -- default NUM_ROUND is 100 -- NUM_CLASS is required if objective is multi:softmax (only possible for AUTO OFF) [ SETTINGS ( S3_BUCKET 'amzn-s3-demo-bucket', | -- required TAGS 'string', | -- optional KMS_KEY_ID 'kms_string', | -- optional S3_GARBAGE_COLLECT on / off, | -- optional, defualt is on. MAX_CELLS integer, | -- optional, default is 1,000,000 MAX_RUNTIME integer (, ...) | -- optional, default is 5400 (1.5 hours) HORIZON integer, | -- required if creating a forecast model FREQUENCY integer, | -- required if creating a forecast model PERCENTILES string, | -- optional if creating a forecast model MAX_BATCH_ROWS integer -- optional for BYOM remote inference ) ]
Parametri
- model_name
-
Il nome del modello. Il nome del modello in uno schema deve essere unico.
- FROM { table_name | ( select_query ) | 'job_name'}
-
Il nome_tabella o la query che specifica i dati di addestramento. Possono essere una tabella esistente nel sistema o una query SELECT compatibile con Amazon Redshift racchiusa tra parentesi, ovvero (). Il risultato della query deve contenere almeno due colonne.
- TARGET nome_colonna
-
Il nome della colonna che diventa la destinazione della previsione. La colonna deve esistere nella clausola FROM.
- FUNCTION nome_funzione ( tipo_dati [, ...] )
-
Il nome della funzione da creare e i tipi di dati degli argomenti di input. Puoi fornire il nome di uno schema nel database invece del nome di una funzione.
- RETURNS data_type
-
Il tipo di dati della funzione del modello da restituire. Il tipo di dati
SUPERrestituito è applicabile solo a BYOM con inferenza remota. - SAGEMAKER 'nome_endpoint'[:'nome_modello']
-
Il nome dell’endpoint Amazon SageMaker AI. Se il nome dell'endpoint punta a un endpoint multimodello, aggiungere il nome del modello da utilizzare. L’endpoint deve trovarsi nella stessa Regione AWS del cluster Amazon Redshift.
- IAM_ROLE { default | 'arn:aws:iam::<account-id>:role/<role-name>'}
-
Utilizzare la parola chiave predefinita per fare in modo che Amazon Redshift utilizzi il ruolo IAM impostato come predefinito e associato al cluster quando viene eseguito il comando CREATE MODEL. In alternativa, è possibile specificare un ARN di un ruolo IAM per utilizzare quel ruolo.
- [ AUTO ON / OFF ]
-
Attiva o disattiva il rilevamento automatico CREATE MODEL della selezione di preprocessore, algoritmo e iperparametri. Specificare l'attivazione quando si crea un modello di previsione indica l'utilizzo di un AutoPredictor, in cui Amazon Forecast applica le combinazioni ottimali di algoritmi a ciascuna serie temporale del set di dati.
- MODEL_TYPE { XGBOOST | MLP | LINEAR_LEARNER | KMEANS | FORECAST }
-
(Facoltativo) Specifica il tipo di modello. Puoi specificare se desideri addestrare un modello di un tipo specifico, ad esempio XGBoost, percezione multistrato (MLP), KMEANS o Linear Learner, che sono tutti algoritmi supportati da Amazon SageMaker AI Autopilot. Se non si specifica il parametro, durante l'addestramento vengono ricercati tutti i tipi di modello supportati per trovare il modello migliore. Puoi anche creare un modello di previsione in Redshift ML per creare previsioni accurate di serie temporali.
- PROBLEM_TYPE ( REGRESSION | BINARY_CLASSIFICATION | MULTICLASS_CLASSIFICATION )
-
(Facoltativo) Specifica il tipo di problema. Se si conosce il tipo di problema, è possibile limitare Amazon Redshift alla ricerca solo del modello migliore di quel tipo di modello specifico. Se non si specifica questo parametro, durante l'addestramento viene rilevato un tipo di problema in base ai dati.
- OBJECTIVE ( 'MSE' | 'Accuracy' | 'F1' | 'F1Macro' | 'AUC' | 'reg:squarederror' | 'reg:squaredlogerror' | 'reg:logistic' | 'reg:pseudohubererror' | 'reg:tweedie' | 'binary:logistic' | 'binary:hinge' | 'multi:softmax' | 'RMSE' | 'WAPE' | 'MAPE' | 'MASE' | 'AverageWeightedQuantileLoss' )
-
(Facoltativo) Specifica il nome del parametro dell'obiettivo utilizzato per misurare la qualità predittiva di un sistema di machine learning. Questo parametro è ottimizzato durante l'addestramento per fornire la migliore stima per i valori dei parametri del modello dai dati. Se non si specifica esplicitamente un parametro, il comportamento di default consiste nell'utilizzare automaticamente MSE: per la regressione, F1: per la classificazione binaria, Accuracy: per la classificazione multiclass. Per informazioni sugli obiettivi, consulta AutoMLJobObjective nella documentazione di riferimento dell’API Amazon SageMaker AI e Learning task parameters
nella documentazione di XGBOOST. I valori RMSE, WAPE, MAPE, MASE e AverageWeightedQuantileLoss sono applicabili solo ai modelli Forecast. Per ulteriori informazioni, consultare l'operazione API CreateAutoPredictor. - PREPROCESSORS 'string'
-
(Facoltativo) Specifica alcune combinazioni di preprocessori per determinati set di colonne. Il formato è un elenco di columnSets e le trasformazioni appropriate da applicare a ciascun set di colonne. Amazon Redshift applica tutti i trasformatori in un elenco di trasformatori specifico a tutte le colonne del set di colonne corrispondente. Ad esempio, per applicare OneHotEncoder con Imputer sulle colonne t1 e t2, utilizzare il comando di esempio seguente.
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' ) - HYPERPARAMETERS { DEFAULT | DEFAULT EXCEPT ( key ‘value' (,..) ) }
-
Specifica se i parametri XGBoost di default vengono utilizzati o sostituiti dai valori specificati dall'utente. I valori devono essere racchiusi tra virgolette singole. Di seguito sono riportati esempi di parametri per XGBoost e le loro impostazioni di default.
Nome del parametro Valore del parametro Valore predefinito Note num_class
Numero intero Necessario per la classificazione multiclass.
N/D num_round
Numero intero 100
N/D tree_method
Stringa Auto (Automatico) N/D max_depth
Numero intero 6 [0 , 10] min_child_weight Float 1 MinValue: 0, MaxValue: 120 subsample Float 1 MinValue: 0,5, MaxValue: 1 gamma Float 0 MinValue: 0, MaxValue: 5 alpha (alfa) Float 0 MinValue: 0, MaxValue: 1000 eta Float 0.3 MinValue: 0,1, MaxValue: 0,5 colsample_byleve Float 1 MinValue: 0,1, MaxValue: 1 colsample_bynode Float 1 MinValue: 0,1, MaxValue: 1 colsample_bytree Float 1 MinValue: 0,5, MaxValue: 1 lambda Float 1 MinValue: 0, MaxValue: 1000 max_delta_step Numero intero 0 [0, 10] - SETTINGS ( S3_BUCKET 'amzn-s3-demo-bucket', | TAGS 'string', | KMS_KEY_ID 'kms_string' , | S3_GARBAGE_COLLECT on / off, | MAX_CELLS integer , | MAX_RUNTIME (,...) , | HORIZON integer, | FREQUENCY forecast_frequency, | PERCENTILES array of strings )
-
La clausola S3_BUCKET specifica la posizione Amazon S3 utilizzata per archiviare i risultati intermedi.
(Facoltativo) Il parametro TAGS è un elenco separato da virgole di coppie chiave-valore che puoi utilizzare per assegnare tag alle risorse create in Amazon SageMaker AI e Amazon Forecast. I tag consentono di organizzare le risorse e allocare i costi. I valori nella coppia sono opzionali, quindi puoi creare tag utilizzando il formato
key=valueo semplicemente creando una chiave. Per ulteriori informazioni sui tag in Amazon Redshift, consulta Panoramica dei tag.(Facoltativo) KMS_KEY_ID specifica se Amazon Redshift utilizza la crittografia lato server con una chiave AWS KMS per proteggere i dati a riposo. I dati in transito sono protetti con Secure Sockets Layer (SSL).
(Facoltativo) S3_GARBAGE_COLLECT { ON | OFF } specifica se Amazon Redshift esegue la rimozione di oggetti inutili (garbage collection) sui set di dati risultanti utilizzati per addestrare i modelli e i modelli stessi. Se impostato su OFF, i set di dati risultanti utilizzati per addestrare i modelli e i modelli stessi rimangono in Amazon S3 e possono essere utilizzati per altri scopi. Se impostato su ON, Amazon Redshift elimina gli artefatti in Amazon S3 al termine dell'addestramento. Il valore di default è ON.
(Facoltativo) MAX_CELLS specifica il numero di celle nei dati di addestramento. Questo valore è il prodotto del numero di record (nella query di addestramento o nella tabella) moltiplicato per il numero di colonne. Il valore di default è 1.000.000.
(Facoltativo) MAX_RUNTIME specifica la durata massima dell'addestramento. I processi di addestramento spesso vengono completati prima di questo valore, a seconda delle dimensioni del set di dati. Specifica la durata massima dell'addestramento. Il valore di default è 5.400 (90 minuti).
HORIZON specifica il numero massimo di previsioni che il modello di previsione può restituire. Una volta addestrato il modello, non è possibile modificare questo numero intero. Questo parametro è obbligatorio se si addestra un modello di previsione.
FREQUENCY specifica la granularità delle unità di tempo desiderate per le previsioni. Le opzioni disponibili sono
Y | M | W | D | H | 30min | 15min | 10min | 5min | 1min. Questo parametro è obbligatorio se si addestra un modello di previsione.(Facoltativo) PERCENTILES è una stringa delimitata da virgole che specifica i tipi di previsione utilizzati per addestrare un predittore. I tipi di previsione possono essere quantili da 0,01 a 0,99, con incrementi di 0,01 o superiori. Puoi anche specificare la previsione media con la media. È possibile specificare un massimo di cinque tipi di previsione.
- MAX_BATCH_ROWS integer
-
(Facoltativo) Numero massimo di righe che Amazon Redshift invia in una singola richiesta batch per una singola invocazione di SageMaker AI. È supportato solo per BYOM con inferenza remota. Il valore minimo per questo parametro è 1. Il valore massimo è
INT_MAXo 2.147.483.647. Questo parametro è obbligatorio solo quando sia i tipi di dati di input che quelli restituiti sono SUPER. Il valore predefinito èINT_MAXo 2.147.483.647.