

 Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del parche 198. Las UDF de Python existentes seguirán funcionando hasta el 30 de junio de 2026. Para obtener más información, consulte la [publicación del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# CREATE MODEL
<a name="r_CREATE_MODEL"></a>

**Topics**
+ [Requisitos previos](#r_create_model_prereqs)
+ [Privilegios necesarios](#r_simple_create_model-privileges)
+ [Control de costes](#r_create_model_cost)
+ [CREATE MODEL completo](#r_full_create_model)
+ [Parameters](#r_create_model_parameters)
+ [Notas de uso](r_create_model_usage_notes.md)
+ [Casos de uso](r_create_model_use_cases.md)

## Requisitos previos
<a name="r_create_model_prereqs"></a>

Antes de utilizar la instrucción CREATE MODEL, complete los requisitos previos indicados en [Configuración del clúster para utilizar Amazon Redshift ML](getting-started-machine-learning.md#cluster-setup). A continuación, se brinda un resumen de alto nivel de los requisitos previos.
+ Cree un clúster de Amazon Redshift con la consola de administración de AWS o la AWS Command Line Interface (AWS CLI)
+ Adjunte la política de AWS Identity and Access Management (IAM) mientras crea el clúster.
+ Para permitir que Amazon Redshift y SageMaker AI asuman el rol para interactuar con otros servicios, añada la política de confianza adecuada al rol de IAM.

Para obtener detalles sobre el rol de IAM, la política de confianza y otros requisitos previos, consulte [Configuración del clúster para utilizar Amazon Redshift ML](getting-started-machine-learning.md#cluster-setup).

A continuación, encontrará diferentes casos de uso para la instrucción CREATE MODEL.
+ [CREATE MODEL simple](r_create_model_use_cases.md#r_simple_create_model)
+ [CREATE MODEL con guía para el usuario](r_create_model_use_cases.md#r_user_guidance_create_model)
+ [CREATE para modelos XGBoost con AUTO OFF](r_create_model_use_cases.md#r_auto_off_create_model)
+ [Bring your own model (BYOM): inferencia local](r_create_model_use_cases.md#r_byom_create_model)
+ [Bring your own model (BYOM): inferencia remota](r_create_model_use_cases.md#r_byom_create_model_remote)
+ [CREATE MODEL con K-MEANS](r_create_model_use_cases.md#r_k-means_create_model)
+ [CREATE MODEL completo](#r_full_create_model)

## Privilegios necesarios
<a name="r_simple_create_model-privileges"></a>

Los siguientes privilegios son necesarios para CREATE MODEL:
+ Superusuario
+ Usuarios con el privilegio CREATE MODEL
+ Roles con el privilegio GRANT CREATE MODEL

## Control de costes
<a name="r_create_model_cost"></a>

 Amazon Redshift ML utiliza los recursos de clúster existentes para crear modelos de predicción, por lo que no es necesario pagar costes adicionales. Sin embargo, es posible que tenga costes adicionales si necesita cambiar el tamaño del clúster o desea entrenar los modelos. Amazon Redshift ML utiliza Amazon SageMaker AI para entrenar modelos, lo que supone un costo adicional asociado. Hay formas de controlar los costes adicionales, como limitar el tiempo máximo que puede tardar el entrenamiento o limitar el número de ejemplos de formación utilizados a la hora de entrenar el modelo. Para obtener más información, consulte [Costes para usar Amazon Redshift ML](https://docs.aws.amazon.com/redshift/latest/dg/cost.html). 

## CREATE MODEL completo
<a name="r_full_create_model"></a>

A continuación, se resumen las opciones básicas de la sintaxis de CREATE MODEL completo.

### Sintaxis de CREATE MODEL completo
<a name="r_auto_off-create-model-synposis"></a>

A continuación, se muestra la sintaxis completa de la instrucción CREATE MODEL.

**importante**  
Cuando cree un modelo con la instrucción CREATE MODEL, siga el orden de las palabras clave en la sintaxis que aparece a continuación.

```
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
    ) ]
```

## Parameters
<a name="r_create_model_parameters"></a>

model\_name  
El nombre del modelo. El nombre del modelo en un esquema debe ser único.

FROM { *table\_name* \| ( *select\_query* ) \| *'job\_name'*}  
Se trata del nombre de la tabla o la consulta que especifica los datos de formación. Pueden ser una tabla existente en el sistema o una consulta SELECT compatible con Amazon Redshift entre paréntesis, es decir, (). En el resultado de la consulta, debe haber al menos dos columnas. 

TARGET *column\_name*  
Se trata del nombre de la columna que se convierte en el objetivo de predicción. La columna debe existir en la cláusula FROM. 

FUNCTION *function\_name* ( *data\_type* [, ...] )  
Se trata del nombre de la función que se creará y los tipos de datos de los argumentos de entrada. Puede proporcionar el nombre de un esquema de la base de datos en lugar del nombre de una función.

RETURNS *data\_type*  
El tipo de datos que se va a devolver desde la función del modelo. El tipo de datos `SUPER` de devolución solo se aplica a BYOM con inferencia remota.

SAGEMAKER *'endpoint\_name'*[:*'model\_name'*]  
El nombre del punto de conexión de Amazon SageMaker AI. Si el nombre del punto de conexión apunta a un punto de conexión de múltiples modelos, agregue el nombre del modelo que se utilizará. El punto de conexión debe estar alojado en la misma Región de AWS que el clúster de Amazon Redshift.

IAM\_ROLE { default \| 'arn:aws:iam::<account-id>:role/<role-name>'}  
 Utilice la palabra clave predeterminada para que Amazon Redshift utilice el rol de IAM configurado como predeterminado y asociado al clúster cuando se ejecuta el comando CREATE MODEL. También puede especificar un ARN de un rol de IAM para usar ese rol.

[AUTO ON/OFF]  
 Activa o desactiva la detección automática de CREATE MODEL de procesadores previos, algoritmos e hiperparámetros. Si especifica esta opción al crear un modelo de previsión, se debe utilizar un AutoPredictor, en el que Amazon Forecast aplica las combinaciones óptimas de algoritmos a cada serie temporal del conjunto de datos. 

 *MODEL\_TYPE { XGBOOST \| MLP \| LINEAR\_LEARNER \| KMEANS \| FORECAST }*   
(Opcional) Especifica el tipo de modelo. Puede especificar si desea entrenar un modelo de un tipo específico, como XGBoost, perceptron multicapa (MLP), KMEANS o Linear Learner, que son todos algoritmos compatibles con el Piloto automático de Amazon SageMaker AI. Si no se especifica el parámetro, se buscan todos los tipos de modelos admitidos durante la formación para encontrar el mejor modelo. También puede crear un modelo de previsión en Redshift ML para crear previsiones precisas de series temporales.

 *PROBLEM\_TYPE ( REGRESSION \| BINARY\_CLASSIFICATION \| MULTICLASS\_CLASSIFICATION )*   
(Opcional) Especifica el tipo de problema. Si conoce el tipo de problema, puede restringir a Amazon Redshift a que busque solo el mejor modelo de ese tipo específico. Si no se especifica este parámetro, se detecta un tipo de problema durante la formación, en función de sus datos.

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' )  
(Opcional) Especifica el nombre de la métrica de objetivo utilizada para medir la calidad predictiva de un sistema de machine learning. Esta métrica se optimiza durante la formación para proporcionar la mejor estimación para los valores del parámetro del modelo a partir de los datos. Si no se especifica una métrica de forma explícita, el comportamiento predeterminado es utilizar automáticamente MSE para regresión, F1 para clasificación binaria y Accuracy para clasificación multiclase. Para obtener más información acerca de los objetivos, consulte [AutoMLJobObjective](https://docs.aws.amazon.com//sagemaker/latest/APIReference/API_AutoMLJobObjective.html) en la *Referencia de la API de Amazon SageMaker AI* y [Learning task parameters](https://xgboost.readthedocs.io/en/latest/parameter.html#learning-task-parameters) en la documentación de XGBOOST. Los valores RMSE, WAPE, MAPE, MASE y AverageWeightedQuantileLoss solo son aplicables a los modelos de previsión. Para obtener más información, consulte la operación de la API [CreateAutoPredictor](https://docs.aws.amazon.com/forecast/latest/dg/API_CreateAutoPredictor.html#forecast-CreateAutoPredictor-request-OptimizationMetric).

 *PREPROCESSORS "string' *   
(Opcional) Especifica ciertas combinaciones de procesadores previos para determinados conjuntos de columnas. El formato es una lista de columnSets y las transformaciones adecuadas que se aplicarán a cada conjunto de columnas. Amazon Redshift aplica todos los transformadores de una lista de transformadores específica a todas las columnas del ColumnSet correspondiente. Por ejemplo, para aplicar OneHotEncoder con Imputer a las columnas t1 y t2, utilice el comando de muestra que aparece a continuación.  

```
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’ (,..) ) }  
Especifica si los parámetros de XGBoost predeterminados se utilizan o se sustituyen con valores especificados por el usuario. Los valores deben ir entre comillas simples. Los siguientes son ejemplos de parámetros para XGBoost y sus valores predeterminados.      
[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/redshift/latest/dg/r_CREATE_MODEL.html)

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 matriz de cadenas )  
La cláusula S3\_BUCKET especifica la ubicación de Amazon S3 que se utiliza para almacenar resultados intermedios.  
(Opcional) El parámetro TAGS es una lista separada por comas de pares clave-valor que puede utilizar para etiquetar recursos creados en Amazon SageMaker AI y Amazon Forecast. Las etiquetas lo ayudan a organizar los recursos y a asignar los costos. Los valores del par son opcionales, por lo que puede crear etiquetas mediante el formato `key=value` o simplemente con la creación de una clave. Para obtener más información sobre las etiquetas en Amazon Redshift, consulte [Información general del proceso de etiquetado](https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-tagging.html).  
(Opcional) KMS\_KEY\_ID especifica si Amazon Redshift utiliza cifrado del lado del servidor con una clave de AWS KMS para proteger los datos en reposo. Los datos en tránsito están protegidos con la capa de conexión segura (SSL).   
(Opcional) S3\_GARBAGE\_COLLECT {ON\|OFF} especifica si Amazon Redshift realiza la recopilación de elementos no utilizados en los conjuntos de datos resultantes utilizados para formar modelos, además de los propios modelos. Si se establece en OFF, los conjuntos de datos resultantes utilizados para formar modelos y los modelos permanecen en Amazon S3 y se pueden utilizar para otros fines. Si se establece en ON, Amazon Redshift elimina los artefactos en Amazon S3 una vez que se completa la formación. El valor predeterminado es ON.  
(Opcional) MAX\_CELLS especifica el número de celdas de los datos de formación. Este valor se obtiene de multiplicar el número de registros (en la tabla o en la consulta de formación) por el número de columnas. El valor predeterminado es 1 000 000.  
(Opcional) MAX\_RUNTIME especifica la cantidad máxima de tiempo que dura la formación. Los trabajos de formación suelen completarse antes en función del tamaño del conjunto de datos. Especifica la cantidad máxima de tiempo que debería tomar la formación. El valor predeterminado es 5400 (90 minutos).  
HORIZON especifica el número máximo de predicciones que puede devolver el modelo de previsión. Una vez que el modelo esté formado, no podrá cambiar este entero. Este parámetro es obligatorio si se entrena un modelo de previsión.  
FREQUENCY especifica los detalles en unidades de tiempo que desea que sean las previsiones. Las opciones disponibles son  `Y | M | W | D | H | 30min | 15min | 10min | 5min | 1min`. Este parámetro es obligatorio si se entrena un modelo de previsión.  
(Opcional) PERCENTILES es una cadena delimitada por comas que especifica los tipos de previsión que se utilizan para entrenar un predictor. Los tipos de previsión pueden ser cuantiles de 0,01 a 0,99, en incrementos de 0,01 o más. También puede especificar la previsión media con la media. Puede especificar un máximo de cinco tipos de previsión.

 MAX\_BATCH\_ROWS *integer*   
(Opcional) El número máximo de filas que Amazon Redshift envía en una sola solicitud por lotes para una única invocación de SageMaker AI. Solo se admite para BYOM con inferencia remota. El valor mínimo de este parámetro es 1. El valor máximo es `INT_MAX` o 2 147 483 647. Este parámetro solo es necesario cuando el tipo de datos de entrada y de devolución son *SUPER*. El valor predeterminado es `INT_MAX` o 2 147 483 647. 