

 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/). 

# Consulta de una base de datos
<a name="query-databases"></a>

Para consultar las bases de datos alojadas en el clúster de Amazon Redshift, tiene dos opciones:
+ Conéctese a su clúster y ejecute consultas en la Consola de administración de AWS con el editor de consultas. 

  Si utiliza el editor de consultas en la consola de Amazon Redshift, no tiene que descargar ni configurar una aplicación de cliente SQL. 
+ Conéctese a su clúster a través de una herramienta de cliente SQL, como SQL Workbench/J. 

  Amazon Redshift admite herramientas de cliente SQL que se conectan a través de Java Database Connectivity (JDBC) y Open Database Connectivity (ODBC). Amazon Redshift no proporciona ni instala ninguna biblioteca o herramienta de cliente SQL; por lo tanto, debe instalarlas en su equipo cliente o su instancia de Amazon EC2 para utilizarlas. Puede utilizar la mayoría de las herramientas de cliente SQL compatibles con los controladores JDBC u ODBC.

**nota**  
 Al escribir procedimientos almacenados, sugerimos una práctica recomendada para proteger los valores confidenciales:   
 No codifique ninguna información confidencial en la lógica de procedimientos almacenada. Por ejemplo, no asigne una contraseña de usuario en una instrucción CREATE USER del cuerpo de un procedimiento almacenado. Esto supone un riesgo de seguridad, porque los valores codificados de forma rígida se pueden registrar como metadatos de esquema en las tablas del catálogo. En cambio, pase valores confidenciales, como las contraseñas, como argumentos al procedimiento almacenado, mediante parámetros.   
Para obtener más información acerca de los procedimientos almacenados, consulte[PROCEDIMIENTO DE CREACIÓN](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_PROCEDURE.html)y[Creación de procedimientos almacenados en Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/stored-procedure-overview.html). Para obtener más información acerca de las tablas de catálogos, consulte [Tablas de catálogos de sistema](https://docs.aws.amazon.com/redshift/latest/dg/c_intro_catalog_views.html).

# Conexión a Amazon Redshift
<a name="cluster-syntax"></a>

Puede conectarse a la base de datos mediante la siguiente sintaxis.

```
cluster-name.account-number.aws-region.redshift.amazonaws.com/database-name
```

Los elementos de la sintaxis se definen de la siguiente manera.
+  `cluster-name` 

   El nombre de su clúster. 
+  `account-number` 

   El identificador único asociado a su número de cuenta de AWS en una Región de AWS determinada. Todos los clústeres creados por una cuenta determinada en una Región de AWS determinada tienen el mismo `account-number`. 
+  `aws-region` 

   El código de la Región de AWS en la que se encuentra el clúster. 
+  `database-name` 

   El nombre de su base de datos. 

Por ejemplo, la siguiente cadena de conexión especifica la base de datos `my-db` en el clúster `my-cluster` de la Región de AWS us-east-1.

```
my-cluster.123456789012.us-east-1.redshift.amazonaws.com/my-db
```

# Consulta de una base de datos mediante el editor de consultas v2
<a name="query-editor-v2"></a>

El editor de consultas v2 es una aplicación de cliente SQL independiente basada en web que se utiliza para crear y ejecutar consultas en el almacenamiento de datos de Amazon Redshift. El editor de consultas v2 se utiliza principalmente para editar y ejecutar consultas, visualizar resultados y compartir su trabajo con su equipo. Con el editor de consultas v2, puede crear bases de datos, esquemas, tablas y funciones definidas por el usuario (UDF). En un panel de vista de árbol, para cada una de las bases de datos, puede ver sus esquemas. Para cada esquema, puede ver sus tablas, vistas, UDF y procedimientos almacenados. El editor de consultas v2 sustituye al editor de consultas anterior. 

**nota**  
El editor de consultas v2 está disponible en Regiones de AWS comerciales. Para obtener una lista de Regiones de AWS en las que está disponible el editor de consultas v2, consulte los puntos de conexión mostrados para [Editor de consultas v2 de Redshift](https://docs.aws.amazon.com/general/latest/gr/redshift-service.html) en la *Referencia general de Amazon Web Services*. 

Para obtener una demostración del editor de consultas v2, vea los siguientes videos. 

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/IwZNIroJUnc/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/IwZNIroJUnc)


[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/4EIV4XTE9iI/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/4EIV4XTE9iI)


[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/7y-f1wlyVhI/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/7y-f1wlyVhI)


El editor de consultas v2 tiene un amplio conjunto de características para administrar y ejecutar las instrucciones SQL. Los temas de las siguientes secciones sirven de introducción para muchas de estas características. Explore el editor de consultas v2 por su cuenta para familiarizarse con sus capacidades. 

# Configuración de su Cuenta de AWS
<a name="query-editor-v2-getting-started"></a>

Puede realizar este conjunto de tareas para configurar el editor de consultas v2 a fin de que consulte una base de datos de Amazon Redshift. Con los permisos adecuados, puede acceder a los datos de un clúster o un grupo de trabajo de Amazon Redshift que es propiedad de la Cuenta de AWS que está en la Región de AWS actual.

La primera vez que un administrador configura el editor de consultas v2 para su Cuenta de AWS, este elige la AWS KMS key que se utiliza para cifrar los recursos del editor de consultas v2. De manera predeterminada, se utiliza una clave propia de AWS para cifrar los recursos. Como alternativa, un administrador puede utilizar una clave administrada por el cliente seleccionando el nombre de recurso de Amazon (ARN) para la clave en la página de configuración. 

Luego de configurar una cuenta, la configuración de cifrado AWS KMS no se puede cambiar. Para obtener más información sobre cómo crear y utilizar una clave administrada por el cliente con el editor de consultas v2, consulte [Creación de una clave AWS KMS administrada por el cliente para usar con el editor de consultas v2](#query-editor-v2-kms-key). El administrador también puede elegir opcionalmente un S3 bucket (Bucket de S3) y una ruta que se utilice para algunas características, como carga de datos de un archivo. Para obtener más información, consulte [Configuración y flujo de trabajo de la carga de datos desde un archivo local](query-editor-v2-loading-data-local.md). 

El editor de consultas v2 de Amazon Redshift admite la autenticación, el cifrado, el aislamiento y la conformidad para mantener los datos en reposo y los datos en tránsito protegidos. Para obtener más información sobre la seguridad de datos y el editor de consultas v2, consulte lo siguiente: 
+ [Cifrado en reposo](security-server-side-encryption.md)
+ [Cifrado en tránsito](security-encryption-in-transit.md)
+ [Configuración y análisis de vulnerabilidades en Amazon Redshift](security-vulnerability-analysis-and-management.md)

AWS CloudTrail captura las llamadas a la API y otros eventos relacionados que realiza la Cuenta de AWS o se realizan en nombre de esta. Además, entrega los archivos de registros a un bucket de Amazon S3 especificado. También pueden identificar qué usuarios y cuentas llamaron a AWS, la dirección IP de origen de las llamadas y el momento en que estas se realizaron. Para obtener más información sobre cómo se ejecuta el editor de consultas v2 en AWS CloudTrail, consulte [Registro con CloudTrail](logging-with-cloudtrail.md). Para obtener más información acerca de CloudTrail, consulte la [Guía del usuario de AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html). 

El editor de consultas v2 tiene cuotas ajustables para algunos de sus recursos. Para obtener más información, consulte [Cuotas para objetos de Amazon Redshift](amazon-redshift-limits.md#amazon-redshift-limits-quota). 

## Recursos creados con el editor de consultas v2
<a name="query-editor-v2-resources"></a>

En el editor de consultas v2, puede crear recursos como consultas y gráficos guardados. Todos los recursos del editor de consultas v2 están asociados a un rol de IAM o a un usuario. Recomendamos adjuntar políticas a un rol de IAM y asignar el rol a un usuario.

En el editor de consultas v2, puede agregar y eliminar etiquetas para consultas y gráficos guardados. Puede utilizar estas etiquetas al momento de configurar políticas de IAM personalizadas o para buscar recursos. También puede administrar las etiquetas mediante el editor de etiquetas de Grupos de recursos de AWS.

Puede configurar roles de IAM con políticas de IAM para compartir consultas con otros usuarios en la misma Cuenta de AWS en la Región de AWS.

## Creación de una clave AWS KMS administrada por el cliente para usar con el editor de consultas v2
<a name="query-editor-v2-kms-key"></a>

**Para crear una clave de cifrado simétrica administrada por el cliente**:

Puede crear una clave de cifrado simétrica administrada por el cliente para cifrar los recursos del editor de consultas v2 mediante la consola de AWS KMS o las operaciones de la API de AWS KMS. Para obtener instrucciones sobre cómo crear una clave, consulte [Creación de una clave de AWS KMS de cifrado simétrica](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) en la *Guía para desarrolladores de AWS Key Management Service*.

**Política de claves**

Las políticas de clave controlan el acceso a la clave administrada por el cliente. Cada clave administrada por el cliente debe tener exactamente una política de clave, que contiene instrucciones que determinan quién puede usar la clave y cómo puede utilizarla. Cuando crea la clave administrada por el cliente, puede especificar una política de clave. Para obtener más información, consulte [Administración del acceso a las claves AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/control-access-overview.html#managing-access) en la *Guía para desarrolladores de AWS Key Management Service*. 

Para utilizar la clave administrada por el cliente con el editor de consultas v2 de Amazon Redshift, se deben permitir las siguientes operaciones de API en la política de clave: 
+ `kms:GenerateDataKey`: genera una clave de datos simétrica única para cifrar los datos.
+ `kms:Decrypt`: descifra los datos cifrados con la clave administrada por el cliente.
+ `kms:DescribeKey`: proporciona los detalles de la clave administrada por el cliente para permitir que el servicio valide la clave. 

La siguiente es una política de AWS KMS de ejemplo para la Cuenta de AWS `111122223333`. En la primera sección, `kms:ViaService` limita el uso de la clave al servicio del editor de consultas v2 (que se denomina `sqlworkbench.region.amazonaws.com` en la política). La Cuenta de AWS que utiliza la clave de debe ser `111122223333`. En la segunda sección, el usuario raíz y los administradores de clave de la Cuenta de AWS `111122223333` pueden acceder a la clave.

 Cuando se crea una Cuenta de AWS, se comienza con una identidad de inicio de sesión denominada *usuario raíz* de la Cuenta de AWS que tiene acceso completo a todos los Servicios de AWS y recursos. Se recomiendaencarecidamente que no utilice el usuario raíz para las tareas diarias. Para ver las tareas que requieren credenciales de usuario raíz, consulte [Tareas que requieren credenciales de usuario raíz](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks) en la *Guía del usuario de IAM*. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "key-consolepolicy",
    "Statement": [
        {
            "Sid": "Allow access to principals authorized to use Amazon Redshift Query Editor V2",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt",
                "kms:DescribeKey"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "kms:ViaService": "sqlworkbench.us-east-1.amazonaws.com",
                    "kms:CallerAccount": "111122223333"
                }
            }
        },
        {
            "Sid": "Allow access for key administrators",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": [
                "kms:*"
            ],
            "Resource": "arn:aws:kms:us-east-1:111122223333:key/key_ID"
        }
    ]
}
```

------

Los siguientes recursos proporcionan más información sobre claves AWS KMS:
+ Para obtener más información sobre las políticas de AWS KMS, consulte [Especificación de permisos en una política](https://docs.aws.amazon.com/kms/latest/developerguide/control-access-overview.html#overview-policy-elements) en la *Guía para desarrolladores de AWS Key Management Service*. 
+ Para obtener información sobre las políticas de solución de problemas de AWS KMS, consulte [Solución de problemas de acceso a las claves](https://docs.aws.amazon.com/kms/latest/developerguide/policy-evaluation.html#example-no-iam) en la *Guía para desarrolladores de AWS Key Management Service*. 
+ Para obtener más información sobre las claves, consulte [Claves KMS de AWS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys) en la *Guía para desarrolladores de AWS Key Management Service*.

## Acceso al editor de consultas v2
<a name="query-editor-v2-configure"></a>

Para obtener acceso al editor de consultas v2, necesita permiso. Un administrador puede adjuntar una de las siguientes políticas administradas de AWS al rol para conceder el permiso. (Recomendamos adjuntar políticas a un rol de IAM y asignar el rol a un usuario). Estas políticas administradas de AWS se escriben con diferentes opciones que controlan cómo los recursos de etiquetado permiten compartir consultas. Puede utilizar la consola de IAM ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) para adjuntar políticas de IAM. 
+ **AmazonRedshiftQueryEditorV2FullAccess**: concede acceso completo a todos los recursos y las operaciones del editor de consultas v2 de Amazon Redshift. Esta política también concede acceso a otros servicios requeridos.
+ **AmazonRedshiftQueryEditorV2NoSharing**: permite trabajar con el editor de consultas v2 de Amazon Redshift sin compartir recursos. Esta política también concede acceso a otros servicios requeridos. 
+ **AmazonRedshiftQueryEditorV2ReadSharing**: permite trabajar con el editor de consultas v2 de Amazon Redshift con uso compartido limitado de los recursos. La entidad principal concedida puede leer los recursos compartidos con su equipo, pero no puede actualizarlos. Esta política también concede acceso a otros servicios requeridos. 
+ **AmazonRedshiftQueryEditorV2ReadWriteSharing**: permite trabajar con el editor de consultas v2 de Amazon Redshift con uso compartido de recursos. La entidad principal concedida puede leer y actualizar los recursos compartidos con su equipo. Esta política también concede acceso a otros servicios requeridos. 

También puede crear su propia política en función de los permisos permitidos y denegados en las políticas administradas proporcionadas. Si utiliza el editor de políticas de la consola de IAM para crear su propia política, elija **SQL Workbench** como servicio para el que crea la política en el editor visual. El editor de consultas v2 utiliza el nombre del servicio AWS SQL Workbench en el editor visual y el Simulador de políticas de IAM. 

Para que una entidad principal (un usuario con un rol de IAM asignado) se conecte a un clúster de Amazon Redshift, necesita los permisos de una de las políticas administradas del editor de consultas v2. También necesitan uno de los permisos `redshift:GetClusterCredentialsWithIAM` o `redshift:GetClusterCredentials` para el clúster. Para obtener este permiso, alguien con permiso administrativo puede adjuntar una política a los roles de IAM usados para conectarse al clúster mediante credenciales temporales. Puede delimitar el alcance de la política a clústeres específicos o hacerlo más general. Para obtener más información sobre los permisos para usar credenciales temporales, consulte [Crear un rol o usuario de IAM con permisos para llamar a GetClusterCredentialsWithIAM o GetClusterCredentials](generating-iam-credentials-steps.md#generating-iam-credentials-role-permissions). 

Para que una entidad principal (normalmente un usuario con un rol de IAM asignado) active la capacidad en la página **Configuración de cuenta** para que otras personas de la cuenta puedan **Exportar conjunto de resultados**, necesita el permiso `sqlworkbench:UpdateAccountExportSettings` asociado al rol. Este permiso está presente en la política administrada por AWS `AmazonRedshiftQueryEditorV2FullAccess`.

A medida que se agregan nuevas características al editor de consultas v2, las políticas administradas de AWS se actualizan según sea necesario. Si crea su propia política basándose en los permisos permitidos y denegados en las políticas administradas proporcionadas, edite sus políticas para mantenerlas actualizadas con los cambios en las políticas administradas. Para obtener más información sobre las políticas administradas en Amazon Redshift, consulte [Políticas administradas por AWS para Amazon Redshift](redshift-iam-access-control-identity-based.md#redshift-policy-resources.managed-policies).

Para dar acceso, agregue permisos a los usuarios, grupos o roles:
+ Usuarios y grupos en AWS IAM Identity Center:

  Cree un conjunto de permisos. Siga las instrucciones de [Creación de un conjunto de permisos](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html) en la *Guía del usuario de AWS IAM Identity Center*.
+ Usuarios gestionados en IAM a través de un proveedor de identidades:

  Cree un rol para la federación de identidades. Siga las instrucciones descritas en [Creación de un rol para un proveedor de identidad de terceros (federación)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) en la *Guía del usuario de IAM*.
+ Usuarios de IAM:
  + Cree un rol que el usuario pueda aceptar. Siga las instrucciones descritas en [Creación de un rol para un usuario de IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) en la *Guía del usuario de IAM*.
  + (No recomendado) Adjunte una política directamente a un usuario o agregue un usuario a un grupo de usuarios. Siga las instrucciones descritas en [Adición de permisos a un usuario (consola)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) de la *Guía del usuario de IAM*.

**nota**  
Si un administrador de AWS IAM Identity Center elimina todas las asociaciones de conjuntos de permisos de un conjunto de permisos concreto en toda la cuenta, ya no se podrá acceder a los recursos del editor de consultas asociados originalmente al conjunto de permisos eliminado. Si más adelante se vuelven a crear los mismos permisos, se crea un nuevo identificador interno. Como el identificador interno ha cambiado, no se puede acceder a los recursos del editor de consultas que anteriormente eran propiedad de un usuario. Se recomienda que, antes de que los administradores eliminen un conjunto de permisos, los usuarios de ese conjunto de permisos realicen copias de seguridad de los recursos del editor de consultas, como los cuadernos y las consultas.

## Configuración de etiquetas de entidad principal para conectar un clúster o grupo de trabajo desde el editor de consultas v2
<a name="query-editor-v2-principal-tags-iam"></a>

Para conectarse al clúster o grupo de trabajo mediante la opción de usuario federado, configure el rol o usuario de IAM con etiquetas de entidades principales. O bien, configure el proveedor de identidades (IdP) para que pase `RedshiftDbUser` y (opcionalmente) `RedshiftDbGroups`. Para obtener más información acerca del uso de IAM para administrar etiquetas, consulte [Transferencia de etiquetas de sesión en AWS Security Token Service](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html) en la *Guía del usuario de IAM*. Para configurar el acceso mediante AWS Identity and Access Management, un administrador puede agregar etiquetas mediante la consola de IAM ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)). 

**Para agregar etiquetas de entidades principales a un rol de IAM**

1. Inicie sesión en Consola de administración de AWS y abra la consola IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Seleccione **Roles** en el panel de navegación.

1. Elija el rol que necesita acceso al editor de consultas v2 mediante un usuario federado.

1. Elija la pestaña **Tags** (Etiquetas).

1. Elija **Manage tags** (Administrar etiquetas).

1. Elija **Agregar etiqueta** e ingrese la **Clave** como `RedshiftDbUser` e ingrese un **Valor** del nombre de usuario federado.

1. Si lo desea, elija **Agregar etiqueta** e ingrese la **Clave** como `RedshiftDbGroups` e ingrese un **Valor** del nombre de grupo que se va a asociar al usuario.

1. Elija **Save changes** (Guardar cambios) para ver la lista de etiquetas asociadas al rol de IAM elegido. Es posible que la propagación de los cambios tarde varios segundos.

1. Para utilizar el usuario federado, actualice la página del editor de consultas v2 después de que se hayan propagado los cambios.

**Configure el proveedor de identidades (IdP) para pasar etiquetas de entidades principales**  
El procedimiento para configurar etiquetas mediante un proveedor de identidades (IdP) varía según el IdP. Consulte la documentación del IdP para obtener instrucciones sobre cómo transferir información de usuario y grupo a los atributos de SAML. Cuando se configura correctamente, aparecen los siguientes atributos en la respuesta de SAML que utiliza AWS Security Token Service para rellenar las etiquetas de entidades principales para `RedshiftDbUser` y `RedshiftDbGroups`. 

```
<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:RedshiftDbUser">
    <AttributeValue>db-user-name</AttributeValue>
</Attribute>
<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:RedshiftDbGroups">
    <AttributeValue>db-groups</AttributeValue>
</Attribute>
```

 El *db\$1groups* opcional debe ser una lista separada por dos puntos, como `group1:group2:group3`.

Además, puede configurar el atributo `TransitiveTagKeys` para conservar las etiquetas durante el encadenamiento de roles.

```
<Attribute Name="https://aws.amazon.com/SAML/Attributes/TransitiveTagKeys">
  <AttributeValue>RedshiftDbUser</AttributeValue>
  <AttributeValue>RedshiftDbGroups</AttributeValue>
</Attribute>
```

Para obtener más información sobre la configuración del editor de consultas v2, consulte [Permisos necesarios para usar del editor de consultas v2](redshift-iam-access-control-identity-based.md#redshift-policy-resources.required-permissions.query-editor-v2).

Para obtener información acerca de cómo configurar Active Directory Federation Services (AD FS), consulte la publicación del blog: [Federar el acceso al editor de consultas v2 de Amazon Redshift con Active Directory Federation Services (AD FS)](https://aws.amazon.com/blogs//big-data/federate-access-to-amazon-redshift-query-editor-v2-with-active-directory-federation-services-ad-fs-part-3/). 

Para obtener información acerca de cómo configurar Okta, consulte la publicación del blog: [Federar el acceso de inicio de sesión único al editor de consultas v2 de Amazon Redshift con Okta](https://aws.amazon.com/blogs//big-data/federate-single-sign-on-access-to-amazon-redshift-query-editor-v2-with-okta/). 

**nota**  
Cuando se conecta a su clúster o grupo de trabajo mediante la opción de conexión **Usuario federado** del editor de consultas v2, el proveedor de identidades (IdP) puede proporcionar etiquetas de entidades principales personalizadas para `RedshiftDbUser` y `RedshiftDbGroups`. Actualmente, AWS IAM Identity Center no admite pasar etiquetas de entidades principales personalizadas directamente al editor de consultas v2.

# Apertura del editor de consultas v2
<a name="query-editor-v2-open"></a>

Con Amazon Redshift, puede ejecutar consultas SQL en el clúster de almacenamiento de datos mediante el editor de consultas v2 de la consola de Amazon Redshift. El editor de consultas v2 es una herramienta basada en la web que proporciona una interfaz fácil de usar para ejecutar consultas ad hoc, explorar datos y realizar tareas de análisis de datos. En las siguientes secciones, se le guiará a través del proceso de apertura del editor de consultas v2 de la consola y de utilización de sus funcionalidades de forma eficaz.

**Para abrir el editor de consultas v2**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon Redshift en [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/).

1. En el menú del navegador, elija **Editor** (Editor) y luego **Query editor v2** (Editor de consultas v2). El editor de consultas v2 se abre en una pestaña nueva del navegador.

La página del editor de consultas contiene un menú de navegación que permite elegir una vista de la siguiente manera:

**Editor ![\[Horizontal lines representing redacted or censored text.\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-align-left.png)**  
Administre y consulte los datos organizados como tablas y contenidos en una base de datos. La base de datos puede contener datos almacenados o una referencia a los datos almacenados en otro lugar, como Amazon S3. Se conecta a una base de datos contenida en un clúster o en un grupo de trabajo sin servidor.  
Cuando se trabaja en la vista **Editor**, tiene los siguientes controles:   
+ En el campo **Cluster** (Clúster) o **Workgroup** (Grupo de trabajo), se muestra el nombre al que está conectado actualmente. En el campo **Database** (Base de datos) se muestran las bases de datos del clúster o grupo de trabajo. Las acciones que realiza en la vista **Database** (Base de datos) actúan de manera predeterminada en la base de datos que seleccionó. 
+ Una vista jerárquica de vista de árbol de los clústeres o grupos de trabajo, bases de datos y esquemas. En la sección de esquemas, puede trabajar con tablas, vistas, funciones y procedimientos almacenados. Cada objeto de la vista de árbol admite un menú contextual para realizar acciones asociadas para el objeto, como **Refresh** (Actualizar) o **Drop** (Eliminar). 
+ Una acción ![\[The create icon used in the AWS Console.\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-add.png) **Create** (Crear) para crear bases de datos, esquemas, tablas y funciones.
+ Una acción ![\[The upload icon used in the AWS Console.\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-upload.png)**Cargar datos** para cargar datos desde Amazon S3 o desde un archivo local en la base de datos.
+ Un icono ![\[The floppy disk icon used in the AWS Console.\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-floppy-disk.png) **Save** (Guardar) para guardar la consulta. 
+ Un icono ![\[The shortcut icon used in the AWS Console.\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-key-command.png) **Shortcuts** (Atajos) para mostrar atajos de teclado para el editor. 
+ Un icono ![\[The more actions icon used in the AWS Console.\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-more.png) **Más** para mostrar más acciones en el editor. Por ejemplo: 
  + **Compartir con mi equipo**: compartir un cuaderno con su equipo. Para obtener más información, consulte [Colaboración y uso compartido en equipo](query-editor-v2-team.md).
  + **Atajos** para mostrar atajos de teclado para el editor.
  + **Historial de pestañas** para mostrar el historial de pestañas de una pestaña en el editor.
  + **Actualizar autocompletar** para actualizar las sugerencias mostradas al crear SQL.
+ Un área del **Editor** de ![\[The editor icon in the AWS Console where can enter and run queries.\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/add-plus.png) en la que puede introducir y ejecutar la consulta. 

  Después de ejecutar una consulta, aparece una pestaña denominada **Result** (Resultado) con los resultados. Aquí es donde puede activar **Chart** (Gráfico) para visualizar los resultados. También puede exportar sus resultados mediante **Export** (Exportar).
+ Un área del **Notebook** ![\[The icon in the AWS Console where you can add sections to enter and run SQL or add Markdown.\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/add-plus.png), en la que puede agregar secciones para introducir y ejecutar SQL o agregar Markdown. 

  Después de ejecutar una consulta, aparece una pestaña denominada **Result** (Resultado) con los resultados. Es aquí donde puede exportar sus resultados mediante **Export** (Exportar).

**Consultas ![\[A folder icon used in the AWS Console used to query databases.\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-folder-close.png)**  
Una consulta contiene los comandos SQL para administrar y consultar los datos de una base de datos. Cuando utiliza el editor de consultas v2 para cargar datos de ejemplo, también crea y guarda consultas de ejemplo para usted.  
 Cuando elige una consulta guardada, puede abrirla, cambiarle el nombre y eliminarla mediante el menú contextual (haga clic con el botón derecho). Para ver atributos como el **ARN de la consulta** de una consulta guardada, elija **Detalles de la consulta**. También puede ver su historial de versiones, editar las etiquetas adjuntadas a la consulta y compartirla con su equipo.

**Notebooks ![\[A book icon used in the AWS Console used as SQL notebook.\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-manual.png)**  
Un SQL Notebook contiene celdas SQL y Markdown. Puede utilizar SQL Notebooks para organizar, anotar y compartir varios comandos SQL en un solo documento.  
 Cuando elige un cuaderno guardado, puede abrirlo, cambiarle el nombre y eliminarlo mediante el menú contextual (haga clic con el botón derecho). Para ver atributos como el **ARN del cuaderno** de un cuaderno guardado, elija **Detalles del bloc de notas**. También puede ver su historial de versiones, editar las etiquetas adjuntadas al cuaderno, exportarlo y compartirlo con su equipo. Para obtener más información, consulte [Cuadernos en Amazon RedshiftCuadernos](query-editor-v2-notebooks.md).

**Gráficos ![\[Icon of a chart used in the AWS Console as visual representation of data.\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-chart.png)**  
Un gráfico es una representación visual de sus datos. El editor de consultas v2 proporciona herramientas para crear muchos tipos de gráficos y guardarlos.   
 Cuando elige un gráfico guardado, puede abrirlo, cambiarle el nombre y eliminarlo mediante el menú contextual (haga clic con el botón derecho). Para ver atributos como el **ARN del gráfico** de un gráfico guardado, elija **Detalles del gráfico**. También puede editar las etiquetas adjuntadas al gráfico y exportarlo. Para obtener más información, consulte [Visualización de resultados de las consultas](query-editor-v2-charts.md). 

**Historial ![\[Icon of a clock used in the AWS Console for query history.\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-clock.png)**  
El historial de consultas es una lista de consultas a la hora de ejecutar mediante el editor de consultas v2 de Amazon Redshift. Estas consultas se ejecutaron como consultas individuales o como parte de un SQL notebook. Para obtener más información, consulte [Visualización del historial de consultas y pestañas](query-editor-v2-history.md). 

**Consultas programadas ![\[Icon of a calendar used in the AWS Console for scheduled queries.\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-calendar.png)**  
Una consulta programada es una consulta que se configura para que se inicie en momentos específicos.

 En todas las vistas del editor de consultas v2 están presentes los siguientes iconos:
+ Un icono **Visual mode** (Modo visual) ![\[Icon of a quarter moon used in the AWS Console to switch between light and dark modes.\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-moon.png), para alternar entre el modo claro y el modo oscuro.
+ Un icono **Settings** (Configuración) ![\[Icon of a gear used in the AWS Console to show settings.\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-cog.png), para abrir un menú de las diferentes pantallas de configuración.
  + Un icono **Editor preferences** (Preferencias del editor) ![\[Icon used in the AWS Console to show editor preferences.\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-properties.png), para editar las preferencias al utilizar el editor de consultas v2. Aquí puede **Editar la configuración del espacio de trabajo** para cambiar el tamaño de la fuente, el tamaño de las pestañas y otras configuraciones de visualización. También puede activar (o desactivar) **Autocompletar** para que le muestre sugerencias a medida que introduce su código SQL.
  + Un icono **Connections** (Conexiones) ![\[Icon used in the AWS Console to view connections used in the editor tab.\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-connection.png), para ver las conexiones utilizadas por las pestañas del editor.

    Se utiliza una conexión para recuperar datos de una base de datos. Se crea una conexión para una base de datos específica. Con una conexión aislada, los resultados de un comando SQL que cambia la base de datos (por medio de, por ejemplo, la creación de una tabla temporal) en una pestaña del editor no son visibles en otra pestaña del editor. Al abrir una pestaña del editor en el editor de consultas v2, el valor predeterminado es una conexión aislada. Al crear una conexión compartida, es decir, cuando se desactiva el conmutador **Isolated session** (Sesión aislada), los resultados de otras conexiones compartidas con la misma base de datos son visibles entre sí. Sin embargo, las pestañas del editor que utilizan una conexión compartida en una base de datos no se ejecutan en paralelo. Las consultas que utilizan una misma conexión deben esperar hasta que dicha conexión esté disponible. Una conexión con una base de datos no se puede compartir con otra base de datos. En consecuencia, los resultados de SQL no son visibles en diferentes conexiones de base de datos.

    Un administrador del editor de consultas v2 controla el número de conexiones que cualquier usuario de la cuenta puede tener activas.
  + Un icono **Account settings** (Configuración de cuenta) ![\[Icon used in the AWS Console used by administrators to change settings of user accounts.\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-settings.png), por medio del cual un administrador puede cambiar ciertos ajustes de todos los usuarios de la cuenta. Para obtener más información, consulte [Configuración de cuenta](#query-editor-v2-settings).

## Consideraciones al trabajar con el editor de consultas v2
<a name="query-editor-v2-considerations"></a>

Tenga en cuenta lo siguiente cuando trabaje con el editor de consultas v2.
+ La duración máxima de una consulta es de 24 horas.
+ El tamaño máximo del resultado de la consulta es de 100 MB. Si una llamada devuelve más de 100 MB de datos de respuesta, los primeros 100 MB se devolverán con una advertencia.
+ Puede ejecutar una consulta con un tamaño máximo de 300 000 caracteres. 
+ Puede guardar una consulta con un tamaño máximo de 30 000 caracteres. 
+ De forma predeterminada, el editor de consultas v2 confirma automáticamente cada comando SQL que ejecuta. Cuando se proporciona una instrucción BEGIN, las instrucciones en un bloque BEGIN-COMMIT o BEGIN-ROLLBACK se ejecutan como una única transacción. Para obtener más información acerca de las transacciones, consulte [BEGIN](https://docs.aws.amazon.com/redshift/latest/dg/r_BEGIN.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift.*
+ El número máximo de advertencias que muestra el editor de consultas v2 al ejecutar una sentencia SQL es `10`. Por ejemplo, cuando se ejecuta un procedimiento almacenado, no se muestran más de 10 instrucciones RAISE.
+ El editor de consultas v2 no admite un `RoleSessionName` de IAM que contenga comas (,). Es posible que aparezca un error similar al siguiente: Mensaje de error: «“AROA123456789EXAMPLE:mytext,yourtext” no es un valor válido para TagValue, contiene caracteres no válidos». Este problema surge cuando se define un `RoleSessionName` de IAM que incluye una coma y, a continuación, se utiliza el editor de consultas v2 con ese rol de IAM.

  Para obtener más información sobre un IAM `RoleSessionName`, consulte el [atributo RoleSessionName de SAML](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml_assertions.html#saml_role-session-attribute) en la *Guía del usuario de IAM*. 

## Configuración de cuenta
<a name="query-editor-v2-settings"></a>

Un usuario con los permisos de IAM adecuados puede ver y cambiar los parámetros de **Account settings** (Configuración de cuenta) para otros usuarios en la misma Cuenta de AWS. Este administrador puede ver o configurar lo siguiente:
+ El número máximo de conexiones simultáneas a bases de datos por usuario en la cuenta. Quedan incluidas las conexiones para **Isolated sessions** (Sesiones aisladas). Cuando se cambia este valor, pueden pasar 10 minutos hasta que el cambio surta efecto.
+ Permite a los usuarios de la cuenta exportar un conjunto completo de resultados desde un comando SQL a un archivo.
+ Cargue y vea bases de datos de ejemplo con algunas consultas guardadas que tengan relación.
+ Especifique una ruta de Amazon S3 utilizada por los usuarios de la cuenta para cargar datos desde un archivo local.
+ Visualice el ARN de clave de KMS que se utiliza para cifrar los recursos del editor de consultas v2.

# Conexión a una base de datos de Amazon Redshift
<a name="query-editor-v2-connecting"></a>

Para conectarse a una base de datos, elija el nombre del clúster o grupo de trabajo en el panel de vista de árbol. Si se le solicita, ingrese los parámetros de conexión.

Cuando se conecta a un clúster o grupo de trabajo y sus bases de datos, normalmente debe proporcionar un nombre de **Database** (Base de datos). También debe proporcionar los parámetros necesarios para uno de los siguientes métodos de autenticación:

**IAM Identity Center**  
Con este método, conéctese a su almacenamiento de datos de Amazon Redshift con las credenciales de inicio de sesión único de su proveedor de identidades (IdP). Su clúster o grupo de trabajo debe estar habilitado para el Centro de identidades de IAM en la consola de Amazon Redshift. Para obtener ayuda para configurar las conexiones al IAM Identity Center, consulte [Conexión de Redshift con AWS IAM Identity Center para una experiencia de inicio de sesión único](redshift-iam-access-control-idp-connect.md).

**Usuario federado**  
Con este método, las etiquetas de entidades principales del rol o usuario de IAM deben proporcionar los detalles de la conexión. Estas etiquetas se configuran en AWS Identity and Access Management o el proveedor de identidades (IdP). El editor de consultas v2 se basa en las siguientes etiquetas.  
+ `RedshiftDbUser`: esta etiqueta define el usuario de base de datos que utiliza el editor de consultas v2. Esta etiqueta es necesaria.
+ `RedshiftDbGroups`: esta etiqueta define los grupos de bases de datos que se unen al conectarse al editor de consultas v2. Esta etiqueta es opcional y su valor debe ser una lista separada por dos puntos, como `group1:group2:group3`. Los valores vacíos se ignoran, es decir, `group1::::group2` se interpreta como `group1:group2`. 
Estas etiquetas se reenvían a la API `redshift:GetClusterCredentials` para obtener credenciales para el clúster. Para obtener más información, consulte [Configuración de etiquetas de entidad principal para conectar un clúster o grupo de trabajo desde el editor de consultas v2](query-editor-v2-getting-started.md#query-editor-v2-principal-tags-iam).

**Credenciales temporales con un nombre de usuario de base de datos**  
Esta opción solo está disponible cuando se conecta a un clúster. Con este método, el editor de consultas v2, proporcione un **User name** (Nombre de usuario) para la base de datos. El editor de consultas v2 genera una contraseña temporal para conectarse a la base de datos con su nombre de usuario de la base de datos. Un usuario que utilice este método para conectarse debe tener permiso de IAM para `redshift:GetClusterCredentials`. Para evitar que los usuarios utilicen este método, modifique su usuario o rol de IAM para denegar este permiso. 

**Credenciales temporales mediante su identidad de IAM**  
Esta opción solo está disponible cuando se conecta a un clúster. Con este método, el editor de consultas v2 asigna un nombre de usuario a su identidad de IAM y genera una contraseña temporal para conectarse a la base de datos como su identidad de IAM. Un usuario que utilice este método para conectarse debe tener permiso de IAM para `redshift:GetClusterCredentialsWithIAM`. Para evitar que los usuarios utilicen este método, modifique su usuario o rol de IAM para denegar este permiso. 

**Nombre de usuario y contraseña de la base de datos**  
Con este método, también debe proporcionar un **User name** (Nombre de usuario) y una **Password** (Contraseña) para la base de datos a la que se está conectando. El editor de consultas v2 crea un secreto en su nombre almacenado en AWS Secrets Manager. Este secreto contiene las credenciales para conectarse a la base de datos. 

**AWS Secrets Manager**  
 Con este método, en lugar de un nombre de base de datos, debe proporcionar un **Secret** (Secreto) almacenado en Secrets Manager que contenga su base de datos y sus credenciales de inicio de sesión. Para obtener información sobre cómo crear un secreto, consulte [Creación de un secreto para las credenciales de conexión a la base de datos](redshift-secrets-manager-integration-create.md). 

Cuando selecciona un clúster o grupo de trabajo con el editor de consultas v2, según el contexto, puede crear, editar y eliminar conexiones mediante el menú contextual (clic derecho). Para ver atributos como el **ARN de conexión** de la conexión, elija **Detalles de la conexión**. También puede editar las etiquetas adjuntadas a la conexión.

# Exploración de una base de datos de Amazon Redshift
<a name="query-editor-v2-object-browse"></a>

Dentro de una base de datos, puede administrar esquemas, tablas, vistas, funciones y procedimientos almacenados en el panel de vista de árbol. Cada objeto de la vista tiene acciones asociadas a él en un menú contextual (clic derecho).

El panel jerárquico de vista de árbol muestra los objetos de base de datos. Para actualizar el panel de vista de árbol para mostrar los objetos de la base de datos que es posible que se hayan creado después de la última visualización de la vista de árbol, elija el icono ![\[Circular arrow icon representing a refresh or reload action.\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-refresh.png). Abra el menú contextual (clic derecho) de un objeto para ver qué acciones puede realizar.

![\[Tree-view icons\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/sqlworkbench-tree-view.png)

Una vez que elige una tabla, puede hacer lo siguiente:
+ Para iniciar una consulta en el editor con una instrucción SELECT que consulta todas las columnas de la tabla, utilice **Select table** (Seleccionar tabla).
+ Para ver los atributos o una tabla, utilice **Show table definition** (Mostrar definición de tabla). Utilice esta opción para ver los nombres de columnas, los tipos de columnas, la codificación, las claves de distribución, las claves de ordenación y si una columna puede contener valores nulos. Para obtener más información sobre los atributos de las tablas, consulte [CREATE TABLE](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*.
+ Para eliminar una tabla, utilice **Delete** (Eliminar). Puede usar **Truncate table** (Truncar tabla) para eliminar todas las filas de la tabla o **Drop table** (Eliminar tabla) para eliminar la tabla de la base de datos. Para obtener más información, consulte [TRUNCATE](https://docs.aws.amazon.com/redshift/latest/dg/r_TRUNCATE.html) y [DROP TABLE](https://docs.aws.amazon.com/redshift/latest/dg/r_DROP_TABLE.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*. 

Elija un esquema para **Refresh** (Actualizar) o **Drop schema** (Eliminar esquema). 

Elija una vista para **Show view definition** (Mostrar definición de vista) o **Drop view** (Eliminar vista). 

Elija una función para **Show function definition** (Mostrar definición de la función) o **Drop function** (Eliminar función). 

Elija un procedimiento almacenado para **Show procedure definition** (Mostrar definición de procedimiento) o **Drop procedure** (Eliminar procedimiento). 

# Creación de objetos de base de datos
<a name="query-editor-v2-object-create"></a>

Puede crear objetos de base de datos, incluidas bases de datos, esquemas, tablas y funciones definidas por el usuario (UDF). Para crear objetos de base de datos, es necesario que se conecte a un clúster o grupo de trabajo y a una base de datos.

## Creación de bases de datos
<a name="query-editor-v2-object-create-database"></a>

Puede usar el editor de consultas v2 para crear bases de datos en su clúster o grupo de trabajo.

**Para crear una base de datos**

Para obtener más información sobre las bases de datos, consulte [CREATE DATABASE](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_DATABASE.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*. 

1. Elija ![\[Plus sign icon inside a circle, indicating an add or create action.\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-add.png)**Create** (Crear) y luego elija **Database** (Base de datos).

1. Ingrese un **Database name** (Nombre de base de datos).

1. (Opcional) Seleccione **Users and groups** (Usuarios y grupos), y elija un **Database user** (Usuario de base de datos).

1. (Opcional) Puede crear la base de datos a partir de un recurso compartido de datos o de AWS Glue Data Catalog. Para obtener más información sobre AWS Glue, consulte [¿Qué es AWS Glue?](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) en la *Guía para desarrolladores de AWS Glue*.
   + (Opcional) Seleccione **Crear mediante un recurso compartido de datos** y elija **Seleccionar un recurso compartido de datos**. La lista incluye recursos compartidos de datos de productor que pueden utilizarse para crear un recurso compartido de datos de consumidor en el clúster o grupo de trabajo actual.
   + (Opcional) Seleccione **Crear mediante AWS Glue Data Catalog** y **Elija una base de datos de AWS Glue**. En **Esquema del catálogo de datos**, introduzca el nombre que se utilizará para el esquema cuando se haga referencia a los datos en un nombre de tres partes (database.schema.table). 

1. Elija **Creación de base de datos**.

   La nueva base de datos se muestra en el panel de vista de árbol.

   Cuando elija el paso opcional para consultar una base de datos creada a partir de un recurso compartido de datos, conéctese a una base de datos de Amazon Redshift del clúster o grupo de trabajo (por ejemplo, la base de datos predeterminada `dev`) y utilice la notación de tres partes (database.schema.table) que hace referencia al nombre de base de datos que creó al seleccionar **Crear mediante un recurso compartido de datos**. La base de datos para compartir datos aparece en la pestaña del editor de consultas v2, pero no está habilitada para la conexión directa.

   Cuando elija el paso opcional para consultar una base de datos creada a partir de AWS Glue Data Catalog, conéctese a la base de datos de Amazon Redshift en el clúster o grupo de trabajo (por ejemplo, la base de datos predeterminada `dev`) y utilice la notación de tres partes (database.schema.table) que hace referencia al nombre de la base de datos que creó al seleccionar **Crear mediante AWS Glue Data Catalog**, al esquema al que asignó un nombre en **Esquema del catálogo de datos** y la tabla de AWS Glue Data Catalog. Similar a:

   ```
   SELECT * FROM glue-database.glue-schema.glue-table
   ```
**nota**  
Confirme que se ha conectado a la base de datos predeterminada mediante el método de conexión **Credenciales temporales con su identidad de IAM** y que se han concedido a sus credenciales de IAM privilegios de uso en la base de datos AWS Glue.  

   ```
   GRANT USAGE ON DATABASE glue-database to "IAM:MyIAMUser"
   ```

   La base de datos AWS Glue para compartir datos aparece en la pestaña del editor de consultas v2, pero no está habilitada para la conexión directa.

   Para obtener más información sobre la consulta de AWS Glue Data Catalog, consulte [Uso de recursos compartidos de datos administrados por Lake Formation como consumidor](https://docs.aws.amazon.com/redshift/latest/dg/lake-formation-getting-started-consumer.html) y [Uso de recursos compartidos de datos administrados por Lake Formation como productor](https://docs.aws.amazon.com/redshift/latest/dg/lake-formation-getting-started-producer.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*.

**Ejemplo de creación de una base de datos como consumidor de recursos compartidos de datos**

En el siguiente ejemplo se describe un escenario específico que se utilizó para crear una base de datos a partir de un recurso compartido de datos mediante el editor de consultas v2. Consulte este escenario para aprender a crear una base de datos a partir de un recurso compartido de datos en su entorno. Este escenario utiliza dos clústeres, `cluster-base` (el clúster productor) y `cluster-view` (el clúster consumidor).

1. Utilice la consola de Amazon Redshift para crear un recurso compartido de datos para la tabla `category2` en el clúster `cluster-base`. El recurso compartido de datos de productor se denomina `datashare_base`.

   Para obtener información sobre la creación de recursos compartidos de datos, consulte [Uso compartido de datos entre clústeres en Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/datashare-overview.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*.

1. Utilice la consola de Amazon Redshift para aceptar el recurso compartido de datos `datashare_base` como consumidor de la tabla `category2` en el clúster `cluster-view`.

1. Consulte el panel de vista de árbol en el editor de consultas v2 que muestra la jerarquía de `cluster-base` como:
   + Clúster: `cluster-base`
     + Base de datos: `dev`
       + Esquema: `public`
         + Tablas: `category2`

1. Elija ![\[Plus sign icon inside a circle, indicating an add or create action.\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-add.png)**Create** (Crear) y luego elija **Database** (Base de datos).

1. Introduzca `see_datashare_base` en **Nombre de base de datos**.

1. Seleccione **Crear mediante un recurso compartido de datos** y elija **Seleccionar un recurso compartido de datos**. Elija `datashare_base` para utilizarlo como origen de la base de datos que está creando.

   El panel de vista de árbol en el editor de consultas v2 muestra la jerarquía de `cluster-view` como:
   + Clúster: `cluster-view`
     + Base de datos: `see_datashare_base`
       + Esquema: `public`
         + Tablas: `category2`

1. Cuando consulte los datos, conéctese a la base de datos predeterminada del clúster `cluster-view` (normalmente se denomina `dev`), pero haga referencia a la base de datos de recursos compartidos de datos `see_datashare_base` en su código SQL.
**nota**  
En la vista del editor de consultas v2, el clúster seleccionado es `cluster-view`. La base de datos seleccionada es `dev`. La base de datos `see_datashare_base` aparece en la lista, pero no está habilitada para la conexión directa. Elija la base de datos `dev` y la referencia `see_datashare_base` en el código SQL que ejecute.

   ```
   SELECT * FROM "see_datashare_base"."public"."category2";
   ```

   La consulta recupera datos del recurso compartido de datos `datashare_base` del clúster `cluster_base`.

**Ejemplo de creación de una base de datos a partir de un AWS Glue Data Catalog**

En el siguiente ejemplo se describe un escenario específico que se utilizó para crear una base de datos a partir de un AWS Glue Data Catalog mediante el editor de consultas v2. Consulte este escenario para aprender a crear una base de datos a partir de un AWS Glue Data Catalog en su entorno. Este escenario utiliza el clúster `cluster-view` para que contenga la base de datos que cree.

1. Elija ![\[Plus sign icon inside a circle, indicating an add or create action.\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-add.png)**Create** (Crear) y luego elija **Database** (Base de datos).

1. Introduzca `data_catalog_database` en **Nombre de base de datos**.

1. Seleccione **Crear mediante un AWS Glue Data Catalog** y **Elija una base de datos de AWS Glue**. Elija `glue_db` para utilizarlo como origen de la base de datos que está creando.

   Elija **Esquema del catálogo de datos** e introduzca `myschema` como nombre del esquema a utilizar en la notación de tres partes.

   El panel de vista de árbol en el editor de consultas v2 muestra la jerarquía de `cluster-view` como:
   + Clúster: `cluster-view`
     + Base de datos: `data_catalog_database`
       + Esquema: `myschema`
         + Tablas: `category3`

1. Cuando consulte los datos, conéctese a la base de datos predeterminada del clúster `cluster-view` (normalmente se denomina `dev`), pero haga referencia a la base de datos `data_catalog_database` en su código SQL. 
**nota**  
En la vista del editor de consultas v2, el clúster seleccionado es `cluster-view`. La base de datos seleccionada es `dev`. La base de datos `data_catalog_database` aparece en la lista, pero no está habilitada para la conexión directa. Elija la base de datos `dev` y la referencia `data_catalog_database` en el código SQL que ejecute.

   ```
   SELECT * FROM "data_catalog_database"."myschema"."category3";
   ```

   La consulta recupera los datos catalogados por AWS Glue Data Catalog.

## Creación de esquemas
<a name="query-editor-v2-object-create-schema"></a>

Puede usar el editor de consultas v2 para crear esquemas en su clúster o grupo de trabajo.

**Para crear un esquema**

Para obtener más información sobre los esquemas, consulte [Esquemas](https://docs.aws.amazon.com/redshift/latest/dg/r_Schemas_and_tables.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*. 

1. Elija ![\[Plus sign icon inside a circle, indicating an add or create action.\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-add.png)**Create** (Crear) y luego elija **Schema** (Esquema).

1. Ingrese un **Schema name** (Nombre de esquema).

1. Elija **Local** (Local) o **External** (Externo) en **Schema type** (Tipo de esquema).

   Para obtener más información sobre los esquemas locales, consulte [CREATE SCHEMA](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_SCHEMA.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*. Para obtener más información sobre los esquemas externos, consulte [CREATE EXTERNAL SCHEMA](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_SCHEMA.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*.

1. Si elige **External** (Externo), dispondrá de las siguientes opciones de un esquema externo.
   + **Glue Data Catalog** (Catálogo de datos de Glue): para crear un esquema externo en Amazon Redshift que haga referencia a tablas en AWS Glue. Además de elegir la base de datos de AWS Glue, seleccione el rol de IAM asociado al clúster y el rol de IAM asociado al catálogo de datos.
   + **PostgreSQL**: para crear un esquema externo en Amazon Redshift que haga referencia a una base de datos de Amazon RDS para PostgreSQL o de Amazon Aurora PostgreSQL-Compatible Edition. Proporcione la información de conexión a la base de datos. Para obtener más información sobre las consultas federadas, lea [Consulta de datos con consultas federadas](https://docs.aws.amazon.com/redshift/latest/dg/federated-overview.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*.
   + **MySQL**: para crear un esquema externo en Amazon Redshift que haga referencia a una base de datos de Amazon RDS para MySQL o de Amazon Aurora MySQL-Compatible Edition. Proporcione la información de conexión a la base de datos. Para obtener más información sobre las consultas federadas, lea [Consulta de datos con consultas federadas](https://docs.aws.amazon.com/redshift/latest/dg/federated-overview.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*.

1. Elija **Create schema** (Crear esquema).

   El nuevo esquema aparece en el panel de vista de árbol.

## Creación de tablas
<a name="query-editor-v2-object-create-table"></a>

Puede usar el editor de consultas v2 para crear tablas en su clúster o grupo de trabajo.

**Para crear una tabla**

Puede crear una tabla basada en un archivo de valores separados por comas (CSV) que especifique o definir cada columna de la tabla. Para obtener más información sobre las tablas, consulte [Diseño de tablas](https://docs.aws.amazon.com/redshift/latest/dg/c_designing-tables-best-practices.html) y [CREATE TABLE](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*. 

Elija **Open query in editor** (Abrir consulta en el editor) para ver y editar la instrucción CREATE TABLE antes de ejecutar la consulta para crear la tabla. 

1. Elija ![\[Plus sign icon inside a circle, indicating an add or create action.\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-add.png)**Create** (Crear) y, luego, **Table** (Tabla).

1. Elija un esquema.

1. Ingrese un nombre para la tabla.

1. Elija ![\[Plus sign icon representing an addition or new item action.\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/add-plus.png) **Add field** (Agregar campo) para agregar una columna. 

1. Utilice un archivo CSV como plantilla para la definición de la tabla:

   1. Elija **Load from CSV** (Cargar desde CSV).

   1. Desplácese hasta la ubicación del archivo.

      Si utiliza un archivo CSV, asegúrese de que la primera fila del archivo contenga los encabezados de columna.

   1. Elija el archivo y, a continuación, elija **Open** (Abrir). Confirme que los nombres de columnas y los tipos de datos son lo que desea.

1. Para cada columna, elija la columna y las opciones que desee:
   + Elija un valor para **Encoding** (Codificación).
   + Elija un **Default value** (Valor predeterminado).
   + Active **Automatically increment** (Incrementar automáticamente) si desea que los valores de columna incrementen. A continuación, especifique un valor para **Auto increment seed** (Incrementar automáticamente el valor de inicialización) y **Auto increment step** (Incrementar automáticamente el paso).
   + Active **Not NULL** (Sin valores nulos) si la columna debe contener siempre un valor.
   + Ingrese un valor de **Size** (Tamaño) para la columna.
   + Active **Primary key** (Clave principal) si desea que la columna sea una clave principal.
   + Active **Unique key** (Clave única) si desea que la columna sea una clave única.

1. (Opcional) Elija **Table details** (Detalles de la tabla) y elija cualquiera de las siguientes opciones:
   + Columna y estilo de clave de distribución
   + Columna de clave de ordenación y tipo de ordenación
   + Active **Backup** (Copia de seguridad) para incluir la tabla en instantáneas.
   + Active **Temporary table** (Tabla temporal) para crear la tabla como una tabla temporal.

1. Elija **Open query in editor** (Abrir consulta en el editor) para seguir especificando opciones con objeto de definir la tabla o elija **Create table** (Crear tabla) para crear la tabla.

## Creación de funciones
<a name="query-editor-v2-object-create-function"></a>

Puede usar el editor de consultas v2 para crear funciones en su clúster o grupo de trabajo.

**Para crear una función**

1. Elija ![\[Plus sign icon inside a circle, indicating an add or create action.\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-add.png)**Create** (Crear) y elija **Function** (Función).

1. Para **Type** (Tipo), elija **SQL** o **Python**.

1. Elija un valor para **Schema** (Esquema).

1. Ingrese un valor en **Name** (Nombre) para la función.

1. Ingrese un valor en **Volatility** (Volatilidad) para la función.

1. Elija **Parameters** (Parámetros) por sus tipos de datos según el orden de los parámetros de entrada.

1. En **Returns** (Devoluciones), elija un tipo de datos.

1. Ingrese el código del **programa SQL** o **programa de Python** para la función.

1. Seleccione **Crear**.

Para obtener más información sobre las funciones definidas por el usuario (UDF), consulte [Creación de funciones definidas por el usuario](https://docs.aws.amazon.com/redshift/latest/dg/user-defined-functions.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*. 

# Visualización del historial de consultas y pestañas
<a name="query-editor-v2-history"></a>

Puede ver el historial de consultas con el editor de consultas v2. Solo las consultas que ejecutó con el editor de consultas v2 aparecen en el historial de consultas. Se muestran las dos consultas que se ejecutaron desde una pestaña **Editor** o una pestaña **Notebook** (Bloc de notas). Puede filtrar la lista que se muestra por un periodo de tiempo, por ejemplo `This week`, en el que una semana se define de lunes a domingo. La lista de consultas muestra 25 filas de consultas que coinciden con el filtro a la vez. Elija **Load more** (Cargar más) para ver el siguiente conjunto. Elija una consulta y desde el menú **Actions** (Acciones). Las acciones disponibles dependen de si la consulta elegida se ha guardado. Puede elegir las siguientes operaciones:
+ **View query details** (Ver detalles de la consulta): muestra una página de detalles de la consulta con más información sobre la consulta que se ejecutó.
+ **Open query in a new tab** (Abrir consulta en una pestaña nueva): abre una pestaña del editor nueva y la prepara con la consulta elegida. Si sigue conectado, el clúster o el grupo de trabajo y la base de datos se seleccionan automáticamente. Para ejecutar la consulta, primero confirme que se han elegido el clúster o el grupo de trabajo y la base de datos correctos.
+ **Open source tab** (Pestaña de código abierto): si sigue abierta, navega hasta la pestaña del editor o del bloc de notas que contenía la consulta cuando se ejecutó. Es posible que el contenido del editor o del bloc de notas haya cambiado después de ejecutarse la consulta.
+ **Open saved query** (Abrir consulta guardada): navega hasta la pestaña del editor o del bloc de notas y abre la consulta.

También puede ver el historial de consultas ejecutadas en una pestaña **Editor** o el historial de consultas ejecutadas en una pestaña **Notebook (Bloc de notas)**. Para ver un historial de consultas en una pestaña, elija **Tab history** (Historial de una pestaña). En el historial de pestañas, puede llevar a cabo las operaciones siguientes:
+ **Copy query** (Copiar consulta): copia el contenido SQL de la versión de la consulta en el portapapeles.
+ **Open query in a new tab** (Abrir consulta en una pestaña nueva): abre una pestaña del editor nueva y la prepara con la consulta elegida. Para ejecutar la consulta, debe elegir el clúster o el grupo de trabajo y la base de datos.
+ **View query details** (Ver detalles de la consulta): muestra una página de detalles de la consulta con más información sobre la consulta que se ejecutó.

# Interacción con el SQL generativo de Amazon Q
<a name="query-editor-v2-generative-ai"></a>

**nota**  
El soporte del SQL generativo de Amazon Q solo está disponible en las siguientes Regiones de AWS:  
Región Este de EE. UU. (Norte de Virginia) (us-east-1)
Región EE. UU. Este (Ohio) (us-east-2)
Región Oeste de EE. UU. (Oregón) (us-west-2)
Región Asia-Pacífico (Mumbai) (ap-south-1)
Región Asia-Pacífico (Seúl) (ap-northeast-2)
Región Asia-Pacífico (Singapur) (ap-southeast-1)
Región Asia-Pacífico (Sídney) (ap-southeast-2)
Región Asia-Pacífico (Tokio) (ap-northeast-1)
Región Canadá (Central) (ca-central-1)
Región Europa (Fráncfort) (eu-central-1)
Región Europa (Irlanda) (eu-west-1)
Región Europa (Londres) (eu-west-2)
Región Europa (París) (eu-west-3)
Región América del Sur (São Paulo) (sa-east-1)
Para obtener más información sobre dónde se procesan sus datos, consulte [Cross region inference in Amazon Q Developer](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/cross-region-inference.html) en la *Guía del usuario de Amazon Q Developer*.

Puede interactuar con la funcionalidad del SQL generativo de Amazon Q en el editor de consultas v2 de Amazon Redshift. Se trata de un asistente de codificación que genera instrucciones SQL en función de sus indicaciones y del esquema de la base de datos. Este asistente de codificación está disponible mientras se crea un cuaderno en el editor de consultas v2. El SQL generado es para la base de datos a la que está conectado el bloc de notas.

Cuando interactúe con el SQL generativo de Amazon Q, realice preguntas específicas, repita cuando tenga solicitudes complejas y verifique la precisión de las respuestas. 

Cuando envíe solicitudes de análisis en lenguaje natural, sea lo más específico posible para ayudar al asistente de codificación a entender exactamente lo que necesita. En lugar de preguntar “busca los principales eventos que han vendido más entradas”, proporciona más detalles, por ejemplo “busca nombres o ID de los tres eventos que hayan vendido más entradas en 2008”. Utilice nombres coherentes y específicos de los objetos de la base de datos cuando los conozca. Como los nombres de esquemas, tablas y columnas, tal como se han definido en la base de datos, en lugar de hacer referencia al mismo objeto de manera diferente, cosa que puede confundir al asistente.

Divida las solicitudes complejas en varias instrucciones simples que sean más fáciles de interpretar para el asistente. Haga preguntas de seguimiento de forma iterativa para obtener un análisis más detallado del asistente. Por ejemplo, primero pregunte “¿qué estado tiene más eventos?”. Luego, según la respuesta, pregunte “¿cuál es el evento más popular de este estado?”. 

Revise la consulta SQL generada antes de ejecutarla para garantizar que sea precisa. Si la consulta SQL generada contiene errores o no coincide con su intención, proporcione instrucciones al asistente sobre cómo corregirla en lugar de reformular toda la solicitud. Por ejemplo, si a la consulta le falta una cláusula predicativa sobre el año, pregunte “Indícame eventos del año 2008”.

Envíe el texto de los errores que reciba al ejecutar el SQL generado como peticiones al SQL generativo de Amazon Q. Aprende de estos errores para producir un SQL mejor.

Agregue el esquema a la ruta de búsqueda de SQL para indicar que se debe usar ese esquema. Por ejemplo, agregue el esquema de tickit cuando los datos estén en el esquema de tickit y no en el esquema público.

```
set search_path to '$user', tickit;
```

## Consideraciones a la hora de interactuar con el SQL generativo de Amazon Q
<a name="query-editor-v2-generative-ai-considerations"></a>

Tenga en cuenta lo siguiente cuando trabaje en el panel de chat.
+ El administrador del editor de consultas v2 de su cuenta debe haber activado la función de chat en la página **Configuración del SQL generativo**.
+ Para utilizar el SQL generativo de Amazon Q, necesita un permiso `sqlworkbench:GetQSqlRecommendations` en la política de IAM, además de los otros permisos especificados en la política administrada de AWS del editor de consultas v2. Para obtener más información sobre las políticas administradas por AWS, consulte [Acceso al editor de consultas v2](query-editor-v2-getting-started.md#query-editor-v2-configure).
+ Las preguntas deben escribirse en inglés.
+ Las preguntas deben hacer referencia a la base de datos conectada de su clúster o grupo de trabajo. Para evitar errores de estado vacío, debe haber al menos una tabla y algunos datos en la base de datos.
+ Las preguntas deben hacer referencia a los datos almacenados en la base de datos conectada. No puede hacer referencia a un esquema externo. Para obtener más información sobre los esquemas admitidos, consulte [Crear esquema](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_SCHEMA.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*.
+ Cualquier pregunta que dé como resultado SQL que cambie la base de datos conectada puede generar una advertencia.
+ La tecnología de IA generativa es nueva y puede haber errores (a veces denominados alucinaciones) en las respuestas. Pruebe y revise todo el código para detectar errores y vulnerabilidades antes de usarlo en su entorno o carga de trabajo.
+ Para mejorar las recomendaciones, comparta las consultas SQL ejecutadas por otros usuarios de su cuenta. El administrador de su cuenta puede ejecutar los siguientes comandos SQL para permitir el acceso al historial de consultas de la cuenta.

  ```
  GRANT ROLE SYS:MONITOR to "IAMR:role-name";
  GRANT ROLE SYS:MONITOR to "IAM:user-name";
  GRANT ROLE SYS:MONITOR to "database-username";
  ```

  Para obtener información sobre `SYS:MONITOR`, consulte [Roles definidos por el sistema de Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/r_roles-default.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*.
+ Sus datos están seguros y son privados. Sus datos no se comparten entre cuentas. Sus consultas, datos y esquemas de bases de datos no se utilizan para entrenar un modelo fundacional (FM) de IA generativa. Los datos introducidos se utilizan como indicaciones contextuales para que el FM responda únicamente a sus consultas.

# Uso del SQL generativo
<a name="query-editor-v2-generative-ai-interact"></a>

Después de configurar los permisos correctos, al trabajar con un cuaderno en el editor de consultas v2, puede elegir un icono para iniciar una conversación.

**Interacción con el chat del SQL generativo de Amazon Q para generar SQL**

1. En la pestaña **Editor** del editor de consultas v2, abra un cuaderno.

1. Elija el icono del SQL generativo ![\[Generative SQL panel\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-amazon-q.png) y, a continuación, siga las instrucciones para hacer sus preguntas sobre el SQL generativo del editor de consultas v2 de Amazon Redshift en el panel de chat.

   Se proporcionan preguntas en un campo de peticiones y el SQL generativo de Amazon Q responde con el SQL sugerido. Si surjen errores, aparecerán en el panel de chat.

1. Seleccione **Añadir al cuaderno** para añadir al cuaderno una celda de marcado con su pregunta y una celda SQL con el SQL sugerido.

1. (Opcional) Proporcione feedback sobre el SQL generado eligiendo el icono de feedback útil ![\[Helpful feedback\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-thumbs-up.png) o el icono de feedback no útil ![\[Not helpful feedback\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-thumbs-down.png). Puede clasificar el feedback no útil como `Incorrect tables/columns`, `Incorrect predicates/literals/group bys`, `Incorrect SQL structure` o `Other`. Además, puede proporcionar algún texto en formato libre con el feedback sobre la precisión del SQL.

1. (Opcional) Seleccione **Regenerar SQL** para generar otra respuesta para la misma pregunta. Puede elegir **Regenerar SQL** una vez para la pregunta actual.

1. (Opcional) En el panel de chat del SQL generativo, seleccione el icono ![\[More\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-vmore.png) de **más** y, a continuación, elija **Actualizar base de datos** para actualizar los metadatos que describen la base de datos conectada. Estos metadatos incluyen las definiciones de los esquemas, tablas y columnas de la base de datos.

# Actualización de la configuración del SQL generativo en calidad de administrador
<a name="query-editor-v2-generative-ai-settings"></a>

Un usuario con los permisos de IAM adecuados puede ver y cambiar los parámetros de **Configuración del SQL generativo** para otros usuarios de la misma Cuenta de AWS. Este administrador debe tener el permiso `sqlworkbench:UpdateAccountQSqlSettings` en su política de IAM, además de otros permisos especificados en la política administrada por AWS para el editor de consultas v2. Para obtener más información sobre las políticas administradas por , consulte [Permisos necesarios para usar del editor de consultas v2](redshift-iam-access-control-identity-based.md#redshift-policy-resources.required-permissions.query-editor-v2).

**Para que un administrador active el chat del SQL generativo para todos los usuarios de la cuenta**

1. Elija el icono ![\[Settings\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-cog.png) de **Configuración** para ver un menú de las diferentes pantallas de configuración.

1. A continuación, elija el icono de configuración del SQL generativo ![\[Generative SQL settings\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-amazon-q.png) para mostrar la página **Configuración del SQL generativo de Q**.

1. Seleccione la **configuración de SQL generativo de Q** para activar la capacidad de SQL generativo para los usuarios de la cuenta.

   Tras activar el SQL generativo de Amazon Q, puede ver el número de peticiones que quedan en la asignación. El administrador del editor de consultas v2 puede permitir a los usuarios de la cuenta utilizar el nivel Amazon Q Developer Pro. Para usar el nivel Pro, configure los usuarios con el IAM Identity Center y suscriba a cada usuario al nivel Amazon Q Developer Pro. Para obtener información acerca de cómo configurar el IAM Identity Center con Amazon Redshift, consulte [Conexión de Redshift con AWS IAM Identity Center para una experiencia de inicio de sesión único](redshift-iam-access-control-idp-connect.md). Para obtener información sobre los precios de Amazon Q Developer, consulte los [precios de Amazon Q Developer](https://aws.amazon.com/q/developer/pricing/).

   Al utilizar el nivel gratuito de Amazon Q Developer, el número total de peticiones de todos los usuarios de una Cuenta de AWS está limitado a 1000 en un mes. Al utilizar el nivel Amazon Q Developer Pro, el número total de peticiones que cualquier usuario individual puede enviar está limitado a 1000 en un mes. Puede ver el número de peticiones disponibles en la página de **configuración**. Para obtener información sobre los precios de Amazon Q Developer, consulte los [precios de Amazon Q Developer](https://aws.amazon.com/q/developer/pricing/).

## Contexto personalizado
<a name="query-editor-v2-generative-custom-context"></a>

El administrador del editor de consultas v2 puede especificar un *contexto personalizado* para adaptar el SQL generado al entorno. Un contexto personalizado proporciona información y preferencias de dominio para proporcionar un control detallado sobre la generación de SQL. Se define un contexto personalizado en un archivo JSON que puede cargar el administrador del editor de consultas v2 en el SQL generativo de Amazon Q.

Las claves JSON que se utilizan para personalizar el SQL generado para un almacenamiento de datos son las siguientes.

Todas las referencias de las tablas deben seguir la notación de tres partes `database.schema.table`.

**Recursos**  
Un recurso especifica el ámbito o la parte de un activo de datos al que se aplica el contexto personalizado.

**ResourceId**  
Especifica un identificador único del recurso. Para un clúster de Amazon Redshift, especifique el `cluster id`. Para un grupo de trabajo de Redshift sin servidor, especifique el `workgroup name`.

**ResourceType**  
Valor válido: `REDSHIFT_WAREHOUSE`.

**TablesToInclude**  
Especifica un conjunto de tablas que se tienen en cuenta para la generación de SQL. Este campo es fundamental si se quiere limitar el alcance de las consultas SQL a un subconjunto definido de tablas disponibles. Puede ayudar a optimizar el proceso de generación al reducir las referencias de tablas innecesarias. Puede vincular este campo con `TablesToExclude` para tener un control más preciso sobre la generación de consultas.

**TablesToExclude**  
Especifica el conjunto de tablas que se excluyen de la generación de SQL. Úselo cuando determinadas tablas sean irrelevantes o no deban tenerse en cuenta en el proceso de generación de consultas. 

**TableAnnotations**  
Proporciona metadatos o información complementaria sobre las tablas en uso. Estas anotaciones pueden incluir descripciones de tablas, notas de uso o cualquier atributo adicional que ayude al SQL generativo de Amazon Q a comprender mejor el contexto o la estructura de la tabla. Esto es valioso para mejorar la precisión de la generación de SQL al agregar claridad a las definiciones de las tablas.

**ColumnsToInclude**  
Define qué columnas de las tablas especificadas se incluyen al generar consultas SQL. Este campo ayuda al SQL generativo de Amazon Q a centrarse en las columnas relevantes y mejora el rendimiento al reducir el alcance de la recuperación de datos. Garantiza que el SQL generativo de Amazon Q solo extraiga los datos necesarios para el contexto de consulta dado.

**ColumnsToExclude**  
Especifica las columnas que se omiten en la generación de SQL. Esto se puede utilizar cuando determinadas columnas contienen datos irrelevantes o redundantes que el SQL generativo de Amazon Q no debería tener en cuenta. Al administrar la inclusión y la exclusión de columnas, puede perfeccionar los resultados y mantener el control sobre los datos recuperados.

**ColumnAnnotations**  
De forma similar a `TableAnnotations`, este campo proporciona metadatos o anotaciones específicos a columnas individuales. Estas anotaciones pueden ofrecer información sobre las definiciones de las columnas o instrucciones especiales de manejo. Esta información es útil para guiar el proceso de generación de SQL y garantizar que las columnas se utilicen de forma adecuada en las consultas.

**CuratedQueries**  
Un conjunto de ejemplos de preguntas y respuestas predefinidos, en los que la pregunta está escrita en lenguaje natural (NLQ) y la respuesta es la consulta SQL correspondiente. Estos ejemplos ayudan al SQL generativo de Amazon Q a comprender los tipos de consultas que se espera que genere. Sirven como puntos de referencia para mejorar la precisión y la relevancia de los resultados de SQL generativo de Amazon Q.

**CustomDocuments**  
Datos o sugerencias adicionales proporcionados al SQL generativo de Amazon Q, como definiciones, conocimientos específicos del dominio o explicaciones. Por ejemplo, si la unidad de negocio utiliza una forma única de calcular un valor, por ejemplo, “en las ventas totales de la división de fabricación es precio \$1 ingresos”, se puede documentar aquí. Estos documentos mejoran la capacidad del SQL generativo de Amazon Q para interpretar las entradas de lenguaje natural al proporcionar un contexto adicional.

**AdditionalTables**  
Especifica las tablas adicionales que se deben tener en cuenta para la generación de SQL, pero que no forman parte de los datos almacenados en el almacenamiento de datos. Esto permite que el SQL generativo de Amazon Q integre orígenes de datos externos en su lógica de generación de SQL, lo que amplía su capacidad para gestionar entornos de datos complejos.

**AppendToPrompt**  
Se proporcionaron instrucciones o directrices adicionales al SQL generativo de Amazon Q para guiar el proceso de generación de SQL. Esto puede incluir directivas específicas sobre cómo estructurar la consulta, preferencias para determinadas construcciones de SQL o cualquier otra instrucción de alto nivel que mejore la calidad del resultado del SQL generativo de Amazon Q.

El siguiente ejemplo de contexto personalizado muestra el formato del archivo JSON y define lo siguiente:
+ Define un contexto personalizado para el almacenamiento de datos de Amazon Redshift para el clúster `mycluster`.
+ Define tablas y columnas específicas para incluirlas y excluirlas para ayudar a optimizar el proceso de generación de SQL.
+ Define las anotaciones para las tablas y columnas que se van a incluir.
+ Define consultas seleccionadas de ejemplo para que las utilice el SQL generativo de Amazon Q.
+ Define los documentos y las barreras de protección personalizados que se utilizarán al generar SQL.
+ Define el DDL para las tablas adicionales que se utilizarán al generar SQL.

```
{
    "resources": [
        {
            "ResourceId": "mycluster",
            "ResourceType": "REDSHIFT_WAREHOUSE",
            "TablesToInclude": [
                "database.schema.table1",
                "database.schema.table2"
            ],
            "TablesToExclude": [
                "database.schema.table3",
                "database.schema.table4"
            ],
            "ColumnsToInclude": {
                "database.schema.table1": [
                    "col1",
                    "col2"
                ],
                "database.schema.table2": [
                    "col1",
                    "col2"
                ]
            },
            "ColumnsToExclude": {
                "database.schema.table5": [
                    "col1",
                    "col2"
                ],
                "database.schema.table6": [
                    "col1",
                    "col2"
                ]
            },
            "TableAnnotations": {
                "database.schema.table1": "table1 refers to Q3 sales",
                "database.schema.table2": "table2 refers to Q4 sales"
            },
            "ColumnAnnotations": {
                "database.schema.table1": {
                    "col1": "col1 refers to Q3 sale total",
                    "col2": "col2 refers to sale location"
                },
                "database.schema.table2": {
                    "col1": "col2 refers to Q4 sale total",
                    "col2": "col2 refers to sale location"
                }
            },
            "CuratedQueries": [
                {
                    "Question": "what is the sales data for Q3",
                    "Answer": "SELECT * FROM table1"
                },
                {
                    "Question": "what is the sales data for Q4",
                    "Answer": "SELECT * FROM table2"
                }
            ],
            "CustomDocuments": [
                "in manufacturing division total sales is price * revenue",
                "in research division total sales is price * revenue"
            ],
            "AdditionalTables": {
                "database.schema.table8": "create table database.schema.table8(col1 int)",
                "database.schema.table9": "create table database.schema.table9(col1 int)"
            },
            "AppendToPrompt": "Apply these guardrails: Queries should never return the secretId field of a user."
        }
    ]
}
```

# Tutorial: uso de la capacidad del SQL generativo de Amazon Q con los datos de TICKIT
<a name="query-editor-v2-generative-ai-example"></a>

Para crear preguntas eficaces para generar SQL, debe conocer el esquema de su base de datos y sus datos. Los datos TICKIT constan de siete tablas: dos de hechos y cinco de dimensiones. Los datos de ejemplo contienen registros sobre las ventas a los asistentes a eventos de entretenimiento que tuvieron lugar en 2008. Para obtener más información sobre el esquema de datos TICKIT, consulte [Bases de datos de muestra](https://docs.aws.amazon.com/redshift/latest/dg/c_sampledb.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*. Puede cargar los datos TICKIT en una base de datos mediante varios métodos tanto en la consola de Amazon Redshift como en el editor de consultas v2. El editor de consultas v2 proporciona un método para cargar los datos TICKIT en la base de datos `sample_data_dev`. Para obtener más información, consulte [Descarga de datos en una base de datos](query-editor-v2-loading.md). El editor de consultas v2 también proporciona preguntas de ejemplo para los datos TICKIT. El siguiente escenario describe una conversación con SQL generativo para generar SQL sobre los datos TICKIT de ejemplo. En este escenario, los datos TICKIT de ejemplo ya están creados en una base de datos `dev` de un clúster de Amazon Redshift. 

**nota**  
Este ejemplo sirve para ilustrar una conversación. Es posible que las respuestas del SQL generativo no coincidan con los resultados si se utilizan las mismas preguntas.

**Ejemplo de conversación con el SQL generativo de Amazon Q**

1. En el **Editor**, conéctese a un clúster o grupo de trabajo que contenga los datos TICKIT de ejemplo.

1. Cree un cuaderno vacío y elija el icono de SQL generativo ![\[Generative SQL\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-amazon-q.png) para abrir el panel de chat.

1. Introduzca la siguiente pregunta para generar SQL y comprobar el número de registros de la tabla `VENUE`:

   ```
   How many venues are there?
   ```

   ```
   SELECT
     COUNT(*) AS num_venues
   FROM
     tickit.venue
   ```

   Seleccione **Añadir al cuaderno** para añadir dos celdas al cuaderno abierto. Una celda de marcado ¿Cuántos eventos hay? y otra que contenga el SQL generado.

   En la celda SQL, elija **Ejecutar** para recibir el resultado:

   ```
   count
   ------
   202
   ```

1. Para solicitar otra versión del SQL, elija **Regenerar SQL** y recibirá la siguiente respuesta:

   ```
   SELECT
     venuestate,
     COUNT(*) AS num_venues
   FROM
     tickit.venue
   GROUP BY
     venuestate
   ```

   Seleccione **Añadir al cuaderno** para añadir más celdas al cuaderno abierto. Una celda de marcado ¿Cuántos eventos hay? y otra que contenga el SQL generado.

   En la celda SQL, elija **Ejecutar** para recibir el resultado en forma de lista de número de evento por estado:

   ```
   venuestate num_venues
   ----------------------
   MA         4	
   OH         8	
   MI         5	
   ...
   ```

1. El asistente del SQL generativo puede hacer suposiciones sobre lo que está preguntando. Aunque no haya widgets en la base de datos, puede seguir preguntando. En este caso, muestra un mensaje que indica que no ha podido generar el SQL.

   ```
   How many widgets are there?
   ```

   ```
   I was not able to generate any SQL
   ```

1. A medida que obtenga más información sobre la base de datos, podrá hacer preguntas más específicas para generar el SQL. Por ejemplo, sabe que la base de datos contiene datos de ventas de varios meses de 2008. Introduzca la siguiente pregunta para generar SQL y saber el número de ventas en noviembre de 2008:

   ```
   How many sales were there in November 2008?
   ```

   ```
   SELECT
     COUNT(*) AS num_sales
   FROM
     tickit.sales s
     JOIN tickit.date d ON s.dateid = d.dateid
   WHERE
     d.month = 'November'
     AND d.year = 2008
   ```

   Seleccione **Añadir al cuaderno** para añadir dos celdas al cuaderno abierto. Una celda de marcado ¿Cuántas ventas hubo en noviembre de 2008? y otra que contenga el SQL generado.

   En la celda SQL, elija **Ejecutar** para recibir el resultado:

   ```
   num_sales
   -----
   0
   ```

   Se da cuenta de que este no es el resultado que esperaba.

1. Observa que el predicado `date.month='November'` espera que el mes de la tabla DATE se represente con una abreviatura del nombre del mes. Cambia el predicado por `d.month='NOV'` y vuelve a ejecutar el SQL.

   ```
   SELECT
     COUNT(*)
   FROM
     sales
     JOIN date ON sales.dateid = date.dateid
   WHERE
     date.month = 'NOV'
     AND date.year = 2008
   ```

   En la celda SQL, elija **Ejecutar** para obtener nuevos resultados.

   ```
   count
   -----
   14261
   ```

1. Si hace una pregunta que intenta cambiar la base de datos conectada, aparecerá un mensaje de advertencia junto con cualquier SQL recomendado. Introduzca la siguiente pregunta para generar SQL e insertar datos en una tabla:

   ```
   Insert 1 into the venue table.
   ```

   ```
   INSERT
   ,
   UPDATE
     OR delete data
   FROM
     the database AS that could potentially change the data.Please provide a query that ONLY selects data
   ```

   ```
   I was not able to generate the correct SQL code. I generated SQL, but you'll have to edit it to work with your database.
   ```

   Si selecciona **Añadir al cuaderno** para añadir dos celdas al cuaderno abierto y ejecutar el SQL, el SQL fallará.

   ```
   ERROR: syntax error at or near "," Position: 132 [ErrorId: 1-6546764a-011df2691778846219ce6ec2]
   ```

Este escenario solo ilustra algunas formas básicas de interactuar con el SQL generativo de Amazon Q. Puede experimentar aún más con esta tecnología de IA generativa que le ayudará a empezar a crear SQL para realizar consultas a su base de datos.

# Descarga de datos en una base de datos
<a name="query-editor-v2-loading"></a>

Puede utilizar el editor de consultas v2 para cargar datos en una base de datos en un clúster o grupo de trabajo de Amazon Redshift. En esta sección se explica cómo cargar datos de muestra, datos de S3 y datos de la configuración y el flujo de trabajo de un archivo local.

## Datos de ejemplo
<a name="query-editor-v2-loading-sample-data"></a>

El editor de consultas v2 incluye datos y cuadernos de muestra disponibles para cargarlos en una base de datos de muestra y en el esquema correspondiente. 

Para cargar datos de ejemplo, elija el icono ![\[External\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/external.png) asociado a los datos de ejemplo que desea cargar. A continuación, el editor de consultas v2 carga los datos en un esquema en la base de datos `sample_data_dev` y crea una carpeta de blocs de notas guardados. 

Están disponibles los siguientes conjuntos de datos de ejemplo.

**tickit**  
En la mayoría de los ejemplos de la documentación de Amazon Redshift, se usan datos de ejemplo denominados `tickit`. Estos datos constan de siete tablas: dos de hechos y cinco de dimensiones. Al cargar estos datos, el esquema `tickit` se actualiza con datos de ejemplo. Para obtener más información sobre los datos `tickit`, consulte [Bases de datos de muestra](https://docs.aws.amazon.com/redshift/latest/dg/c_sampledb.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*. 

**tpch**  
Estos datos se utilizan para un punto de referencia de apoyo para la toma de decisiones. Al cargar estos datos, el esquema `tpch` se actualiza con datos de ejemplo. Para obtener más información acerca de los datos de `tpch`, ‎consulte [TPC-H](http://www.tpc.org/tpch/). 

**tpcds**  
Estos datos se utilizan para un punto de referencia de apoyo para la toma de decisiones. Al cargar estos datos, el esquema `tpcds` se actualiza con datos de ejemplo. Para obtener más información acerca del tipo de datos de `tpcds`, consulte [TPC-DS](http://www.tpc.org/tpcds/). 

# Carga de datos desde Amazon S3
<a name="query-editor-v2-loading-data"></a>

Puede cargar datos de Amazon S3 en una tabla existente o nueva.

**Para cargar datos en una tabla existente**

El editor de consultas v2 utiliza el comando COPY para cargar datos desde Amazon S3. El comando COPY generado y utilizado en el asistente de carga de datos del editor de consultas v2 admite muchos de los parámetros disponibles para la sintaxis del comando COPY para copiar desde Amazon S3. Para obtener información sobre el comando COPY y sus opciones utilizadas para cargar datos desde Amazon S3, consulte [COPY desde Amazon Simple Storage Service](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-source-s3.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*. 

1. Confirme que la tabla ya esté creada en la base de datos en la que desea cargar datos. 

1. Confirme que está conectado a la base de datos de destino en el panel de vista de árbol del editor de consultas v2 antes de continuar. Puede crear una conexión con el menú de contexto (botón derecho) al clúster o grupo de trabajo en el que se cargarán los datos.

   Elija ![\[Load\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-upload.png)**Load data** (Cargar datos).

1. En **Origen de datos**, elija **Cargar desde bucket de S3**.

1. En **S3 URIs** (URI de S3), elija **Browse S3** (Navegar en S3) para buscar el bucket de Amazon S3 que contiene los datos que se van a cargar. 

1. Si el bucket de Amazon S3 especificado no está en la misma Región de AWS que la tabla de destino, elija la **S3 file location** (Ubicación del archivo de S3) para la Región de AWS donde se encuentran los datos.

1. Elija **This file is a manifest file** (Este archivo es un archivo de manifiesto) si el archivo de Amazon S3 es en realidad un manifiesto que contiene varios URI de bucket de Amazon S3.

1. Elija el **File format** (Formato de archivo) para el archivo que se va a cargar. Los formatos de datos admitidos son CSV, JSON, DELIMITER, FIXEDWIDTH, SHAPEFILE, AVRO, PARQUET y ORC. En función del formato de archivo especificado, puede elegir las **File options** (Opciones de archivo) correspondientes. También puede seleccionar **Data is encrypted** (Los datos están cifrados) si los datos están cifrados e ingresar el nombre de recurso de Amazon (ARN) de la clave KMS utilizada para cifrar los datos.

   Si elige CSV o DELIMITER, también puede seleccionar el **Carácter delimitador** y si desea **Ignorar filas de encabezado** en caso de que el número especificado de filas sean en realidad nombres de columnas y no datos para cargar.

1. Elija un método de compresión para comprimir el archivo. El valor predeterminado es no compresión.

1. (Opcional) En **Advanced settings** (Configuración avanzada) se admiten varios **Data conversion parameters** (Parámetros de conversión de datos) y **Load operations** (Operaciones de carga). Ingrese esta información según sea necesario para su archivo.

   Para obtener más información sobre los parámetros de conversión de datos y carga de datos, consulte [Parámetros de conversión de datos](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-conversion.html) y [Operaciones de carga de datos](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-load.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*.

1. Elija **Siguiente**.

1. Seleccione **Cargar tabla existente**.

1. Confirme o elija la ubicación de la **Tabla de destino** incluido el nombre de **Clúster o grupo de trabajo**, la **Base de datos**, el **Esquema** y la **Tabla** donde se cargan los datos.

1. Elija un **IAM role** (Rol de IAM) que tenga los permisos necesarios para cargar datos desde Amazon S3.

1. (Opcional) Elija los nombres de las columnas para ingresarlos en el **Column mapping** (Mapeo de columnas) para mapear las columnas en el orden del archivo de datos de entrada.

1. Elija **Load data** (Cargar datos) para iniciar la carga de datos.

   Cuando se completa la carga, el editor de consultas se muestra con el comando COPY generado que se utilizó para cargar los datos. Se muestra el **Result** (Resultado) de COPY. Si tiene éxito, podrá utilizar SQL para seleccionar datos de la tabla cargada. Si hay un error, consulte la vista de sistema STL\$1LOAD\$1ERRORS para obtener más detalles. Para obtener más información sobre los errores del comando COPY, consulte [STL\$1LOAD\$1ERRORS](https://docs.aws.amazon.com/redshift/latest/dg/r_STL_LOAD_ERRORS.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*.

Al cargar datos en una tabla nueva, el editor de consultas v2 crea primero la tabla en la base de datos y, después, carga los datos como acciones independientes en el mismo flujo de trabajo.

**Para cargar datos en una tabla nueva**

El editor de consultas v2 utiliza el comando COPY para cargar datos desde Amazon S3. El comando COPY generado y utilizado en el asistente de carga de datos del editor de consultas v2 admite muchos de los parámetros disponibles para la sintaxis del comando COPY para copiar desde Amazon S3. Para obtener información sobre el comando COPY y sus opciones utilizadas para cargar datos desde Amazon S3, consulte [COPY desde Amazon Simple Storage Service](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-source-s3.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*. 

1. Confirme que está conectado a la base de datos de destino en el panel de vista de árbol del editor de consultas v2 antes de continuar. Puede crear una conexión con el menú de contexto (botón derecho) al clúster o grupo de trabajo en el que se cargarán los datos.

   Elija ![\[Load\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-upload.png)**Load data** (Cargar datos).

1. En **Origen de datos**, elija **Cargar desde bucket de S3**.

1. En **S3 URIs** (URI de S3), elija **Browse S3** (Navegar en S3) para buscar el bucket de Amazon S3 que contiene los datos que se van a cargar. 

1. Si el bucket de Amazon S3 especificado no está en la misma Región de AWS que la tabla de destino, elija la **S3 file location** (Ubicación del archivo de S3) para la Región de AWS donde se encuentran los datos.

1. Elija **This file is a manifest file** (Este archivo es un archivo de manifiesto) si el archivo de Amazon S3 es en realidad un manifiesto que contiene varios URI de bucket de Amazon S3.

1. Elija el **File format** (Formato de archivo) para el archivo que se va a cargar. Los formatos de datos admitidos son CSV, JSON, DELIMITER, FIXEDWIDTH, SHAPEFILE, AVRO, PARQUET y ORC. En función del formato de archivo especificado, puede elegir las **File options** (Opciones de archivo) correspondientes. También puede seleccionar **Data is encrypted** (Los datos están cifrados) si los datos están cifrados e ingresar el nombre de recurso de Amazon (ARN) de la clave KMS utilizada para cifrar los datos.

   Si elige CSV o DELIMITER, también puede seleccionar el **Carácter delimitador** y si desea **Ignorar filas de encabezado** en caso de que el número especificado de filas sean en realidad nombres de columnas y no datos para cargar.

1. Elija un método de compresión para comprimir el archivo. El valor predeterminado es no compresión.

1. (Opcional) En **Advanced settings** (Configuración avanzada) se admiten varios **Data conversion parameters** (Parámetros de conversión de datos) y **Load operations** (Operaciones de carga). Ingrese esta información según sea necesario para su archivo.

   Para obtener más información sobre los parámetros de conversión de datos y carga de datos, consulte [Parámetros de conversión de datos](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-conversion.html) y [Operaciones de carga de datos](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-load.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*.

1. Elija **Siguiente**.

1. Seleccione **Cargar nueva tabla**.

   Las columnas de la tabla se deducen de los datos de entrada. Puede modificar la definición del esquema de la tabla si agrega columnas y detalles de tabla. Para volver al esquema de tablas inferidas del editor de consultas v2, elija **Restaurar a los valores predeterminados**.

1. Confirme o elija la ubicación de la **Tabla de destino** incluido el **Clúster o grupo de trabajo**, la **Base de datos** y el **Esquema** donde se cargan los datos. Introduzca el nombre de la **Tabla** que se va a crear.

1. Elija un **IAM role** (Rol de IAM) que tenga los permisos necesarios para cargar datos desde Amazon S3.

1. Elija **Crear tabla** para crear la tabla con la definición mostrada.

   Se muestra un resumen de la definición de la tabla. La tabla se crea en la base de datos. Para eliminar la tabla más adelante, ejecute el comando SQL DROP TABLE. Para obtener más información, consulte [DROP TABLE](https://docs.aws.amazon.com/redshift/latest/dg/r_DROP_TABLE) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*.

1. Elija **Load data** (Cargar datos) para iniciar la carga de datos.

   Cuando se completa la carga, el editor de consultas se muestra con el comando COPY generado que se utilizó para cargar los datos. Se muestra el **Result** (Resultado) de COPY. Si tiene éxito, podrá utilizar SQL para seleccionar datos de la tabla cargada. Si hay un error, consulte la vista de sistema STL\$1LOAD\$1ERRORS para obtener más detalles. Para obtener más información sobre los errores del comando COPY, consulte [STL\$1LOAD\$1ERRORS](https://docs.aws.amazon.com/redshift/latest/dg/r_STL_LOAD_ERRORS.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*.

# Configuración y flujo de trabajo de la carga de datos desde un archivo local
<a name="query-editor-v2-loading-data-local"></a>

Puede cargar datos de un archivo local en una tabla existente o nueva.

## Configuración del administrador para cargar datos desde un archivo local
<a name="query-editor-v2-loading-data-local-setup"></a>

El administrador del editor de consultas v2 debe especificar el bucket común de Amazon S3 en la ventana de **Account settings** (Configuración de la cuenta). Los usuarios de la cuenta deben estar configurados con los permisos adecuados.
+ Permisos de IAM requeridos: los usuarios de carga desde archivo local deben tener los permisos `s3:ListBucket`, `s3:GetBucketLocation`, `s3:putObject`, `s3:getObject` y `s3:deleteObject`. El *optional-prefix* se puede especificar para limitar el uso de este bucket relacionado con el editor de consultas v2 a los objetos con este prefijo. Puede utilizar esta opción cuando utilice este mismo bucket de Amazon S3 para usos distintos del editor de consultas v2. Para obtener más información sobre los buckets y los prefijos, consulte [Administración del acceso de los usuarios a carpetas específicas](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html#example-bucket-policies-folders) en la *Guía del usuario de Amazon Simple Storage Service*. Para asegurarse de que no se permita el acceso a los datos entre usuarios, recomendamos que el administrador del editor de consultas v2 utilice una política de bucket de Amazon S3 para restringir el acceso a los objetos en función de `aws:userid`. El siguiente ejemplo permite los permisos de Amazon S3 a un *<staging-bucket-name>* con acceso de lectura o escritura solo a los objetos de Amazon S3 con `aws:userid` como prefijo.

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "s3:ListBucket",
                  "s3:GetBucketLocation"
              ],
              "Resource": [
                  "arn:aws:s3:::<staging-bucket-name>"
              ]
          },
          {
              "Effect": "Allow",
              "Action": [
                  "s3:PutObject",
                  "s3:GetObject",
                  "s3:DeleteObject"
              ],
              "Resource": [
                  "arn:aws:s3:::<staging-bucket-name>[/<optional-prefix>]/${aws:userid}/*"
              ]
          }
      ]
  }
  ```

------
+ Separación de datos: recomendamos que los usuarios no tengan acceso a los datos de los demás (ni siquiera de forma breve). La carga desde un archivo local utiliza el bucket de Amazon S3 transitorio configurado por el administrador del editor de consultas v2. Configure la política de bucket para el bucket transitorio a fin de proporcionar una separación de datos entre los usuarios. El siguiente ejemplo muestra una política de bucket que separa los datos entre los usuarios del *<staging-bucket-name>*.

------
#### [ JSON ]

****  

  ```
  {
   "Version":"2012-10-17",		 	 	 
      "Statement": [
          {"Sid": "userIdPolicy",
              "Effect": "Deny",
              "Principal": "*",
              "Action": ["s3:PutObject",
                         "s3:GetObject",
                         "s3:DeleteObject"],
              "NotResource": [
                  "arn:aws:s3:::<staging-bucket-name>[/<optional-prefix>]/${aws:userid}/*"
              ]
           }
      ]
  }
  ```

------

## Carga de datos desde un archivo local
<a name="query-editor-v2-loading-data-local-procedure"></a>

**Para cargar datos de archivo local en una tabla existente**

El administrador del editor de consultas v2 debe especificar el bucket de Amazon S3 común en la ventana **Configuración de la cuenta**. El editor de consultas v2 carga automáticamente el archivo local en un bucket de Amazon S3 común utilizado por la cuenta y, a continuación, utiliza el comando COPY para cargar los datos. El comando COPY generado y ejecutado por la ventana de archivo local de carga del editor de consultas v2 admite mucho parámetros disponibles para la sintaxis del comando COPY para copiar desde Amazon S3. Para obtener información sobre el comando COPY y sus opciones utilizadas para cargar datos desde Amazon S3, consulte [COPY desde Amazon S3](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-source-s3.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*. 

1. Confirme que la tabla ya esté creada en la base de datos en la que desea cargar datos. 

1. Confirme que está conectado a la base de datos de destino en el panel de vista de árbol del editor de consultas v2. Puede crear una conexión con el menú de contexto (botón derecho) al clúster o grupo de trabajo en el que se cargarán los datos. 

1. Elija ![\[Load\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-upload.png)**Load data** (Cargar datos).

1. Para **Data source** (Origen de datos), elija **Load from local file** (Cargar desde archivo local).

1. Elija **Examinar** para encontrar el archivo que contiene los datos para **Cargar el archivo CSV**. De forma predeterminada, se muestran los archivos con la extensión `.csv`, `.avro`, `.parquet` y `.orc`, pero puede elegir otros tipos de archivo. El tamaño de archivo máximo es de 100 MB.

1. Elija el **File format** (Formato de archivo) para el archivo que se va a cargar. Los formatos de datos admitidos son CSV, JSON, DELIMITER, FIXEDWIDTH, SHAPEFILE, AVRO, PARQUET y ORC. En función del formato de archivo especificado, puede elegir las **File options** (Opciones de archivo) correspondientes. También puede seleccionar **Data is encrypted** (Los datos están cifrados) si los datos están cifrados e ingresar el nombre de recurso de Amazon (ARN) de la clave KMS utilizada para cifrar los datos.

   Si elige CSV o DELIMITER, también puede seleccionar el **Carácter delimitador** y si desea **Ignorar filas del encabezado** en caso de que el número especificado de filas sean en realidad nombres de columnas y no datos para cargar.

1. (Opcional) En **Advanced settings** (Configuración avanzada) se admiten varios **Data conversion parameters** (Parámetros de conversión de datos) y **Load operations** (Operaciones de carga). Ingrese esta información según sea necesario para su archivo.

   Para obtener más información sobre los parámetros de conversión de datos y carga de datos, consulte [Parámetros de conversión de datos](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-conversion.html) y [Operaciones de carga de datos](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-load.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*.

1. Elija **Siguiente**.

1. Seleccione **Cargar tabla existente**.

1. Confirme o elija la ubicación de la **Tabla de destino** incluido el nombre de **Clúster o grupo de trabajo**, la **Base de datos**, el **Esquema** y la **Tabla** donde se cargan los datos.

1. (Opcional) Puede elegir los nombres de las columnas para ingresar en el **Column mapping** (Mapeo de columnas) para mapear las columnas en el orden del archivo de datos de entrada.

1. Elija **Load data** (Cargar datos) para iniciar la carga de datos.

   Cuando se complete la carga, aparecerá un mensaje si la carga se ha realizado correctamente o no. Si tiene éxito, podrá utilizar SQL para seleccionar datos de la tabla cargada. Si hay un error, consulte la vista de sistema STL\$1LOAD\$1ERRORS para obtener más detalles. Para obtener más información sobre los errores del comando COPY, consulte [STL\$1LOAD\$1ERRORS](https://docs.aws.amazon.com/redshift/latest/dg/r_STL_LOAD_ERRORS.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*.

   La plantilla de comandos COPY que se usó para cargar datos aparece en el **Query history** (Historial de consultas). Esta plantilla de comandos COPY muestra algunos de los parámetros utilizados, pero no se puede ejecutar directamente en una pestaña del editor. Para obtener más información acerca del historial de consultas, consulte [Visualización del historial de consultas y pestañas](query-editor-v2-history.md).

Al cargar datos en una tabla nueva, el editor de consultas v2 crea primero la tabla en la base de datos y, después, carga los datos como acciones independientes en el mismo flujo de trabajo.

**Para cargar datos de archivo local en una tabla nueva**

El administrador del editor de consultas v2 debe especificar el bucket común de Amazon S3 en la ventana de **Account settings** (Configuración de la cuenta). El archivo local se carga automáticamente en un bucket de Amazon S3 común utilizado por la cuenta y, a continuación, el editor de consultas v2 utiliza el comando COPY para cargar datos. El comando COPY generado y ejecutado por la ventana de archivo local de carga del editor de consultas v2 admite mucho parámetros disponibles para la sintaxis del comando COPY para copiar desde Amazon S3. Para obtener información sobre el comando COPY y sus opciones utilizadas para cargar datos desde Amazon S3, consulte [COPY desde Amazon S3](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-source-s3.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*. 

1. Confirme que está conectado a la base de datos de destino en el panel de vista de árbol del editor de consultas v2. Puede crear una conexión con el menú de contexto (botón derecho) al clúster o grupo de trabajo en el que se cargarán los datos. 

1. Elija ![\[Load\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-upload.png)**Load data** (Cargar datos).

1. Para **Data source** (Origen de datos), elija **Load from local file** (Cargar desde archivo local).

1. Elija **Examinar** para encontrar el archivo que contiene los datos para **Cargar el archivo CSV**. De forma predeterminada, se muestran los archivos con la extensión `.csv`, `.avro`, `.parquet` y `.orc`, pero puede elegir otros tipos de archivo. El tamaño de archivo máximo es de 100 MB.

1. Elija el **File format** (Formato de archivo) para el archivo que se va a cargar. Los formatos de datos admitidos son CSV, JSON, DELIMITER, FIXEDWIDTH, SHAPEFILE, AVRO, PARQUET y ORC. En función del formato de archivo especificado, puede elegir las **File options** (Opciones de archivo) correspondientes. También puede seleccionar **Data is encrypted** (Los datos están cifrados) si los datos están cifrados e ingresar el nombre de recurso de Amazon (ARN) de la clave KMS utilizada para cifrar los datos.

   Si elige CSV o DELIMITER, también puede seleccionar el **Carácter delimitador** y si desea **Ignorar filas del encabezado** en caso de que el número especificado de filas sean en realidad nombres de columnas y no datos para cargar.

1. (Opcional) En **Advanced settings** (Configuración avanzada) se admiten varios **Data conversion parameters** (Parámetros de conversión de datos) y **Load operations** (Operaciones de carga). Ingrese esta información según sea necesario para su archivo.

   Para obtener más información sobre los parámetros de conversión de datos y carga de datos, consulte [Parámetros de conversión de datos](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-conversion.html) y [Operaciones de carga de datos](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-load.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*.

1. Elija **Siguiente**.

1. Seleccione **Cargar nueva tabla**.

1. Confirme o elija la ubicación de la **Tabla de destino** incluido el **Clúster o grupo de trabajo**, la **Base de datos** y el **Esquema** donde se cargan los datos. Introduzca el nombre de la **Tabla** que se va a crear.

1. Elija **Crear tabla** para crear la tabla con la definición mostrada.

   Se muestra un resumen de la definición de la tabla. La tabla se crea en la base de datos. Para eliminar la tabla más adelante, ejecute el comando SQL DROP TABLE. Para obtener más información, consulte [DROP TABLE](https://docs.aws.amazon.com/redshift/latest/dg/r_DROP_TABLE) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*.

1. Elija **Load data** (Cargar datos) para iniciar la carga de datos.

   Cuando se complete la carga, aparecerá un mensaje que indica si la carga se realizó correctamente o no. Si tiene éxito, podrá utilizar SQL para seleccionar datos de la tabla cargada. Si hay un error, consulte la vista de sistema STL\$1LOAD\$1ERRORS para obtener más detalles. Para obtener más información sobre los errores del comando COPY, consulte [STL\$1LOAD\$1ERRORS](https://docs.aws.amazon.com/redshift/latest/dg/r_STL_LOAD_ERRORS.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*.

   La plantilla de comandos COPY que se usó para cargar datos aparece en el **Query history** (Historial de consultas). Esta plantilla de comandos COPY muestra algunos de los parámetros utilizados, pero no se puede ejecutar directamente en una pestaña del editor. Para obtener más información acerca del historial de consultas, consulte [Visualización del historial de consultas y pestañas](query-editor-v2-history.md).

# Creación de consultas con Amazon Redshift
<a name="query-editor-v2-query-run"></a>

Puede ingresar una consulta en el editor o seleccionar una consulta guardada en la lista de **Queries** (Consultas) y elegir **Run** (Ejecutar).

De manera predeterminada, **Limit 100** (Límite de 100) está configurado para limitar los resultados a 100 filas. Puede desactivar esta opción para devolver un conjunto de resultados más grande. Si desactiva esta opción, puede incluir la opción LIMIT en la instrucción SQL si desea evitar conjuntos de resultados muy grandes. Para obtener más información, consulte [Cláusula ORDER BY](https://docs.aws.amazon.com/redshift/latest/dg/r_ORDER_BY_clause.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift.*.

Para mostrar un plan de consultas en el área de resultados, active **Explain** (Explicar). Active **Explain graph** (Explicar gráfico) para que en los resultados también se muestre una representación gráfica del plan de explicación.

Para guardar una consulta en la carpeta **Queries** (Consultas), elija **Save** (Guardar).

Si una consulta es correcta, aparece un mensaje de éxito. Si la consulta devuelve información, los resultados se muestran en la sección **Results** (Resultados). Si el número de resultados excede el área de visualización, los números aparecen en la parte superior del área de resultados. Puede elegir los números para mostrar páginas sucesivas de resultados.

Puede filtrar y ordenar **Result** (Resultado) para cada columna. Para ingresar criterios de filtro en el encabezado de la columna de resultados, desplácese sobre la columna para ver un menú (![\[Filter menu\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/menu.png)) donde puede ingresar criterios para filtrar la columna.

Si la consulta contiene un error, el editor de consultas v2 muestra un mensaje de error en el área de resultados. El mensaje proporciona información sobre cómo corregir la consulta.

Puede exportar o copiar los resultados de la consulta mediante el menú contextual (clic derecho) en el área de resultados de la siguiente manera:
+ Elija **Copiar a** y luego **JSON** o **CSV** para descargar las filas seleccionadas en un archivo.
+ Elija **Copiar filas** para copiar las filas seleccionadas en el portapapeles.
+ Elija **Copiar filas con encabezados** para copiar las filas seleccionadas con los encabezados de las columnas en el portapapeles.

Puede elegir también **Exportar** en el área de resultados y, a continuación, elija **JSON** o **CSV** para descargar todo el conjunto de resultados de fila en un archivo. El número de filas del conjunto de resultados puede estar limitado por la opción **Limit** (Límite) o la cláusula `limit` de SQL de la consulta. El tamaño máximo del conjunto de resultados descargado es de 5 MB.

También puede utilizar el acceso directo Ctrl\$1C en Windows o Cmd\$1C en macOS para copiar los datos de la página de resultados actual al portapapeles. Si no se selecciona ninguna fila, la celda con enfoque se copia en el portapapeles. Si se seleccionan filas, las filas seleccionadas se copian en el portapapeles.

Para agregar una nueva pestaña de consulta, elija el icono ![\[New query tab\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/add-plus.png) y luego el **Editor**, que aparece en la fila con las pestañas de consulta. La pestaña de consulta utiliza una `Isolated session` o no. Con una sesión aislada, los resultados de un comando SQL, como la creación de una tabla temporal en una pestaña del editor, no son visibles en otra pestaña del editor. Al abrir una pestaña del editor en el editor de consultas v2, el valor predeterminado es una sesión aislada. 

**Para ejecutar una consulta**

1. En el área de consulta, realice una de las siguientes acciones:
   + Ingrese una consulta.
   + Pegue una consulta que haya copiado.
   + Elija la carpeta **Queries** (Consultas), abra el menú contextual (clic derecho), seleccione una consulta guardada y elija **Open query** (Abrir consulta).

1. Confirme que eligió el valor de **Cluster** (Clúster), **Workgroup** (Grupo de trabajo) y **Database** (Base de datos) correctos para el SQL que va a ejecutar. 

   Inicialmente, puede elegir el **Cluster** (Clúster) o **Workgroup** (Grupo de trabajo) en vista de árbol. Elija la **Database** (Base de datos) en vista de árbol también.

   Puede cambiar el **Clúster** o el **Grupo de trabajo** y la **Base de datos** en cada pestaña del editor con el control desplegable ubicado cerca del encabezado **Sesión aislada** de cada una.

   Decida en cada pestaña del editor si desea ejecutar el SQL en una **Isolated session** (Sesión aislada). Una sesión aislada tiene su propia conexión a una base de datos. Se usa para ejecutar SQL que está aislado de otras sesiones del editor de consultas. Para obtener más información acerca de las conexiones, consulte [Apertura del editor de consultas v2](query-editor-v2-open.md).

1. Seleccione **Ejecutar**.

   El área **Result** (Resultado) se abre y muestra los resultados de la consulta.

**Para mostrar el plan de explicación de una consulta**

1. Seleccione la consulta.

1. Active **Explain** (Explicación).

   De manera predeterminada, el **Explain graph** (Gráfico de explicación) también está activado.

1. Seleccione **Ejecutar**.

   La consulta se ejecuta y se muestra el plan de explicación en el área **Result** (Resultado) de la consulta.

El editor de consultas v2 es compatible con las siguientes características.
+ Puede crear consultas con varias instrucciones SQL en una pestaña de consulta. Las consultas se ejecutan en serie y se abren varias pestañas de resultados para cada consulta. 
+ Puede crear consultas con variables de sesión y tablas temporales.
+ Puede crear consultas con parámetros reemplazables designados por `${parameter}`. Puede crear la consulta SQL con varios parámetros reemplazables y utilizar el mismo parámetro en varios lugares de la instrucción SQL. 

  Cuando se ejecuta la consulta, se presenta una ventana para ingresar el valor del parámetro. Cada vez que ejecuta la consulta, se presenta la ventana para ingresar los valores de los parámetros. 

  Para ver un ejemplo, consulta [Ejemplo: Ventas superiores a un parámetro específico](#query-editor-v2-example-sales-qtysold-greater-than-parameter). 
+ Las consultas se versionan automáticamente. Puede elegir una versión anterior de una consulta que desea ejecutar.
+ No tiene que esperar a que se complete una consulta para continuar con su flujo de trabajo. Las consultas se siguen ejecutando incluso si cierra el editor de consultas.
+ Cuando se crean consultas, se admite la finalización automática de nombres de esquemas, tablas y columnas.

El editor SQL es compatible con las siguientes características:
+ Los corchetes iniciales y finales utilizados en SQL tienen colores coincidentes. Las líneas verticales se muestran en el editor para ayudarle a hacer coincidir los corchetes.
+ Puede contraer y expandir secciones del SQL. 
+ Puede buscar y sustituir texto en el SQL.
+ Puede utilizar las teclas de acceso directo para varias tareas de edición habituales.
+ Los errores de SQL se resaltan en el editor para la ubicación adecuada de las áreas problemáticas.

Para obtener una demostración de las características del editor, vea el siguiente video. 

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/9JAq0yDs0YE/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/9JAq0yDs0YE)


## Consultas de ejemplo
<a name="query-editor-v2-examples"></a>

A continuación, encontrará descripciones de los distintos tipos de consultas que puede ejecutar. 

Los datos utilizados en estas consultas proceden del esquema de ejemplo de `tickit`. Para obtener más información acerca de cómo cargar datos de `tickit` de ejemplo, consulte [Descarga de datos en una base de datos](query-editor-v2-loading.md). Para obtener más información sobre los datos de ejemplo de `tickit`, consulte [Bases de datos de ejemplo](https://docs.aws.amazon.com/redshift/latest/dg/c_sampledb.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*.

Cuando ejecute estas consultas de ejemplo, confirme que eligió la base de datos correcta en el editor, como `sample_data_dev`.

**Topics**
+ [Ejemplo: Configuración de variables de sesión](#query-editor-v2-example-set-session-variable)
+ [Ejemplo: Evento principal por ventas totales](#query-editor-v2-example-top-event-sales)
+ [Ejemplo: Ventas superiores a un parámetro específico](#query-editor-v2-example-sales-qtysold-greater-than-parameter)
+ [Ejemplo: Creación de una tabla temporal](#query-editor-v2-example-create-temporary-table)
+ [Ejemplo: Selección de una tabla temporal](#query-editor-v2-example-select-from-temporary-table)

### Ejemplo: Configuración de variables de sesión
<a name="query-editor-v2-example-set-session-variable"></a>

El siguiente comando establece el parámetro de configuración de servidor `search_path` en *public* (público) para la sesión. Para obtener más información, consulte [SET](https://docs.aws.amazon.com/redshift/latest/dg/r_SET.html) y [search\$1path](https://docs.aws.amazon.com/redshift/latest/dg/r_search_path.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*. 

```
set search_path to public;
```

### Ejemplo: Evento principal por ventas totales
<a name="query-editor-v2-example-top-event-sales"></a>

En la siguiente consulta se encuentra el evento con mayor cantidad de ventas. 

```
select eventname, count(salesid) totalorders, sum(pricepaid) totalsales
from sales, event
where sales.eventid=event.eventid
group by eventname
order by 3;
```

A continuación, se presenta una lista parcial de los resultados.

```
eventname           totalorders       totalsales
White Christmas         20              9352
Joshua Radin            38             23469
Beach Boys              58             30383
Linda Ronstadt          56             35043
Rascal Flatts           76             38214
Billy Idol              67             40101
Stephenie Meyer         72             41509
Indigo Girls            57             45399
...
```

### Ejemplo: Ventas superiores a un parámetro específico
<a name="query-editor-v2-example-sales-qtysold-greater-than-parameter"></a>

En la siguiente consulta se encuentran las ventas en las que la cantidad vendida es mayor que el parámetro especificado por `${numberoforders}`. Cuando el valor del parámetro es `7`, el resultado es 60 filas. Cuando ejecuta la consulta, el editor de consultas v2 muestra una ventana que dice **Run query form** (Ejecutar formulario de consulta) para recopilar el valor de los parámetros de la instrucción SQL. 

```
select salesid, qtysold
from sales 
where qtysold > ${numberoforders}
order by 2;
```

A continuación, se presenta una lista parcial de los resultados.

```
salesid	qtysold
20005	8
21279	8
130232	8
42737	8
74681	8
67103	8
105533	8
91620	8
121552	8
...
```

### Ejemplo: Creación de una tabla temporal
<a name="query-editor-v2-example-create-temporary-table"></a>

La siguiente instrucción crea la tabla temporal *eventsalestemp* seleccionando información de las tablas *sales* y *event*. 

```
create temporary table eventsalestemp as
select eventname, count(salesid) totalorders, sum(pricepaid) totalsales
from sales, event
where sales.eventid=event.eventid
group by eventname;
```

### Ejemplo: Selección de una tabla temporal
<a name="query-editor-v2-example-select-from-temporary-table"></a>

En la siguiente instrucción se seleccionan los eventos, el total de pedidos y las ventas totales de la tabla temporal *eventsalestemp*, ordenados por total de pedidos. 

```
select eventname,  totalorders,  totalsales
from eventsalestemp
order by 2;
```

A continuación, se presenta una lista parcial de resultados.

```
eventname          totalorders   totalsales
White Christmas        20          9352
Joshua Radin           38         23469
Martina McBride        50         52932
Linda Ronstadt         56         35043
Indigo Girls           57         45399
Beach Boys             58         30383
...
```

# Cuadernos en Amazon Redshift
<a name="query-editor-v2-notebooks"></a>

Puede utilizar cuadernos para organizar, anotar y compartir varias consultas SQL en un solo documento. Puede agregar varias celdas de consulta SQL y marcado a un cuaderno. Los cuadernos proporcionan una forma de agrupar consultas y explicaciones asociadas a un análisis de datos en un solo documento mediante varias celdas de consulta y Markdown. Puede agregar texto y dar formato a la apariencia mediante la sintaxis de Markdown para proporcionar contexto e información adicional para las tareas de análisis de datos. Puede compartir sus cuadernos con los miembros del equipo.

Para utilizar cuadernos, debe agregar el permiso para cuadernos a su entidad principal de IAM (un usuario o rol de IAM). Como práctica recomendada, aconsejamos asociar las políticas de permisos a un rol de IAM y luego asignarlo a los usuarios y grupos según sea necesario. Para obtener más información, consulte [Administración de identidades y accesos en Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-authentication-access-control.html). Puede agregar el permiso a una de las políticas administradas del editor de consultas v2. Para obtener más información, consulte [Acceso al editor de consultas v2](query-editor-v2-getting-started.md#query-editor-v2-configure).

Puede ejecutar todas las celdas de un cuaderno de forma secuencial. La celda de consulta SQL de un cuaderno tiene la mayoría de las mismas funciones que una pestaña del editor de consultas. Para obtener más información, consulte [Creación de consultas con Amazon Redshift](query-editor-v2-query-run.md). A continuación, se indican las diferencias entre una pestaña del editor de consultas y una celda SQL de un cuaderno.
+ No existe ningún control para ejecutar `Explain` en una instrucción SQL en un cuaderno.
+ Solo puede crear un gráfico por cada celda SQL de un cuaderno.

Puede exportar e importar cuadernos a archivos creados con el editor de consultas v2. La extensión del archivo es `.ipynb` y el tamaño de archivo puede ser de un máximo de 5 MB. Las celdas SQL y Markdown se almacenan en el archivo. Un clúster o grupo de trabajo y la base de datos no están almacenados en el cuaderno exportado. Cuando abra un cuaderno importado, elija el clúster o grupo de trabajo y la base de datos donde ejecutarlo. Después de ejecutar las celdas SQL, puede elegir en la pestaña de resultados si desea mostrar la página actual de resultados como un gráfico. El conjunto de resultados de una consulta no se almacena en el cuaderno.

# Creación de un cuaderno
<a name="query-editor-v2-notebooks-create"></a>

Puede crear un cuaderno para organizar, anotar y compartir varias consultas SQL en un solo documento. 

**Para crear un cuaderno**

1. En el menú del navegador, elija el icono Editor (![\[Horizontal lines representing redacted or censored text.\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-align-left.png)).

1. Elija el icono más (![\[Plus sign icon representing an addition or new item action.\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/add-plus.png)) y, a continuación, elija **Bloc de notas**.

   De manera predeterminada, aparece una celda de consulta SQL en el cuaderno.

1. En la celda de consulta SQL, realice una de las siguientes acciones:
   + Ingrese una consulta.
   + Pegue una consulta que haya copiado.

1. (Opcional) Elija el icono más (![\[Plus sign icon representing an addition or new item action.\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/add-plus.png)) y, a continuación, **Marcado** para agregar una celda de Markdown en la que puede proporcionar texto descriptivo o explicativo mediante la sintaxis de Markdown estándar. 

1. (Opcional) Elija el icono más (![\[Plus sign icon representing an addition or new item action.\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/add-plus.png)) y, a continuación, elija **SQL** para insertar una celda SQL. 

Puede cambiar el nombre de los cuadernos mediante el icono de lápiz (![\[Pencil icon representing an editing or writing function.\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-edit.png)).

En el icono de menú (![\[Three dots arranged horizontally, representing an ellipsis or "more" menu icon.\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-more.png)) también puede realizar las siguientes operaciones en un cuaderno:
+ ![\[Share\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-share.png) **Share with my team** (Compartir con mi equipo): compartir el cuaderno con su equipo definido por etiquetas. Para compartir un cuaderno con su equipo, asegúrese de que tiene la etiqueta de entidad principal `sqlworkbench-team` establecida al mismo valor que el resto de los miembros de su equipo en su cuenta. Por ejemplo, un administrador podría establecer el valor en `accounting-team` para todos los miembros del departamento de contabilidad. Para ver un ejemplo, consulte [Permisos necesarios para usar del editor de consultas v2](redshift-iam-access-control-identity-based.md#redshift-policy-resources.required-permissions.query-editor-v2).
+ ![\[Export\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-export.png) **Export** (Exportar): exportar el cuaderno a un archivo local con la extensión `.ipynb`.
+ ![\[Import query\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-import.png) **Importar consulta**: importar una consulta de un archivo local a una celda del cuaderno. Puede importar archivos con las extensiones `.sql` y `.txt`.
+  ![\[Save\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-floppy-disk.png) **Save version** (Guardar versión): crear una versión del cuaderno. Para ver las versiones de un cuaderno, vaya a sus cuadernos guardados y abra **Version history** (Historial de versiones).
+  ![\[Duplicate\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-duplicate.png) **Duplicate** (Duplicar): crear una copia del cuaderno y abrirla en una nueva pestaña de cuaderno. 
+  ![\[Shortcuts\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-key-command.png) **Shortcuts** (Accesos directos): mostrar los accesos directos disponibles al crear un cuaderno. 

# Importación a cuadernos
<a name="query-editor-v2-notebooks-import"></a>

Puede importar un cuaderno entero o celdas SQL individuales a un cuaderno del editor de consultas v2.

Para importar un cuaderno completo desde un archivo local a **Mis blocs de notas**, elija ![\[Import\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-import.png) **Importar** y, a continuación, **Importar bloc de notas**. Navegue hasta el archivo `.ipynb` que contiene el cuaderno. El cuaderno se importa a la carpeta de cuadernos abierta en ese momento. A continuación, podrá abrir el cuaderno en el editor de cuadernos.

Para importar una consulta de un archivo local a una celda SQL de un cuaderno, elija ![\[Import\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-import.png) **Importar** y, a continuación, **Importar consulta**. En la ventana **Importar consulta**, siga las instrucciones de la pantalla para elegir el archivo y las carpetas que pueden importarse como una consulta en un cuaderno nuevo o en uno ya existente. Los archivos deben tener una extensión `.sql` o `.txt`. Cada consulta puede tener hasta 10 000 caracteres. Al agregar datos a un cuaderno existente, usted elige qué cuaderno de entre todos los cuadernos de la lista **Blocs de notas guardados**. Las consultas importadas se agregan como celdas SQL al final del cuaderno. Al elegir un cuaderno nuevo, usted elige el nombre del cuaderno y este se crea en la carpeta de cuadernos guardados abierta en ese momento. 

**nota**  
Al crear archivos `.sql` en macOS con la aplicación TextEdit, puede que haya un problema por el que se agrega una extensión oculta al archivo. Por ejemplo, un archivo denominado `Test.sql` creado en TextEdit se puede guardar como `Test.sql.rtf`. El editor de consultas v2 no admite archivos con la extensión `.rtf`. No obstante, si crea un archivo `.sql` con TextEdit y lo guarda como archivo de texto sin formato, el archivo tendrá una extensión `.txt` oculta adicional. Por ejemplo, un archivo cuyo nombre sea `Text.sql` podría guardarse como `Text.sql.txt`. A diferencia de la extensión `.rtf`, el editor de consultas v2 sí admite archivos con la extensión `.txt`, por lo que `Text.sql.txt` se admite al importar consultas a cuadernos.

Para obtener una demostración de los blocs de notas, vea el siguiente video. 

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/GNahyu7j98M/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/GNahyu7j98M)


# Consulta de AWS Glue Data Catalog
<a name="query-editor-v2-glue"></a>

Puede utilizar el editor de consultas v2 para consultar datos catalogados en el AWS Glue Data Catalog mediante comandos SQL específicos y la concesión de los permisos indicados en esta sección. De forma predeterminada, AWS Glue Data Catalog aparece como una base de datos del editor de consultas v2 denominada `awsdatacatalog`. La consulta de AWS Glue Data Catalog no está disponible en todas las Regiones de AWS de Amazon Redshift . Use el comando SHOW para determinar si esta capacidad está disponible. Para obtener más información sobre AWS Glue, consulte [¿Qué es AWS Glue?](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) en la *Guía para desarrolladores de AWS Glue*.

**nota**  
La consulta de AWS Glue Data Catalog solo se admite en clústeres de tipo de nodo RA3 de Amazon Redshift y en Amazon Redshift sin servidor.

Puede configurar su almacenamiento de datos y ver los objetos de la base de datos AWS Glue catalogados con los siguientes comandos SQL:
+ SHOW: para mostrar si `awsdatacatalog` se ha montado para el almacenamiento de datos conectado actualmente. Por ejemplo, para mostrar el valor del parámetro `data_catalog_auto_mount`, ejecute:

  ```
  SHOW data_catalog_auto_mount;
  ```

  Para obtener más información, consulte [SHOW](https://docs.aws.amazon.com/redshift/latest/dg/r_SHOW.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*.
+ ALTER SYSTEM: para cambiar la configuración en el sistema de `data_catalog_auto_mount`. Por ejemplo, para cambiar el valor del parámetro `data_catalog_auto_mount` por `on`, ejecute:

  ```
  ALTER SYSTEM SET data_catalog_auto_mount = on;
  ```

  El cambio surte efecto cuando se reinicia un clúster aprovisionado o se pausa y reanuda automáticamente un grupo de trabajo sin servidor. Para obtener más información, consulte [ALTER SYSTEM](https://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_SYSTEM.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*.
+ SHOW SCHEMAS: muestra una lista de esquemas. Los esquemas de la base de datos denominada `awsdatacatalog` representan las bases de datos de AWS Glue catalogadas en AWS Glue Data Catalog. Por ejemplo, para mostrar estos esquemas, ejecute:

  ```
  SHOW SCHEMAS FROM DATABASE awsdatacatalog;
  ```

  Para obtener más información, consulte [SHOW SCHEMAS](https://docs.aws.amazon.com/redshift/latest/dg/r_SHOW_SCHEMAS.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*.
+ SHOW TABLES:: muestra una lista de las tablas de un esquema. Por ejemplo, para mostrar las tablas de la base de datos de AWS Glue Data Catalog denominada `awsdatacatalog` que se encuentran en el esquema `myglue`, ejecute:

  ```
  SHOW TABLES FROM SCHEMA awsdatacatalog.myschema;
  ```

  Para obtener más información, consulte [SHOW TABLES](https://docs.aws.amazon.com/redshift/latest/dg/r_SHOW_TABLES.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*.
+ SHOW COLUMNS: muestra la lista de columnas de una tabla. Por ejemplo, para mostrar las columnas de la base de datos de AWS Glue Data Catalog denominada `awsdatacatalog` que se encuentran en el esquema `myglue` y la tabla `mytable`, ejecute:

  ```
  SHOW COLUMNS FROM TABLE awsdatacatalog.myglue.mytable;
  ```

  Para obtener más información, consulte [SHOW COLUMNS](https://docs.aws.amazon.com/redshift/latest/dg/r_SHOW_COLUMNS.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*.

**Concesión de permiso al usuario o rol de IAM para consultar el AWS Glue Data Catalog**

1. En el panel de vista de árbol, conéctese a la base de datos inicial en el clúster aprovisionado o el grupo de trabajo sin servidor mediante el método de autenticación con **Nombre de usuario y contraseña de la base de datos**. Por ejemplo, conéctese a la base de datos `dev` con el usuario administrador y la contraseña que utilizó al crear el clúster o el grupo de trabajo.

1. En una pestaña del editor, ejecute la siguiente instrucción SQL para conceder acceso a un usuario de IAM a AWS Glue Data Catalog.

   ```
   GRANT USAGE ON DATABASE awsdatacatalog to "IAM:myIAMUser"
   ```

   Donde *IAM:myIAMUser* es un usuario de IAM al que desea conceder privilegio de uso a AWS Glue Data Catalog. Como alternativa, puede conceder privilegio de uso a *IAMR:myIAMRole* para un rol de IAM.

1. En el panel de vista de árbol, edite o elimine la conexión al clúster o grupo de trabajo que creó anteriormente. Conéctese al clúster o grupo de trabajo de una de las siguientes maneras:
   + Para acceder a la base de datos `awsdatacatalog` desde un clúster, debe utilizar el método de autenticación **Credenciales temporales con su identidad de IAM**. Para obtener más información acerca de este método de autenticación, consulte [Conexión a una base de datos de Amazon Redshift](query-editor-v2-connecting.md). Es posible que el administrador del editor de consultas v2 necesite configurar la **Configuración de cuenta** para mostrar este método de autenticación en la ventana de conexión.
   + Para acceder a la base de datos `awsdatacatalog` desde un grupo de trabajo, debe utilizar el método de autenticación **Usuario federado**. Para obtener más información acerca de este método de autenticación, consulte [Conexión a una base de datos de Amazon Redshift](query-editor-v2-connecting.md).

1. Con el privilegio adjudicado, puede usar su identidad de IAM para ejecutar SQL con AWS Glue Data Catalog.

Después de la conexión, puede utilizar el editor de consultas v2 para consultar datos catalogados en AWS Glue Data Catalog. En el panel de vista de árbol del editor de consultas v2, elija el clúster o grupo de trabajo y la base de datos `awsdatacatalog`. En el panel del editor o del bloc de notas, confirme que se ha elegido el clúster o grupo de trabajo correcto. La base de datos elegida debe ser la base de datos inicial de Amazon Redshift, por ejemplo `dev`. Para obtener información sobre la creación de consultas, consulte [Creación de consultas con Amazon Redshift](query-editor-v2-query-run.md) y [Cuadernos en Amazon RedshiftCuadernos](query-editor-v2-notebooks.md). La base de datos denominada `awsdatacatalog` está reservada para hacer referencia a la base de datos externa del catálogo de datos en la cuenta. Las consultas a la base de datos `awsdatacatalog` solo pueden ser de solo lectura. Utilice la notación de tres partes para hacer referencia a la tabla de la instrucción SELECT. Donde la primera parte es el nombre de la base de datos, la segunda parte es el nombre de la base de datos AWS Glue y la tercera parte es el nombre de la tabla AWS Glue.

```
SELECT * FROM awsdatacatalog.<aws-glue-db-name>.<aws-glue-table-name>;
```

Puede realizar varios escenarios que leen los datos AWS Glue Data Catalog y rellenan las tablas de Amazon Redshift.

En el siguiente ejemplo, SQL une dos tablas que se definen en AWS Glue.

```
SELECT pn.emp_id, alias, role, project_name 
FROM "awsdatacatalog"."empl_db"."project_name_table" pn, 
"awsdatacatalog"."empl_db"."project_alias_table" pa
WHERE pn.emp_id = pa.emp_id;
```

En el siguiente ejemplo, SQL crea una tabla de Amazon Redshift y la rellena con datos de una combinación de dos tablas AWS Glue.

```
CREATE TABLE dev.public.glue AS
SELECT pn.emp_id, alias, role, project_name 
FROM "awsdatacatalog"."empl_db"."project_name_table" pn, 
"awsdatacatalog"."empl_db"."project_alias_table" pa
WHERE pn.emp_id = pa.emp_id;
```

## Consulta de tablas de Amazon S3 (versión preliminar)
<a name="query-editor-v2-glue-s3-tables"></a>

Puede utilizar el editor de consultas V2 para consultar datos que se encuentran en catálogos de tablas de Amazon S3 montados en el AWS Glue Data Catalog. Los catálogos de tablas de Amazon S3 se montan en el AWS Glue Data Catalog en el momento de crearse y aparecen automáticamente como bases de datos externas en todos los clústeres y grupos de trabajo sin servidor aprovisionados en la misma Región de AWS de la misma cuenta. Para obtener más información sobre cómo acceder a tablas de Amazon S3, consulte [Accessing Amazon S3 tables with Amazon Redshift](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-redshift.html) en la Guía del usuario de Amazon Simple Storage Service.

# Consulta de un lago de datos
<a name="query-editor-v2-querying-data-lake"></a>

Siga el conjunto de tareas de este tutorial para consultar datos en un lago de datos de Amazon S3. En primer lugar, cree un esquema externo para hacer referencia a la base de datos externa en el elemento [AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/components-overview.html#data-catalog-intro). A continuación, puede consultar datos en el lago de datos de Amazon S3.

## Demostración: consulta de un lago de datos
<a name="query-editor-v2-example-data-lake-demo"></a>

Para obtener más información sobre cómo consultar un lago de datos, vea el siguiente video.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/-pyy0qNmEKo/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/-pyy0qNmEKo)


## Requisitos previos
<a name="query-editor-v2-querying-data-lake-prerequisites"></a>

Antes de trabajar con su lago de datos en el editor de consultas v2, confirme que se configuró lo siguiente en su entorno de Amazon Redshift:
+ Rastree sus datos de Amazon S3 con AWS Glue y habilite su catálogo de datos para AWS Lake Formation.
+ Cree un rol de IAM para Amazon Redshift mediante el catálogo de datos habilitado para AWS Glue para AWS Lake Formation. Para obtener más información sobre este procedimiento, consulte [Para crear un rol de IAM para Amazon Redshift mediante un AWS Glue Data Catalog habilitado para AWS Lake Formation](https://docs.aws.amazon.com/redshift/latest/dg/c-getting-started-using-spectrum-create-role.html#spectrum-get-stared-create-role-lake-formation). Para obtener más información sobre el uso de Redshift Spectrum y Lake Formation, consulte [Uso de Redshift Spectrum con AWS Lake Formation](https://docs.aws.amazon.com/redshift/latest/dg/spectrum-lake-formation.html).
+ Conceda permisos SELECT en la tabla para realizar consultas en la base de datos de Lake Formation. Para obtener detalles sobre este procedimiento, consulte [Para otorgar permisos SELECT en la tabla para realizar consultas en la base de datos de Lake Formation](https://docs.aws.amazon.com/redshift/latest/dg/c-getting-started-using-spectrum-create-role.html#spectrum-get-started-grant-lake-formation-table).

  Puede verificar en la consola de Lake Formation (https://console.aws.amazon.com/lakeformation/), en la sección **Permisos**, página **Permisos del lago de datos**, que el rol de IAM, la base de datos de AWS Glue y las tablas de IAM tengan los permisos adecuados.
+ Confirme que el usuario conectado tiene permiso para crear esquemas en la base de datos de Amazon Redshift y acceder a los datos de su lago de datos. Cuando se conecta a una base de datos en el editor de consultas v2, elige un método de autenticación que incluye credenciales, que pueden ser un usuario de la base de datos o un usuario de IAM. El usuario conectado debe tener los permisos y los privilegios de base de datos adecuados, como un `superuser`. El usuario `admin` de Amazon Redshift que creó el clúster o grupo de trabajo tiene privilegios de `superuser` y puede crear esquemas y administrar la base de datos de Redshift. Para obtener más información sobre la conexión a una base de datos con el editor de consultas v2, consulte [Conexión a una base de datos de Amazon Redshift](query-editor-v2-connecting.md).

## Creación de un esquema externo
<a name="query-editor-v2-create-external-schema"></a>

Para consultar datos en un lago de datos de Amazon S3, cree primero un esquema externo. El esquema externo hace referencia a la base de datos externa en [AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/components-overview.html#data-catalog-intro).

1. En la vista **Editor** del editor de consultas v2, elija ![\[Create\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-add.png)**Crear** y, a continuación, **Esquema**.

1. Ingrese un **Schema name** (Nombre de esquema).

1. Para **Tipo de esquema**, elija **Externo**.

1. En los detalles de **Catálogo de datos**, la **Región** está predeterminada a la Región de AWS donde se encuentra su base de datos de Redshift.

1. Elija la **Base de datos de AWS Glue** a la que se asignará el esquema externo y que contiene referencias a las tablas de AWS Glue.

1. Elija un **Rol de IAM** para Amazon Redshift que tenga los permisos necesarios para consultar datos en Amazon S3.

1. Si lo desea, elija un **Rol de IAM** que tenga permiso en el catálogo de datos.

1. Elija **Create schema** (Crear esquema).

   El esquema aparece debajo de la base de datos en el panel de vista de árbol.

Al crear el esquema, si recibe un error de denegación de permiso para la base de datos, compruebe si el usuario conectado tiene el privilegio de base de datos para crear un esquema.

## Consulta de datos en el lago de datos de Amazon S3
<a name="query-editor-v2-query-data-lake"></a>

Utilice el esquema que creó en el procedimiento anterior. 

1. En el panel de vista de árbol, elija el esquema.

1. Para ver una definición de tabla, elija una tabla. Se muestran las columnas de tabla y los tipos de datos.

1. Para consultar una tabla, elíjala y, en el menú contextual (clic con el botón derecho), elija **Seleccionar tabla** para generar una consulta.

1. Ejecute la consulta en el **Editor**.

   El editor de consultas v2 generó el siguiente ejemplo de SQL para consultar todas las filas de la tabla de AWS Glue denominada `flightscsv`. Para simplificar, se han truncado las columnas y las filas que se muestran en el resultado.

   ```
   SELECT * FROM "dev"."mydatalake_schema"."flightscsv";
                           
   year    quarter   month   dom  day_of_week   fl_date    unique_carrier  airline_id   carrier   tail_num   fl_num		
   2016    4         10      19   3             10/19/16   OO              20304        OO         N753SK    3086	 
   2016    4         10      19   3             10/19/16   OO              20304        OO         N753SK    3086	
   2016    4         10      19   3             10/19/16   OO              20304        OO         N778SK    3087		
   2016	4         10      19   3             10/19/16   OO              20304        OO         N778SK    3087	
   ...
   ```

# Recursos compartidos de datos
<a name="query-editor-v2-datashare-using"></a>

Se puede crear un recurso compartido de datos para que los usuarios de otro clúster puedan consultar los datos. El clúster que contiene los datos que se desean compartir se denomina clúster *productor*. Se debe crear un recurso compartido de datos en el clúster productor para los objetos de base de datos que se deseen compartir. Se pueden compartir esquemas, tablas, vistas y funciones definidas por el usuario (UDF) de SQL. El clúster con el que se desean compartir los datos se denomina clúster *consumidor*. En el clúster consumidor, se debe crear una base de datos a partir del recurso compartido de datos. Después, los usuarios del clúster consumidor pueden consultar los datos. Para obtener más información, consulte [Introducción al uso compartido de datos](https://docs.aws.amazon.com/redshift/latest/dg/getting-started-datasharing.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*.

# Creación de recursos compartidos de datos
<a name="query-editor-v2-create-datashare"></a>

Se debe crear un recurso compartido de datos en el clúster que se desee utilizar como clúster productor. Para obtener más información sobre los recursos compartidos de datos, consulte [Consideraciones sobre el uso compartido de datos en Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/datashare-considerations.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*. 

1. Elija la base de datos del clúster productor que desea utilizar.

1. Cree el recurso compartido de datos. Por ejemplo:

   ```
   create datashare mysource;
   ```

1. Establezca permisos en el recurso compartido de datos. Por ejemplo:

   ```
   grant alter, share on datashare mysource to admin;
   ```

1. Establezca permisos en los objetos de base de datos que desea compartir. Por ejemplo:

   ```
   alter datashare mysource add schema public;
   ```

   ```
   alter datashare mysource add table public.event;
   ```

1. Establezca permisos en el espacio de nombres del clúster consumidor para acceder al recurso compartido de datos. Por ejemplo:

   ```
   grant usage on datashare mysource to namespace '2b12345-1234-5678-9012-bb1234567890';
   ```

# Exhibición de recursos compartidos de datos
<a name="query-editor-v2-show-datashare"></a>

Se pueden mostrar los recursos compartidos de datos que se hayan creado en el clúster productor. 

1. Elija el clúster productor.

1. Muestre los recursos compartidos de datos. Por ejemplo:

   ```
   show datashares;
   ```

   ```
   share_name	share_owner	source_database		consumer_database	share_type	createdate	is_publicaccessible	share_acl	producer_account	producer_namespace
   test_datashare	100		db_producer		NULL			OUTBOUND	2/15/2022		FALSE		admin		123456789012		p1234567-8765-4321-p10987654321
   ```

# Creación de la base de datos consumidora
<a name="query-editor-v2-datashare-consumer"></a>

En el clúster consumidor, se debe crear una base de datos a partir del recurso compartido de datos. Estos pasos describen cómo compartir datos entre dos clústeres de una misma cuenta. Para obtener más información acerca de cómo compartir datos entre cuentas de AWS, consulte [Uso compartido de datos entre cuentas de AWS](https://docs.aws.amazon.com/redshift/latest/dg/across-account.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*.

Se pueden utilizar comandos SQL o el panel de vista de árbol del editor de consultas v2 para crear la base de datos.

**Para utilizar SQL**

1. Cree una base de datos a partir del recurso compartido de datos de la cuenta y del espacio de nombres del clúster productor. Por ejemplo:

   ```
   create database share_db from datashare mysource of account '123456789012' namespace 'p1234567-8765-4321-p10987654321'; 
   ```

1. Establezca permisos para que los usuarios puedan acceder a la base de datos y al esquema. Por ejemplo:

   ```
   grant usage on database share_db to usernames;
   ```

   ```
   grant usage on schema public to usernames;
   ```

**Para utilizar el panel de vista de árbol del editor de consultas v2**

1. Elija ![\[Plus sign icon inside a circle, indicating an add or create action.\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-add.png)**Create** (Crear) y luego elija **Database** (Base de datos).

1. Ingrese un **Database name** (Nombre de base de datos).

1. (Opcional) Seleccione **Users and groups** (Usuarios y grupos), y elija un **Database user** (Usuario de base de datos).

1. Elija **Create using a datashare** (Crear utilizando un recurso compartido de datos).

1. Elija el recurso compartido de datos.

1. Elija **Creación de base de datos**.

   La nueva base de datos ![\[datashare\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-datashare.png)**datashare** (recurso compartido de datos) se muestra en el panel de vista de árbol del editor de consultas v2.

1. Establezca permisos para que los usuarios puedan acceder a la base de datos y al esquema. Por ejemplo:

   ```
   grant usage on database share_db to usernames;
   ```

   ```
   grant usage on schema public to usernames;
   ```

# Consulta de objetos de recursos compartidos de datos
<a name="query-editor-v2-query-datashare"></a>

En el clúster consumidor, se pueden consultar objetos de recursos compartidos de datos utilizando nombres de objetos completos expresados con la notación de tres partes: base de datos, esquema y nombre del objeto. 

1. En el panel de vista de árbol del editor de consultas v2, elija el esquema.

1. Para ver una definición de tabla, elija una tabla.

   Se muestran las columnas de tabla y los tipos de datos.

1. Para consultar una tabla, elija la tabla y utilice el menú contextual (clic con el botón derecho) con objeto de elegir **Select table** (Seleccionar tabla).

1. Consulte las tablas mediante comandos SELECT. Por ejemplo:

   ```
   select top 10 * from test_db.public.event;
   ```

# Consultas programadas con el editor de consultas v2
<a name="query-editor-v2-schedule-query"></a>

Con el editor de consultas V2 de Amazon Redshift, puede automatizar consultas SQL para que se ejecuten de forma programada. Las consultas programadas son instrucciones SQL que se ejecutan automáticamente en momentos o intervalos específicos, lo que le permite administrar de manera eficiente las operaciones de datos recurrentes y las tareas de análisis. Es posible que desee programar consultas si desea agilizar el procesamiento por lotes, generar informes periódicos o mantener las canalizaciones de datos dentro del entorno de Amazon Redshift. 

Las consultas programadas facilitan la automatización de flujos de trabajo de extracción, transformación y carga (ETL), la actualización de paneles con información actualizada y la puesta en práctica de diversas rutinas de administración de datos. En las páginas siguientes se detalla el proceso de creación, configuración y administración de consultas programadas para optimizar las cargas de trabajo de Amazon Redshift.

# Creación de una programación de consultas con el editor de consultas v2
<a name="query-editor-v2-schedule-query-create"></a>

Puede crear una programación que ejecute una instrucción SQL con el editor de consultas de Amazon Redshift versión 2. Puede crear una programación para ejecutar la instrucción SQL en los intervalos de tiempo que coincidan con las necesidades de su empresa. Cuando llega el momento de ejecutar la consulta programada, Amazon EventBridge inicia la consulta y utiliza la API de datos de Amazon Redshift.

**Para crear una programación que ejecute una instrucción SQL**

1. Elija la vista **Editor** ![\[Editor\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-align-left.png) y elija ![\[Schedule\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-calendar.png) **Programación** para crear una programación que ejecute una instrucción SQL.

1. Al definir la programación, se proporciona la siguiente información:
   + El rol de IAM que asume los permisos necesarios para ejecutar la consulta. Este rol de IAM también está asociado a su clúster o grupo de trabajo.
   + Los valores de autenticación para AWS Secrets Manager o las credenciales temporales para autorizar el acceso al clúster o grupo de trabajo. La API de datos admite estos métodos de autenticación. Para obtener más información, consulte [Autenticación de una consulta programada](query-editor-v2-schedule-query-authentication.md).
   + El clúster o grupo de trabajo donde reside la base de datos.
   + El nombre de la tabla de base datos que contiene los datos que se van a consultar.
   + Nombre de la consulta programada y su descripción. El editor de consultas v2 antepone el prefijo "QS2-" al nombre de la consulta programada que usted proporcione. El editor de consultas versión 1 añade el prefijo «QS-» a los nombres de las consultas programadas.
   + La instrucción SQL que se ejecutará según la programación.
   + La frecuencia de la programación y las opciones de repetición o un valor con formato cron que define la programación. Para obtener más información, consulte [Cron Expressions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions) (Expresiones cron) en la *Guía del usuario de Eventos de Amazon CloudWatch*.
   + Si lo desea, puede habilitar las notificaciones de Amazon SNS estándar para supervisar la consulta programada. Puede que tenga que confirmar la dirección de correo electrónico que proporcionó en la notificación de Amazon SNS. Consulte en el correo electrónico si hay un enlace para confirmar la dirección de correo electrónico para las notificaciones de Amazon SNS. Para obtener más información, consulte [Notificaciones por correo electrónico](https://docs.aws.amazon.com/sns/latest/dg/sns-email-notifications.html) en la *Guía para desarrolladores de Amazon Simple Notification Service*. Si su consulta se está ejecutando, pero no ve mensajes publicados en el tema de SNS, consulte [Mi regla se activa pero no veo ningún mensaje publicado en mi tema de Amazon SNS](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-troubleshooting.html#eb-no-messages-published-sns) en la *Guía del usuario de Amazon EventBridge*.

1. Seleccione **Programar consulta** para guardar y activar la programación y añadir la programación a la lista de consultas de la vista **Consultas programadas**.

La vista **Consultas programadas** ![\[Scheduled queries\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/qev2-calendar.png) muestra todas las consultas programadas para sus clústeres y grupos de trabajo. En esta vista puede ver los detalles de la programación de la consulta, activar o desactivar la programación, editar la programación y eliminar la consulta programada. Al consultar los detalles de la consulta, también puede ver el historial de ejecución de la consulta con la programación.

**nota**  
Una ejecución de consulta de programación solo está disponible en la lista **Historial de programación** durante 24 horas. Las consultas que se ejecutan de forma programada no aparecen en la vista **Historial de consultas** del editor de consultas v2.

## Demostración de la programación de una consulta
<a name="query-editor-v2-schedule-query-demo"></a>

Para obtener una demostración de la programación de consultas, vea el siguiente vídeo. 

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/gTw0XUpO8sw/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/gTw0XUpO8sw)


# Configuración de permisos para programar una consulta
<a name="query-editor-v2-schedule-query-permissions"></a>

Para programar consultas, el usuario de AWS Identity and Access Management (IAM) que define la programación y el rol de IAM asociado a la programación se deben configurar con los permisos de IAM para poder utilizar Amazon EventBridge y la API de datos de Amazon Redshift. Para recibir correos electrónicos de consultas programadas, también debe configurarse la notificación de Amazon SNS que especifique de forma opcional.

A continuación se describen las tareas para utilizar las políticas administradas de AWS para conceder permisos, pero según el entorno, es posible que prefiera reducir el alcance de los permisos concedidos.

Para el usuario de IAM que haya iniciado sesión en el editor de consultas versión 2, edite el usuario de IAM mediante la consola de IAM ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)).
+ Además de los permisos para ejecutar las operaciones de Amazon Redshift y del editor de consultas versión 2, adjunte las políticas administradas `AmazonEventBridgeFullAccess` y `AmazonRedshiftDataFullAccess` AWS a un usuario de IAM. 
+ Como alternativa, asigne los permisos a un rol y asigne el rol al usuario.

  Adjunte una política con el permiso `sts:AssumeRole` al ARN del recurso del rol de IAM que especifique cuando defina la consulta programada. Para obtener más información sobre cómo asumir roles, consulte [Conceder permisos de usuario para cambiar de rol](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_permissions-to-switch.html) en la *Guía del usuario de IAM*.

  En el siguiente ejemplo, se muestra una política de permisos que asume el rol de IAM `myRedshiftRole` en la cuenta `123456789012`. El rol de IAM `myRedshiftRole` también es el rol de IAM que se adjunta al clúster o grupo de trabajo en el que se ejecuta la consulta programada. 

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "AssumeIAMRole",
              "Effect": "Allow",
              "Action": "sts:AssumeRole",
              "Resource": [
                  "arn:aws:iam::123456789012:role/myRedshiftRole"
              ]
          }
      ]
  }
  ```

------

  Actualice la política de confianza del rol de IAM utilizado para programar la consulta a fin de permitir que el usuario de IAM la asuma.

  ```
  {
              "Sid": "AssumeRole",
              "Effect": "Allow",
              "Principal": {
                  "AWS": "arn:aws:iam::123456789012:user/myIAMusername"
              },
              "Action": "sts:AssumeRole"
          }
      ]
  }
  ```

Para el rol de IAM que especifique para permitir la ejecución de la consulta programada, edite el rol de IAM mediante la consola de IAM ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)).
+ Adjunte las políticas administradas `AmazonRedshiftDataFullAccess` y `AmazonEventBridgeFullAccess` de AWS al rol de IAM. La política administrada `AmazonRedshiftDataFullAccess` solo permite el permiso `redshift-serverless:GetCredentials` para los grupos de trabajo Redshift sin servidor que estén etiquetados con la clave `RedshiftDataFullAccess`.

# Autenticación de una consulta programada
<a name="query-editor-v2-schedule-query-authentication"></a>

Cuando programa una consulta, utiliza uno de los siguientes métodos de autenticación cuando se ejecuta el código SQL. Cada método requiere una combinación diferente de entrada en el editor de consultas versión 2. Estos métodos de autenticación son compatibles con la API de datos que se utiliza para ejecutar sus instrucciones SQL.

El usuario o rol de base de datos que se utiliza para ejecutar la consulta debe tener los privilegios de base de datos necesarios. Por ejemplo, para conceder privilegios `IAMR:MyRedshiftQEv2Scheduler` a la tabla `mytable`, ejecute el siguiente comando SQL.

```
GRANT all ON TABLE mytable TO "IAMR:MyRedshiftQEv2Scheduler";
```

Para ver la lista de usuarios de la base de datos en su clúster o grupo de trabajo, consulte la vista del sistema `PG_USER_INFO`.

**nota**  
 Cualquier grupo de trabajo de Redshift sin servidor para el que programe consultas se debe etiquetar con la clave `RedshiftDataFullAccess`. Para obtener más información, consulte [Autorización del acceso a la API de datos de Amazon Redshift](data-api-access.md).  
Como alternativa al etiquetado del grupo de trabajo, puede agregar una política insertada al rol de IAM (que se especifica con la programación) que permita `redshift-serverless:GetCredentials`. Por ejemplo:  

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "UseTemporaryCredentialsForAllServerlessWorkgroups",
            "Effect": "Allow",
            "Action": "redshift-serverless:GetCredentials",
            "Resource": [
                "arn:aws:redshift-serverless:*:*:workgroup/*"
            ]
        }
    ]
}
```

**AWS Secrets Manager**  
Con este método, se proporciona un valor secreto para **secret-arn** que se almacena en AWS Secrets Manager. Este secreto contiene las credenciales para conectarse a la base de datos. Es posible que haya creado un secreto con las credenciales adecuadas al crear el clúster o el grupo de trabajo. El secreto debe estar etiquetado con la clave `RedshiftDataFullAccess`. Si la clave de etiqueta aún no está presente, utilice la consola de AWS Secrets Manager para agregarla. Para obtener información sobre cómo crear un secreto, consulte [Creación de un secreto para las credenciales de conexión a la base de datos](redshift-secrets-manager-integration-create.md).  
Para obtener más información acerca de los permisos mínimos, consulte [Creación y administración de secretos con AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/managing-secrets.html) en la *Guía del usuario de AWS Secrets Manager*. 

**Credenciales temporales**  
Con este método, proporcione los valores **Nombre de la base de datos** y **Usuario de la base de datos** cuando se conecte a una base de datos de un clúster. Solo necesita proporcionar el **Nombre de base de datos** cuando se conecte a una base de datos de un grupo de trabajo.  
Al conectarse a un clúster, la política `AmazonRedshiftDataFullAccess` permite al usuario de la base de datos denominado `redshift_data_api_user` el permiso para `redshift:GetClusterCredentials`. Si desea utilizar un usuario de base de datos diferente para ejecutar la instrucción SQL, agregue una política al rol de IAM adjunta a su clúster para permitir `redshift:GetClusterCredentials`. La siguiente política de ejemplo permite a los usuarios de la base de datos `awsuser` y `myuser`.     
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "UseTemporaryCredentialsForAllDbUsers",
            "Effect": "Allow",
            "Action": "redshift:GetClusterCredentials",
            "Resource": [
                "arn:aws:redshift:*:*:dbuser:*/awsuser",
                "arn:aws:redshift:*:*:dbuser:*/myuser"
            ]
        }
    ]
}
```

# Configuración de permisos para el historial de consultas de la programación
<a name="query-editor-v2-schedule-query-view-history"></a>

Para permitir a los usuarios ver el historial de consultas de la programación, edite el rol de IAM (que se especifica con la programación) **Relaciones de confianza** para agregar permisos.

El ejemplo siguiente es una política de confianza en un rol de IAM que permite al usuario de IAM *myIAMusername* ver el historial de consultas de la programación. En lugar de permitir a un usuario de IAM el permiso `sts:AssumeRole`, puede elegir permitir a un rol de IAM este permiso.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "redshift.amazonaws.com",
                    "redshift-serverless.amazonaws.com"
                ]
            },
            "Action": "sts:AssumeRole"
        },
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "events.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        },
        {
            "Sid": "AssumeRole",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:user/myIAMusername"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

------

# Monitoreo de la consulta programada
<a name="query-editor-v2-schedule-query-sns"></a>

Para el tema de Amazon SNS que especifique para enviar notificaciones por correo electrónico, cree el tema de Amazon SNS mediante el editor de consultas v2; para ello, navegue hasta la sección **Notificaciones SNS**, **active** el monitoreo y cree el tema con **Crear un tema de SNS**. El editor de consultas v2 crea el tema de Amazon SNS y agrega una entidad principal de servicio a la política de acceso para Amazon EventBridge. A continuación, se muestra un ejemplo de **Política de acceso** que se crea en el tema de Amazon SNS. En el ejemplo, se usan la Región de AWS *us-west-2*, la Cuenta de AWS *123456789012* y el tema de Amazon SNS *select-version-pdx-testunload*.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Id": "__default_policy_ID",
  "Statement": [
    {
      "Sid": "Allow_Publish_Events",
      "Effect": "Allow",
      "Principal": {
        "Service": "events.amazonaws.com"
      },
      "Action": "sns:Publish",
      "Resource": "arn:aws:sns:us-west-2:123456789012:select-version-pdx-testunload"
    }
  ]
}
```

------

Cuando se ejecuta la consulta programada, Amazon SNS envía correos electrónicos de notificación de AWS. El siguiente ejemplo muestra un correo electrónico enviado a *myemail@example.com* para la consulta programada *QS2-may25a* que se ejecutó en Región de AWS *eu-north-1* en Cuenta de AWS *123456789012* mediante el tema de notificación *may25a-SNS* de Amazon SNS.

```
{"version":"0","id":"8e4323ec-5258-7138-181b-91290e30ff9b","detail-type":"Scheduled Event","source":"aws.events","account":"123456789012","time":"2023-05-25T15:22:00Z",
                    "region":"eu-north-1","resources":["arn:aws:events:eu-north-1:123456789012:rule/QS2-may25a"],"detail":{}}

--
If you wish to stop receiving notifications from this topic, please click or visit the link below to unsubscribe:
https://sns.eu-north-1.amazonaws.com/unsubscribe.html?SubscriptionArn=arn:aws:sns:eu-north-1:123456789012:may25a-SNS:0c1a3d05-39c2-4507-bc3d-47250513d7b0&Endpoint=myemail@example.com

Please do not reply directly to this email. If you have any questions or comments regarding this email, please contact us at https://aws.amazon.com/support
```

# Solución de problemas de configuración de la programación de una consulta
<a name="query-editor-v2-schedule-query-troubleshooting"></a>

Tenga en cuenta lo siguiente si tiene problemas para programar una consulta.

**Las consultas no se están ejecutando**  
Compruebe si el rol de IAM utilizado en la programación tiene permiso para obtener las credenciales  de clúster temporales. El permiso para los clústeres aprovisionados es `redshift:GetClusterCredentialsWithIAM`. El permiso para los grupos de trabajo de Redshift sin servidor es `redshift-serverless:GetCredentials`.

**No se muestra el historial programado**  
El usuario de IAM o rol de IAM utilizado para iniciar sesión en la consola de AWS no se ha agregado a la política de confianza del rol de IAM utilizado para programar la consulta.  
Al utilizar AWS Secrets Manager para la consulta programada para la conexión, confirme que el secreto esté etiquetado con la clave `RedshiftDataFullAccess`.  
Si la consulta programada utiliza una conexión de AWS Secrets Manager, el rol de IAM utilizado para programar la consulta debe tener el equivalente a una política administrada `SecretsManagerReadWrite` asociada al rol.

**El estado del historial de consultas es `Failed`**  
Consulte la vista del sistema SYS\$1QUERY\$1HISTORY para obtener detalles sobre por qué se produjo un error en la consulta. Un problema habitual es que el usuario o el rol de la base de datos que se utilizó para ejecutar la consulta podría no tener los privilegios necesarios para ejecutar el código SQL. Para obtener más información, consulte [Autenticación de una consulta programada](query-editor-v2-schedule-query-authentication.md).  
El siguiente código SQL consulta la vista SYS\$1QUERY\$1HISTORY para devolver las consultas con errores.  

```
SELECT user_id, query_id, transaction_id, session_id, database_name, query_type, status, error_message, query_text 
FROM sys_query_history
WHERE status = 'failed';
```
Para conocer los detalles de una determinada consulta programada con errorrd , consulte [Visualización de los resultados de una consulta programada con AWS CloudShell](query-editor-v2-schedule-query-troubleshooting-cloudshell.md).

# Visualización de los resultados de una consulta programada con AWS CloudShell
<a name="query-editor-v2-schedule-query-troubleshooting-cloudshell"></a>

Puede utilizar AWS CloudShell para conocer los detalles de una consulta programada. Debe tener los permisos adecuados para ejecutar los comandos de la AWS CLI que se muestran en el procedimiento siguiente.

**Para ver los resultados de una consulta programada**

1. En la consola de AWS, abra el símbolo del sistema de AWS CloudShell. Para obtener más información acerca de AWS CloudShell, consulte [¿Qué es AWS CloudShell?](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html) en la *Guía del usuario de AWS CloudShell*.

1. Asuma el rol de IAM de la consulta programada. Para asumir el rol, busque el rol de IAM asociado a la consulta programada en el editor de consultas v2 y utilícelo en el comando AWS CLI en AWS CloudShell. Por ejemplo, para el rol `scheduler` introduzca un comando AWS STS para asumir el rol que utiliza la consulta programada.

   ```
   aws sts assume-role --role-arn "arn:aws:iam::123456789012:role/scheduler" --role-session-name "scheduler-test" 
   ```

   Las credenciales devueltas son similares a las siguientes.

   ```
   "Credentials": {
   "AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
   "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
   "SessionToken": "je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY...",        
   "Expiration": "2023-08-18T18:19:44+00:00"
   },
   "AssumedRoleUser": {
   "AssumedRoleId": "AROA35B2NH6WBTP7ONL4E:scheduler-test",
   "Arn": "arn:aws:sts::123456789012:assumed-role/scheduler/scheduler-test"
   }
   }
   ```

1. Cree variables de entorno en la AWS CLI mediante las credenciales que se muestran al asumir el rol de IAM. Debe utilizar estos tokens antes de que caduquen. Por ejemplo, puede introducir lo siguiente en AWS CloudShell.

   ```
   export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
   export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
   export AWS_SESSION_TOKEN=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY...
   ```

1. Para ver el error de una consulta con errores, ejecute el comando AWS CLI para describir una instrucción. El ID de la instrucción SQL procede del **ID** que aparece en la sección **Historial de programación** de una consulta programada en el editor de consultas v2.

   ```
   aws redshift-data describe-statement --id 130d2620-05d2-439c-b7cf-815d9767f513
   ```

   En este ejemplo, la instrucción SQL programada `select * from users limit 100` da como resultado un error de SQL que indica que la tabla `users` no existe.

   ```
   {
   "CreatedAt": "2023-08-18T17:39:15.563000+00:00",
   "Duration": -1,
   "Error": "ERROR: relation \"users\" does not exist",
   "HasResultSet": false,
   "Id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
   "QueryString": "select * from users limit 100\n—RequestID=a1b2c3d4-5678-90ab-cdef-EXAMPLE22222; TraceID=1-633c5642-4039308d03f3a0ba53dbdf6f",
   "RedshiftPid": 1073766651,
   "RedshiftQueryId": 0,
   "ResultRows": -1,
   "ResultSize": -1,
   "Status": "FAILED",
   "UpdatedAt": "2023-08-18T17:39:16.116000+00:00",
   "WorkgroupName": "default"
   }
   ```

# Visualización de resultados de las consultas
<a name="query-editor-v2-charts"></a>

Después de ejecutar una consulta y mostrar los resultados, puede activar **Chart** (Gráfico) para mostrar una visualización gráfica de la página actual de resultados. Puede utilizar los siguientes controles para definir el contenido, la estructura y el aspecto del gráfico:

![\[Plus sign icon representing an addition or new item action.\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/add-plus.png)Seguimiento de   
Representa un conjunto de marcas gráficas relacionadas en un gráfico. Puede definir varios seguimientos en un gráfico.

Tipo  
Puede definir el tipo de seguimiento para representar los datos como uno de los siguientes:  
+ Gráfico de dispersión para un gráfico de dispersión o gráfico de burbujas.
+ Gráfico de barras para representar categorías de datos con barras verticales u horizontales.
+ Gráfico de áreas para definir áreas rellenadas.
+ Histograma que utiliza barras para representar la distribución de frecuencias.
+ Gráfico circular para una representación circular de datos en la que cada sector representa un porcentaje del conjunto.
+ Gráfico de embudo o de área de embudo para representar datos a lo largo de varias etapas de un proceso.
+ Gráfico OHLC (apertura, máximo, mínimo, cierre), que se utiliza a menudo en datos financieros para representar valores de apertura, máximos, mínimos y de cierre a lo largo del eje x, que suele representar intervalos de tiempo.
+ Gráfico de velas para representar un rango de valores de una categoría a lo largo de una línea temporal.
+ Gráfico de cascada para representar cómo aumenta o disminuye un valor inicial mediante una serie de valores intermedios. Los valores pueden representar intervalos de tiempo o categorías.
+ Gráfico de líneas para representar los cambios en el valor a lo largo del tiempo.

Eje X  
Debe especificar una columna de tabla que contenga valores para trazar a lo largo del eje X. Las columnas que contienen valores descriptivos suelen representar datos dimensionales. Las columnas que contienen valores cuantitativos suelen representar datos descriptivos.

Eje Y  
Debe especificar una columna de tabla que contiene valores para trazar a lo largo del eje Y. Las columnas que contienen valores descriptivos suelen representar datos dimensionales. Las columnas que contienen valores cuantitativos suelen representar datos descriptivos.

Tramas secundarias  
Puede definir presentaciones adicionales de los datos de gráficos.

Transformaciones  
Puede definir transformaciones para filtrar los datos de seguimiento. Se utiliza una transformación de división para mostrar varios seguimientos de un único seguimiento de origen. Se utiliza una transformación de agregación para presentar un seguimiento como promedio o valor mínimo. Se usa una transformación de ordenación para ordenar un seguimiento.

Aspecto general  
Puede establecer valores predeterminados para el color de fondo, el color de los márgenes, las escalas de color para las paletas de diseño, el estilo y los tamaños del texto, el estilo y el tamaño del título y la barra de modos. Puede definir interacciones para arrastrar, hacer clic y pasar el cursor. Puede definir metatexto. Puede definir aspectos predeterminados para seguimientos, ejes, leyendas y anotaciones.

**Para crear una alarma**

1. Ejecute una consulta y obtenga resultados.

1. Active **Charts** (Gráficos).

1. Elija **Trace** (Rastro) y comience a visualizar sus datos.

1. Elija un estilo de gráfico de los siguientes:
   + Dispersión
   + Barras
   + Area
   + Histograma
   + Circular
   + Embudo
   + Área de embudo
   + OHLC (apertura, máximo, mínimo, cierre)
   + Velas
   + Cascada
   + Línea

1. Elija **Style** (Estilo) para personalizar el aspecto, incluidos los colores, los ejes, la leyenda y las anotaciones. Puede agregar texto, formas e imágenes.

1. Elija **Annotations** (Anotaciones) para agregar texto, formas e imágenes.

1. Elija **Refresh** (Actualizar) para actualizar la visualización del gráfico. Elija **Full screen** (Pantalla completa) para ampliar la visualización del gráfico.

## Ejemplo: Creación de un gráfico circular para visualizar los resultados de consultas
<a name="query-editor-v2-example-pie-chart"></a>

En el siguiente ejemplo, se utiliza la tabla *Sales* (Ventas) de la base de datos de muestra. Para obtener más información, consulte [Base de datos de muestra](https://docs.aws.amazon.com/redshift/latest/dg/c_sampledb.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*. 

A continuación, se presenta la consulta que ejecuta para proporcionar los datos del gráfico circular.

```
select top 5 eventname, count(salesid) totalorders, sum(pricepaid) totalsales 
from sales, event
where sales.eventid=event.eventid group by eventname
order by 3;
```

**Para crear un gráfico circular para el evento principal por ventas totales**

1. Ejecute la consulta.

1. En el área de resultados de la consulta, active **Chart** (Gráfico).

1. Elija **Trace** (Rastro).

1. En **Type** (Tipo), elija **Pie** (Circular).

1. En **Values** (Valores), elija *totalsales*.

1. En **Labels** (Etiquetas), elija *eventname*.

1. Elija **Style** (Estilo) y luego **General**.

1. En **Colorscales**, elija **Categorical** y luego **Pastel2**.

![\[Gráfico circular\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/pie-chart.png)


## Ejemplo: Creación de un gráfico combinado para comparar ingresos y ventas
<a name="query-editor-v2-example-revenue-sales-chart"></a>

Siga los pasos de este ejemplo para crear un gráfico que combine un gráfico de barras para los datos de ingresos y uno de líneas para los datos de ventas. En el siguiente ejemplo, se utiliza la tabla *Sales* (Ventas) de la base de datos de ejemplo TICKIT. Para obtener más información, consulte [Base de datos de muestra](https://docs.aws.amazon.com/redshift/latest/dg/c_sampledb.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*. 

A continuación, se presenta la consulta que ejecuta para proporcionar los datos del gráfico.

```
select eventname, total_price, total_qty_sold
from  (select eventid, total_price, total_qty_sold, ntile(1000) over(order by total_price desc) as percentile
       from (select eventid, sum(pricepaid) total_price, sum(qtysold) total_qty_sold
             from   tickit.sales
             group by eventid)) Q, tickit.event E
       where Q.eventid = E.eventid
       and percentile = 1
order by total_price desc;
```

**Creación de un gráfico combinado para comparar ingresos y ventas**

1. Ejecute la consulta.

1. En el área de resultados de la consulta, active **Chart** (Gráfico).

1. En *trace o*, para **Type** (Tipo), elija **Bar** (Barras).

1. En **X** (X), elija *eventname*.

1. Para **Y** (Y), elija *total\$1price*.

   El gráfico de barras se muestra con nombres de eventos a lo largo del eje X.

1. En **Style** (Estilo), elija **Traces** (Seguimientos). 

1. En **Name** (Nombre), ingrese *Revenue* (Ingresos).

1. En **Style** (Estilo), elija **Axes** (Ejes). 

1. En **Titles** (Títulos), elija **Y** (Y) e ingrese *Revenue* (Ingresos).

   La etiqueta *Revenue* (Ingresos) se muestra en el eje Y izquierdo.

1. En **Structure** (Estructura), elija **Traces** (Seguimientos).

1. Elija ![\[Plus sign icon representing an addition or new item action.\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/add-plus.png) **Trace** (Seguimiento).

   Se muestran las opciones de seguimiento 1.

1. En **Type** (Tipo), elija **Line** (De líneas).

1. En **X** (X), elija *eventname*.

1. En **Y** (Y), elija *total\$1qty\$1sold*.

1. En **Axes To Use** (Ejes que se deben utilizar), para **Y Axis** (Eje Y) elija ![\[Plus sign icon representing an addition or new item action.\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/add-plus.png). 

   El **Y Axis** (Eje Y) muestra *Y2*.

1. En **Style** (Estilo), elija **Axes** (Ejes).

1. En **Titles** (Títulos), elija **Y2** (Y2).

1. En **Name** (Nombre), ingrese *Sales* (Ventas).

1. En **Lines** (Líneas), elija *Y:Sales* (Y: ventas).

1. En **Axis Line** (Línea de eje), elija **Show** (Mostrar) y para**Position** (Posición), elija **Right** (Derecha).

![\[Gráfico de ingresos y ventas\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/chart-revenue-sales.png)


## Demostración: Creación de visualizaciones mediante el editor de consultas de Amazon Redshift V2
<a name="query-editor-v2-demo-visualizations"></a>

Para obtener una demostración de cómo crear visualizaciones, vea el siguiente video. 

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/-FYqTIER-6U/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/-FYqTIER-6U)


# Colaboración y uso compartido en equipo
<a name="query-editor-v2-team"></a>

Puede compartir consultas con su equipo. 

Se define un equipo para un conjunto de usuarios que colaboran y comparten recursos del editor de consultas v2. Un administrador puede crear un equipo añadiendo una etiqueta a un rol de IAM. Para obtener más información, consulte [Permisos necesarios para usar del editor de consultas v2](redshift-iam-access-control-identity-based.md#redshift-policy-resources.required-permissions.query-editor-v2). 

# Cómo guardar y buscar consultas
<a name="query-editor-v2-save-queries"></a>

Antes de poder compartir la consulta con su equipo, guarde la consulta. Puede ver y eliminar las consultas guardadas. 

**Para guardar una consulta**

1. Prepare la consulta y elija **Save** (Guardar).

1. Ingrese un título para la consulta.

1. Seleccione **Save**. 

**Para buscar consultas guardadas**

1. Elija **Queries** (Consultas) en el panel de navegación.

1. Puede ver las consultas que son **My queries** (Mis consultas), **Shared by me** (Compartidas por mí) o bien **Shared to my team** (Compartidas con mi equipo). Estas consultas pueden aparecer como consultas individuales o dentro de las carpetas que creó.

# Compartir una consulta
<a name="query-editor-v2-query-share"></a>

Puede compartir las consultas con su equipo. También puede ver el historial de consultas guardadas y administrar versiones de consultas. 

Para compartir una consulta con su equipo, asegúrese de que tiene la etiqueta principal `sqlworkbench-team` con el mismo valor que el resto de los miembros del equipo de su cuenta. Por ejemplo, un administrador podría establecer el valor en `accounting-team` para todos los miembros del departamento de contabilidad. Para ver un ejemplo, consulta [Permisos necesarios para usar del editor de consultas v2](redshift-iam-access-control-identity-based.md#redshift-policy-resources.required-permissions.query-editor-v2).

**Para compartir una consulta con un equipo**

1. Elija **Queries** (Consultas) en el panel de navegación.

1. Abra el menú contextual (clic derecho) de la consulta que desea compartir y elija **Share with my team** (Compartir con mi equipo).

1. Elija el equipo o los equipos con los que quiere compartir la consulta y, a continuación, elija **Save sharing options** (Guardar opciones de uso compartido). 

# Administración de versiones de consultas
<a name="query-editor-v2-query-versions"></a>

Cada vez que guarda una consulta SQL, el editor de consultas v2 la guarda como una nueva versión. Puede explorar versiones de consultas anteriores, guardar una copia de una consulta o restaurar una consulta. 

**Para administrar versiones de consultas**

1. Elija **Queries** (Consultas) en el panel de navegación.

1. Abra el menú contextual (clic derecho) de la consulta con la que desea trabajar.

1. Elija **Version history** (Historial de versiones) para abrir una lista de versiones de la consulta.

1. En la página **Version history** (Historial de versiones), puede hacer lo siguiente:
   + **Revert to Selected** (Volver a la versión seleccionada): vuelva a la versión seleccionada y continúe trabajando con esta versión.
   + **Save selected as** (Guardar versión seleccionada como): cree una nueva consulta en el editor.

# Consulta de una base de datos mediante el editor de consultas de Amazon Redshift v1
<a name="query-editor"></a>

El uso del editor de consultas es el método más sencillo para ejecutar consultas en las bases de datos alojadas en el clúster de Amazon Redshift. Después de crear el clúster, puede ejecutar consultas de forma inmediata mediante el editor de consultas en la consola de Amazon Redshift.

**nota**  
No puede consultar datos en Amazon Redshift Serverless con este editor de consultas original. Utilice en su lugar el editor de consultas V2 de Amazon Redshift.

En febrero de 2021, se implementó un editor de consultas actualizado y se modificaron los permisos de autorización para utilizar el editor de consultas. El editor de consultas nuevo utiliza la API de datos de Amazon Redshift para ejecutar consultas. La política `AmazonRedshiftQueryEditor`, que es una política administrada por AWS de AWS Identity and Access Management (IAM), se actualizó para incluir los permisos necesarios. Si tiene una política de IAM personalizada, asegúrese de actualizarla. Utilice `AmazonRedshiftQueryEditor` como una guía. Entre los cambios en `AmazonRedshiftQueryEditor`, se incluyen los siguientes: 
+ El permiso para administrar los resultados de la instrucción del editor de consultas requiere el usuario propietario de la instrucción. 
+ Se agregó el permiso para utilizar Secrets Manager para conectarse a una base de datos.

Para obtener más información, consulte [Permisos necesarios para usar el editor de consultas de la consola de Amazon Redshift](redshift-iam-access-control-identity-based.md#redshift-policy-resources.required-permissions.query-editor).

Cuando se conecta al clúster desde el editor de consultas nuevo, puede utilizar uno de los dos métodos de autenticación. 

Con el editor de consultas, puede realizar lo siguiente:
+ Ejecutar consultas con instrucciones SQL.
+ Descargar conjuntos de resultados de hasta 100 MB en un archivo de valores separados por comas (CSV).
+ Guardar consultas para su reutilización. No se puede guardar consultas en las regiones de Europa (París), Asia-Pacífico (Osaka), Asia-Pacífico (Hong Kong) o Medio Oriente (Baréin).
+ Ver los detalles del tiempo de ejecución de consultas para tablas definidas por los usuarios.
+ Programar consultas para que se ejecuten en un momento futuro. 
+ Ver un historial de consultas que creó en el editor de consultas. 
+ Ejecutar consultas en clústeres mediante el enrutamiento de VPC mejorado. 

## Consideraciones sobre el editor de consultas
<a name="query-editor-considerations"></a>

Tenga en cuenta lo siguiente acerca de cómo trabajar con consultas cuando utiliza el editor de consultas:
+ La duración máxima de una consulta es de 24 horas. 
+ El tamaño máximo del resultado de la consulta es de 100 MB. Si una llamada devuelve más de 100 MB de datos de respuesta, la llamada termina. 
+ El tiempo máximo de retención de los resultados de la consulta es de 24 horas. 
+ El tamaño máximo de las instrucciones de la consulta es de 100 KB. 
+ El clúster debe estar en una nube virtual privada (VPC) basada en el servicio Amazon VPC. 
+ No puede usar transacciones en el editor de consultas. Para obtener más información acerca de las transacciones, consulte [BEGIN](https://docs.aws.amazon.com/redshift/latest/dg/r_BEGIN.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift.*
+ Puede guardar una consulta con un tamaño máximo de 3000 caracteres. 

# Conexión a un almacenamiento de datos de Amazon Redshift mediante herramientas de cliente SQL
<a name="connecting-to-cluster"></a>

Puede conectarse a almacenamientos de datos de Amazon Redshift desde herramientas de cliente SQL mediante conexiones Java Database Connectivity (JDBC), Python y Open Database Connectivity (ODBC). Amazon Redshift no proporciona ni instala ninguna biblioteca o herramienta de cliente SQL. Para utilizar estas herramientas o bibliotecas para trabajar con datos de los almacenamientos de datos, instálelas en el equipo cliente o la instancia de Amazon EC2. Puede utilizar la mayoría de las herramientas de cliente SQL que admiten los controladores JDBC, Python u ODBC. 

Utilice la lista de secciones al final de este tema para ayudarle a seguir el proceso de configuración del equipo cliente o la instancia de Amazon EC2 para utilizar una conexión JDBC, Python u ODBC. En estos temas, también se tratan las opciones de seguridad relacionadas para la conexión del cliente al servidor. Además, busque información sobre la configuración y la conexión desde herramientas de cliente SQL, como [Amazon Redshift RSQL](https://docs.aws.amazon.com/redshift/latest/mgmt/rsql-query-tool.html). Puede probar estas herramientas si aún no tiene una herramienta de inteligencia empresarial que usar. También puede utilizar esta sección para obtener información sobre cómo conectarse a los datos. Por último, si surge algún problema cuando intente conectarse al almacén de datos, puede revisar la información de solución de problemas para identificar soluciones.

## Recomendaciones para conectarse con las herramientas cliente
<a name="connecting-to-cluster-recommendations"></a>

Si se conecta a su clúster de Redshift mediante una dirección IP, puede provocar un tiempo de inactividad adicional si se produce una interrupción o una pérdida de conexión y el clúster se pone en línea en una nueva zona de disponibilidad (AZ). Sin embargo, si aún desea que su aplicación se conecte a Redshift mediante una dirección IP, use la dirección IP privada asociada al punto de conexión de nube privada virtual (VPC) del clúster. Puede encontrarla en los detalles del clúster en **Red y seguridad**, en la pestaña **Propiedades**. 

**nota**  
Si su aplicación utiliza la dirección IP del nodo principal para acceder al clúster de Redshift, la práctica recomendada es cambiarla para que utilice la URL del punto de conexión del clúster. Para obtener más información, consulte [Configuración de conexiones en Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/configuring-connections.html).

**Topics**
+ [Recomendaciones para conectarse con las herramientas cliente](#connecting-to-cluster-recommendations)
+ [Configuración de conexiones en Amazon Redshift](configuring-connections.md)
+ [Configuración de las opciones de seguridad para las conexiones](connecting-ssl-support.md)
+ [Conexión desde herramientas y código cliente](connecting-via-client-tools.md)
+ [Puede conectarse a Amazon Redshift con un perfil de autenticación.](connecting-with-authentication-profiles.md)
+ [Solución de problemas de conexión en Amazon Redshift](troubleshooting-connections.md)

# Configuración de conexiones en Amazon Redshift
<a name="configuring-connections"></a>

En la siguiente sección, obtenga información sobre cómo configurar conexiones JDBC, Python y ODBC para conectarse al clúster desde las herramientas de cliente SQL. En esta sección se describe cómo configurar conexiones JDBC, Python y ODBC. También describe cómo utilizar la Capa de conexión segura (SSL) y certificados de servidor para cifrar la comunicación entre el cliente y el servidor. 

## Controladores JDBC, Python y ODBC para Amazon Redshift
<a name="connecting-drivers"></a>

Para trabajar con datos en el clúster, debe tener controladores JDBC, Python u ODBC con objeto de establecer una conectividad desde el equipo cliente o instancia. Cifre sus aplicaciones para utilizar operaciones de API de acceso a datos JDBC, Python u ODBC y utilice las herramientas de cliente SQL que admitan JDBC, Python o bien con ODBC.

Amazon Redshift permite descargar los controladores JDBC, Python y ODBC. Estos controladores admiten Soporte. El equipo de Amazon Redshift no prueba los controladores de PostgreSQL ni ofrece asistencia para los mismos. Utilice los controladores específicos de Amazon Redshift cuando se conecte a un clúster de Amazon Redshift. Los controladores de Amazon Redshift tienen las siguientes ventajas:
+ compatibilidad con IAM, SSO y autenticación federada
+ compatibilidad con los nuevos tipos de datos de Amazon Redshift
+ compatibilidad con perfiles de autenticación
+ rendimiento mejorado junto con las mejoras de Amazon Redshift

 Para obtener más información acerca de cómo descargar los controladores JDBC y ODBC y cómo configurar las conexiones a su clúster, consulte [Configuración de una conexión del controlador JDBC versión 2.x para Amazon Redshift](jdbc20-install.md), [Conector de Python de Amazon Redshift](python-redshift-driver.md) y [Configuración de una conexión del controlador ODBC versión 2.x para Amazon Redshift](odbc20-install.md). 

Para obtener más información sobre cómo administrar las identidades de IAM, incluidas las prácticas recomendadas para los roles de IAM, consulte [Administración de identidades y accesos en Amazon Redshift](redshift-iam-authentication-access-control.md).

# Obtención de la cadena de conexión a su clúster
<a name="connecting-connection-string"></a>

Para conectarse al clúster con la herramienta de cliente SQL, debe tener la cadena de conexión de clúster. Puede encontrar la cadena de conexión al clúster en la consola de Amazon Redshift en la página de detalles del clúster.

**Para encontrar la cadena de conexión de un clúster**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon Redshift en [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/).

1. En el menú de navegación, elija **Clusters** (Clústeres) y, a continuación, elija el nombre del clúster de la lista para abrir sus detalles.

1. Las cadenas de conexión de la **URL de JDBC** y la **URL de ODBC** están disponibles, junto con detalles adicionales, en la sección **Información general**. Cada cadena se basa en la región de AWS en la que se ejecuta el clúster. Haga clic en el icono situado junto a la cadena de conexión adecuada para copiarlo.

Para conectarse a un punto de conexión de clúster, puede utilizar la URL del punto de conexión de clúster de una [solicitud de la API DescribeClusters](https://docs.aws.amazon.com/redshift/latest/APIReference/API_DescribeClusters.html). A continuación se muestra un ejemplo de URL de un punto de conexión de clúster.

```
mycluster.cmeaswqeuae.us-east-2.redshift.amazonaws.com
```

Si ha configurado un nombre de dominio personalizado para el clúster, también puede utilizarlo para conectarse a él. Para obtener más información sobre la creación de un nombre de dominio personalizado, consulte [Configuración de un nombre de dominio personalizado](https://docs.aws.amazon.com/redshift/latest/mgmt/connecting-connection-CNAME-connect.html).

**nota**  
Cuando se conecte, no utilice la dirección IP de un nodo del clúster ni la dirección IP del punto de conexión de VPC. Utilice siempre el punto de conexión de Redshift para evitar una interrupción innecesaria. La única excepción a utilizar la URL del punto de conexión es cuando se utiliza un nombre de dominio personalizado. Para obtener más información, consulte [Uso de un nombre de dominio personalizado para las conexiones de cliente](https://docs.aws.amazon.com/redshift/latest/mgmt/connecting-connection-CNAME.html).

# Configuración de una conexión del controlador JDBC versión 2.x para Amazon Redshift
<a name="jdbc20-install"></a>

Puede utilizar una conexión del controlador JDBC versión 2.x para conectarse al clúster de Amazon Redshift desde distintas herramientas de cliente SQL de terceros. El conector JDBC de Amazon Redshift proporciona una solución de código abierto. Puede examinar el código fuente, solicitar mejoras, informar problemas y realizar aportaciones. 

Para obtener la información más reciente acerca de los cambios del controlador JDBC, consulte [Registro de cambios](https://github.com/aws/amazon-redshift-jdbc-driver/blob/master/CHANGELOG.md).

De forma predeterminada, el controlador JDBC de Amazon Redshift está configurado para usar keepalives de TCP y, de este modo, evitar que se agote el tiempo de espera en las conexiones. Puede especificar cuándo comienza el controlador a enviar paquetes keepalive o desactivar la característica mediante la configuración de las propiedades correspondientes en la URL de conexión. Para obtener más información acerca de la sintaxis de la URL de conexión, consulte [Creación de la URL de conexión](jdbc20-build-connection-url.md).


| Propiedad | Descripción | 
| --- | --- | 
|  `TCPKeepAlive`  |  Para desactivar keepalives de TCP, establezca esta propiedad en `FALSE`.  | 

**Topics**
+ [Descargar el controlador JDBC versión 2.1 de Amazon Redshift](jdbc20-download-driver.md)
+ [Instalación del controlador JDBC versión 2.2 de Amazon Redshift](jdbc20-install-driver.md)
+ [Obtención de la URL de JDBC](jdbc20-obtain-url.md)
+ [Creación de la URL de conexión](jdbc20-build-connection-url.md)
+ [Configuración de una conexión JDBC con Apache Maven](configure-jdbc20-connection-with-maven.md)
+ [Configuración de la autenticación y SSL](jdbc20-configure-authentication-ssl.md)
+ [Configuración del registro](jdbc20-configuring-logging.md)
+ [Conversiones de tipos de datos](jdbc20-data-type-mapping.md)
+ [Uso de la compatibilidad con instrucciones preparadas](jdbc20-prepared-statement-support.md)
+ [Diferencias entre las versiones 2.2 y 1.x del controlador JDBC](jdbc20-jdbc10-driver-differences.md)
+ [Creación de archivos de inicialización (.ini) para el controlador JDBC versión 2.x](jdbc20-ini-file.md)
+ [Opciones de configuración del controlador JDBC versión 2.x](jdbc20-configuration-options.md)
+ [Versiones anteriores del controlador JDBC versión 2.x](jdbc20-previous-driver-version-20.md)

# Descargar el controlador JDBC versión 2.1 de Amazon Redshift
<a name="jdbc20-download-driver"></a>

**nota**  
El controlador JDBC 2.x de Amazon Redshift no está diseñado para ser seguro para subprocesos. Dos o más subprocesos que intentan utilizar la misma conexión simultáneamente pueden provocar interbloqueos, errores, resultados incorrectos u otros comportamientos inesperados.  
Si tiene una aplicación multiproceso, le recomendamos que sincronice el acceso al controlador para evitar el acceso simultáneo.

Amazon Redshift ofrece controladores para herramientas compatibles con la API JDBC 4.2. El nombre de clase para este controlador es `com.amazon.redshift.Driver`.

Para obtener información detallada acerca de cómo instalar el controlador JDBC, referenciar las bibliotecas del controlador JDBC y registrar la clase de controlador, consulte los siguientes temas. 

En cada ordenador en el que utilice el controlador JDBC versión 2.x de Amazon Redshift, asegúrese de que está instalado el Entorno de ejecución de Java (JRE) 8.0. 

Si utiliza el controlador JDBC de Amazon Redshift para la autenticación de bases de datos, debe asegurarse de tener la versión 1.11.118 o posterior de AWS SDK para Java en la ruta de clases de Java. Si no tiene AWS SDK para Java instalado, descargue el archivo ZIP con el controlador compatible con JDBC 4.2 y las bibliotecas dependientes del controlador para AWS SDK:
+ [Versión 2.x del controlador compatible con JDBC 4.2 y bibliotecas dependientes del controlador con AWS SDK](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.5/redshift-jdbc42-2.2.5.zip) 

  Este archivo ZIP contiene la versión 2.x del controlador que admite JDBC 4.2 y los archivos de biblioteca dependientes del controlador de AWS SDK para Java 1.x. Descomprima los archivos jar dependientes en la misma ubicación que el controlador JDBC. Solo el controlador JDBC debe estar en CLASSPATH.

  Este archivo ZIP no incluye el AWS SDK para Java 1.x completo. No obstante, incluye las bibliotecas dependientes del controlador de AWS SDK para Java 1.x que son necesarias para la autenticación de la base de datos de AWS Identity and Access Management (IAM).

  Utilice el controlador JDBC de Amazon Redshift con el AWS SDK necesario para la autenticación de la base de datos de IAM.

  Para instalar el AWS SDK para Java 1.x completo, consulte [AWS SDK para Java 1.x](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/welcome.html) en la *Guía para desarrolladores de AWS SDK para Java*. 
+ [Versión 2.x del controlador compatible con JDBC 4.2 (sin AWS SDK)](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.5/redshift-jdbc42-2.2.5.jar) 

Revise la licencia de software y el archivo de registro de cambios del controlador JDBC versión 2.x: 
+ [Licencia del controlador JDBC versión 2.x](https://github.com/aws/amazon-redshift-jdbc-driver/blob/master/LICENSE) 
+ [Registro de cambios del controlador JDBC versión 2.x](https://github.com/aws/amazon-redshift-jdbc-driver/blob/master/CHANGELOG.md)

Los controladores JDBC versión 1.2.27.1051 y posterior admiten los procedimientos almacenados de Amazon Redshift. Para obtener más información, consulte [Creación de procedimientos almacenados en Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/stored-procedure-overview.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*. 

# Instalación del controlador JDBC versión 2.2 de Amazon Redshift
<a name="jdbc20-install-driver"></a>

Para instalar la versión 2.x del controlador que admite JDBC 4.2 de Amazon Redshift y las bibliotecas dependientes del controlador para AWS SDK, extraiga los archivos del archivo ZIP al directorio de su elección. 

Para instalar la versión 2.x del controlador que admite JDBC 4.2 de Amazon Redshift (sin el AWS SDK), copie el archivo JAR al directorio de su elección.

Para acceder a un almacén de datos de Amazon Redshift mediante el controlador JDBC de Amazon Redshift, debe realizar la configuración tal como se describe a continuación.

**Topics**
+ [Referencia a las bibliotecas de controladores JDBC](jdbc20-driver-libraries.md)
+ [Registro de la clase de controlador](jdbc20-register-driver-class.md)

# Referencia a las bibliotecas de controladores JDBC
<a name="jdbc20-driver-libraries"></a>

La aplicación JDBC o el código Java que utiliza para conectarse a los datos debe obtener acceso a los archivos JAR del controlador. En la aplicación o el código, especifique todos los archivos JAR que haya extraído del archivo ZIP. 

## Uso del controlador en una aplicación JDBC
<a name="jdbc20-use-driver-jdbc-app"></a>

Por lo general, las aplicaciones de JDBC proporcionan un conjunto de opciones de configuración que permiten agregar una lista de archivos de bibliotecas de controladores. Utilice las opciones proporcionadas para incluir todos los archivos JAR del archivo ZIP como parte de la configuración del controlador en la aplicación. Para obtener más información, consulte la documentación de su aplicación de JDBC. 

## Uso del controlador en código Java
<a name="jdbc20-use-driver-java-code"></a>

Debe incluir todos los archivos de la biblioteca de controladores en la ruta de clase. Esta es la ruta en la que Java Runtime Environment busca las clases y otros archivos de recursos. Para obtener más información, consulte la documentación de Java SE correspondiente con el fin de establecer la ruta de clase para su sistema operativo. 
+ Windows: [https://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html](https://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html)
+ Linux y Solaris: [https://docs.oracle.com/javase/7/docs/technotes/tools/solaris/classpath.html](https://docs.oracle.com/javase/7/docs/technotes/tools/solaris/classpath.html)
+ macOS: la ruta de clases predeterminada de macOS es el directorio en el que está instalado el controlador JDBC.

# Registro de la clase de controlador
<a name="jdbc20-register-driver-class"></a>

Asegúrese de registrar la clase adecuada para su aplicación. Utilice las siguientes clases para conectar el controlador JDBC de Amazon Redshift a los almacenes de datos de Amazon Redshift:
+ `Driver` Las clases amplían `java.sql.Driver`.
+ Las clases `DataSource` amplían `javax.sql.DataSource` y `javax.sql.ConnectionPoolDataSource`.

El controlador admite los siguientes nombres de clase completamente calificados que son independientes a la versión de JDBC:
+ `com.amazon.redshift.jdbc.Driver`
+ `com.amazon.redshift.jdbc.DataSource`

En el siguiente ejemplo, se muestra cómo utilizar la clase DriverManager para establecer una conexión para JDBC 4.2.

```
            private static Connection connectViaDM() throws Exception
{
Connection connection = null;
connection = DriverManager.getConnection(CONNECTION_URL);
return connection;
}
```

En el siguiente ejemplo, se muestra cómo utilizar la clase `DataSource` para establecer una conexión.

```
 private static Connection connectViaDS() throws Exception
{
Connection connection = null;
11
Amazon Redshift JDBC Driver Installation and Configuration Guide
DataSource ds = new com.amazon.redshift.jdbc.DataSource
();
ds.setURL(CONNECTION_URL);
connection = ds.getConnection();
return connection;
}
```

# Obtención de la URL de JDBC
<a name="jdbc20-obtain-url"></a>

Para poder conectarse a su clúster de Amazon Redshift desde una herramienta de cliente SQL, necesita saber la URL de JDBC de su clúster. La URL de JDBC tiene el siguiente formato: `jdbc:redshift://endpoint:port/database`.

Los campos del formato anterior presentan los siguientes valores.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/jdbc20-obtain-url.html)

A continuación, se muestra un ejemplo de la URL de un JDBC: `jdbc:redshift://examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com:5439/dev` 

Si sus valores URL contienen alguno de los siguientes caracteres reservados de URI, los valores deben estar codificados en URL:
+  ; 
+  \$1 
+  \$1 
+  \$1 
+  [ 
+  ] 
+  & 
+  = 
+  ? 
+  un espacio vacío 

Por ejemplo, si el valor de `PWD` es `password:password`, una URL de conexión que utilice ese valor sería como la siguiente:

`jdbc:redshift://redshift.company.us-west-1.redshift.amazonaws.com:9000/dev;UID=amazon;PWD=password%3Apassword`

Para obtener información acerca de cómo crear su propia conexión JDBC, consulte [Obtención de la cadena de conexión a su clúster](connecting-connection-string.md). 

Si el equipo cliente no puede conectarse a la base de datos, puede solucionar los posibles problemas. Para obtener más información, consulte [Solución de problemas de conexión en Amazon Redshift](troubleshooting-connections.md). 

# Creación de la URL de conexión
<a name="jdbc20-build-connection-url"></a>

Utilice la URL de conexión para proporcionar información de conexión al almacén de datos al que se accede. A continuación, se muestra el formato de la URL de conexión del controlador JDBC versión 2.x de Amazon Redshift. A continuación, [Host] es el punto de conexión del servidor de Amazon Redshift y [Port] es el número del puerto del protocolo de control de transmisión (TCP) que utiliza el servidor para atender las solicitudes de los clientes.

```
jdbc:redshift://[Host]:[Port]
```

A continuación, se muestra el formato de una URL de conexión que especifica algunos parámetros de configuración opcionales.

```
jdbc:redshift://[Host]:[Port]/[database];[Property1]=[Value];
[Property2]=[Value];
```

Si sus valores URL contienen alguno de los siguientes caracteres reservados de URI, los valores deben estar codificados en URL:
+  ; 
+  \$1 
+  \$1 
+  \$1 
+  [ 
+  ] 
+  & 
+  = 
+  ? 
+  un espacio vacío 

Por ejemplo, si el valor de `PWD` es `password:password`, una URL de conexión que utilice ese valor sería como la siguiente:

`jdbc:redshift://redshift.company.us-west-1.redshift.amazonaws.com:9000/dev;UID=amazon;PWD=password%3Apassword`

Por ejemplo, imagine que desea conectarse al puerto 9000 en un clúster de Amazon Redshift en la región EE. UU. Oeste (Norte de California) en AWS. Además, desea acceder a la base de datos denominada `dev` y autenticar la conexión mediante un nombre de usuario de base de datos y una contraseña. En este caso, se utiliza la siguiente URL de conexión.

```
jdbc:redshift://redshift.company.us-west-1.redshift.amazonaws.com:9000/dev;UID=amazon;PWD=amazon
```

Puede utilizar los siguientes caracteres para separar las opciones de configuración del resto de la cadena de URL:
+ ;
+ ?

Por ejemplo, las siguientes cadenas de URL son equivalentes:

```
jdbc:redshift://my_host:5439/dev;ssl=true;defaultRowFetchSize=100
```

```
jdbc:redshift://my_host:5439/dev?ssl=true;defaultRowFetchSize=100
```

Puede utilizar los siguientes caracteres para separar las opciones de configuración unas de otras en la cadena de URL:
+ ;
+ &

Por ejemplo, las siguientes cadenas de URL son equivalentes:

```
jdbc:redshift://my_host:5439/dev;ssl=true;defaultRowFetchSize=100
```

```
jdbc:redshift://my_host:5439/dev;ssl=true&defaultRowFetchSize=100
```

En el siguiente ejemplo de URL, se especifica un nivel de registro igual a 6 y la ruta a los registros.

```
jdbc:redshift://redshift.amazonaws.com:5439/dev;DSILogLevel=6;LogPath=/home/user/logs;
```

No duplique las propiedades en la URL de conexión.

Para obtener una lista completa de las opciones de configuración que se pueden especificar, consulte [Opciones de configuración del controlador JDBC versión 2.x](jdbc20-configuration-options.md). 

**nota**  
Cuando se conecte, no utilice la dirección IP de un nodo del clúster ni la dirección IP del punto de conexión de VPC. Utilice siempre el punto de conexión de Redshift para evitar una interrupción innecesaria. La única excepción a utilizar la URL del punto de conexión es cuando se utiliza un nombre de dominio personalizado. Para obtener más información, consulte [Uso de un nombre de dominio personalizado para las conexiones de cliente](https://docs.aws.amazon.com/redshift/latest/mgmt/connecting-connection-CNAME.html).

# Configuración de una conexión JDBC con Apache Maven
<a name="configure-jdbc20-connection-with-maven"></a>

Apache Maven es una herramienta de software para la comprensión y administración de proyectos. AWS SDK para Java es compatible con los proyectos de Apache Maven. Para obtener más información, consulte [Uso del SDK con Apache Maven](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/setup-project-maven.html) en la *Guía para desarrolladores de AWS SDK para Java*. 

Si usa Apache Maven, puede configurar y crear sus proyectos de forma que utilicen un controlador JDBC de Amazon Redshift para conectarse al clúster de Amazon Redshift. Para hacerlo, agregue el controlador JDBC como dependencia en el archivo `pom.xml` de su proyecto. Si usa Maven para configurar su proyecto y desea usar una conexión JDBC, siga los pasos que se indican en la siguiente sección. 

**Pasos para configurar el controlador JDBC como una dependencia de Maven**

1. Agregue el repositorio de Amazon o el de Maven Central a la sección de repositorios de su archivo `pom.xml`.
**nota**  
La URL del siguiente código devuelve un error si se utiliza en un navegador. Utilice esta URL solo en el contexto de un proyecto Maven.

   Para conectarse mediante la capa de conexión segura (SSL), agregue el siguiente repositorio al archivo `pom.xml`.

   ```
   <repositories>
       <repository>
         <id>redshift</id>
         <url>https://s3.amazonaws.com/redshift-maven-repository/release</url>
       </repository>
   </repositories>
   ```

   En el caso de un repositorio de Maven Central, agregue lo siguiente al archivo `pom.xml`.

   ```
   <repositories>
       <repository>
         <id>redshift</id>
         <url>https://repo1.maven.org/maven2</url>
       </repository>
   </repositories>
   ```

1. Declare la versión del controlador que desea usar en la sección de dependencias de su archivo `pom.xml`.

   Amazon Redshift ofrece controladores para herramientas compatibles con la API JDBC 4.2. Para obtener información acerca de la funcionalidad admitida por estos controladores, consulte [Descargar el controlador JDBC versión 2.1 de Amazon Redshift](jdbc20-download-driver.md). 

   En el siguiente ejemplo, reemplace `driver-version` por la versión de su controlador; por ejemplo, `2.1.0.1`. En el caso de un controlador compatible con JDBC 4.2, utilice lo siguiente. 

   ```
   <dependency>
      <groupId>com.amazon.redshift</groupId>
      <artifactId>redshift-jdbc42</artifactId>
      <version>driver-version</version>
   </dependency>
   ```

   El nombre de clase para este controlador es `com.amazon.redshift.Driver`.

Los controladores Maven de Amazon Redshift necesitan contar con las siguientes dependencias opcionales cuando se utiliza la autenticación de base de datos de IAM. 

```
<dependency>
      <groupId>com.amazonaws</groupId>
      <artifactId>aws-java-sdk-core</artifactId>
      <version>1.12.23</version>
      <scope>runtime</scope>
      <optional>true</optional>
</dependency>
    <dependency>
      <groupId>com.amazonaws</groupId>
      <artifactId>aws-java-sdk-redshift</artifactId>
      <version>1.12.23</version>
      <scope>runtime</scope>
      <optional>true</optional>
</dependency>
<dependency>
      <groupId>com.amazonaws</groupId>
      <artifactId>aws-java-sdk-sts</artifactId>
      <version>1.12.23</version>
      <scope>runtime</scope>
      <optional>true</optional>
</dependency>
```

Para actualizar o cambiar el controlador JDBC de Amazon Redshift a la última versión, modifique primero la sección de versión de la dependencia a la última versión del controlador. Luego limpie su proyecto con el Maven Clean Plugin, como se indica a continuación. 

```
mvn clean
```

# Configuración de la autenticación y SSL
<a name="jdbc20-configure-authentication-ssl"></a>

Con el fin de proteger los datos contra accesos no autorizados, los almacenes de datos de Amazon Redshift requieren la autenticación de todas las conexiones mediante credenciales de usuario. Algunos almacenes de datos también requieren que las conexiones se realicen a través del protocolo de capa de conexión segura (SSL), ya sea con autenticación unidireccional o sin ella.

El controlador JDBC Versión 2.x de Amazon Redshift proporciona compatibilidad total con estos protocolos de autenticación. 

La versión de SSL que admite el controlador depende de la versión de JVM que se utilice. Para obtener información acerca de las versiones de SSL compatibles con cada versión de Java, consulte [Diagnóstico de TLS, SSL y HTTPS](https://blogs.oracle.com/java-platform-group/diagnosing-tls,-ssl,-and-https) en el Blog de Administración de productos de Java Platform Group. 

La versión de SSL utilizada para la conexión es la versión más alta que admiten tanto el controlador como el servidor, la cual se determina en el momento de la conexión.

Configure el controlador JDBC de Amazon Redshift versión 2.x para autenticar la conexión de acuerdo con los requisitos de seguridad del servidor de Redshift al que se está conectando. 

Para autenticar la conexión, proporcione siempre su nombre de usuario y contraseña de Redshift. En función de si SSL está habilitado y requerido en el servidor, es posible que también necesite configurar el controlador para que se conecte a través de SSL. También podría utilizar la autenticación SSL unidireccional para que el cliente (el propio controlador) verifique la identidad del servidor. 

Debe proporcionar la información de configuración al controlador en la URL de conexión. Para obtener más información acerca de la sintaxis de la URL de conexión, consulte [Creación de la URL de conexión](jdbc20-build-connection-url.md). 

*SSL* referencia TLS o SSL, es decir, Transport Layer Security y capa de conexión segura, respectivamente. El controlador es compatible con las versiones estándar del sector de TLS o SSL. 

## Configuración de la autenticación de IAM
<a name="jdbc20-configure-iam-authentication"></a>

Si se conecta a un servidor de Amazon Redshift mediante la autenticación de IAM, establezca las siguientes propiedades como parte de la cadena de conexión del origen de datos. 

 Para obtener más información acerca de la autenticación de IAM, consulte [Administración de identidades y accesos en Amazon Redshift](redshift-iam-authentication-access-control.md).

Para usar la autenticación de IAM, utilice uno de los siguientes formatos de cadena de conexión:


| Cadena de conexión | Descripción | 
| --- | --- | 
|  `jdbc:redshift:iam:// [host]:[port]/[db]`  |  Una cadena de conexión normal. El controlador infiere el ClusterID y la región del alojamiento.  | 
|  `jdbc:redshift:iam:// [cluster-id]: [region]/[db]`  |  A partir del ClusterID y de la región, el controlador recupera la información del alojamiento.  | 
|  `jdbc:redshift:iam:// [host]/[db]`  |  El controlador utiliza el puerto 5439 de forma predeterminada e infiere el ClusterID y la región del alojamiento. Según el puerto que haya seleccionado al crear, modificar o migrar el clúster, se permitirá el acceso al puerto seleccionado.   | 

## Especificación de perfiles
<a name="jdbc20-aws-credentials-profiles"></a>

Si utiliza la autenticación de IAM, puede especificar cualquier otra propiedad de conexión necesaria u opcional en un nombre de perfil. De este modo, puede evitar incluir determinada información directamente en la cadena de conexión. El nombre del perfil se especifica en la cadena de conexión mediante la propiedad Profile (Perfil). 

Se pueden agregar perfiles al archivo de credenciales de AWS. La ubicación predeterminada de este archivo es : `~/.aws/credentials` 

Puede cambiar el valor predeterminado si configura la ruta en la siguiente variable de entorno: `AWS_CREDENTIAL_PROFILES_FILE` 

 Para obtener más información acerca de los perfiles, consulte [Uso de las credenciales de AWS](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/credentials.html) en la *AWS SDK para Java*. 

## Uso de credenciales del perfil de instancias
<a name="jdbc20-instance-profile-credentials"></a>

Si ejecuta una aplicación en una instancia de Amazon EC2 que está asociada a un rol de IAM, puede conectarse mediante las credenciales del perfil de instancias. 

Para ello, utilice uno de los formatos de cadena de conexión de IAM que figuran en la tabla precedente y establezca la propiedad de conexión dbuser en el nombre de usuario de Amazon Redshift al que se conectará. 

Para obtener más información acerca de los perfiles de instancias, consulte [Administración de accesos](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html) en la *Guía del usuario de IAM*. 

## Uso de proveedores de credenciales
<a name="jdbc20-aws-credentials-provider"></a>

Además, el controlador es compatible con los complementos de proveedores de credenciales correspondientes a los siguientes servicios: 
+ AWS IAM Identity Center
+ Active Directory Federation Service (ADFS)
+ Servicio de JSON Web Tokens (JWT)
+ Servicio de Microsoft Azure Active Directory (AD) y navegador del servicio de Microsoft Azure Active Directory (AD)
+ Servicio de Okta
+ Servicio de PingFederate 
+ Navegador de SAML para servicios de SAML, tales como Okta, Ping o ADFS

Si utiliza uno de estos servicios, la URL de conexión debe especificar las siguientes propiedades: 
+ **Plugin\$1Name:** la ruta de clase completa para la clase de complemento del proveedor de credenciales.
+ **IdP\$1Host:** el alojamiento del servicio que se utiliza para la autenticación en Amazon Redshift.
+ **IdP\$1Port:** el puerto en el que se atiende el alojamiento para el servicio de autenticación. No es necesario para el caso de Okta.
+ **Usuario**: el nombre de usuario para el servidor idp\$1host.
+ **Contraseña**: la contraseña asociada al nombre de usuario idp\$1host.
+ **DbUser**: el nombre de usuario de Amazon Redshift con el cual se conecta.
+ **SSL\$1insecure:** indica si se debe verificar el certificado del servidor IDP.
+ **Client\$1ID**: el ID de cliente asociado al nombre de usuario en el portal de Azure AD. Se usa únicamente para Azure AD.
+ **Client\$1Secret:** el secreto del cliente asociado al ID del cliente en el portal de Azure AD. Se usa únicamente para Azure AD.
+ **IdP\$1Tenant:** el ID de inquilino de Azure AD para su aplicación de Amazon Redshift. Se usa únicamente para Azure AD.
+ **App\$1ID:** el ID de la aplicación Okta para su aplicación de Amazon Redshift. Se usa únicamente para Okta.
+ **App\$1Name:** el nombre de la aplicación Okta opcional para su aplicación de Amazon Redshift. Se usa únicamente para Okta.
+ **Partner\$1SPID:** el valor opcional del SPID (ID del proveedor de servicios) del socio. Se usa únicamente para PingFederate.
+ **Idc\$1Region**: la Región de AWS donde se encuentra la instancia de AWS IAM Identity Center. Solo se usa para AWS IAM Identity Center.
+ **Isuser\$1Url**: el punto de conexión de la instancia del servidor de AWS IAM Identity Center. Solo se usa para AWS IAM Identity Center.

Si utiliza un complemento del navegador para uno de estos servicios, la URL de conexión también puede incluir lo siguiente: 
+ **Login\$1URL:** la dirección URL del recurso en el sitio web del proveedor de identidad cuando se utiliza el lenguaje de marcado para confirmaciones de seguridad (SAML) o los servicios Azure AD a través de un complemento del navegador. Este parámetro es obligatorio si utiliza un complemento del navegador.
+ **Listen\$1Port**: el puerto que utiliza el controlador para obtener la respuesta SAML del proveedor de identidades cuando se utilizan los servicios SAML, Azure AD o AWS IAM Identity Center a través de un complemento del navegador.
+ **IdP\$1Response\$1Timeout**: el periodo de tiempo, en segundos, que espera el controlador para obtener la respuesta SAML del proveedor de identidades cuando se usan los servicios SAML, Azure AD o AWS IAM Identity Center a través de un complemento del navegador.

Para obtener más información acerca de las propiedades adicionales de la cadena de conexión, consulte [Opciones de configuración del controlador JDBC versión 2.x](jdbc20-configuration-options.md). 

# Uso de solo el nombre de usuario y la contraseña
<a name="jdbc20-authentication-username-password"></a>

Si el servidor al que se conecta no utiliza SSL, solo tendrá que proporcionar su nombre de usuario de Redshift y contraseña para autenticar la conexión. 

**Para configurar la autenticación mediante solo su nombre de usuario de Redshift y contraseña**

1. Establezca la propiedad `UID` a su nombre de usuario de Redshift para acceder al servidor de Amazon Redshift.

1. Establezca la propiedad PWD a la contraseña correspondiente a su nombre de usuario de Redshift.

# Uso de SSL sin verificación de identidad
<a name="jdbc20-use-ssl-without-identity-verification"></a>

Si el servidor al que se conecta utiliza SSL pero no requiere verificación de identidad, entonces se puede configurar el controlador para que use una fábrica de SSL sin validación. 

**Para configurar una conexión SSL sin verificación de identidad**

1. Establezca la propiedad `UID` a su nombre de usuario de Redshift para acceder al servidor de Amazon Redshift.

1. Establezca la propiedad `PWD` a la contraseña correspondiente a su nombre de usuario de Redshift.

1. Establezca la propiedad `SSLFactory` en `com.amazon.redshift.ssl.NonValidatingFactory`.

# Uso de la autenticación SSL unidireccional
<a name="jdbc20-use-one-way-SSL-authentication"></a>

Si el servidor al que se conecta utiliza SSL y dispone de un certificado, entonces se puede configurar el controlador de modo que verifique la identidad del servidor mediante una autenticación unidireccional. 

La autenticación unidireccional requiere un certificado SSL firmado y de confianza que permita verificar la identidad del servidor. Se puede configurar el controlador para que utilice un certificado específico u obtenga acceso a un TrustStore que contenga el certificado pertinente. Si no se especifica un certificado o TrustStore, el controlador utiliza el TrustStore de Java predeterminado (por lo general, `jssecacerts` o `cacerts`). 

**Para configurar la autenticación SSL unidireccional**

1. Establezca la propiedad UID a su nombre de usuario de Redshift para acceder al servidor de Amazon Redshift.

1. Establezca la propiedad PWD a la contraseña correspondiente a su nombre de usuario de Redshift.

1. Establezca la propiedad SSL en “true” (verdadera).

1. Establezca la propiedad SSLRootCert en la ubicación del certificado de entidad de certificación raíz.

1. Si no utiliza uno de los TrustStores de Java predeterminados, realice una de las siguientes acciones:
   + Si desea especificar un certificado de servidor, establezca la propiedad SSLRootCert en la ruta completa del certificado.
   + Para especificar un TrustStore, realice lo siguiente:

     1. Utilice el programa keytool para agregar el certificado del servidor al TrustStore que desea usar.

     1. Especifique el TrustStore y la contraseña que se utilizará cuando se inicie la aplicación Java con el controlador. Por ejemplo:

        ```
        -Djavax.net.ssl.trustStore=[TrustStoreName]
        -Djavax.net.ssl.trustStorePassword=[TrustStorePassword]
        -Djavax.net.ssl.trustStoreType=[TrustStoreType]
        ```

1. Elija una:
   + Para validar el certificado, establezca la propiedad SSLMode en verify-ca.
   + Para validar el certificado y verificar el nombre de alojamiento que aparece en él, establezca la propiedad SSLMode en verify-full.

# Configuración del registro
<a name="jdbc20-configuring-logging"></a>

Puede activar el registro en el controlador para que sea de ayuda en el diagnóstico de problemas.

Puede registrar la información del controlador mediante los siguientes métodos:
+ Para guardar la información registrada en archivos .log, consulte [Uso de archivos de registros](jdbc20-using-log-files.md).
+ Para enviar la información registrada a LogStream o LogWriter que se especifica en DriverManager, consulte [Uso de LogStream o LogWriter](jdbc20-logstream-option.md). 

Debe proporcionar la información de configuración al controlador en la URL de conexión. Para obtener más información acerca de la sintaxis de la URL de conexión, consulte [Creación de la URL de conexión](jdbc20-build-connection-url.md).

# Uso de archivos de registros
<a name="jdbc20-using-log-files"></a>

Solo active el registro durante tiempo suficiente para capturar un problema. El registro reduce el rendimiento y puede consumir una gran cantidad de espacio en el disco. 

Establezca la clave LogLevel en su URL de conexión para activar el registro y especificar la cantidad de detalles incluidos en los archivos de registros. En la siguiente tabla, se muestran los niveles de registro proporcionados por el controlador JDBC versión 2.x de Amazon Redshift, ordenados desde el menos detallado hasta el más detallado. 


| Valor de LogLevel | Descripción | 
| --- | --- | 
|  1  |  Se registran eventos de errores graves que harán que el controlador se anule.  | 
|  2  |  Se registran eventos de errores que podrían hacer que el controlador siga ejecutándose.  | 
|  3  |  Se registran eventos que podrían dar lugar a un error si no se toman medidas al respecto. Este nivel de registro y los niveles superiores también registran las consultas del usuario.  | 
|  4  |  Se registra información general que describe el progreso del controlador.  | 
|  5  |  Se registra información detallada útil para depurar el controlador.  | 
|  6  |  Se registra toda la actividad del controlador.  | 

**Para configurar el registro que utiliza los archivos de registros**

1. Establezca la propiedad LogLevel en el nivel de información que desee incluir en los archivos de registros.

1. Establezca la propiedad LogPath en la ruta completa de la carpeta en la que desea guardar los archivos de registros. 

   Por ejemplo, la siguiente URL de conexión habilita el nivel de registro 3 y guarda los archivos de registro en la carpeta C:\$1temp: `jdbc:redshift://redshift.company.us-west- 1.redshift.amazonaws.com:9000/Default;DSILogLevel=3;LogPath=C:\temp`

1. Para asegurarse de que la nueva configuración surta efecto, reinicie su aplicación JDBC y vuelva a conectarse al servidor.

   El controlador JDBC de Amazon Redshift produce los siguientes archivos de registros en la ubicación que se especifica en la propiedad LogPath:
   +  El archivo redshift\$1jdbc.log que registra la actividad del controlador y no es específica de una conexión.
   + El archivo redshift\$1jdbc\$1connection\$1[Number].log correspondiente a cada conexión realizada a la base de datos, en el que [Number] es un número que identifica a cada archivo de registro. Este archivo registra la actividad del controlador específica de la conexión.

Si el valor de LogPath no es válido, el controlador envía la información registrada a la secuencia de salida estándar (`System.out`)

# Uso de LogStream o LogWriter
<a name="jdbc20-logstream-option"></a>

Solo active el registro durante tiempo suficiente para capturar un problema. El registro reduce el rendimiento y puede consumir una gran cantidad de espacio en el disco. 

Establezca la clave LogLevel en su URL de conexión para activar el registro y especificar la cantidad de detalles enviados a LogStream o LogWriter que se indican en DriverManager. 

**Para activar el registro que utiliza el LogStream o LogWriter:**

1. Para configurar el controlador de modo que registre información general que describa el progreso del controlador, establezca la propiedad LogLevel en 1 o INFO.

1. Para asegurarse de que la nueva configuración surta efecto, reinicie su aplicación JDBC y vuelva a conectarse al servidor.

# Conversiones de tipos de datos
<a name="jdbc20-data-type-mapping"></a>

El controlador JDBC versión 2.x de Amazon Redshift admite varios formatos de datos frecuentes, por lo que permite la conversión entre los tipos de datos de Amazon Redshift, SQL y Java.

En la siguiente tabla, se enumeran los mapeos de tipos de datos admitidos.


| Tipo de Amazon Redshift | Tipo de SQL | Tipo de Java | 
| --- | --- | --- | 
|  BIGINT  |  SQL\$1BIGINT  |  Largo  | 
|  BOOLEANO  |  SQL\$1BIT  |  Booleano  | 
|  CHAR  |  SQL\$1CHAR  |  Cadena  | 
|  DATE  |  SQL\$1TYPE\$1DATE  |  java.sql.Date  | 
|  DECIMAL  |  SQL\$1NUMERIC  |  BigDecimal  | 
|  DOUBLE PRECISION  |  SQL\$1DOUBLE  |  Double  | 
|  GEOMETRY  |  SQL\$1 LONGVARBINARY  |  byte[]  | 
|  INTEGER  |  SQL\$1INTEGER  |  Entero  | 
|  OID  |  SQL\$1BIGINT  |  Largo  | 
|  SUPER  |  SQL\$1LONGVARCHAR  |  Cadena  | 
|  REAL  |  SQL\$1REAL  |  Flotante  | 
|  SMALLINT  |  SQL\$1SMALLINT  |  Short  | 
|  TEXT  |  SQL\$1VARCHAR  |  Cadena  | 
|  TIME  |  SQL\$1TYPE\$1TIME  |  java.sql.time  | 
|  TIMETZ  |  SQL\$1TYPE\$1TIME  |  java.sql.time  | 
|  TIMESTAMP  |  SQL\$1TYPE\$1 TIMESTAMP  |  java.sql.Timestamp  | 
|  TIMESTAMPTZ  |  SQL\$1TYPE\$1 TIMESTAMP  |  java.sql.Timestamp  | 
|  VARCHAR  |  SQL\$1VARCHAR  |  Cadena  | 

# Uso de la compatibilidad con instrucciones preparadas
<a name="jdbc20-prepared-statement-support"></a>

El controlador JDBC de Amazon Redshift admite instrucciones preparadas. Puede utilizar instrucciones preparadas para mejorar el rendimiento de las consultas basadas en parámetros que deban ejecutarse varias veces durante la misma conexión.

Una *instrucción preparada* es una instrucción SQL que se compila en el lado del servidor pero que no se ejecuta de inmediato. La instrucción compilada se almacena en el servidor como un objeto PreparedStatement hasta que se cierra dicho objeto o la conexión. Mientras exista ese objeto, se puede ejecutar la instrucción preparada tantas veces como sea necesario con distintos valores de parámetros, sin necesidad de volver a compilar la instrucción. Gracias a esta reducción de la sobrecarga, el conjunto de consultas se ejecuta con mayor rapidez.

Para obtener más información acerca de las instrucciones preparadas, consulte “Uso de instrucciones preparadas” en el [Tutorial sobre conocimientos básicos de JDBC de Oracle](https://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html).

Puede preparar una instrucción que contenga varias consultas. Por ejemplo, la siguiente instrucción preparada contiene dos consultas INSERT:

```
PreparedStatement pstmt = conn.prepareStatement("INSERT INTO
MyTable VALUES (1, 'abc'); INSERT INTO CompanyTable VALUES
(1, 'abc');");
```

Asegúrese de que estas consultas no dependan de los resultados de otras consultas que se hayan especificado dentro de la misma instrucción preparada. Como las consultas no se ejecutan durante el paso de preparación, los resultados aún no se han devuelto y no se encuentran disponibles para las demás consultas en la misma instrucción preparada.

Por ejemplo, no se permite la siguiente instrucción preparada, en la que se crea una tabla y, a continuación, se insertan valores en esa tabla recién creada:

```
PreparedStatement pstmt = conn.prepareStatement("CREATE
TABLE MyTable(col1 int, col2 varchar); INSERT INTO myTable
VALUES (1, 'abc');");
```

Si se intenta preparar esta instrucción, el servidor devuelve un error en el que se indica que la tabla de destino (myTable) aún no existe. La consulta CREATE se debe ejecutar antes de que se pueda preparar la consulta INSERT.

# Diferencias entre las versiones 2.2 y 1.x del controlador JDBC
<a name="jdbc20-jdbc10-driver-differences"></a>

En esta sección, se describen las diferencias que presenta la información devuelta por las versiones 2.2 y 1.x del controlador JDBC. El controlador JDBC versión 1.x se suspende.

En la siguiente tabla, se muestra la información de DatabaseMetadata que devuelven las funciones getDatabaseProductName() y getDatabaseProductVersion() para cada versión del controlador JDBC. El controlador JDBC versión 2.2 obtiene los valores mientras se establece la conexión. El controlador JDBC versión 1.x obtiene los valores a partir de una consulta.


| Versión del controlador JDBC | Resultado de getDatabaseProductName() | Resultado de getDatabaseProductVersion() | 
| --- | --- | --- | 
|  2.2  |  Redshift  |  8.0.2  | 
|  1.x  |  PostgreSQL  |  08.00.0002  | 

En la siguiente tabla, se muestra la información de DatabaseMetadata que devuelve la función getTypeInfo para cada versión del controlador JDBC. 


| Versión del controlador JDBC | Resultado de getTypeInfo | 
| --- | --- | 
|  2.2  |  Consistente con los tipos de datos de Redshift  | 
|  1.x  |  Consistente con los tipos de datos de PostgreSQL  | 

# Creación de archivos de inicialización (.ini) para el controlador JDBC versión 2.x
<a name="jdbc20-ini-file"></a>

Mediante el uso de archivos de inicialización (.ini) para el controlador JDBC versión 2.x de Amazon Redshift, es posible especificar los parámetros de configuración en el nivel del sistema. Por ejemplo, los parámetros de autenticación del IdP federado pueden variar para cada aplicación. El archivo .ini proporciona una ubicación común para que los clientes SQL obtengan los parámetros de configuración necesarios. 

Se puede crear un archivo de inicialización (.ini) del controlador JDBC versión 2.x que contenga opciones de configuración para clientes SQL. El nombre del archivo predeterminado es `rsjdbc.ini`. El controlador JDBC versión 2.x busca el archivo .ini en las siguientes ubicaciones, mostradas según el orden de prioridad:
+ `IniFile`El parámetro en la URL de conexión o en el cuadro de diálogo de propiedades de conexión del cliente SQL. Asegúrese de que el parámetro `IniFile` contenga la ruta completa al archivo .ini, incluido el nombre de este. Para obtener información acerca del parámetro `IniFile`, consulte [IniFile](jdbc20-configuration-options.md#jdbc20-inifile-option). Si el parámetro `IniFile` no especifica de manera correcta la ubicación del archivo .ini, se mostrará un error.
+ Variables de entorno como AMAZON\$1REDSHIFT\$1JDBC\$1INI\$1FILE con la ruta completa, incluido el nombre del archivo. Puede utilizar `rsjdbc.ini` o especificar un nombre de archivo. Si la variable de entorno AMAZON\$1REDSHIFT\$1JDBC\$1INI\$1FILE no especifica de manera correcta la ubicación del archivo .ini, se mostrará un error.
+ Directorio donde se encuentra el archivo JAR del controlador.
+ Directorio de inicio del usuario.
+ Directorio temporal del sistema.

Puede organizar el archivo .ini en secciones; por ejemplo, [DRIVER]. Cada una de las secciones contiene pares de valor de clave que especifican varios parámetros de conexión. Puede utilizar el parámetro `IniSection` para especificar una sección en el archivo .ini. Para obtener información acerca del parámetro `IniSection`, consulte [IniSection](jdbc20-configuration-options.md#jdbc20-inisection-option). 

A continuación, se muestra un ejemplo del formato del archivo .ini, con secciones para [DRIVER], [DEV], [QA] y [PROD]. La sección [DRIVER] puede aplicarse a cualquier conexión.

```
[DRIVER]
key1=val1
key2=val2

[DEV]
key1=val1
key2=val2

[QA]
key1=val1
key2=val2

[PROD]
key1=val1
key2=val2
```

El controlador JDBC versión 2.x carga los parámetros de configuración desde las siguientes ubicaciones, mostradas según el orden de prioridad:
+ parámetros de configuración predeterminados en el código de la aplicación
+ propiedades de la sección [DRIVER] del archivo .ini, en caso de estar incluidas
+ parámetros de configuración de la sección personalizada, siempre que la opción `IniSection` se proporcione en la URL de conexión o en el cuadro de diálogo de propiedades de la conexión del cliente SQL
+ propiedades del objeto de propiedad de conexión especificado en la llamada a `getConnection`
+ parámetros de configuración especificados en la URL de conexión

# Opciones de configuración del controlador JDBC versión 2.x
<a name="jdbc20-configuration-options"></a>

A continuación, puede encontrar descripciones relativas a las opciones que puede especificar para la versión 2.2 del controlador JDBC de Amazon Redshift. Las opciones de configuración no distinguen entre mayúsculas y minúsculas.

Puede establecer las propiedades de configuración mediante la URL de conexión. Para obtener más información, consulte [Creación de la URL de conexión](jdbc20-build-connection-url.md).

**Topics**
+ [AccessKeyID](#jdbc20-accesskeyid-option)
+ [AllowDBUserOverride](#jdbc20-allowdbuseroverride-option)
+ [App\$1ID](#jdbc20-app-id-option)
+ [App\$1Name](#jdbc20-app-name-option)
+ [ApplicationName](#jdbc20-applicationname-option)
+ [AuthProfile](#jdbc20-authprofile-option)
+ [AutoCreate](#jdbc20-autocreate-option)
+ [Client\$1ID](#jdbc20-client_id-option)
+ [Client\$1Secret](#jdbc20-client_secret-option)
+ [ID del clúster](#jdbc20-clusterid-option)
+ [Compresión](#jdbc20-compression-option)
+ [connectTimeout](#jdbc20-connecttimeout-option)
+ [connectionTimezone](#jdbc20-connecttimezone-option)
+ [databaseMetadataCurrentDbOnly](#jdbc20-databasemetadatacurrentdbonly-option)
+ [DbUser](#jdbc20-dbuser-option)
+ [DbGroups](#jdbc20-dbgroups-option)
+ [DBNAME](#jdbc20-dbname-option)
+ [defaultRowFetchSize](#jdbc20-defaultrowfetchsize-option)
+ [DisableIsValidQuery](#jdbc20-disableisvalidquery-option)
+ [enableFetchRingBuffer](#jdbc20-enablefetchringbuffer-option)
+ [enableMultiSqlSupport](#jdbc20-enablemultisqlsupport-option)
+ [fetchRingBufferSize](#jdbc20-fetchringbuffersize-option)
+ [ForceLowercase](#jdbc20-forcelowercase-option)
+ [groupFederation](#jdbc20-groupFederation-option)
+ [HOST](#jdbc20-host-option)
+ [IAMDisableCache](#jdbc20-iamdisablecache-option)
+ [IAMDuration](#jdbc20-iamduration-option)
+ [Idc\$1Client\$1Display\$1Name](#jdbc20-idc_client_display_name)
+ [Idc\$1Region](#jdbc20-idc_region)
+ [IdP\$1Host](#jdbc20-idp_host-option)
+ [IdP\$1Partition](#jdbc20-idp_partition-option)
+ [IdP\$1Port](#jdbc20-idp_port-option)
+ [IdP\$1Tenant](#jdbc20-idp_tenant-option)
+ [IdP\$1Response\$1Timeout](#jdbc20-idp_response_timeout-option)
+ [IniFile](#jdbc20-inifile-option)
+ [IniSection](#jdbc20-inisection-option)
+ [isServerless](#jdbc20-isserverless-option)
+ [Issuer\$1Url](#jdbc20-issuer-url)
+ [Listen\$1Port](#jdbc20-listen-port)
+ [Login\$1URL](#jdbc20-login_url-option)
+ [loginTimeout](#jdbc20-logintimeout-option)
+ [loginToRp](#jdbc20-logintorp-option)
+ [LogLevel](#jdbc20-loglevel-option)
+ [LogPath](#jdbc20-logpath-option)
+ [OverrideSchemaPatternType](#jdbc20-override-schema-pattern-type)
+ [Partner\$1SPID](#jdbc20-partner_spid-option)
+ [Contraseña](#jdbc20-password-option)
+ [Plugin\$1Name](#jdbc20-plugin_name-option)
+ [PORT](#jdbc20-port-option)
+ [Preferred\$1Role](#jdbc20-preferred_role-option)
+ [Perfil](#jdbc20-profile-option)
+ [PWD](#jdbc20-pwd-option)
+ [queryGroup](#jdbc20-querygroup-option)
+ [readOnly](#jdbc20-readonly-option)
+ [Región](#jdbc20-region-option)
+ [reWriteBatchedInserts](#jdbc20-rewritebatchedinserts-option)
+ [reWriteBatchedInsertsSize](#jdbc20-rewritebatchedinsertssize-option)
+ [roleArn](#jdbc20-rolearn-option)
+ [roleSessionName](#jdbc20-roleaessionname-option)
+ [scope](#jdbc20-scope-option)
+ [SecretAccessKey](#jdbc20-secretaccesskey-option)
+ [SessionToken](#jdbc20-sessiontoken-option)
+ [serverlessAcctId](#jdbc20-serverlessacctid-option)
+ [serverlessWorkGroup](#jdbc20-serverlessworkgroup-option)
+ [socketFactory](#jdbc20-socketfactory-option)
+ [socketTimeout](#jdbc20-sockettimeout-option)
+ [SSL](#jdbc20-ssl-option)
+ [SSL\$1Insecure](#jdbc20-ssl_insecure-option)
+ [SSLCert](#jdbc20-sslcert-option)
+ [SSLFactory](#jdbc20-sslfactory-option)
+ [SSLKey](#jdbc20-sslkey-option)
+ [SSLMode](#jdbc20-sslmode-option)
+ [SSLPassword](#jdbc20-sslpassword-option)
+ [SSLRootCert](#jdbc20-sslrootcert-option)
+ [StsEndpointUrl](#jdbc20-stsendpointurl-option)
+ [tcpKeepAlive](#jdbc20-tcpkeepalive-option)
+ [token](#jdbc20-token-option)
+ [token\$1type](#jdbc20-token-type-option)
+ [UID](#jdbc20-uid-option)
+ [Usuario](#jdbc20-user-option)
+ [webIdentityToken](#jdbc20-webidentitytoken-option)

## AccessKeyID
<a name="jdbc20-accesskeyid-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

Puede especificar este parámetro para ingresar la clave de acceso de IAM correspondiente al usuario o rol. Por lo general, puede localizar la clave si busca en una cadena o en un perfil de usuario existente. Si especifica este parámetro, también debe especificar el parámetro `SecretAccessKey`. Si se pasa en la URL de JDBC, AccessKeyID debe estar codificado en URL.

Este parámetro es opcional.

## AllowDBUserOverride
<a name="jdbc20-allowdbuseroverride-option"></a>
+ **Valor predeterminado** – 0
+ **Tipo de datos:** cadena

Esta opción especifica si el controlador utiliza el valor `DbUser` de la aserción SAML o el valor que se especifica en la propiedad de conexión `DbUser` en la URL de conexión. 

Este parámetro es opcional.

**1**  
El controlador utiliza el valor `DbUser` de la aserción SAML.  
Si la aserción SAML no especifica un valor para `DBUser`, el controlador utiliza el valor especificado en la propiedad de conexión `DBUser`. Si la propiedad de conexión no especifica un valor, el controlador utiliza el valor especificado en el perfil de conexión.

**0**  
El controlador utiliza el valor `DBUser` especificado en la propiedad de conexión `DBUser`.  
Si la propiedad de conexión `DBUser` no especifica un valor, el controlador utiliza el valor especificado en el perfil de conexión. Además, si el perfil de conexión no especifica un valor, el controlador utiliza el valor de la aserción SAML.

## App\$1ID
<a name="jdbc20-app-id-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El ID único proporcionado por Okta que se asocia a su aplicación de Amazon Redshift. 

Este parámetro es necesario si la autenticación se realiza a través del servicio de Okta.

## App\$1Name
<a name="jdbc20-app-name-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre de la aplicación Okta que utiliza en la autenticación de la conexión con Amazon Redshift. 

Este parámetro es opcional.

## ApplicationName
<a name="jdbc20-applicationname-option"></a>
+ **Valor predeterminado: nulo**
+ **Tipo de datos:** cadena

Nombre de la aplicación que se va a pasar a Amazon Redshift con fines de auditoría. 

Este parámetro es opcional.

## AuthProfile
<a name="jdbc20-authprofile-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre del perfil de autenticación que se utilizará para conectarse a Amazon Redshift. 

Este parámetro es opcional.

## AutoCreate
<a name="jdbc20-autocreate-option"></a>
+ **Valor predeterminado:** false
+ **Tipos de datos:** booleano

Esta opción especifica si el controlador logra que se cree un nuevo usuario cuando el usuario especificado no existe. 

Este parámetro es opcional.

**true**  
Si el usuario especificado por `DBUser` o ID único (UID) no existe, se crea un nuevo usuario con ese nombre.

**false**  
El controlador no logra que se creen nuevos usuarios. Si el usuario especificado no existe, se produce un error en la autenticación.

## Client\$1ID
<a name="jdbc20-client_id-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El ID de cliente que se utilizará al autenticar la conexión mediante el servicio Azure AD. 

Este parámetro es necesario si la autenticación se realiza a través del servicio Azure AD.

## Client\$1Secret
<a name="jdbc20-client_secret-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El secreto del cliente que se utilizará al autenticar la conexión mediante el servicio Azure AD. 

Este parámetro es necesario si la autenticación se realiza a través del servicio Azure AD.

## ID del clúster
<a name="jdbc20-clusterid-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre del clúster de Amazon Redshift al que desea conectarse. El controlador intenta detectar este parámetro desde el host dado. Si utiliza un equilibrador de carga de red (NLB) y se conecta a través de IAM, el controlador no lo detectará, por lo que puede configurarlo con esta opción de conexión. 

Este parámetro es opcional.

## Compresión
<a name="jdbc20-compression-option"></a>
+ **Valor predeterminado**: desconectado
+ **Tipo de datos:** cadena

Método de compresión utilizado para la comunicación mediante protocolo de conexión entre el servidor de Amazon Redshift y el cliente o el controlador.

Este parámetro es opcional.

Puede especificar los valores siguientes:
+ **lz4**

  Establece el método de compresión utilizado para la comunicación mediante protocolo de conexión con Amazon Redshift a lz4.
+ **off**

  No utiliza la compresión para la comunicación mediante protocolo de conexión con Amazon Redshift.

## connectTimeout
<a name="jdbc20-connecttimeout-option"></a>
+ **Valor predeterminado** – 10
+ **Tipo de datos:** entero

Valor de tiempo de espera que se utilizará para las operaciones de conexión de socket. Si el tiempo necesario para establecer una conexión de Amazon Redshift supera este valor, se considera que la conexión no está disponible. El tiempo de espera se especifica en segundos. Un valor de 0 indica que no se especifica ningún tiempo de espera.

Este parámetro es opcional.

## connectionTimezone
<a name="jdbc20-connecttimezone-option"></a>
+ **Valor predeterminado**: LOCAL
+ **Tipo de datos:** cadena

Zona horaria en el nivel de sesión.

Este parámetro es opcional.

Puede especificar los valores siguientes:

**LOCAL**  
Configura la zona horaria en el nivel de sesión en la zona horaria de la JVM LOCAL.

**SERVER**  
Configura la zona horaria en el nivel de sesión en la zona horaria establecida para el usuario en el servidor de Amazon Redshift. Puede configurar las zonas horarias en el nivel de sesión para los usuarios con el siguiente comando:  

```
ALTER USER
[...]
SET TIMEZONE TO [...];
```

## databaseMetadataCurrentDbOnly
<a name="jdbc20-databasemetadatacurrentdbonly-option"></a>
+ **Valor predeterminado:** true
+ **Tipos de datos:** booleano

Esta opción especifica si la API de metadatos recupera datos de todas las bases de datos accesibles o únicamente de la base de datos que está conectada. 

Este parámetro es opcional.

Puede especificar los valores siguientes:

**true**  
La aplicación recupera los metadatos de una base de datos única.

**false**  
La aplicación recupera los metadatos de todas las bases de datos a las que se puede acceder.

## DbUser
<a name="jdbc20-dbuser-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El ID de usuario que se utilizará con su cuenta de Amazon Redshift. Puede utilizar un ID que no exista actualmente si ha habilitado la propiedad AutoCreate. 

Este parámetro es opcional.

## DbGroups
<a name="jdbc20-dbgroups-option"></a>
+ **Valor predeterminado:** PUBLIC
+ **Tipo de datos:** cadena

Una lista separada por comas de los nombres de grupos de bases de datos existentes que `DBUser` une para la sesión actual. 

Este parámetro es opcional.

## DBNAME
<a name="jdbc20-dbname-option"></a>
+ **Valor predeterminado: nulo**
+ **Tipo de datos:** cadena

Nombre de la base de datos a la que se va a conectar. Puede utilizar esta opción para especificar el nombre de la base de datos en la URL de conexión de JDBC. 

Este parámetro es obligatorio. Debe especificar el nombre de la base de datos, ya sea en la URL de conexión o en las propiedades de conexión de la aplicación cliente.

## defaultRowFetchSize
<a name="jdbc20-defaultrowfetchsize-option"></a>
+ **Valor predeterminado** – 0
+ **Tipo de datos:** entero

Esta opción especifica un valor predeterminado para getFetchSize. 

Este parámetro es opcional.

Puede especificar los valores siguientes:

**0**  
Recupere todas las filas en una sola operación.

**Entero positivo**  
Número de filas que se recuperan de la base de datos en cada una de las iteraciones de recuperación de ResultSet.

## DisableIsValidQuery
<a name="jdbc20-disableisvalidquery-option"></a>
+ **Valor predeterminado:** false
+ **Tipos de datos:** booleano

Esta opción especifica si el controlador envía una nueva consulta a la base de datos cuando se utiliza el método Connection.isValid() para determinar si la conexión a la base de datos se encuentra activa. 

Este parámetro es opcional.

**true**  
El controlador no envía una consulta cuando se utiliza el método Connection.isValid() para determinar si la conexión a la base de datos se encuentra activa. Con ello, es posible que el controlador identifique de manera incorrecta la conexión a la base de datos como activa en caso de que el servidor de la base de datos se haya apagado inesperadamente.

**false**  
El controlador envía una consulta cuando se utiliza el método Connection.isValid() para determinar si la conexión a la base de datos se encuentra activa.

## enableFetchRingBuffer
<a name="jdbc20-enablefetchringbuffer-option"></a>
+ **Valor predeterminado:** true
+ **Tipos de datos:** booleano

Esta opción especifica que el controlador recupera las filas mediante un búfer de anillo en un subproceso separado. El parámetro fetchRingBufferSize determina el tamaño del búfer de anillo. 

El búfer de anillo implementa una administración automática de la memoria en JDBC para evitar errores de falta de memoria (OOM) durante las operaciones de recuperación de datos. El búfer de anillo supervisa el tamaño real de los datos almacenados en el búfer en tiempo real, lo que garantiza que el uso total de memoria por parte del controlador se mantenga dentro de los límites definidos. Cuando se alcanza la capacidad del búfer, el controlador detiene las operaciones de obtención de datos, lo que evita que la memoria se desborde sin necesidad de intervención manual. Esta protección integrada elimina automáticamente los errores de OOM, sin que los usuarios necesiten realizar ninguna configuración.

Si una transacción detecta una instrucción que contiene varios comandos SQL separados por punto y coma, el búfer del anillo de recuperación de esa transacción se establece en falso. El valor de enableFetchRingBuffer no cambia. 

Este parámetro es opcional.

**nota**  
Si el búfer de anillo está desactivado y el tamaño de la recuperación no está configurado correctamente, pueden producirse problemas de falta de memoria (OOM). Para obtener más información sobre la configuración del tamaño de recuperación, consulte [aquí](https://docs.aws.amazon.com/redshift/latest/dg/set-the-JDBC-fetch-size-parameter.html).

## enableMultiSqlSupport
<a name="jdbc20-enablemultisqlsupport-option"></a>
+ **Valor predeterminado:** true
+ **Tipos de datos:** booleano

Esta opción especifica si se deben procesar varios comandos SQL separados por punto y coma en una instrucción. 

Este parámetro es opcional.

Puede especificar los valores siguientes:

**true**  
El controlador procesa varios comandos SQL, separados por punto y coma, en un objeto Statement.

**false**  
El controlador devuelve un error en caso de varios comandos SQL en un mismo Statement.

## fetchRingBufferSize
<a name="jdbc20-fetchringbuffersize-option"></a>
+ **Valor predeterminado:** 1G
+ **Tipo de datos:** cadena

Esta opción especifica el tamaño del búfer de anillo utilizado mientras se recupera el conjunto de resultados. Puede especificar un tamaño expresado en bytes; por ejemplo, 1K para 1 KB, 5000 para 5000 bytes, 1M para 1 MB, 1G para 1 GB, etc. También puede especificar un porcentaje de memoria heap. El controlador deja de recuperar filas una vez que alcanza el límite establecido. La recuperación se reanuda en el momento en que la aplicación hace una lectura de las filas y libera espacio en el búfer de anillo. 

Este parámetro es opcional.

## ForceLowercase
<a name="jdbc20-forcelowercase-option"></a>
+ **Valor predeterminado:** false
+ **Tipos de datos:** booleano

Esta opción especifica si el controlador escribe en minúsculas todos los grupos de bases de datos (DbGroups) que se envían desde el proveedor de identidad a Amazon Redshift cuando se utiliza la autenticación de inicio de sesión único. 

Este parámetro es opcional.

**true**  
El controlador escribe en minúsculas todos los grupos de bases de datos que se envían desde el proveedor de identidad.

**false**  
El controlador no modifica los grupos de la base de datos.

## groupFederation
<a name="jdbc20-groupFederation-option"></a>
+ **Valor predeterminado:** false
+ **Tipos de datos:** booleano

Esta opción especifica si se utilizarán grupos de IDP de Amazon Redshift. Esto es compatible con la API GetClusterCredentialSV2. 

Este parámetro es opcional.

**true**  
Utilice grupos de proveedores de identidad (IDP) de Amazon Redshift.

**false**  
Utilice la API STS y GetClusterCredentials para la federación de usuarios y especifique explícitamente DbGroups para la conexión.

## HOST
<a name="jdbc20-host-option"></a>
+ **Valor predeterminado: nulo**
+ **Tipo de datos:** cadena

El nombre del host del servidor de Amazon Redshift al que va a conectarse. Puede utilizar esta opción para especificar el nombre de host en la URL de conexión de JDBC. 

Este parámetro es obligatorio. Debe especificar el nombre de host, ya sea en la URL de conexión o en las propiedades de conexión de la aplicación cliente.

## IAMDisableCache
<a name="jdbc20-iamdisablecache-option"></a>
+ **Valor predeterminado:** false
+ **Tipos de datos:** booleano

Esta opción especifica si las credenciales de IAM se almacenan en caché.

Este parámetro es opcional.

**true**  
Las credenciales de IAM no se almacenan en caché.

**false**  
Las credenciales de IAM se almacenan en caché. De este modo, se mejora el rendimiento en los casos en que, por ejemplo, las solicitudes a API Gateway tienen limitación controlada.

## IAMDuration
<a name="jdbc20-iamduration-option"></a>
+ **Valor predeterminado** – 900
+ **Tipo de datos:** entero

El tiempo, en segundos, hasta que se vencen las credenciales temporales de IAM. 
+ **Valor mínimo** – 900
+ **Valor máximo ** – 3,600

Este parámetro es opcional.

## Idc\$1Client\$1Display\$1Name
<a name="jdbc20-idc_client_display_name"></a>
+ **Valor predeterminado**: controlador JDBC de Amazon Redshift
+ **Tipo de datos:** cadena

El nombre para mostrar que se utilizará para el cliente que usa BrowserIdcAuthPlugin.

Este parámetro es opcional.

## Idc\$1Region
<a name="jdbc20-idc_region"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

Es la región de AWS en la que se encuentra la instancia del IAM Identity Center.

Este parámetro es necesario solo cuando en la autenticación se utiliza `BrowserIdcAuthPlugin` en la opción de configuración plugin\$1name.

## IdP\$1Host
<a name="jdbc20-idp_host-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El alojamiento del IdP (proveedor de identidad) que utiliza para la autenticación en Amazon Redshift. Esto puede especificarse tanto en la cadena de conexión como en un perfil. 

Este parámetro es opcional.

## IdP\$1Partition
<a name="jdbc20-idp_partition-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

Especifica la partición de la nube en la que está configurado el proveedor de identidades (IdP). Esto determina a qué punto de conexión de autenticación de IdP se conecta el controlador.

Si este parámetro se deja en blanco, el controlador utilizará de forma predeterminada la partición comercial. Los valores posibles son los que se indican a continuación.
+  `us-gov`: utilice este valor si su IdP está configurado en Azure Government. Por ejemplo, Azure AD Government usa el punto de conexión `login.microsoftonline.us`.
+  `cn`: utilice este valor si su IdP está configurado en la partición en la nube de China. Por ejemplo, Azure AD China usa el punto de conexión `login.chinacloudapi.cn`. 

Este parámetro es opcional.

## IdP\$1Port
<a name="jdbc20-idp_port-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El puerto usado por un IdP (proveedor de identidad). Se puede especificar el puerto en la cadena de conexión o en un perfil. El puerto predeterminado es 5439. Según el puerto que haya seleccionado al crear, modificar o migrar el clúster, se permitirá el acceso al puerto seleccionado. 

Este parámetro es opcional.

## IdP\$1Tenant
<a name="jdbc20-idp_tenant-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El ID de inquilino de Azure AD para su aplicación de Amazon Redshift. 

Este parámetro es necesario si la autenticación se realiza a través del servicio Azure AD.

## IdP\$1Response\$1Timeout
<a name="jdbc20-idp_response_timeout-option"></a>
+ **Valor predeterminado** – 120
+ **Tipo de datos:** entero

La cantidad de tiempo, en segundos, que espera el controlador en obtener la respuesta SAML del proveedor de identidad cuando se utilizan los servicios Azure AD o SAML a través de un complemento del navegador. 

Este parámetro es opcional.

## IniFile
<a name="jdbc20-inifile-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

La ruta completa del archivo .ini, incluido el nombre del archivo. Por ejemplo:

```
IniFile="C:\tools\rsjdbc.ini"
```

Para obtener más información acerca del archivo .ini, consulte [Creación de archivos de inicialización (.ini) para el controlador JDBC versión 2.x](jdbc20-ini-file.md).

Este parámetro es opcional.

## IniSection
<a name="jdbc20-inisection-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre de una sección del archivo .ini que contiene las opciones de configuración. Para obtener más información acerca del archivo .ini, consulte [Creación de archivos de inicialización (.ini) para el controlador JDBC versión 2.x](jdbc20-ini-file.md). 

En el siguiente ejemplo, se especifica la sección [Prod] del archivo .ini:

```
IniSection="Prod"
```

Este parámetro es opcional.

## isServerless
<a name="jdbc20-isserverless-option"></a>
+ **Valor predeterminado:** false
+ **Tipos de datos:** booleano

Esta opción especifica si el host de punto de conexión de Amazon Redshift es una instancia sin servidor. El controlador intenta detectar este parámetro desde el host dado. Si utiliza un equilibrador de carga de red (NLB), el controlador no lo detectará, por lo que puede configurarlo aquí. 

Este parámetro es opcional.

**true**  
El host de punto de conexión de Amazon Redshift es una instancia sin servidor.

**false**  
El host de punto de conexión de Amazon Redshift es un clúster aprovisionado.

## Issuer\$1Url
<a name="jdbc20-issuer-url"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

Apunta al punto de conexión de la instancia del servidor de AWS IAM Identity Center. 

Este parámetro es necesario solo cuando en la autenticación se utiliza `BrowserIdcAuthPlugin` en la opción de configuración plugin\$1name.

## Listen\$1Port
<a name="jdbc20-listen-port"></a>
+ **Valor predeterminado** – 7890
+ **Tipo de datos:** entero

El puerto que utiliza el controlador para recibir la respuesta SAML del proveedor de identidades o el código de autorización cuando se utilizan los servicios SAML, Azure AD o AWS IAM Identity Center a través de un complemento del navegador.

Este parámetro es opcional.

## Login\$1URL
<a name="jdbc20-login_url-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

La dirección URL del recurso en el sitio web del proveedor de identidad en caso de que se utilicen los servicios Azure AD o SAML a través de un complemento del navegador. 

Este parámetro es necesario si la autenticación se realiza con el servicio Azure AD o SAML a través de un complemento del navegador.

## loginTimeout
<a name="jdbc20-logintimeout-option"></a>
+ **Valor predeterminado** – 0
+ **Tipo de datos:** entero

La cantidad de segundos que se debe esperar antes de que se agote el tiempo de espera cuando se conecta y se realiza la autenticación correspondiente al servidor. Si establecer la conexión toma más que este umbral de tiempo, se anula la conexión. 

Cuando esta propiedad se establece en 0, las conexiones no agotan el tiempo de espera.

Este parámetro es opcional.

## loginToRp
<a name="jdbc20-logintorp-option"></a>
+ **Valor predeterminado** – `urn:amazon:webservices`
+ **Tipo de datos:** cadena

La relación de confianza para usuario autenticado que desea utilizar para el tipo de autenticación de AD FS. 

Este parámetro es opcional.

## LogLevel
<a name="jdbc20-loglevel-option"></a>
+ **Valor predeterminado** – 0
+ **Tipo de datos:** entero

Utilice esta propiedad para activar o desactivar el registro en el controlador y especificar la cantidad de detalles incluidos en los archivos de registros. 

Habilite el registro solo durante el tiempo suficiente para detectar un problema. El registro reduce el rendimiento y puede consumir una gran cantidad de espacio en el disco.

Este parámetro es opcional.

Establezca el parámetro en uno de los siguientes valores:

**0**  
Desactive todos los registros.

**1**  
Habilite el registro en el nivel FATAL, en el que se registran eventos de errores muy graves que harán que el controlador se anule.

**2**  
Habilite el registro en el nivel ERROR, en el que se registran eventos de errores que aún podrían permitir que el controlador siga ejecutándose.

**3**  
Habilite el registro en el nivel WARNING, en el que se registran los eventos que podrían dar lugar a un error si no se toman medidas al respecto.

**4**  
Habilite el registro en el nivel INFO, en el que se registra la información general que describe el progreso del controlador.

**5**  
Habilite el registro en el nivel DEBUG, en el que se registra información detallada que resulta de gran utilidad para la depuración del controlador.

**6**  
Habilite el registro en el nivel TRACE, en el que se registra toda la actividad del controlador.

Cuando se habilita el registro, el controlador crea los siguientes archivos de registro en la ubicación que se especifica en la propiedad `LogPath`:
+ ** `redshift_jdbc.log`** – archivo que registra la actividad del controlador que no es específica de una conexión.
+ **`redshift_jdbc_connection_[Number].log`**: archivo para cada conexión que se realiza a la base de datos, en el que `[Number]` es un número que permite la distinción de cada archivo de registro respecto a los demás. Este archivo registra la actividad del controlador específica de la conexión. 

Si el valor de LogPath no es válido, el controlador envía la información registrada a la secuencia de salida estándar, `System.out`.

## LogPath
<a name="jdbc20-logpath-option"></a>
+ **Valor predeterminado:** el directorio de trabajo actual.
+ **Tipo de datos:** cadena

La ruta completa a la carpeta en la que el controlador guarda los archivos de registros cuando la propiedad DSILogLevel está habilitada. 

Para asegurarse de que la URL de conexión es compatible con todas las aplicaciones JDBC, se recomienda que evite las barras diagonales invertidas (\$1) en la ruta del archivo y escriba una nueva.

Este parámetro es opcional.

## OverrideSchemaPatternType
<a name="jdbc20-override-schema-pattern-type"></a>
+ **Valor predeterminado: nulo**
+ **Tipo de datos:** entero

Esta opción especifica si invalidar el tipo de consulta usada en las llamadas a getTables.

**0**  
Consulta universal sin esquema

**1**  
Consulta de esquema local

**2**  
Consulta de esquema externo

Este parámetro es opcional.

## Partner\$1SPID
<a name="jdbc20-partner_spid-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El valor del SPID (ID del proveedor de servicios) del socio que se utilizará cuando se autentique la conexión mediante el servicio PingFederate. 

Este parámetro es opcional.

## Contraseña
<a name="jdbc20-password-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

Cuando se conecta con la autenticación de IAM a través de un IDP, esta es la contraseña para el servidor IDP\$1Host. Cuando se utiliza la autenticación estándar, se puede utilizar esta opción como contraseña de la base de datos de Amazon Redshift en lugar de PWD. 

Este parámetro es opcional.

## Plugin\$1Name
<a name="jdbc20-plugin_name-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre de la clase completamente calificado que implementa un complemento de proveedor de credenciales específico. 

Este parámetro es opcional.

Se admiten las siguientes opciones de proveedores:
+ **`AdfsCredentialsProvider`** – Active Directory Federation Service
+ **`AzureCredentialsProvider`** – servicio de Microsoft Azure Active Directory (AD)
+ **`BasicJwtCredentialsProvider`** – servicio de JSON Web Tokens (JWT)
+ **`BasicSamlCredentialsProvider`** – credenciales de lenguaje de marcado de aserción de seguridad (SAML) que puede utilizar con muchos proveedores de servicios de SAML.
+ **`BrowserAzureCredentialsProvider`** – servicio del navegador de Microsoft Azure Active Directory (AD)
+ **`BrowserAzureOAuth2CredentialsProvider` ** – servicio del navegador de Microsoft Azure Active Directory (AD) para la autenticación nativa
+ **`BrowserIdcAuthPlugin`**: complemento de autorización que utiliza AWS IAM Identity Center.
+ **`BrowserSamlCredentialsProvider`** – navegador SAML para servicios de SAML, tales como Okta, Ping o ADFS
+ **`IdpTokenAuthPlugin`**: complemento de autorización que acepta un token de AWS IAM Identity Center o un token de identidad basado en JSON (JWT) de OpenID Connect (OIDC) de cualquier proveedor de identidades web vinculado a AWS IAM Identity Center.
+ **`OktaCredentialsProvider`** – servicio de Okta
+ **`PingCredentialsProvider`** – servicio de PingFederate

## PORT
<a name="jdbc20-port-option"></a>
+ **Valor predeterminado: nulo**
+ **Tipo de datos:** entero

El puerto del servidor de Amazon Redshift al que va a conectarse. Puede utilizar esta opción para especificar el puerto en la URL de conexión de JDBC. 

Este parámetro es opcional.

## Preferred\$1Role
<a name="jdbc20-preferred_role-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El rol de IAM que desea asumir durante la conexión a Amazon Redshift. 

Este parámetro es opcional.

## Perfil
<a name="jdbc20-profile-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre del perfil que utilizará para la autenticación de IAM. Este perfil contiene cualquier propiedad de conexión adicional que no se haya especificado en la cadena de conexión. 

Este parámetro es opcional.

## PWD
<a name="jdbc20-pwd-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

La contraseña correspondiente al nombre de usuario de Amazon Redshift que proporcionó mediante la propiedad UID. 

Este parámetro es opcional.

## queryGroup
<a name="jdbc20-querygroup-option"></a>
+ **Valor predeterminado: nulo**
+ **Tipo de datos:** cadena

Esta opción permite asignar una consulta a una cola en tiempo de ejecución al asignar la consulta al grupo de consultas adecuado. El grupo de consultas se establece para la sesión. Todas las consultas que se ejecutan en la conexión corresponden a este grupo de consultas. 

Este parámetro es opcional.

## readOnly
<a name="jdbc20-readonly-option"></a>
+ **Valor predeterminado:** false
+ **Tipos de datos:** booleano

Esta propiedad determina si el controlador se encuentra en modo de solo lectura. 

Este parámetro es opcional.

**true**  
La conexión se encuentra en modo de solo lectura y no se puede escribir en el almacén de datos.

**false**  
La conexión se encuentra en modo de solo lectura y se puede escribir en el almacén de datos.

## Región
<a name="jdbc20-region-option"></a>
+ **Valor predeterminado: nulo**
+ **Tipo de datos:** cadena

Esta opción especifica la región de AWS en la que está ubicado el clúster. Si especifica la opción StsEndPoint, se omitirá la opción Region. La operación de la API `GetClusterCredentials` de Redshift también utiliza la opción Region. 

Este parámetro es opcional.

## reWriteBatchedInserts
<a name="jdbc20-rewritebatchedinserts-option"></a>
+ **Valor predeterminado:** false
+ **Tipos de datos:** booleano

Esta opción permite optimizar la reescritura y la combinación de instrucciones INSERT compatibles en lotes. 

Este parámetro es opcional.

## reWriteBatchedInsertsSize
<a name="jdbc20-rewritebatchedinsertssize-option"></a>
+ **Valor predeterminado** – 128
+ **Tipo de datos:** entero

Esta opción permite optimizar la reescritura y la combinación de instrucciones INSERT compatibles en lotes. Este valor debe aumentar a nivel exponencial por la potencia de 2. 

Este parámetro es opcional.

## roleArn
<a name="jdbc20-rolearn-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre de recurso de Amazon (ARN) del rol. Asegúrese de indicar este parámetro cada vez que especifique BasicJwtCredentialsProvider para la opción Plugin\$1Name. Especifique el ARN en el siguiente formato: 

`arn:partition:service:region:account-id:resource-id`

Este parámetro es necesario siempre que se especifique BasicJwtCredentialsProvider para la opción Plugin\$1Name.

## roleSessionName
<a name="jdbc20-roleaessionname-option"></a>
+ **Valor predeterminado:** jwt\$1redshift\$1session
+ **Tipo de datos:** cadena

Un identificador para la sesión del rol asumido. Por lo general, se pasa el nombre o el identificador que se asocia con el usuario de su aplicación. Las credenciales de seguridad temporales que utiliza su aplicación se asocian a ese usuario. Puede indicar este parámetro cada vez que especifique BasicJwtCredentialsProvider para la opción Plugin\$1Name. 

Este parámetro es opcional.

## scope
<a name="jdbc20-scope-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

Una lista separada por espacios de los ámbitos a los que el usuario puede dar su consentimiento. Especifique este parámetro para que su aplicación de Microsoft Azure pueda obtener el consentimiento para las API a las que desee llamar. Puede especificar este parámetro cuando indique BrowserAzureOAuth2CredentialsProvider para la opción Plugin\$1Name. 

Este parámetro es necesario para el complemento BrowserAzureOAuth2CredentialsProvider.

## SecretAccessKey
<a name="jdbc20-secretaccesskey-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

La clave de acceso de IAM para el usuario o el rol. Si esto se especifica, entonces también se debe especificar AccessKeyID. Si se pasa en la URL de JDBC, SecretAccessKey debe estar codificado en URL. 

Este parámetro es opcional.

## SessionToken
<a name="jdbc20-sessiontoken-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El token de sesión temporal de IAM asociado con el rol de IAM que se está utilizando para la autenticación. Si se pasa en la URL de JDBC, el token de sesión de IAM temporal debe estar codificado en URL. 

Este parámetro es opcional.

## serverlessAcctId
<a name="jdbc20-serverlessacctid-option"></a>
+ **Valor predeterminado: nulo**
+ **Tipo de datos:** cadena

El ID de la cuenta de Amazon Redshift sin servidor. El controlador intenta detectar este parámetro desde el host dado. Si utiliza un equilibrador de carga de red (NLB), el controlador no lo detectará, por lo que puede configurarlo aquí. 

Este parámetro es opcional.

## serverlessWorkGroup
<a name="jdbc20-serverlessworkgroup-option"></a>
+ **Valor predeterminado: nulo**
+ **Tipo de datos:** cadena

El nombre del grupo de trabajo de Amazon Redshift sin servidor. El controlador intenta detectar este parámetro desde el host dado. Si utiliza un equilibrador de carga de red (NLB), el controlador no lo detectará, por lo que puede configurarlo aquí. 

Este parámetro es opcional.

## socketFactory
<a name="jdbc20-socketfactory-option"></a>
+ **Valor predeterminado: nulo**
+ **Tipo de datos:** cadena

Esta opción especifica una fábrica de sockets para la creación de sockets. 

Este parámetro es opcional.

## socketTimeout
<a name="jdbc20-sockettimeout-option"></a>
+ **Valor predeterminado** – 0
+ **Tipo de datos:** entero

La cantidad de segundos que se debe esperar durante las operaciones de lectura del conector antes de que se agote el tiempo de espera. Si una operación dura más tiempo que este límite, se cierra la conexión. Cuando esta propiedad se establece en 0, la conexión no agota el tiempo de espera. 

Este parámetro es opcional.

## SSL
<a name="jdbc20-ssl-option"></a>
+ **Valor predeterminado:** TRUE
+ **Tipo de datos:** cadena

Utilice esta propiedad para activar o desactivar SSL para la conexión. 

Este parámetro es opcional.

Puede especificar los valores siguientes:

**TRUE**  
El controlador se conecta al servidor a través de SSL.

**FALSO**  
El controlador se conecta al servidor sin utilizar SSL. Esta opción no es compatible con la autenticación de IAM.

Como alternativa, puede configurar la propiedad AuthMech.

## SSL\$1Insecure
<a name="jdbc20-ssl_insecure-option"></a>
+ **Valor predeterminado:** true
+ **Tipo de datos:** cadena

Esta propiedad indica si se debe verificar el certificado de servidor de alojamientos de IDP.

Este parámetro es opcional.

Puede especificar los valores siguientes:

**true**  
El controlador no verifica la autenticidad del certificado del servidor IDP.

**false**  
El controlador verifica la autenticidad del certificado del servidor IDP.

## SSLCert
<a name="jdbc20-sslcert-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

La ruta completa de un archivo .pem o .crt que contiene certificados de entidad de certificación de confianza adicionales destinados a verificar la instancia de servidor de Amazon Redshift cuando se utiliza SSL. 

Este parámetro es obligatorio si se especifica SSLKey.

## SSLFactory
<a name="jdbc20-sslfactory-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

La fábrica SSL que se utilizará cuando se conecte al servidor a través de TLS o SSL sin emplear un certificado de servidor. 

## SSLKey
<a name="jdbc20-sslkey-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

La ruta completa del archivo .der que contiene el archivo de claves PKCS8 destinado a verificar los certificados especificados en SSLCert. 

Este parámetro no es obligatorio si se especifica SSLCert.

## SSLMode
<a name="jdbc20-sslmode-option"></a>
+ **Valor predeterminado:** verify-ca
+ **Tipo de datos:** cadena

Utilice esta propiedad para especificar la forma en que el controlador valida los certificados cuando TLS o SSL está habilitado. 

Este parámetro es opcional.

Puede especificar los valores siguientes:

**verify-ca**  
El controlador verifica que el certificado proviene de una entidad de certificación (CA) de confianza.

**verify-full**  
El controlador verifica que el certificado proviene de una entidad de certificación de confianza y que el nombre de alojamiento del certificado concuerda con el nombre de alojamiento especificado en la URL de conexión.

## SSLPassword
<a name="jdbc20-sslpassword-option"></a>
+ **Valor predeterminado** – 0
+ **Tipo de datos:** cadena

La contraseña para el archivo de clave cifrado que se especifica en SSLKey. 

Se requiere este parámetro si se especifica SSLKey y si se cifra el archivo clave.

## SSLRootCert
<a name="jdbc20-sslrootcert-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

La ruta completa de un archivo .pem o .crt que contiene el certificado de entidad de certificación raíz que permite verificar la instancia de servidor de Amazon Redshift cuando se utiliza SSL. 

## StsEndpointUrl
<a name="jdbc20-stsendpointurl-option"></a>
+ **Valor predeterminado: nulo**
+ **Tipo de datos:** cadena

Puede especificar un punto de conexión AWS Security Token Service (AWS STS). Si especifica la opción, se omitirá la opción Region. Solo puede especificar un protocolo seguro (HTTPS) para este punto de conexión. 

## tcpKeepAlive
<a name="jdbc20-tcpkeepalive-option"></a>
+ **Valor predeterminado:** TRUE
+ **Tipo de datos:** cadena

Utilice esta propiedad para activar o desactivar keepalives de TCP. 

Este parámetro es opcional.

Puede especificar los valores siguientes:

**TRUE**  
El controlador utiliza keepalives de TCP para evitar que se agote el tiempo de espera en las conexiones.

**FALSO**  
El controlador no utiliza keepalives de TCP.

## token
<a name="jdbc20-token-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

Un token de acceso proporcionado por AWS IAM Identity Center o un token web JSON (JWT) de OpenID Connect (OIDC) proporcionado por un proveedor de identidades web que esté vinculado con AWS IAM Identity Center. Su aplicación debe generar este token autenticando al usuario de su aplicación con AWS IAM Identity Center o con un proveedor de identidades vinculado con AWS IAM Identity Center. 

Este parámetro funciona con `IdpTokenAuthPlugin`.

## token\$1type
<a name="jdbc20-token-type-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

Tipo de token que se utiliza en `IdpTokenAuthPlugin`.

Puede especificar los valores siguientes:

**ACCESS\$1TOKEN**  
Introdúzcalo si utiliza un token de acceso proporcionado por AWS IAM Identity Center.

**EXT\$1JWT**  
Introdúzcalo si utiliza un token web JSON (JWT) de OpenID Connect (OIDC) proporcionado por un proveedor de identidades basado en web que está integrado con AWS IAM Identity Center.

Este parámetro funciona con `IdpTokenAuthPlugin`.

## UID
<a name="jdbc20-uid-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre de usuario de base de datos que utiliza para acceder a la base de datos.

Este parámetro es obligatorio.

## Usuario
<a name="jdbc20-user-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

Cuando se conecta mediante la autenticación de IAM a través de un IDP, este es el nombre de usuario que corresponde al servidor idp\$1host. Si se utiliza la autenticación estándar, se puede utilizar esta opción como nombre de usuario de la base de datos de Amazon Redshift. 

Este parámetro es opcional.

## webIdentityToken
<a name="jdbc20-webidentitytoken-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El token de acceso de OAuth 2.1 o el token del ID de OpenID Connect proporcionado por el proveedor de identidad. Su aplicación debe obtener este token mediante la autenticación del usuario de su aplicación con un proveedor de identidad web. Asegúrese de indicar este parámetro cada vez que especifique BasicJwtCredentialsProvider para la opción Plugin\$1Name. 

Este parámetro es necesario siempre que se especifique BasicJwtCredentialsProvider para la opción Plugin\$1Name.

# Versiones anteriores del controlador JDBC versión 2.x
<a name="jdbc20-previous-driver-version-20"></a>

Descargue una versión anterior del controlador JDBC versión 2.x de Amazon Redshift solo si la herramienta requiere una versión específica del controlador. 

Estos son los controladores JDBC versión 2.x que admiten los anteriores JDBC 4.2:
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.4/redshift-jdbc42-2.2.4.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.4/redshift-jdbc42-2.2.4.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.3/redshift-jdbc42-2.2.3.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.3/redshift-jdbc42-2.2.3.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.2/redshift-jdbc42-2.2.2.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.2/redshift-jdbc42-2.2.2.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.1/redshift-jdbc42-2.2.1.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.1/redshift-jdbc42-2.2.1.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.0/redshift-jdbc42-2.2.0.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.2.0/redshift-jdbc42-2.2.0.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.34/redshift-jdbc42-2.1.0.34.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.34/redshift-jdbc42-2.1.0.34.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.33/redshift-jdbc42-2.1.0.33.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.33/redshift-jdbc42-2.1.0.33.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.32/redshift-jdbc42-2.1.0.32.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.32/redshift-jdbc42-2.1.0.32.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.30/redshift-jdbc42-2.1.0.30.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.30/redshift-jdbc42-2.1.0.30.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.29/redshift-jdbc42-2.1.0.29.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.29/redshift-jdbc42-2.1.0.29.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.28/redshift-jdbc42-2.1.0.28.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.28/redshift-jdbc42-2.1.0.28.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.26/redshift-jdbc42-2.1.0.26.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.26/redshift-jdbc42-2.1.0.26.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.25/redshift-jdbc42-2.1.0.25.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.25/redshift-jdbc42-2.1.0.25.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.24/redshift-jdbc42-2.1.0.24.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.24/redshift-jdbc42-2.1.0.24.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.23/redshift-jdbc42-2.1.0.23.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.23/redshift-jdbc42-2.1.0.23.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.22/redshift-jdbc42-2.1.0.22.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.22/redshift-jdbc42-2.1.0.22.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.21/redshift-jdbc42-2.1.0.21.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.21/redshift-jdbc42-2.1.0.21.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.20/redshift-jdbc42-2.1.0.20.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.20/redshift-jdbc42-2.1.0.20.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.19/redshift-jdbc42-2.1.0.19.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.19/redshift-jdbc42-2.1.0.19.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.18/redshift-jdbc42-2.1.0.18.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.18/redshift-jdbc42-2.1.0.18.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.17/redshift-jdbc42-2.1.0.17.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.17/redshift-jdbc42-2.1.0.17.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.16/redshift-jdbc42-2.1.0.16.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.16/redshift-jdbc42-2.1.0.16.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.15/redshift-jdbc42-2.1.0.15.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.15/redshift-jdbc42-2.1.0.15.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.14/redshift-jdbc42-2.1.0.14.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.14/redshift-jdbc42-2.1.0.14.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.13/redshift-jdbc42-2.1.0.13.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.13/redshift-jdbc42-2.1.0.13.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.12/redshift-jdbc42-2.1.0.12.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.12/redshift-jdbc42-2.1.0.12.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.11/redshift-jdbc42-2.1.0.11.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.11/redshift-jdbc42-2.1.0.11.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.10/redshift-jdbc42-2.1.0.10.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.10/redshift-jdbc42-2.1.0.10.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.9/redshift-jdbc42-2.1.0.9.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.9/redshift-jdbc42-2.1.0.9.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.8/redshift-jdbc42-2.1.0.8.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.8/redshift-jdbc42-2.1.0.8.zip) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.7/redshift-jdbc42-2.1.0.7.zip](https://s3.amazonaws.com/redshift-downloads/drivers/jdbc/2.1.0.7/redshift-jdbc42-2.1.0.7.zip) 

# Conector de Python de Amazon Redshift
<a name="python-redshift-driver"></a>

Mediante el conector de Amazon Redshift para Python, puede integrar el trabajo al [AWS SDK para Python (Boto3)](https://github.com/boto/boto3), y también pandas y Python numérico (NumPy). Para obtener más información sobre pandas, consulte el [repositorio de GitHub de pandas](https://github.com/pandas-dev/pandas). Para obtener más información sobre NumPy, consulte el [repositorio de GitHub de NumPy](https://github.com/numpy/numpy). 

El conector Python de Amazon Redshift proporciona una solución de código abierto. Puede examinar el código fuente, solicitar mejoras, informar problemas y realizar aportaciones. 

Para utilizar el conector Python de Amazon Redshift, asegúrese de tener Python versión 3.6 o posterior. Para obtener más información, consulte el [acuerdo de licencia del controlador Python de Amazon Redshift](https://github.com/aws/amazon-redshift-python-driver/blob/master/LICENSE). 

El conector Python de Amazon Redshift proporciona lo siguiente:
+ AWS Identity and Access ManagementAuthentication de (IAM). Para obtener más información, consulte [Administración de identidades y accesos en Amazon Redshift](redshift-iam-authentication-access-control.md).
+ Autenticación de proveedores de identidad mediante acceso a API federado. El acceso a la API federado admite proveedores de identidad corporativa, como los siguientes:
  + Azure AD. Para obtener más información, consulte la entrada del blog de Big Data de AWS [Federate Amazon Redshift access with Microsoft Azure AD single sign-on](https://aws.amazon.com/blogs/big-data/federate-amazon-redshift-access-with-microsoft-azure-ad-single-sign-on/).
  + Active Directory Federation Services. Para obtener más información, consulte la entrada del blog de Big Data de AWS [Federate access to your Amazon Redshift cluster with Active Directory Federation Services (AD FS): Part 1](https://aws.amazon.com/blogs/big-data/federate-access-to-your-amazon-redshift-cluster-with-active-directory-federation-services-ad-fs-part-1/). 
  + Okta. Para obtener más información, consulte la entrada del blog de Big Data de AWS [Federate Amazon Redshift access with Okta as an identity provider](https://aws.amazon.com/blogs/big-data/federate-amazon-redshift-access-with-okta-as-an-identity-provider/).
  + PingFederate. Para obtener más información, consulte el [sitio de PingFederate](https://www.pingidentity.com/en/software/pingfederate.html).
  + JumpCloud. Para obtener más información, cpnsulte el [sitio de JumpCloud](https://jumpcloud.com/).
+ Tipos de datos de Amazon Redshift

El conector Python de Amazon Redshift implementa la especificación 2.0 de la API de base de datos de Python. Para obtener más información, consulte [PEP 249—Python Database API Specification v2.0](https://www.python.org/dev/peps/pep-0249/) en el sitio web de Python.

**Topics**
+ [Instalación del conector Python de Amazon Redshift](python-driver-install.md)
+ [Opciones de configuración para el conector Python de Amazon Redshift](python-configuration-options.md)
+ [Importación del conector Python](python-start-import.md)
+ [Integración del conector Python a NumPy](python-connect-integrate-numpy.md)
+ [Integración del conector Python a pandas](python-connect-integrate-pandas.md)
+ [Uso de complementos de proveedores de identidades](python-connect-identity-provider-plugins.md)
+ [Ejemplos de uso del conector Python de Amazon Redshift](python-connect-examples.md)
+ [Referencia de la API para el conector Python de Amazon Redshift](python-api-reference.md)

# Instalación del conector Python de Amazon Redshift
<a name="python-driver-install"></a>

Puede utilizar cualquiera de los siguientes métodos para instalar el conector Python de Amazon Redshift:
+ Índice de paquetes de Python (PyPI)
+ Conda
+ Clonación del repositorio de GitHub

## Instalación del conector Python desde PyPI
<a name="python-pip-install-pypi"></a>

Para instalar el conector Python desde el Índice de paquetes de Python (PyPI), puede utilizar pip. Para ello, ejecute el siguiente comando.

```
>>> pip install redshift_connector
```

Puede instalar el conector en un entorno virtual. Para ello, ejecute el siguiente comando.

```
>>> pip install redshift_connector
```

Opcionalmente, puede instalar pandas y NumPy con el conector.

```
>>> pip install 'redshift_connector[full]'
```

Para obtener más información sobre pip, consulte el [sitio de pip](https://pip.pypa.io/en/stable/).

## Instalación del conector Python desde Conda
<a name="python-pip-install-from-conda"></a>

Puede instalar el conector Python desde Anaconda.org.

```
>>>conda install -c conda-forge redshift_connector
```

## Instalación del conector Python mediante la clonación del repositorio de GitHub desde AWS
<a name="python-pip-install-from-source"></a>

Para instalar el conector Python desde el origen, clone el repositorio GitHub desde AWS. Después de instalar Python y virtualenv, configure su entorno e instale las dependencias necesarias mediante la ejecución de los siguientes comandos.

```
$ git clone https://github.com/aws/amazon-redshift-python-driver.git
$ cd amazon-redshift-python-driver
$ virtualenv venv
$ . venv/bin/activate
$ python -m pip install -r requirements.txt
$ python -m pip install -e .
$ python -m pip install redshift_connector
```

# Opciones de configuración para el conector Python de Amazon Redshift
<a name="python-configuration-options"></a>

A continuación, puede encontrar descripciones relativas a las opciones que puede especificar para el conector Python de Amazon Redshift. Las opciones que se indican a continuación se aplican a la última versión disponible del conector, a menos que se especifique lo contrario.

## access\$1key\$1id
<a name="python-access-key-id-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

La clave de acceso del rol o usuario de IAM configurado para la autenticación de la base de datos de IAM. 

Este parámetro es opcional.

## allow\$1db\$1user\$1override
<a name="python-allow-db-user-override-option"></a>
+ **Valor predeterminado:** false
+ **Tipos de datos:** booleano

True  
Especifica que el conector utiliza el valor `DbUser` de la aserción del lenguaje de marcado de aserción de seguridad (SAML).

False  
Especifica que se utiliza el valor del parámetro de conexión `DbUser`.

Este parámetro es opcional.

## app\$1name
<a name="python-app-name-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre de la aplicación de proveedor de identidades (IdP) utilizado para la autenticación. 

Este parámetro es opcional.

## application\$1name
<a name="python-application_name-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre de la aplicación del cliente que se va a pasar a Amazon Redshift con fines de auditoría. El nombre de la aplicación que proporcione aparece en la columna “application\$1name” de la tabla [SYS\$1CONNECTION\$1LOG](https://docs.aws.amazon.com/redshift/latest/dg/SYS_CONNECTION_LOG.html). Esto ayuda a rastrear y solucionar problemas de orígenes de conexión al depurar problemas.

Este parámetro es opcional.

## auth\$1profile
<a name="python-auth-profile-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre de un perfil de autenticación de Amazon Redshift que tiene propiedades de conexión como JSON. Para obtener más información sobre cómo asignar nombres a los parámetros de conexión, consulte la clase `RedshiftProperty`. La clase `RedshiftProperty` almacena los parámetros de conexión proporcionados por el usuario final y, si procede, generados durante el proceso de autenticación de IAM (por ejemplo, credenciales de IAM temporales). Para obtener más información, consulte la [clase RedshiftProperty](https://github.com/aws/amazon-redshift-python-driver/blob/master/redshift_connector/redshift_property.py#L9). 

Este parámetro es opcional.

## auto\$1create
<a name="python-auto-create-option"></a>
+ **Valor predeterminado:** false
+ **Tipos de datos:** booleano

Un valor que indica si se va a crear el usuario si el usuario no existe. 

Este parámetro es opcional.

## client\$1id
<a name="python-client-id-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El ID de cliente del IdP de Azure. 

Este parámetro es opcional.

## client\$1secret
<a name="python-client-secret-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El secreto del cliente del IdP de Azure. 

Este parámetro es opcional.

## cluster\$1identifier
<a name="python-cluster-identifier-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El identificador de clúster del clúster de Amazon Redshift. 

Este parámetro es opcional.

## credentials\$1provider
<a name="python-credential-provider-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El IdP que se utiliza para la autenticación en Amazon Redshift. Los siguientes valores son válidos: 
+ `AdfsCredentialsProvider`
+ `AzureCredentialsProvider`
+ `BrowserAzureCredentialsProvider`
+ `BrowserAzureOAuth2CredentialsProvider`
+ `BrowserIdcAuthPlugin`: complemento de autorización que utiliza AWS IAM Identity Center.
+ `BrowserSamlCredentialsProvider`
+ `IdpTokenAuthPlugin`: complemento de autorización que acepta un token de AWS IAM Identity Center o un token de identidad basado en JSON (JWT) de OpenID Connect (OIDC) de cualquier proveedor de identidades web vinculado a AWS IAM Identity Center.
+ `PingCredentialsProvider`
+ `OktaCredentialsProvider`

Este parámetro es opcional.

## database
<a name="python-database-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre de la base de datos a la que desea conectarse. 

Este parámetro es obligatorio.

## database\$1metadata\$1current\$1db\$1only
<a name="python-database-metadata-current-db-only-option"></a>
+ **Valor predeterminado:** true
+ **Tipos de datos:** booleano

Un valor que indica si una aplicación admite catálogos de recursos compartidos de datos de varias bases de datos. El valor predeterminado de True indica que la aplicación no admite catálogos de recursos compartidos de datos de varias bases de datos para compatibilidad con versiones anteriores. 

Este parámetro es opcional.

## db\$1groups
<a name="python-db-groups-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

Una lista separada por comas de los nombres de grupos de bases de datos existentes que el usuario indicó al unir el DbUser para la sesión actual. 

Este parámetro es opcional.

## db\$1user
<a name="python-db-user-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El ID de usuario que se utilizará con Amazon Redshift. 

Este parámetro es opcional.

## endpoint\$1url
<a name="python-endpoint-url-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

La URL del punto de conexión de Amazon Redshift. Esta opción es solo para uso interno de AWS. 

Este parámetro es opcional.

## group\$1federation
<a name="python-group-federation-option"></a>
+ **Valor predeterminado:** false
+ **Tipos de datos:** booleano

Esta opción especifica si se utilizarán grupos de IDP de Amazon Redshift.

Este parámetro es opcional.

**true**  
Utilice grupos de proveedores de identidad (IDP) de Amazon Redshift.

**false**  
Utilice la API STS y GetClusterCredentials para la federación de usuarios y especifique **db\$1groups** para la conexión.

## host
<a name="python-host-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre del host del clúster de Amazon Redshift. 

Este parámetro es opcional.

## iam
<a name="python-iam-option"></a>
+ **Valor predeterminado:** false
+ **Tipos de datos:** booleano

La autenticación de IAM está habilitada. 

Este parámetro es obligatorio.

## iam\$1disable\$1cache
<a name="python-iam-disable-cache-option"></a>
+ **Valor predeterminado:** false
+ **Tipos de datos:** booleano

Esta opción especifica si las credenciales de IAM se almacenan en caché. De manera predeterminada, las credenciales de IAM se almacenan en caché. De este modo, se mejora el rendimiento en los casos en que las solicitudes a la API Gateway tienen limitación controlada. 

Este parámetro es opcional.

## idc\$1client\$1display\$1name
<a name="python-idc_client_display_name-option"></a>
+ **Valor predeterminado**: conector Python de Amazon Redshift
+ **Tipo de datos:** cadena

El nombre para mostrar que se utilizará para el cliente que usa BrowserIdcAuthPlugin.

Este parámetro es opcional.

## idc\$1region
<a name="python-idc_region"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

Es la región de AWS en la que se encuentra la instancia de AWS IAM Identity Center.

Este parámetro es necesario solo cuando en la autenticación se utiliza `BrowserIdcAuthPlugin` en la opción de configuración credentials\$1provider.

## idp\$1partition
<a name="python-idp_partition-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

Especifica la partición de la nube en la que está configurado el proveedor de identidades (IdP). Esto determina a qué punto de conexión de autenticación de IdP se conecta el controlador.

Si este parámetro se deja en blanco, el controlador utilizará de forma predeterminada la partición comercial. Los valores posibles son los que se indican a continuación.
+  `us-gov`: utilice este valor si su IdP está configurado en Azure Government. Por ejemplo, Azure AD Government usa el punto de conexión `login.microsoftonline.us`.
+  `cn`: utilice este valor si su IdP está configurado en la partición en la nube de China. Por ejemplo, Azure AD China usa el punto de conexión `login.chinacloudapi.cn`. 

Este parámetro es opcional.

## idpPort
<a name="python-idp-port-option"></a>
+ **Valor predeterminado** – 7890
+ **Tipo de datos:** entero

El puerto de escucha al que el IdP envía la aserción SAML. 

Este parámetro es obligatorio.

## Idp\$1response\$1timeout
<a name="python-idp-response-timeout-option"></a>
+ **Valor predeterminado** – 120
+ **Tipo de datos:** entero

Tiempo de espera para recuperar la aserción SAML del IdP. 

Este parámetro es obligatorio.

## idp\$1tenant
<a name="python-idp-tenant-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El inquilino del IdP. 

Este parámetro es opcional.

## issuer\$1url
<a name="python-issuer_url"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

 Apunta al punto de conexión de la instancia del servidor de AWS IAM Identity Center. 

Este parámetro es necesario solo cuando en la autenticación se utiliza `BrowserIdcAuthPlugin` en la opción de configuración credentials\$1provider.

## listen\$1port
<a name="python-listen-port-option"></a>
+ **Valor predeterminado** – 7890
+ **Tipo de datos:** entero

El puerto que utiliza el controlador para recibir la respuesta SAML del proveedor de identidades o el código de autorización cuando se utilizan los servicios SAML, Azure AD o AWS IAM Identity Center a través de un complemento del navegador.

Este parámetro es opcional.

## login\$1url
<a name="python-login-url-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

La URL de inicio de sesión único para el IdP. 

Este parámetro es opcional.

## max\$1prepared\$1statements
<a name="python-max-prepared-statements-option"></a>
+ **Valor predeterminado** – 1000
+ **Tipo de datos:** entero

El número máximo de instrucciones preparadas que se almacenarán en caché por conexión. Si establece este parámetro en 0, desactivará el mecanismo de almacenamiento en caché. Si introduce un número negativo para este parámetro, lo establecerá en el valor predeterminado. 

Este parámetro es opcional.

## numeric\$1to\$1float
<a name="python-numeric-to-float-option"></a>
+ **Valor predeterminado:** false
+ **Tipos de datos:** booleano

Esta opción especifica si el conector convierte valores de tipo de datos numéricos de decimal.Decimal a float. De forma predeterminada, el conector recibe valores de tipo de datos numéricos como decimal.Decimal y no los convierte. 

No recomendamos habilitar numeric\$1to\$1float para casos de uso que requieren precisión, ya que los resultados se pueden redondear. 

Para obtener más información sobre decimal.Decimal y las compensaciones entre él y float, consulte [decimal — Aritmética decimal de coma fija y coma flotante](https://docs.python.org/3/library/decimal.html) en el sitio web de Python. 

Este parámetro es opcional.

## partner\$1sp\$1id
<a name="python-partner-sp-id-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El ID de SP de socio utilizado para la autenticación en Ping. 

Este parámetro es opcional.

## contraseña
<a name="python-password-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

La contraseña que se utilizará para la autenticación. 

Este parámetro es opcional.

## puerto
<a name="python-port-option"></a>
+ **Valor predeterminado** – 5439
+ **Tipo de datos:** entero

El número de puerto del clúster de Amazon Redshift. 

Este parámetro es obligatorio.

## preferred\$1role
<a name="python-preferred-role-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El rol de IAM preferido para la conexión actual. 

Este parámetro es opcional.

## principal\$1arn
<a name="python-principal-arn-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre de recurso de Amazon (ARN) del usuario o rol de IAM para el que está generando una política. Se recomienda asociar una política a un rol y luego asignar el rol a su usuario, para el acceso. 

Este parámetro es opcional.

## profile
<a name="python-profile-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre de un perfil de en un archivo de credenciales de AWS que contiene credenciales de AWS. 

Este parámetro es opcional.

## provider\$1name
<a name="python-provider_name-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre del proveedor de autenticación nativo de Redshift. 

Este parámetro es opcional.

## region
<a name="python-region-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

La Región de AWS donde se encuentra el clúster. 

Este parámetro es opcional.

## role\$1arn
<a name="python-role-arn-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre de recurso de Amazon (ARN) del rol que la persona que llama va a tomar. Este parámetro lo utiliza el proveedor indicado por `JwtCredentialsProvider`. 

Para el proveedor de `JwtCredentialsProvider`, este parámetro es obligatorio. De lo contrario, este parámetro es opcional.

## role\$1session\$1name
<a name="python-role-session-name-option"></a>
+ **Valor predeterminado:** jwt\$1redshift\$1session
+ **Tipo de datos:** cadena

Un identificador para la sesión del rol asumido. Por lo general, se pasa el nombre o el identificador que se asocia con el usuario que está usando su aplicación. Las credenciales de seguridad temporales que utiliza su aplicación se asocian a ese usuario. Este parámetro lo utiliza el proveedor indicado por `JwtCredentialsProvider`. 

Este parámetro es opcional.

## scope
<a name="python-scope-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

Una lista separada por espacios de los ámbitos a los que el usuario puede dar su consentimiento. Especifique este parámetro para que su aplicación pueda obtener el consentimiento para las API a las que desee llamar. Puede especificar este parámetro cuando indique BrowserAzureOAuth2CredentialsProvider para la opción credentials\$1provider.

Este parámetro es necesario para el complemento BrowserAzureOAuth2CredentialsProvider.

## secret\$1access\$1key\$1id
<a name="python-secret-access-key-id-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

La clave de acceso secreta del rol o usuario de IAM configurado para la autenticación de la base de datos de IAM. 

Este parámetro es opcional.

## session\$1token
<a name="python-session-token-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

La clave de acceso del rol o usuario de IAM configurado para la autenticación de la base de datos de IAM. Este parámetro es obligatorio si se están utilizando credenciales de AWS temporales. 

Este parámetro es opcional.

## serverless\$1acct\$1id
<a name="python-serverless-acct-id-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El ID de la cuenta de Amazon Redshift Serverless.

Este parámetro es opcional.

## serverless\$1work\$1group
<a name="python-serverless-work-group-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre del grupo de trabajo de Amazon Redshift Serverless.

Este parámetro es opcional.

## ssl
<a name="python-ssl-option"></a>
+ **Valor predeterminado:** true
+ **Tipos de datos:** booleano

La capa de sockets seguros (SSL) está habilitada. 

Este parámetro es obligatorio.

## ssl\$1insecure
<a name="python-ssl-insecure-option"></a>
+ **Valor predeterminado:** false
+ **Tipos de datos:** booleano

Un valor que especifica si desactivar la verificación del certificado SSL del servidor del host de IdP. Si se establece este parámetro en True, se desactivará la verificación del certificado SSL del servidor del host de IdP. Le recomendamos que mantenga el valor predeterminado de False en entornos de producción.

Este parámetro es opcional.

## sslmode
<a name="python-sslmode-option"></a>
+ **Valor predeterminado:** verify-ca
+ **Tipo de datos:** cadena

La seguridad de la conexión a Amazon Redshift. Puede especificar cualquiera de los siguientes: 
+ verify-ca
+ verify-full

Este parámetro es obligatorio.

## tcp\$1keepalive
<a name="python-tcp_keepalive-option"></a>
+ **Valor predeterminado:** true
+ **Tipos de datos:** booleano

Si se debe usar keepalives de TCP para evitar que las conexiones caduquen. Puede especificar los valores siguientes:
+ True: el controlador utiliza keepalives de TCP para mantener el tiempo de espera de las conexiones.
+ False: el controlador no utilizará keepalives de TCP.

Este parámetro es opcional.

## tcp\$1keepalive\$1count
<a name="python-tcp_keepalive_count-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** entero

El número de sondeos no confirmados que se van a enviar antes de considerar la conexión inactiva. Por ejemplo, si se establece el valor en 3, el controlador enviará 3 paquetes de keepalive sin respuesta antes de determinar que la conexión ya no está activa.

Si no se especifica este parámetro, Amazon Redshift utiliza el valor predeterminado del sistema.

Este parámetro es opcional.

## tcp\$1keepalive\$1interval
<a name="python-tcp_keepalive_interval-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** entero

El intervalo, en segundos, entre las siguientes sondas de keepalive si el controlador no ha recibido el acuse de recibo de la sonda anterior. Si especifica este parámetro, debe ser un número entero positivo.

Si no se especifica este parámetro, Amazon Redshift utiliza el valor predeterminado del sistema.

Este parámetro es opcional.

## tcp\$1keepalive\$1idle
<a name="python-tcp_keepalive_idle-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** entero

La duración de la inactividad, en segundos, después de la cual el controlador envía la primera sonda de keepalive. Por ejemplo, si se establece el valor en 120, el controlador esperará 2 minutos de inactividad antes de enviar el primer paquete de keepalive. Si especifica este parámetro, debe ser un número entero positivo. 

Si no se especifica este parámetro, Amazon Redshift utiliza el valor predeterminado del sistema.

Este parámetro es opcional.

## timeout
<a name="python-timeout-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** entero

La cantidad de segundos antes de que la conexión al servidor se agote. 

Este parámetro es opcional.

## token
<a name="python-token-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

Un token de acceso proporcionado por AWS IAM Identity Center o un token web JSON (JWT) de OpenID Connect (OIDC) proporcionado por un proveedor de identidades web que esté vinculado con AWS IAM Identity Center. Su aplicación debe generar este token autenticando al usuario de su aplicación con AWS IAM Identity Center o con un proveedor de identidades vinculado con AWS IAM Identity Center. 

Este parámetro funciona con `IdpTokenAuthPlugin`.

## token\$1type
<a name="python-token_type-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

Tipo de token que se utiliza en `IdpTokenAuthPlugin`.

Puede especificar los valores siguientes:

**ACCESS\$1TOKEN**  
Introdúzcalo si utiliza un token de acceso proporcionado por AWS IAM Identity Center.

**EXT\$1JWT**  
Introdúzcalo si utiliza un token web JSON (JWT) de OpenID Connect (OIDC) proporcionado por un proveedor de identidades basado en web que está integrado con AWS IAM Identity Center.

Este parámetro funciona con `IdpTokenAuthPlugin`.

## usuario
<a name="python-user-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre de usuario que se va a utilizar para la autorización. 

Este parámetro es opcional.

## web\$1identity\$1token
<a name="python-web-identity-token-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El token de acceso de OAuth 2.0 o el token del ID de OpenID Connect proporcionado por el proveedor de identidad. Asegúrese de que su aplicación obtenga este token mediante la autenticación del usuario que usa la aplicación con un proveedor de identidad web. El proveedor indicado por `JwtCredentialsProvider` utiliza este parámetro. 

Para el proveedor de `JwtCredentialsProvider`, este parámetro es obligatorio. De lo contrario, este parámetro es opcional.

# Importación del conector Python
<a name="python-start-import"></a>

Para importar el conector Python, ejecute en siguiente comando.

```
>>> import redshift_connector
```

Para conectarse a un clúster de Amazon Redshift mediante credenciales de AWS, ejecute el siguiente comando.

```
conn = redshift_connector.connect(
    host='examplecluster.abc123xyz789.us-west-1.redshift.amazonaws.com',
    port=5439,
    database='dev',
    user='awsuser',
    password='my_password'
 )
```

# Integración del conector Python a NumPy
<a name="python-connect-integrate-numpy"></a>

A continuación se muestra un ejemplo de integración del conector Python a NumPy.

```
>>>  import numpy
#Connect to the cluster
>>> import redshift_connector
>>> conn = redshift_connector.connect(
     host='examplecluster.abc123xyz789.us-west-1.redshift.amazonaws.com',
     port=5439,
     database='dev',
     user='awsuser',
     password='my_password'
  )
  
# Create a Cursor object
>>> cursor = conn.cursor()

# Query and receive result set            
cursor.execute("select * from book")

result: numpy.ndarray = cursor.fetch_numpy_array()
print(result)
```

A continuación, se muestra el resultado.

```
[['One Hundred Years of Solitude' 'Gabriel García Márquez']
['A Brief History of Time' 'Stephen Hawking']]
```

# Integración del conector Python a pandas
<a name="python-connect-integrate-pandas"></a>

A continuación se muestra un ejemplo de integración del conector Python a pandas.

```
>>> import pandas

#Connect to the cluster
>>> import redshift_connector
>>> conn = redshift_connector.connect(
     host='examplecluster.abc123xyz789.us-west-1.redshift.amazonaws.com',
     port=5439,
     database='dev',
     user='awsuser',
     password='my_password'
  )
  
# Create a Cursor object
>>> cursor = conn.cursor()

# Query and receive result set
cursor.execute("select * from book")
result: pandas.DataFrame = cursor.fetch_dataframe()
print(result)
```

# Uso de complementos de proveedores de identidades
<a name="python-connect-identity-provider-plugins"></a>

Para obtener información general sobre cómo utilizar los complementos de proveedores de identidades, consulte [Opciones para proporcionar credenciales de IAM](options-for-providing-iam-credentials.md). Para obtener más información sobre cómo administrar las identidades de IAM, incluidas las prácticas recomendadas para los roles de IAM, consulte [Administración de identidades y accesos en Amazon Redshift](redshift-iam-authentication-access-control.md).

## Autenticación mediante el complemento de proveedores de identidades de AD FS
<a name="python-connect-identity-provider-active-dir"></a>

A continuación se muestra un ejemplo del uso del complemento de proveedores de identidades de Servicios de federación de Active Directory (AD FS) para autenticar a un usuario que se conecta a una base de datos de Amazon Redshift.

```
>>> con = redshift_connector.connect(
    iam=True,
    database='dev',
    host='my-testing-cluster.abc.us-east-2.redshift.amazonaws.com',
    cluster_identifier='my-testing-cluster',
    credentials_provider='AdfsCredentialsProvider',
    user='brooke@myadfshostname.com',
    password='Hunter2',
    idp_host='myadfshostname.com'
)
```

## Autenticación mediante el complemento de proveedores de identidades Azure
<a name="python-connect-identity-provider-azure"></a>

A continuación se muestra un ejemplo de autenticación mediante el complemento de proveedores de identidades Azure. Puede crear valores para `client_id` y `client_secret` para una aplicación para empresas Azure tal y como se muestra a continuación. 

```
>>>  con = redshift_connector.connect(
    iam=True,
    database='dev',
    host='my-testing-cluster.abc.us-east-2.redshift.amazonaws.com',
    cluster_identifier='my-testing-cluster',
    credentials_provider='AzureCredentialsProvider',
    user='brooke@myazure.org',
    password='Hunter2',
    idp_tenant='my_idp_tenant',
    client_id='my_client_id',
    client_secret='my_client_secret',
    preferred_role='arn:aws:iam:123:role/DataScientist'
)
```

## Autenticación mediante el complemento de proveedores de identidades de AWS IAM Identity Center
<a name="python-connect-identity-provider-aws-idc"></a>

 A continuación se muestra un ejemplo de autenticación mediante el complemento de proveedores de identidades de AWS IAM Identity Center. 

```
with redshift_connector.connect(
credentials_provider='BrowserIdcAuthPlugin',
host='my-testing-cluster.abc.us-east-2.redshift.amazonaws.com',
database='dev',
idc_region='us-east-1',
issuer_url='https://identitycenter.amazonaws.com/ssoins-790723ebe09c86f9',
idp_response_timeout=60,
listen_port=8100,
idc_client_display_name='Test Display Name',
# port value of 5439 is specified by default
)
```

## Autenticación mediante el complemento de proveedores de identidades Azure Browser
<a name="python-connect-identity-provider-azure-browser"></a>

A continuación se muestra un ejemplo del uso del complemento de proveedores de identidades Azure Browser para autenticar a un usuario que se conecta a una base de datos de Amazon Redshift.

La autenticación multifactor se produce en el navegador, donde las credenciales de inicio de sesión las proporciona el usuario.

```
>>>con = redshift_connector.connect(
    iam=True,
    database='dev',
    host='my-testing-cluster.abc.us-east-2.redshift.amazonaws.com',
    cluster_identifier='my-testing-cluster',
    credentials_provider='BrowserAzureCredentialsProvider',
    idp_tenant='my_idp_tenant',
    client_id='my_client_id',
)
```

## Autenticación mediante el complemento de proveedores de identidades Okta
<a name="python-connect-identity-provider-okta"></a>

A continuación se muestra un ejemplo de autenticación mediante el complemento de proveedores de identidades Okta. Puede obtener los valores de `idp_host`, `app_id` y `app_name` a través de la aplicación Okta.

```
>>> con = redshift_connector.connect(
    iam=True,
    database='dev',
    host='my-testing-cluster.abc.us-east-2.redshift.amazonaws.com',
    cluster_identifier='my-testing-cluster',
    credentials_provider='OktaCredentialsProvider',
    user='brooke@myazure.org',
    password='hunter2',
    idp_host='my_idp_host',
    app_id='my_first_appetizer',
    app_name='dinner_party'
)
```

## Autenticación mediante JumpCloud con un complemento de proveedores de identidades de navegador SAML genérico
<a name="python-connect-identity-provider-jumpcloud"></a>

A continuación se muestra un ejemplo de autenticación mediante JumpCloud con un complemento de proveedores de identidades de navegador SAML genérico.

La contraseña del parámetro es obligatoria. No obstante, no tiene que ingresar este parámetro porque la autenticación multifactor se produce en el navegador.

```
>>> con = redshift_connector.connect(
    iam=True,
    database='dev',
    host='my-testing-cluster.abc.us-east-2.redshift.amazonaws.com',
    cluster_identifier='my-testing-cluster',
    credentials_provider='BrowserSamlCredentialsProvider',
    user='brooke@myjumpcloud.org',
    password='',
    login_url='https://sso.jumpcloud.com/saml2/plustwo_melody'
)
```

# Ejemplos de uso del conector Python de Amazon Redshift
<a name="python-connect-examples"></a>

A continuación se muestran ejemplos de cómo utilizar el conector Python de Amazon Redshift. Para ejecutarlos, primero debe instalar el conector Python. Para obtener más información sobre la instalación del conector Python de Amazon Redshift, consulte [Instalación del conector Python de Amazon Redshift](python-driver-install.md). Para obtener más información sobre las opciones de configuración que puede utilizar con el conector Python, consulte [Opciones de configuración para el conector Python de Amazon Redshift](python-configuration-options.md).

**Topics**
+ [Conexión y consulta a un clúster de Amazon Redshift mediante credenciales de AWS](#python-connect-cluster)
+ [Habilitación de la confirmación automática](#python-connect-enable-autocommit)
+ [Configuración del estilo de parámetro del cursor](#python-connect-config-paramstyle)
+ [Uso de COPY para copiar datos de un bucket de Amazon S3 y UNLOAD para escribirlos en este](#python-connect-copy-unload-s3)

## Conexión y consulta a un clúster de Amazon Redshift mediante credenciales de AWS
<a name="python-connect-cluster"></a>

El siguiente ejemplo le guía a través del proceso de conexión a un clúster de Amazon Redshift con sus credenciales de AWS y, a continuación, de consulta de una tabla y de recuperación de los resultados de la consulta.

```
#Connect to the cluster
>>> import redshift_connector
>>> conn = redshift_connector.connect(
     host='examplecluster.abc123xyz789.us-west-1.redshift.amazonaws.com',
     database='dev',
     port=5439,
     user='awsuser',
     password='my_password'
  )
  
# Create a Cursor object
>>> cursor = conn.cursor()

# Query a table using the Cursor
>>> cursor.execute("select * from book")
                
#Retrieve the query result set
>>> result: tuple = cursor.fetchall()
>>> print(result)
 >> (['One Hundred Years of Solitude', 'Gabriel García Márquez'], ['A Brief History of Time', 'Stephen Hawking'])
```

## Habilitación de la confirmación automática
<a name="python-connect-enable-autocommit"></a>

La propiedad de confirmación automática se desactiva de manera predeterminada, de acuerdo con la especificación de la API de base de datos de Python. Puede utilizar los siguientes comandos para activar la propiedad de confirmación automática de la conexión después de ejecutar un comando de reversión para asegurarse de que no haya una transacción en curso.

```
#Connect to the cluster
>>> import redshift_connector
>>> conn = redshift_connector.connect(...)

# Run a rollback command
>>>  conn.rollback()

# Turn on autocommit
>>>  conn.autocommit = True
>>>  conn.run("VACUUM")

# Turn off autocommit
>>>  conn.autocommit = False
```

## Configuración del estilo de parámetro del cursor
<a name="python-connect-config-paramstyle"></a>

El estilo de parámetro de un cursor se puede modificar mediante cursor.paramstyle. El estilo de parámetro predeterminado que se utiliza es `format`. Los valores válidos del estilo de parámetro son `qmark`, `numeric`, `named`, `format` y `pyformat`.

A continuación, se muestran ejemplos del uso de varios estilos de parámetro para pasar parámetros a una instrucción SQL de ejemplo.

```
# qmark
redshift_connector.paramstyle = 'qmark'
sql = 'insert into foo(bar, jar) VALUES(?, ?)'
cursor.execute(sql, (1, "hello world"))

# numeric
redshift_connector.paramstyle = 'numeric'
sql = 'insert into foo(bar, jar) VALUES(:1, :2)'
cursor.execute(sql, (1, "hello world"))

# named
redshift_connector.paramstyle = 'named'
sql = 'insert into foo(bar, jar) VALUES(:p1, :p2)'
cursor.execute(sql, {"p1":1, "p2":"hello world"})

# format
redshift_connector.paramstyle = 'format'
sql = 'insert into foo(bar, jar) VALUES(%s, %s)'
cursor.execute(sql, (1, "hello world"))

# pyformat
redshift_connector.paramstyle = 'pyformat'
sql = 'insert into foo(bar, jar) VALUES(%(bar)s, %(jar)s)'
cursor.execute(sql, {"bar": 1, "jar": "hello world"})
```

## Uso de COPY para copiar datos de un bucket de Amazon S3 y UNLOAD para escribirlos en este
<a name="python-connect-copy-unload-s3"></a>

En el siguiente ejemplo, se muestra cómo copiar datos de un bucket de Amazon S3 en una tabla y luego descargarlos de esa tabla en el bucket.

Un archivo de texto denominado `category_csv.txt` que contiene los siguientes datos se carga en un bucket de Amazon S3.

```
12,Shows,Musicals,Musical theatre
13,Shows,Plays,"All ""non-musical"" theatre"
14,Shows,Opera,"All opera, light, and ""rock"" opera"
15,Concerts,Classical,"All symphony, concerto, and choir concerts"
```

A continuación se muestra un ejemplo del código de Python, que se conecta primero a la base de datos de Amazon Redshift. A continuación crea una tabla llamada `category` y copia los datos CSV del bucket de S3 en la tabla.

```
#Connect to the cluster and create a Cursor
>>> import redshift_connector
>>> with redshift_connector.connect(...) as conn:
>>> with conn.cursor() as cursor:

#Create an empty table
>>>     cursor.execute("create table category (catid int, cargroup varchar, catname varchar, catdesc varchar)")

#Use COPY to copy the contents of the S3 bucket into the empty table 
>>>     cursor.execute("copy category from 's3://testing/category_csv.txt' iam_role 'arn:aws:iam::123:role/RedshiftCopyUnload' csv;")

#Retrieve the contents of the table
>>>     cursor.execute("select * from category")
>>>     print(cursor.fetchall())

#Use UNLOAD to copy the contents of the table into the S3 bucket
>>>     cursor.execute("unload ('select * from category') to 's3://testing/unloaded_category_csv.txt'  iam_role 'arn:aws:iam::123:role/RedshiftCopyUnload' csv;")

#Retrieve the contents of the bucket
>>>     print(cursor.fetchall())
 >> ([12, 'Shows', 'Musicals', 'Musical theatre'], [13, 'Shows', 'Plays', 'All "non-musical" theatre'], [14, 'Shows', 'Opera', 'All opera, light, and "rock" opera'], [15, 'Concerts', 'Classical', 'All symphony, concerto, and choir concerts'])
```

Si no lo ha establecido `autocommit` a true, confirme con `conn.commit()` después de ejecutar las instrucciones `execute()`.

Los datos se descargan en el archivo `unloaded_category_csv.text0000_part00` del bucket de S3 con el siguiente contenido:

```
12,Shows,Musicals,Musical theatre
13,Shows,Plays,"All ""non-musical"" theatre"
14,Shows,Opera,"All opera, light, and ""rock"" opera"
15,Concerts,Classical,"All symphony, concerto, and choir concerts"
```

# Referencia de la API para el conector Python de Amazon Redshift
<a name="python-api-reference"></a>

A continuación encontrará una descripción de las operaciones de la API del conector Python de Amazon Redshift.

## redshift\$1connector
<a name="python-api-redshift_connector"></a>

A continuación encontrará una descripción de la operación de la API `redshift_connector`.

`connect(user, database, password[, port, …])`  
Establece una conexión a un clúster de Amazon Redshift. Esta función valida la entrada del usuario, se autentica opcionalmente mediante un complemento de proveedores de identidades y, a continuación, crea un objeto de conexión.

`apilevel`  
El nivel DBAPI admite, actualmente “2.0”.

`paramstyle``str(object=’’) -> str str(bytes_or_buffer[, encoding[, errors]]) -> str`  
El estilo de parámetro de la API de base de datos que se va a utilizar globalmente.

## Connection
<a name="python-api-connection"></a>

A continuación encontrará una descripción de las operaciones de la API de conexión para el conector Python de Amazon Redshift.

`__init__(user, password, database[, host, …])`  
Inicializa un objeto de conexión sin procesar.

`cursor`  
Crea un objeto cursor vinculado a esta conexión.

`commit`  
Confirma la transacción de la base de datos actual.

`rollback`  
Retrocede la transacción de la base de datos actual.

`close`  
Cierra la conexión a la base de datos.

`execute(cursor, operation, vals)`  
Ejecuta los comandos SQL especificados. Puede proporcionar los parámetros en forma de secuencia o como una asignación, según el valor de `redshift_connector.paramstyle`.

`run(sql[, stream])`  
Ejecuta los comandos SQL especificados. De forma opcional, puede proporcionar una secuencia para utilizarla con el comando COPY.

`xid(format_id, global_transaction_id, …)`  
Cree un ID de transacción. Solo utiliza el parámetro `global_transaction_id` en postgres. format\$1id y branch\$1qualifier no se utilizan en postgres. El `global_transaction_id` puede ser cualquier identificador de cadena que admite postgres que devuelva una tupla (`format_id`, `global_transaction_id`, `branch_qualifier`).

`tpc_begin(xid)`  
Inicia una transacción de TPC con un ID de transacción `xid` que consiste en un ID de formato, un ID de transacción global y un calificador de ramificación. 

`tpc_prepare`  
Realiza la primera fase de una transacción iniciada con .tpc\$1begin.

`tpc_commit([xid])`  
Cuando se llama sin argumentos, .tpc\$1commit confirma una transacción de TPC preparada previamente con .tpc\$1prepare().

`tpc_rollback([xid])`  
Cuando se llama sin argumentos, .tpc\$1rollback revierte una transacción de TPC.

`tpc_recover`  
Devuelve una lista de los ID de transacción pendientes adecuados para su uso con .tpc\$1commit(xid) o .tpc\$1rollback(xid).

## Cursor
<a name="python-api-cursor"></a>

A continuación encontrará una descripción de la operación de la API de cursor.

`__init__(connection[, paramstyle])`  
Inicializa un objeto cursor sin procesar.

`insert_data_bulk(filename, table_name, parameter_indices, column_names, delimiter, batch_size)`  
Ejecuta una instrucción INSERT masiva.

`execute(operation[, args, stream, …])`  
Ejecuta una operación de base de datos.

`executemany(operation, param_sets)`  
Prepara una operación de base de datos y, a continuación, la ejecuta para todas las secuencias de parámetros o asignaciones proporcionadas.

`fetchone`  
Recupera la siguiente fila de un conjunto de resultados de consultas.

`fetchmany([num])`  
Recupera el siguiente conjunto de filas de un resultado de consultas.

`fetchall`  
Recupera todas las filas restantes de un resultado de consultas.

`close`  
Cierre el cursor ahora. 

`__iter__`  
Se puede iterar un objeto cursor para recuperar las filas de una consulta.

`fetch_dataframe([num])`  
Devuelve un marco de datos de los resultados de la última consulta.

`write_dataframe(df, table)`  
Escribe el mismo marco de datos de estructura en una base de datos de Amazon Redshift.

`fetch_numpy_array([num])`  
Devuelve una matriz NumPy de los resultados de la última consulta.

`get_catalogs`  
Amazon Redshift no admite varios catálogos desde una única conexión. Amazon Redshift solo devuelve el catálogo actual.

`get_tables([catalog, schema_pattern, …])`  
Devuelve las tablas públicas únicas que están definidas por el usuario dentro del sistema.

`get_columns([catalog, schema_pattern, …])`  
Devuelve una lista de todas las columnas de una tabla específica de una base de datos de Amazon Redshift.

## Complemento AdfScredentialsProvider
<a name="python-adfs-credentials-plugin"></a>

A continuación se muestra la sintaxis de la operación de la API del complemento AdfsCredentialsProvider para el conector Python de Amazon Redshift. 

```
redshift_connector.plugin.AdfsCredentialsProvider()
```

## Complemento AzureCredentialsProvider
<a name="python-azure-credentials-plugin"></a>

A continuación se muestra la sintaxis de la operación de la API del complemento AzureCredentialsProvider para el conector Python de Amazon Redshift.

```
redshift_connector.plugin.AzureCredentialsProvider()
```

## Complemento BrowserAzureCredentialsProvider
<a name="python-browser-azure-credentials-plugin"></a>

A continuación se muestra la sintaxis de la operación de la API del complemento BrowserAzureCredentialsProvider para el conector Python de Amazon Redshift.

```
redshift_connector.plugin.BrowserAzureCredentialsProvider()
```

## Complemento BrowserSamlCredentialsProvider
<a name="python-browser-saml-credentials-plugin"></a>

A continuación se muestra la sintaxis de la operación de la API del complemento BrowserSamlCredentialsProvider para el conector Python de Amazon Redshift.

```
redshift_connector.plugin.BrowserSamlCredentialsProvider()
```

## Complemento OktaCredentialsProvider
<a name="python-okta-credentials-plugin"></a>

A continuación se muestra la sintaxis de la operación de la API del complemento OktaCredentialsProvider para el conector Python de Amazon Redshift.

```
redshift_connector.plugin.OktaCredentialsProvider()
```

## Complemento PingCredentialsProvider
<a name="python-ping-credentials-plugin"></a>

A continuación se muestra la sintaxis de la operación de la API del complemento PingCredentialsProvider para el conector Python de Amazon Redshift.

```
redshift_connector.plugin.PingCredentialsProvider()
```

## Complemento SamlCredentialsProvider
<a name="python-saml-credentials-plugin"></a>

A continuación se muestra la sintaxis de la operación de la API del complemento SamlCredentialsProvider para el conector Python de Amazon Redshift.

```
redshift_connector.plugin.SamlCredentialsProvider()
```

# Integración de Amazon Redshift para Apache Spark
<a name="spark-redshift-connector"></a>

 [Apache Spark](https://aws.amazon.com/emr/features/spark/) es un modelo de marco de procesamiento distribuido y de programación que le ayuda a aplicar machine learning, procesamiento de flujos o análisis de gráficos. Del mismo modo que Apache Hadoop, Spark es un sistema de procesamiento distribuido de código abierto utilizado frecuentemente para cargas de trabajo de big data. Spark cuenta con un motor de ejecución optimizado de grafos acíclicos dirigidos (DAG) y almacena activamente los datos en caché en la memoria. Esto puede aumentar el rendimiento, sobre todo en el caso de determinados algoritmos y consultas interactivas. 

 Esta integración le proporciona un conector Spark que puede utilizar para crear aplicaciones Apache Spark que lean y escriban en datos en Amazon Redshift y Amazon Redshift sin servidor. Estas aplicaciones no comprometen el rendimiento de la aplicación ni la coherencia transaccional de los datos. Esta integración se incluye automáticamente en [Amazon EMR](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/) y [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/), por lo que puede ejecutar inmediatamente trabajos de Apache Spark que accedan a los datos y los carguen en Amazon Redshift como parte de sus canalizaciones de ingesta y transformación de datos. 

Actualmente, puede usar las versiones 3.3.x, 3.4.x, 3.5.x y 4.0.0 de Spark con esta integración.

 Esta integración proporciona lo siguiente: 
+  AWS Identity and Access ManagementAuthentication de (IAM). Para obtener más información, consulte [Administración de identidades y accesos en Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-authentication-access-control.html). 
+ Inserción de predicados y consultas para mejorar el rendimiento.
+  Tipos de datos de Amazon Redshift 
+ Conectividad con Amazon Redshift y Amazon Redshift sin servidor.

## Consideraciones y limitaciones al utilizar el conector de Spark
<a name="spark-redshift-connector-considerations"></a>
+  El URI de directorio temporal apunta a una ubicación de Amazon S3. Este directorio temporal no se limpia automáticamente y podría agregar costos adicionales. Recomendamos utilizar las [políticas de ciclo de vida de Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html) de la *Guía del usuario de Amazon Simple Storage Service* para definir las reglas de retención del bucket de Amazon S3. 
+  De forma predeterminada, las copias entre Amazon S3 y Redshift no funcionan si el bucket de S3 y el clúster de Redshift se encuentran en regiones de AWS diferentes. Para usar regiones de AWS independientes, establezca el parámetro `tempdir_region` a la región del bucket de S3 utilizada para `tempdir`.
+ Escrituras entre regiones entre S3 y Redshift si se escriben datos de Parquet con el parámetro `tempformat`.
+ Recomendamos utilizar el [cifrado del servidor de Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html) para cifrar los buckets de Amazon S3 utilizados. 
+ Recomendamos [bloquear el acceso público a los buckets de Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-control-block-public-access.html). 
+  Recomendamos que el clúster de Amazon Redshift no sea de acceso público. 
+  Recomendamos activar el [registro de auditoría de Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/db-auditing.html). 
+  Recomendamos activar el [cifrado en reposo de Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/security-server-side-encryption.html). 
+  Recomendamos activar SSL para la conexión JDBC desde Spark en Amazon EMR a Amazon Redshift. 
+ Recomendamos pasar un rol de IAM mediante el parámetro `aws_iam_role` para el parámetro de autenticación de Amazon Redshift.

# Autenticación con el conector de Spark
<a name="redshift-spark-connector-authentication"></a>

En el siguiente diagrama se describe la autenticación entre Amazon S3, Amazon Redshift, el controlador de Spark y los ejecutores de Spark.

![\[Este es un diagrama de la autenticación del conector de Spark.\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/images/spark-connector-authentication.png)


## Autenticación entre Redshift y Spark
<a name="redshift-spark-authentication"></a>

 Puede utilizar el controlador JDBC versión 2.x proporcionado por Amazon Redshift para conectarse a Amazon Redshift con el conector de Spark mediante la especificación de credenciales de inicio de sesión. Para utilizar IAM, [configure su URL de JDBC para que utilice la autenticación de IAM](https://docs.aws.amazon.com/redshift/latest/mgmt/generating-iam-credentials-configure-jdbc-odbc.html). Para conectarse a un clúster de Redshift desde Amazon EMR o AWS Glue, asegúrese de que su rol de IAM tiene los permisos necesarios para recuperar credenciales de IAM temporales. En la siguiente lista se describen todos los permisos que su rol de IAM necesita para recuperar credenciales y ejecutar operaciones de Amazon S3. 
+ [ Redshift:GetClusterCredentials](https://docs.aws.amazon.com/redshift/latest/APIReference/API_GetClusterCredentials.html) (para clústeres de Redshift aprovisionados)
+ [ Redshift:DescribeClusters](https://docs.aws.amazon.com/redshift/latest/APIReference/API_DescribeClusters.html) (para clústeres de Redshift aprovisionados)
+ [ Redshift:GetWorkgroup](https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_GetWorkgroup.html) (para grupos de trabajo de Amazon Redshift sin servidor)
+ [ Redshift:GetCredentials](https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_GetCredentials.html) (para grupos de trabajo de Amazon Redshift sin servidor)
+ [ s3:ListBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html)
+ [ s3:GetBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucket.html)
+ [ s3:GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)
+ [ s3:PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)
+ [ s3:GetBucketLifecycleConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html)

 Para obtener más información sobre GetClusterCredentials, consulte [Políticas de IAM para GetClusterCredentials](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html#redshift-policy-resources.getclustercredentials-resources). 

También debe asegurarse de que Amazon Redshift puede asumir el rol de IAM durante las operaciones `COPY` y `UNLOAD`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "redshift.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

------

Si utiliza el controlador JDBC más reciente, este administrará automáticamente la transición de un certificado autofirmado de Amazon Redshift a un certificado de ACM. No obstante, deberá [especificar las opciones de SSL para la URL de JDBC](https://docs.aws.amazon.com/redshift/latest/mgmt/jdbc20-configuration-options.html#jdbc20-ssl-option). 

 A continuación, se muestra un ejemplo de cómo especificar la URL del controlador JDBC y `aws_iam_role` para conectarse a Amazon Redshift. 

```
df.write \
  .format("io.github.spark_redshift_community.spark.redshift ") \
  .option("url", "jdbc:redshift:iam://<the-rest-of-the-connection-string>") \
  .option("dbtable", "<your-table-name>") \
  .option("tempdir", "s3a://<your-bucket>/<your-directory-path>") \
  .option("aws_iam_role", "<your-aws-role-arn>") \
  .mode("error") \
  .save()
```

## Autenticación entre Amazon S3 y Spark
<a name="spark-s3-authentication"></a>

 Si utiliza un rol de IAM para la autenticación entre Spark y Amazon S3, utilice uno de los siguientes métodos: 
+ El SDK de AWS para Java intentará encontrar automáticamente las credenciales de AWS mediante la cadena de proveedores de credenciales predeterminada implementada por la clase DefaultAWSCredentialsProviderChain. Para obtener más información, consulte [Using the Default Credential Provider Chain](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/credentials.html#credentials-default) (Uso de la cadena de proveedores de credenciales predeterminada).
+ Puede especificar claves de AWS a través de las [propiedades de configuración de Hadoop](https://github.com/apache/hadoop/blob/trunk/hadoop-tools/hadoop-aws/src/site/markdown/tools/hadoop-aws/index.md). Por ejemplo, si su configuración de `tempdir` apunta a un sistema de archivos `s3n://`, establezca las propiedades `fs.s3n.awsAccessKeyId` y `fs.s3n.awsSecretAccessKey` en un archivo de configuración XML de Hadoop o llame a `sc.hadoopConfiguration.set()` para cambiar la configuración de Hadoop global de Spark.

Por ejemplo, si utiliza el sistema de archivos s3n, agregue:

```
sc.hadoopConfiguration.set("fs.s3n.awsAccessKeyId", "YOUR_KEY_ID")
sc.hadoopConfiguration.set("fs.s3n.awsSecretAccessKey", "YOUR_SECRET_ACCESS_KEY")
```

Para el sistema de archivos s3a, agregue:

```
sc.hadoopConfiguration.set("fs.s3a.access.key", "YOUR_KEY_ID")
sc.hadoopConfiguration.set("fs.s3a.secret.key", "YOUR_SECRET_ACCESS_KEY")
```

Si utiliza Python, utilice las siguientes operaciones:

```
sc._jsc.hadoopConfiguration().set("fs.s3n.awsAccessKeyId", "YOUR_KEY_ID")
sc._jsc.hadoopConfiguration().set("fs.s3n.awsSecretAccessKey", "YOUR_SECRET_ACCESS_KEY")
```
+ Codifique las claves de autenticación en la URL `tempdir`. Por ejemplo, el URI `s3n://ACCESSKEY:SECRETKEY@bucket/path/to/temp/dir` codifica el par de claves (`ACCESSKEY`, `SECRETKEY`).

## Autenticación entre Redshift y Amazon S3
<a name="redshift-s3-authentication"></a>

 Si utiliza los comandos COPY y UNLOAD en la consulta, también deberá conceder acceso a Amazon S3 a Amazon Redshift para que ejecute las consultas en su nombre. Para ello, [autorice primero a Amazon Redshift a acceder a otros servicios de AWS](https://docs.aws.amazon.com/redshift/latest/mgmt/authorizing-redshift-service.html) y, a continuación, autorice las operaciones [COPY y UNLOAD mediante roles de IAM](https://docs.aws.amazon.com/redshift/latest/mgmt/copy-unload-iam-role.html). 

Como práctica recomendada, aconsejamos asociar las políticas de permisos a un rol de IAM y luego asignarlo a los usuarios y grupos según sea necesario. Para obtener más información, consulte [Administración de identidades y accesos en Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-authentication-access-control.html).

## Integración con AWS Secrets Manager
<a name="redshift-secrets-manager-authentication"></a>

Puede recuperar las credenciales de nombre de usuario y contraseña de Redshift de un secreto almacenado en AWS Secrets Manager. Para proporcionar automáticamente las credenciales de Redshift, utilice el parámetro `secret.id`. Para obtener más información sobre cómo crear un secreto de credenciales de Redshift, consulte [Crear un secreto de base de datos de AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_database_secret.html).

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/redshift-spark-connector-authentication.html)

**nota**  
 Reconocimiento: esta documentación contiene código y lenguaje de muestra desarrollados por la [Apache Software Foundation](http://www.apache.org/) con [licencia Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0). 

# Mejoras de rendimiento con la inserción
<a name="spark-redshift-connector-pushdown"></a>

 El conector de Spark aplica automáticamente la inserción de predicados y consultas para optimizar el rendimiento. Esta asistencia implica que, si utiliza una función compatible en su consulta, el conector de Spark convertirá la función en una consulta SQL y ejecutará la consulta en Amazon Redshift. Con esta optimización se recuperan menos datos, por lo que Apache Spark puede procesar menos datos y tener un mejor rendimiento. De forma predeterminada, la inserción está activada automáticamente. Para desactivarla, establezca `autopushdown` a false. 

```
import sqlContext.implicits._val 
 sample= sqlContext.read
    .format("io.github.spark_redshift_community.spark.redshift")
    .option("url",jdbcURL )
    .option("tempdir", tempS3Dir)
    .option("dbtable", "event")
    .option("autopushdown", "false")
    .load()
```

 Las siguientes funciones son compatibles con la inserción. Si utiliza una función que no está en esta lista, el conector de Spark realizará la función en Spark en lugar de hacerlo en Amazon Redshift, lo que provocará un rendimiento no optimizado. Para obtener una lista completa de las funciones de Spark, consulte [Built-in Functions](https://spark.apache.org/docs/latest/api/sql/index.html) (Funciones incorporadas). 
+ Funciones de agregación
  + avg
  + count
  + max
  + min
  + sum
  + stddev\$1samp
  + stddev\$1pop
  + var\$1samp
  + var\$1pop
+ Operadores booleanos
  + in
  + isnull
  + isnotnull
  + contains
  + endswith
  + startswith
+ Operadores lógicos
  + and
  + o
  + not (o \$1)
+ Funciones matemáticas
  + \$1
  + -
  + \$1
  + /
  + - (unitario)
  + abs
  + acos
  + asin
  + atan
  + ceil
  + cos
  + exp
  + floor
  + greatest
  + least
  + log10
  + pi
  + pow
  + round
  + sin
  + sqrt
  + tan
+ Funciones varias
  + cast
  + coalesce
  + decimal
  + if
  + in
+ Operadores relacionales
  + \$1=
  + =
  + >
  + >=
  + <
  + <=
+ Funciones de cadena
  + ascii
  + lpad
  + rpad
  + translate
  + upper
  + lower
  + length
  + trim
  + ltrim
  + rtrim
  + like
  + subcadena
  + concat
+ Funciones de fecha y hora
  + add\$1months
  + date
  + date\$1add
  + date\$1sub
  + date\$1trunc
  + marca de tiempo
  + trunc
+ Operadores matemáticos
  + CheckOverflow
  + PromotePrecision
+ Operaciones relacionales
  + Aliases (por ejemplo, AS)
  + CaseWhen
  + Distinct
  + InSet
  + Uniones y uniones cruzadas
  + Límites
  + Unions, union all
  + ScalarSubquery
  + Sorts (ascendente y descendente)
  + UnscaledValue

# Otras opciones de configuración
<a name="spark-redshift-connector-other-config"></a>

En esta página, puede encontrar descripciones relativas a las opciones que puede especificar para el conector Spark de Amazon Redshift.

## Tamaño máximo de las columnas de cadenas
<a name="spark-redshift-connector-other-config-max-size"></a>

Redshift crea columnas de cadena como columnas de texto al crear tablas, que se almacenan como VARCHAR(256). Si desea columnas que admitan tamaños mayores, puede utilizar maxlength para especificar la longitud máxima de las columnas de cadenas. A continuación se muestra un ejemplo de cómo especificar `maxlength`. 

```
columnLengthMap.foreach { case (colName, length) =>
  val metadata = new MetadataBuilder().putLong("maxlength", length).build()
  df = df.withColumn(colName, df(colName).as(colName, metadata))
}
```

## Tipo de columna
<a name="spark-redshift-connector-other-config-column-type"></a>

Para establecer un tipo de columna, utilice el campo `redshift_type`.

```
columnTypeMap.foreach { case (colName, colType) =>
  val metadata = new MetadataBuilder().putString("redshift_type", colType).build()
  df = df.withColumn(colName, df(colName).as(colName, metadata))
}
```

## Codificación de compresión de una columna
<a name="spark-redshift-connector-other-config-compression-encoding"></a>

 Para utilizar una codificación de compresión específica en una columna, use el campo de codificación. Para obtener una lista completa de las codificaciones de compresión admitidas, consulte [Codificaciones de compresión](https://docs.aws.amazon.com/redshift/latest/dg/c_Compression_encodings.html). 

## Descripción de una columna
<a name="spark-redshift-connector-other-config-description"></a>

Para establecer una descripción, utilice el campo `description`.

## Autenticación entre Redshift y Amazon S3
<a name="spark-redshift-connector-other-config-unload-as-text"></a>

 De forma predeterminada, el resultado se descarga en Amazon S3 en formato parquet. Para descargar el resultado como archivo de texto delimitado por barras verticales, especifique la siguiente opción. 

```
.option("unload_s3_format", "TEXT")
```

## Instrucciones de inserción
<a name="spark-redshift-connector-other-config-lazy-pushdown"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/spark-redshift-connector-other-config.html)

## Parámetros de conector
<a name="spark-redshift-connector-other-config-spark-parameters"></a>

La asignación de parámetros u `OPTIONS` en Spark SQL admite las siguientes configuraciones.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/spark-redshift-connector-other-config.html)

**nota**  
 Reconocimiento: esta documentación contiene código y lenguaje de muestra desarrollados por la [Apache Software Foundation](http://www.apache.org/) con [licencia Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0). 

# Tipos de datos compatibles
<a name="spark-redshift-connector-data-types"></a>

Los siguientes tipos de datos de Amazon Redshift son compatibles con el conector de Spark. Para obtener una lista completa de los tipos de datos compatibles con Amazon Redshift, consulte [Data types](https://docs.aws.amazon.com//redshift/latest/dg/c_Supported_data_types.html) (Tipos de datos). Si un tipo de datos no se encuentra en la tabla siguiente, no está admitido en el conector de Spark.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/spark-redshift-connector-data-types.html)

## Tipos de datos complejos
<a name="spark-redshift-connector-complex-data-types"></a>

 Puede usar el conector Spark para leer y escribir tipos de datos complejos de Spark, como `ArrayType`, `MapType` y `StructType` hacia y desde las columnas de tipos de datos SUPER de Redshift. Si proporciona un esquema durante una operación de lectura, los datos de la columna se convertirán en los tipos complejos correspondientes en Spark, incluidos los tipos anidados. Además, si `autopushdown` está habilitado, la proyección de los atributos anidados, los valores del mapa y los índices de matriz se reducen a Redshift, de modo que ya no es necesario descargar toda la estructura de datos anidada al acceder solo a una parte de los datos. 

Cuando escribe DataFrames desde el conector, cualquier columna de tipo `MapType` (con `StringType`), `StructType` o `ArrayType` se escribe en una columna de tipos de datos SUPER de Redshift. Al escribir estas estructuras de datos anidadas, el parámetro `tempformat` debe ser del tipo `CSV`, `CSV GZIP` o `PARQUET`. Con `AVRO` provocará una excepción. La escritura de una estructura de datos `MapType` que tiene un tipo de clave distinto de `StringType` también provocará una excepción. 

### StructType
<a name="spark-redshift-connector-complex-data-types-examples-structtype"></a>

En el siguiente ejemplo se muestra cómo crear una tabla con un tipo de datos SUPER que contiene una estructura

```
create table contains_super (a super);
```

A continuación, puede utilizar el conector para consultar un campo `StringType` `hello` de la columna SUPER `a` en la tabla utilizando un esquema como el del siguiente ejemplo.

```
import org.apache.spark.sql.types._

val sc = // existing SparkContext
val sqlContext = new SQLContext(sc)

val schema = StructType(StructField("a", StructType(StructField("hello", StringType) ::Nil)) :: Nil)

val helloDF = sqlContext.read
.format("io.github.spark_redshift_community.spark.redshift")
.option("url", jdbcURL )
.option("tempdir", tempS3Dir)
.option("dbtable", "contains_super")
.schema(schema)
.load().selectExpr("a.hello")
```

En el siguiente ejemplo se muestra cómo se escribe una estructura en la columna `a`.

```
import org.apache.spark.sql.types._
import org.apache.spark.sql._

val sc = // existing SparkContext
val sqlContext = new SQLContext(sc)

val schema = StructType(StructField("a", StructType(StructField("hello", StringType) ::Nil)) :: Nil)
val data = sc.parallelize(Seq(Row(Row("world"))))
val mydf = sqlContext.createDataFrame(data, schema)

mydf.write.format("io.github.spark_redshift_community.spark.redshift").
option("url", jdbcUrl).
option("dbtable", tableName).
option("tempdir", tempS3Dir).
option("tempformat", "CSV").
mode(SaveMode.Append).save
```

### MapType
<a name="spark-redshift-connector-complex-data-types-examples-maptype"></a>

Si prefiere usar `MapType` para representar los datos, puede usar una estructura de datos `MapType` en el esquema y recupera el valor correspondiente a una clave en el mapa. Tenga en cuenta que todas las claves de la estructura de datos `MapType` debe ser de tipo String y todos los valores deben ser del mismo tipo, como int. 

En el siguiente ejemplo se muestra cómo obtener el valor de la clave `hello` en la columna `a`.

```
import org.apache.spark.sql.types._

val sc = // existing SparkContext
val sqlContext = new SQLContext(sc)

val schema = StructType(StructField("a", MapType(StringType, IntegerType))::Nil)

val helloDF = sqlContext.read
    .format("io.github.spark_redshift_community.spark.redshift")
    .option("url", jdbcURL )
    .option("tempdir", tempS3Dir)
    .option("dbtable", "contains_super")
    .schema(schema)
    .load().selectExpr("a['hello']")
```

### ArrayType
<a name="spark-redshift-connector-complex-data-types-examples-arraytype"></a>

Si la columna contiene una matriz en lugar de una estructura, puede usar el conector para consultar el primer elemento de la matriz.

```
import org.apache.spark.sql.types._

val sc = // existing SparkContext
val sqlContext = new SQLContext(sc)

val schema = StructType(StructField("a", ArrayType(IntegerType)):: Nil)

val helloDF = sqlContext.read
    .format("io.github.spark_redshift_community.spark.redshift")
    .option("url", jdbcURL )
    .option("tempdir", tempS3Dir)
    .option("dbtable", "contains_super")
    .schema(schema)
    .load().selectExpr("a[0]")
```

### Limitaciones
<a name="spark-redshift-connector-complex-data-types-limitations"></a>

Con los tipos de datos complejos con el conector de Spark se presentan las siguientes limitaciones:
+ Todos los nombres de los campos de estructura anidados y las claves de mapa deben estar en minúsculas. Si busca nombres de campos complejos con letras mayúsculas, puede intentar omitir el esquema y usar la función de Spark `from_json` para convertir la cadena devuelta localmente como una solución alternativa.
+ Todos los campos del mapa utilizados en las operaciones de lectura o escritura deben tener solo claves `StringType`.
+ Solo `CSV`, `CSV GZIP` y `PARQUET ` son valores de formato temporal compatibles para escribir tipos complejos en Redshift. Al intentar usar `AVRO ` se generará una excepción.

# Configuración de una conexión del controlador ODBC versión 2.x para Amazon Redshift
<a name="odbc20-install"></a>

Puede utilizar una conexión ODBC para conectarse a su clúster de Amazon Redshift desde distintas aplicaciones y herramientas de cliente SQL de terceros. Si la herramienta de cliente es compatible con JDBC, puede elegir utilizar ese tipo de conexión en lugar de una conexión ODBC, ya que JDBC es más fácil de configurar. Sin embargo, si la herramienta de cliente no es compatible con JDBC, puede seguir los pasos de esta sección para configurar una conexión ODBC en el equipo cliente o en la instancia de Amazon EC2.

Amazon Redshift proporciona controladores ODBC de 64 bits para los sistemas operativos Linux, Windows y Mac; los controladores ODBC de 32 bits ya no se fabrican. No se publicarán más actualizaciones de los controladores ODBC de 32 bits, excepto las revisiones de seguridad urgentes.

Para obtener la información más reciente acerca de los cambios del controlador ODBC, consulte [Registro de cambios](https://github.com/aws/amazon-redshift-odbc-driver/blob/master/CHANGELOG.md).

**Topics**
+ [Obtención de la URL de ODBC](odbc20-getting-url.md)
+ [Uso de un controlador ODBC de Amazon Redshift en Microsoft Windows](odbc20-install-config-win.md)
+ [Uso de un controlador ODBC de Amazon Redshift en Linux](odbc20-install-config-linux.md)
+ [Uso de un controlador ODBC de Amazon Redshift en Apple macOS](odbc20-install-config-mac.md)
+ [Métodos de autenticación](odbc20-authentication-ssl.md)
+ [Conversiones de tipos de datos](odbc20-converting-data-types.md)
+ [Opciones del controlador ODBC](odbc20-configuration-options.md)
+ [Versiones anteriores del controlador ODBC](odbc20-previous-versions.md)

# Obtención de la URL de ODBC
<a name="odbc20-getting-url"></a>

Amazon Redshift muestra la URL de ODBC de su clúster en la consola de Amazon Redshift. Esta dirección URL contiene la información necesaria para configurar la conexión entre el equipo cliente y la base de datos.

Un URL de ODBC tiene el siguiente formato: 

```
Driver={driver}; Server=endpoint_host; Database=database_name; UID=user_name; PWD=password; Port=port_number
```

Los campos del formato anterior tienen los siguientes valores:


| Campo | Valor | 
| --- | --- | 
| Driver | Nombre del controlador ODBC de 64 bits que se va a utilizar: Amazon Redshift ODBC Driver (x64) (Controlador ODBC de Amazon Redshift [x64]) | 
| Server | El host de punto de conexión del clúster de Amazon Redshift. | 
| Database | Base de datos que creó para su clúster. | 
| UID | Nombre de usuario de base de datos de una cuenta de usuario que tiene permiso para conectarse a la base de datos. Si bien este valor es un permiso de la base de datos, no un permiso de clúster, puede utilizar la cuenta de usuario administrador de Redshift que configuró cuando lanzó el clúster. | 
| PWD | Contraseña de la cuenta de usuario de base de datos para conectarse a la base de datos. | 
| Port | Número de puerto que especificó cuando lanzó el clúster. Si tiene un firewall, asegúrese de que este puerto esté abierto para poder usarlo. | 

A continuación, se muestra un ejemplo de la URL de ODBC: 

```
Driver={Amazon Redshift ODBC Driver (x64)}; Server=examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com; Database=dev; UID=adminuser; PWD=insert_your_admin_user_password_here; Port=5439
```

Para obtener información sobre dónde encontrar la URL de ODBC, consulte [Obtención de la cadena de conexión a su clúster](https://docs.aws.amazon.com/redshift/latest/mgmt/configuring-connections.html#connecting-connection-string). 

# Uso de un controlador ODBC de Amazon Redshift en Microsoft Windows
<a name="odbc20-install-config-win"></a>

Debe instalar el controlador ODBC de Amazon Redshift en los equipos cliente que tienen acceso a un almacenamiento de datos de Amazon Redshift. Cada equipo en el que instala el controlador debe cumplir con los siguientes requisitos mínimos: 
+ Derechos de administrador en la máquina. 
+ La máquina cumple con los siguientes requisitos del sistema:
  + Uno de los sistemas operativos siguientes:
    + Windows 10 u 8.1.
    + Windows Server 2019, 2016 o 2012.
  + 100 MB de espacio disponible en el disco.
  + Visual C\$1\$1 Redistributable for Visual Studio 2015 para Windows de 64 bits instalado. Puede descargar el paquete de instalación en [Descargar Visual C\$1\$1 Redistributable for Visual Studio 2022](https://visualstudio.microsoft.com/downloads/#microsoft-visual-c-redistributable-for-visual-studio-2022) en el sitio web de Microsoft.

# Descarga e instalación del controlador ODBC de Amazon Redshift
<a name="odbc20-install-win"></a>

Utilice el procedimiento a continuación para descargar e instalar el controlador ODBC de Amazon Redshift para los sistemas operativos Windows. Utilice un controlador diferente solo si está ejecutando una aplicación de terceros certificada para su uso con Amazon Redshift que requiere un controlador específico.

Para descargar e instalar el controlador ODBC: 

1. Descargue el siguiente controlador: [controlador ODBC de 64 bits versión 2.1.15.0](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.15.0/AmazonRedshiftODBC64-2.1.15.0.msi) 

   El nombre de este controlador es **Amazon Redshift ODBC Driver (x64)** (Controlador ODBC de Amazon Redshift [x64]).

1. Consulte [Licencia del controlador ODBC versión 2.x de Amazon Redshift](https://github.com/aws/amazon-redshift-odbc-driver/blob/master/LICENSE).

1. Haga doble clic en el archivo .msi y, a continuación, siga los pasos en el asistente para instalar el controlador.

# Creación de una entrada de sistema DSN para una conexión ODBC
<a name="odbc20-dsn-win"></a>

Después de descargar e instalar el controlador ODBC, agregue una entrada de nombre de origen de datos (DSN) al equipo cliente o a la instancia de Amazon EC2. Las herramientas de cliente SQL pueden utilizar este origen de datos para conectarse a la base de datos de Amazon Redshift. 

Se recomienda crear un DSN del sistema en lugar de un DSN de usuario. Algunas aplicaciones cargan los datos mediante una cuenta de usuario de base de datos diferente y es posible que no puedan detectar los DSN de usuario que se crean en otra cuenta de usuario de base de datos.

**nota**  
Para la autenticación con credenciales de AWS Identity and Access Management (IAM) o credenciales de proveedor de identidad (IdP), se requieren pasos adicionales. Para obtener más información, consulte [Configurar una conexión JDBC u ODBC para usar credenciales de IAM](https://docs.aws.amazon.com/redshift/latest/mgmt/generating-iam-credentials-configure-jdbc-odbc.html).

Para crear una entrada DSN del sistema para una conexión ODBC:

1. En el menú **Start** (Inicio), escriba “ODBC Data Sources” (Orígenes de datos ODBC). Elija **ODBC Data Sources** (Orígenes de datos ODBC).

   Asegúrese de elegir el Administrador de orígenes de datos ODBC que tenga el mismo valor de bits que la aplicación cliente que está utilizando para conectarse a Amazon Redshift. 

1. En **ODBC Data Source Administrator** (Administrador de orígenes de datos ODBC), elija la pestaña **Driver** (Controlador) y busque la siguiente carpeta del controlador: **Amazon Redshift ODBC Driver (x64)** (Controlador ODBC de Amazon Redshift [x64]).

1. Elija la pestaña **DSN de sistema** para configurar el controlador para todos los usuarios del equipo o la pestaña **DSN de usuario** para configurar solamente el controlador para la cuenta de usuario.

1. Elija **Agregar**. Se abrirá la ventana **Create New Data Source (Crear nuevo origen de datos)**.

1. Elija **Amazon Redshift ODBC Driver (x64)** (Controlador ODBC de Amazon Redshift [x64]) y, a continuación, elija **Finish** (Finalizar). Se abrirá la ventana ** Amazon Redshift ODBC Driver DSN Setup** (Configuración de DSN del controlador ODBC de Amazon Redshift).

1. En la sección **Connection Settings** (Configuración de conexión), escriba la siguiente información: 
   + 

**Nombre de origen de datos**  
 Escriba un nombre para el origen de datos. Por ejemplo, si siguió la *Guía de introducción a Amazon Redshift*, podría escribir `exampleclusterdsn` para que le sea más fácil recordar el clúster que asocia a este DSN. 
   + 

**Server**  
 Especifique el host de punto de conexión del clúster de Amazon Redshift. Puede encontrar esta información en la consola de Amazon Redshift en la página de detalles del clúster. Para obtener más información, consulte [Configuración de conexiones en Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/configuring-connections.html). 
   + 

**Puerto**  
 Escriba el número de puerto que usa la base de datos. Según el puerto que haya seleccionado al crear, modificar o migrar el clúster, se permitirá el acceso al puerto seleccionado. 
   + 

**Database**  
 Introduzca el nombre de la base de datos de Amazon Redshift. Si ha lanzado el clúster sin especificar un nombre de base de datos, escriba `dev`. De lo contrario, utilice el nombre que eligió durante el proceso de inicio. Si siguió la *Guía de introducción a Amazon Redshift*, ingrese `dev`. 

1. En la sección **Authentication** (Autenticación), especifique las opciones de configuración para configurar la autenticación de IAM o estándar. 

1. Elija **SSL Options** (Opciones de SSL) y especifique un valor para el siguiente campo:
   + 

**Modo de autenticación**  
Elija un modo para controlar la Capa de conexión segura (SSL). En un entorno de prueba, podría usar `prefer`. No obstante, para entornos de producción y cuando se requiera un intercambio seguro de datos, use `verify-ca` o `verify-full`.
   + 

**TLS mínimo**  
Otra opción, elija la versión mínima de TLS/SSL que el controlador permite que el almacén de datos utilice para cifrar las conexiones. Por ejemplo, si especifica TLS 1.2, TLS 1.1 no se puede usar para cifrar las conexiones. La versión predeterminada es TLS 1.2.

1.  En la pestaña **Proxy**, especifique cualquier configuración de conexión proxy. 

1. En la pestaña **Additional Options** (Opciones adicionales), especifique las opciones sobre cómo devolver los resultados de la consulta a la herramienta o aplicación de cliente SQL. 

1. En **Opciones avanzadas**, especifique valores para `logLevel`, `logPath`, `compression` y otras opciones. 

1. Seleccione **Probar** Si el equipo cliente puede conectarse a la base de datos de Amazon Redshift, aparecerá el siguiente mensaje: **Connection successful** (Conexión realizada correctamente). Si el equipo cliente no puede conectarse a la base de datos, genere un archivo de registro y póngase en contacto con soporte de AWS para solucionar los posibles problemas. Para obtener información sobre la generación de registros, consulte (LINK). 

1.  Seleccione **Aceptar**. 

# Uso de un controlador ODBC de Amazon Redshift en Linux
<a name="odbc20-install-config-linux"></a>

Debe instalar el controlador ODBC de Amazon Redshift en los equipos cliente que tienen acceso a un almacenamiento de datos de Amazon Redshift. Cada equipo en el que instala el controlador debe cumplir con los siguientes requisitos mínimos: 
+ Acceso raíz en la máquina.
+ Una de las siguientes distribuciones:
  + Red Hat® Enterprise Linux® (RHEL) 8 o versiones posteriores
  + CentOS 8 o versiones posteriores.
+ 150 MB de espacio disponible en el disco.
+ unixODBC 2.2.14 o posterior.
+ glibc 2.26 o posterior.

# Descarga e instalación del controlador ODBC de Amazon Redshift
<a name="odbc20-install-linux"></a>

Para descargar e instalar el controlador ODBC versión 2.x de Amazon Redshift para Linux:

1.  Descargue el siguiente controlador: 
   + [Versión 2.1.15.0 del controlador RPM x86 de 64 bits](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.15.0/AmazonRedshiftODBC-64-bit-2.1.15.0.x86_64.rpm) 
   + [Versión 2.1.15.0 del controlador RPM x86 de 64 bits](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.15.0/AmazonRedshiftODBC-64-bit-2.1.15.0.aarch64.rpm) 
**nota**  
Los controladores ODBC de 32 bits se suspenden. No se publicarán más actualizaciones, excepto las revisiones de seguridad urgentes.

1.  Vaya a la ubicación en la que descargó el paquete y, a continuación, ejecute alguno de los siguientes comandos. Utilice el comando que corresponda a su distribución Linux. 

   En los sistemas operativos RHEL y CentOS, ejecute el siguiente comando:

   ```
   yum --nogpgcheck localinstall RPMFileName
   ```

   Reemplace `RPMFileName` por el nombre de archivo del paquete RPM. Por ejemplo, el siguiente comando demuestra cómo instalar el controlador de 64 bits:

   ```
   yum --nogpgcheck localinstall AmazonRedshiftODBC-64-bit-2.x.xx.xxxx.x86_64.rpm
   ```

# Uso de un administrador de controladores ODBC para configurar el controlador ODBC
<a name="odbc20-config-linux"></a>

En Linux, debe utilizar un administrador de controlador ODBC para configurar la conexión ODBC. Los administradores del controlador ODBC usan archivos de configuración para definir y configurar los controladores y el origen de datos de ODBC. El administrador del controlador ODBC que utiliza depende del sistema operativo que utiliza.

## Configuración del controlador ODBC mediante el administrador de controladores UnixODBC
<a name="odbc20-config-unixodbc-linux"></a>

Para configurar el controlador ODBC de Amazon Redshift, se requieren los siguientes archivos: 
+ ` amazon.redshiftodbc.ini `
+ ` odbc.ini `
+ ` odbcinst.ini `

 Si instaló el controlador en la ubicación predeterminada, el archivo de configuración `amazon.redshiftodbc.ini` se encuentra en `/opt/amazon/redshiftodbcx64`.

 Además, en `/opt/amazon/redshiftodbcx64`, puede encontrar archivos `odbc.ini` y `odbcinst.ini` de muestra. Puede utilizar estos archivos como ejemplos para configurar el controlador ODBC de Amazon Redshift y el nombre del origen de datos (DSN).

 No le recomendamos utilizar el directorio de instalación del controlador ODBC de Amazon Redshift para los archivos de configuración. Los archivos de muestra del directorio instalados se presentan únicamente como ejemplo. Si vuelve a instalar el controlador ODBC de Amazon Redshift más adelante o actualiza a una versión más reciente, se sobrescribe el directorio de instalación. Perderá los cambios que haya realizado en los archivos del directorio de instalación.

 Para evitarlo, copie el archivo `amazon.redshiftodbc.ini` en un directorio distinto al directorio de instalación. Si copia este archivo en el directorio principal del usuario, agregue un punto (.) al principio del nombre del archivo para convertirlo en un archivo oculto.

 Para los archivos `odbc.ini` y `odbcinst.ini`, utilice los archivos de configuración en el directorio principal del usuario o cree nuevas versiones en otro directorio. De manera predeterminada, su sistema operativo Linux debe tener un archivo `odbc.ini` y un archivo `odbcinst.ini` en el directorio de inicio del usuario (`/home/$USER` o `~/.`). Estos archivos predeterminados son archivos ocultos, que se indica con el punto (.) delante de cada nombre de archivo. Estos archivos solo se muestran cuando se utiliza el indicador `-a` para enumerar el contenido del directorio.

 Cualquiera que sea la opción que elija para los archivos `odbc.ini` y `odbcinst.ini`, modifique los archivos para agregar información de configuración del controlador y DSN. Si selecciona crear archivos nuevos, también deberá configurar variables de entorno para especificar la ubicación de estos archivos de configuración.

 De manera predeterminada, los administradores de controladores ODBC están configurados para utilizar versiones ocultas de los archivos de configuración `odbc.ini` y `odbcinst.ini` (denominados `.odbc.ini` y `.odbcinst.ini`) ubicados en el directorio de inicio. También están configurados para utilizar el archivo `amazon.redshiftodbc.ini` en el directorio de instalación del controlador. Si almacena estos archivos de configuración en otro lugar, establezca las variables de entorno que se describen a continuación para que el administrador de controladores pueda localizar los archivos.

 Si utiliza UnixODBC, haga lo siguiente: 
+  Configure `ODBCINI` en la ruta completa y el nombre del archivo `odbc.ini`. 
+  Configure `ODBCSYSINI` en la ruta completa del directorio que contiene el archivo `odbcinst.ini`. 
+  Configure `AMAZONREDSHIFTODBCINI` en la ruta completa y el nombre del archivo `amazon.redshiftodbc.ini`. 

A continuación, se muestra un ejemplo de cómo configurar los valores anteriores:

```
export ODBCINI=/usr/local/odbc/odbc.ini 
export ODBCSYSINI=/usr/local/odbc 
export AMAZONREDSHIFTODBCINI=/etc/amazon.redshiftodbc.ini
```

## Configuración de una conexión mediante un nombre de origen de datos (DSN) en Linux
<a name="odbc20-dsn-linux"></a>

Cuando se conecte al almacenamiento de datos mediante un nombre de origen de datos (DSN), configure el archivo `odbc.ini` para definir los nombres de origen de datos (DSN). Establezca las propiedades del archivo `odbc.ini` para crear un DSN que especifique la información de conexión para el almacén de datos.

En los sistemas operativos Linux, utilice el siguiente formato:

```
[ODBC Data Sources]
driver_name=dsn_name

[dsn_name]
Driver=path/driver_file
Host=cluster_endpoint
Port=port_number
Database=database_name
locale=locale
```

En el siguiente ejemplo, se muestra la configuración del archivo `odbc.ini` con el controlador ODBC de 64 bits para sistemas operativos Linux.

```
[ODBC Data Sources]
Amazon_Redshift_x64=Amazon Redshift ODBC Driver (x64)

[Amazon_Redshift_x64]
Driver=/opt/amazon/redshiftodbcx64/librsodbc64.so
Host=examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com
Port=5932Database=dev
locale=en-US
```

## Configuración de una conexión sin un DSN en Linux
<a name="odbc20-no-dsn-linux"></a>

 Para conectarse al almacén de datos a través de una conexión que no tenga DSN, defina el controlador en el archivo `odbcinst.ini`. A continuación, proporcione una cadena de conexión sin DSN en su aplicación.

En los sistemas operativos Linux, utilice el siguiente formato:

```
[ODBC Drivers]
driver_name=Installed
...
                            
[driver_name]
Description=driver_description
Driver=path/driver_file
    
...
```

En el siguiente ejemplo, se muestra la configuración del archivo `odbcinst.ini` con el controlador ODBC de 64 bits para sistemas operativos Linux.

```
[ODBC Drivers]
Amazon Redshift ODBC Driver (x64)=Installed

[Amazon Redshift ODBC Driver (x64)]
Description=Amazon Redshift ODBC Driver (64-bit)
Driver=/opt/amazon/redshiftodbcx64/librsodbc64.so
```

# Uso de un controlador ODBC de Amazon Redshift en Apple macOS
<a name="odbc20-install-config-mac"></a>

Debe instalar el controlador ODBC de Amazon Redshift en los equipos cliente que tienen acceso a un almacenamiento de datos de Amazon Redshift. Cada equipo en el que instala el controlador debe cumplir con los siguientes requisitos mínimos: 
+ Acceso raíz en la máquina. 
+ Requisitos del sistema Apple macOS:
  + Se requiere una versión de 64 bits de Apple macOS 11.7 o superior (como Apple macOS Big Sur, Monterey, Ventura o posterior). El controlador ODBC de Redshift solo admite aplicaciones cliente de 64 bits.
  + 150 MB de espacio disponible en el disco.
  + El controlador es compatible con aplicaciones creadas con iODBC 3.52.9\$1 o unixODBC 2.3.7\$1.

# Descarga e instalación del controlador ODBC de Amazon Redshift
<a name="odbc20-install-mac"></a>

Utilice el procedimiento siguiente para descargar e instalar el controlador ODBC de Amazon Redshift en Apple macOS. Utilice un controlador diferente solo si está ejecutando una aplicación de terceros certificada para su uso con Amazon Redshift que requiere un controlador específico.

Para descargar e instalar el controlador ODBC: 

1. Descargue el siguiente controlador: [controlador ODBC de 64 bits versión 2.1.15.0](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.15.0/AmazonRedshiftODBC-64-bit.2.1.15.0.universal.pkg) 

   Este controlador es compatible con las arquitecturas x86\$164 y arm64. El nombre de este controlador es **Amazon Redshift ODBC Driver (x64)** (Controlador ODBC de Amazon Redshift [x64]).

1. Consulte [Licencia del controlador ODBC versión 2.x de Amazon Redshift](https://github.com/aws/amazon-redshift-odbc-driver/blob/master/LICENSE).

1. Haga doble clic en el archivo .pkg y, a continuación, siga los pasos en el asistente para instalar el controlador. También puede ejecutar el siguiente comando:

   ```
   sudo installer -pkg PKGFileName -target /
   ```

   Sustituya `PKGFileName` por el nombre de archivo del paquete pkg. Por ejemplo, el siguiente comando demuestra cómo instalar el controlador de 64 bits:

   ```
   sudo installer -pkg ./AmazonRedshiftODBC-64-bit.X.X.XX.X.universal.pkg -target /
   ```

# Uso de un administrador de controladores ODBC para configurar el controlador ODBC
<a name="odbc20-config-mac"></a>

En Mac, debe utilizar un administrador de controladores ODBC para configurar la conexión ODBC. Los administradores del controlador ODBC usan archivos de configuración para definir y configurar los controladores y el origen de datos de ODBC. El administrador del controlador ODBC que utiliza depende del sistema operativo que utiliza.

## Configuración del controlador ODBC mediante el administrador de controladores iODBC o unixODBC
<a name="odbc20-config-iodbc-mac"></a>

Para configurar el controlador ODBC de Amazon Redshift, se requieren los siguientes archivos: 
+ ` amazon.redshiftodbc.ini `
+ ` odbc.ini `
+ ` odbcinst.ini `

 Si instaló el controlador en la ubicación predeterminada, el archivo de configuración `amazon.redshiftodbc.ini` se encuentra en `/opt/amazon/redshiftodbcx64`.

 Además, en `/opt/amazon/redshiftodbcx64`, puede encontrar archivos `odbc.ini` y `odbcinst.ini` de muestra. Puede utilizar estos archivos como ejemplos para configurar el controlador ODBC de Amazon Redshift y el nombre del origen de datos (DSN). Los archivos de muestra del directorio instalados se presentan únicamente como ejemplo.

 No le recomendamos utilizar el directorio de instalación del controlador ODBC de Amazon Redshift para los archivos de configuración. Si vuelve a instalar el controlador ODBC de Amazon Redshift más adelante o actualiza a una versión más reciente, se sobrescribe el directorio de instalación. Perderá los cambios que haya realizado en los archivos del directorio de instalación.

 Para evitarlo, copie los archivos `odbc.ini`, `odbcinst.ini` y `amazon.redshiftodbc.ini` en un directorio distinto al directorio de instalación. Si copia estos archivos en el directorio principal del usuario, agregue un punto (.) al principio de estos nombres de archivo para convertirlo en un archivo oculto.

 Modifique los archivos para agregar información de configuración de DSN. Al crear archivos nuevos, también deberá configurar variables de entorno para especificar la ubicación de estos archivos de configuración.

A continuación, se muestra un ejemplo de configuración de las variables de entorno:

```
export ODBCINI=/Library/ODBC/odbc.ini
export ODBCSYSINI=/Library/ODBC
export ODBCINSTINI=${ODBCSYSINI}/odbcinst.ini
```

Para aplicaciones de línea de comandos: agregue los comandos de exportación al archivo de inicio del intérprete de comandos (por ejemplo, `~/.bash_profile` o `~/.zshrc`). 

Para ver la versión compatible del administrador de controladores, consulte [aquí](https://docs.aws.amazon.com/redshift/latest/mgmt/odbc20-install-config-mac.html) 

### Configuración de una conexión mediante un nombre de origen de datos (DSN) en Apple macOS
<a name="odbc20-dsn-mac"></a>

Cuando se conecte al almacenamiento de datos mediante un nombre de origen de datos (DSN), configure el archivo `odbc.ini` para definir los nombres de origen de datos (DSN). Establezca las propiedades del archivo `odbc.ini` para crear un DSN que especifique la información de conexión para el almacén de datos de Redshift.

En Apple macOS, utilice el formato siguiente:

```
[ODBC Data Sources]
driver_name=dsn_name

[dsn_name]
Driver=path/driver_file
Host=cluster_endpoint
Port=port_number
Database=database_name
locale=locale
```

En el siguiente ejemplo, se muestra la configuración para `odbc.ini` con el controlador ODBC de 64 bits para Apple macOS.

```
[ODBC Data Sources]
Amazon_Redshift_x64=Amazon Redshift ODBC Driver (x64)

[Amazon_Redshift_x64]
Driver=/opt/amazon/redshiftodbcx64/librsodbc64.dylib
Host=examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com
Port=5932
Database=dev
locale=en-US
```

### Configuración de una conexión sin un DSN en Apple macOS
<a name="odbc20-no-dsn-mac"></a>

 Para conectarse al almacén de datos de Redshift a través de una conexión que no tenga DSN, defina el controlador en el archivo `odbcinst.ini`. A continuación, proporcione una cadena de conexión sin DSN en su aplicación.

En Apple macOS, utilice el formato siguiente:

```
[ODBC Drivers]
driver_name=Installed
...
                            
[driver_name]
Description=driver_description
Driver=path/driver_file
    
...
```

En el siguiente ejemplo, se muestra la configuración para `odbcinst.ini` con el controlador ODBC de 64 bits para Apple macOS.

```
[ODBC Drivers]
Amazon Redshift ODBC Driver (x64)=Installed

[Amazon Redshift ODBC Driver (x64)]
Description=Amazon Redshift ODBC Driver (64-bit)
Driver=/opt/amazon/redshiftodbcx64/librsodbc64.dylib
```

# Métodos de autenticación
<a name="odbc20-authentication-ssl"></a>

Con el fin de proteger los datos contra accesos no autorizados, los almacenes de datos de Amazon Redshift requieren la autenticación de todas las conexiones mediante credenciales de usuario.

En la siguiente tabla, se ilustran las opciones de conexión obligatorias y opcionales para cada método de autenticación que se puede utilizar para conectarse al controlador ODBC de Amazon Redshift versión 2.x:


| Método de autenticación | Obligatorio | Opcional | 
| --- | --- | --- | 
|  Standard  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |   | 
|  Perfil de IAM  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/odbc20-authentication-ssl.html)   **ClusterID** y **Region** se deben configurar en el **Host** si no se configuran por separado.    | 
|  Credenciales de IAM  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/odbc20-authentication-ssl.html)   **ClusterID** y **Region** se deben configurar en el **Host** si no se configuran por separado.    | 
|  AD FS  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/odbc20-authentication-ssl.html)   **ClusterID** y **Region** se deben configurar en el **Host** si no se configuran por separado.    | 
|  Azure AD  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/odbc20-authentication-ssl.html)   **ClusterID** y **Region** se deben configurar en el **Host** si no se configuran por separado.    | 
|  JWT  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/odbc20-authentication-ssl.html)  | 
|  Okta  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/odbc20-authentication-ssl.html)   **ClusterID** y **Region** se deben configurar en el **Host** si no se configuran por separado.    | 
|  Ping Federate  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/odbc20-authentication-ssl.html)   **ClusterID** y **Region** se deben configurar en el **Host** si no se configuran por separado.    | 
|  Browser Azure AD  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/odbc20-authentication-ssl.html)   **ClusterID** y **Region** se deben configurar en el **Host** si no se configuran por separado.    | 
|  Browser SAML  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/odbc20-authentication-ssl.html)   **ClusterID** y **Region** se deben configurar en el **Host** si no se configuran por separado.    | 
|  Perfil de autenticación  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |   | 
|  Browser Azure AD OAUTH2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/odbc20-authentication-ssl.html)   **ClusterID** y **Region** se deben configurar en el **Host** si no se configuran por separado.    | 
|  AWS IAM Identity Center  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/odbc20-authentication-ssl.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/odbc20-authentication-ssl.html)  | 

## Uso de un servicio de credenciales externo
<a name="odbc20-authentication-external"></a>

Además de la compatibilidad integrada con AD FS, Azure AD y Okta, la versión para Windows del controlador ODBC de Amazon Redshift también admite otros servicios de credenciales. El controlador puede autenticar las conexiones mediante cualquier complemento de proveedor de credenciales basado en SAML de su elección. 

Para configurar un servicio de credenciales externo en Windows:

1. Cree un perfil de IAM que especifique el complemento del proveedor de credenciales y otros parámetros de autenticación según sea necesario. El perfil debe estar codificado en ASCII y debe contener el siguiente par clave-valor, en el que `PluginPath` es la ruta completa a la aplicación del complemento: 

   ```
   plugin_name = PluginPath
   ```

   Por ejemplo:

   ```
   plugin_name = C:\Users\kjson\myapp\CredServiceApp.exe 
   ```

   Para obtener más información sobre cómo crear un perfil, consulte [Uso de un perfil de configuración](https://docs.aws.amazon.com/redshift/latest/mgmt/options-for-providing-iam-credentials.html#using-configuration-profile) en la Guía de administración de clústeres de Amazon Redshift.

1. Configure el controlador para que utilice este perfil. El controlador detecta y utiliza la configuración de autenticación especificada en el perfil.

# Conversiones de tipos de datos
<a name="odbc20-converting-data-types"></a>

El controlador ODBC versión 2.x de Amazon Redshift admite varios formatos de datos frecuentes, por lo que permite la conversión entre los tipos de datos de Amazon Redshift y SQL.

En la siguiente tabla, se enumeran los mapeos de tipos de datos admitidos.


| Tipo de Amazon Redshift | Tipo de SQL | 
| --- | --- | 
|  BIGINT  |  SQL\$1BIGINT  | 
|  BOOLEANO  |  SQL\$1BIT  | 
|  CHAR  |  SQL\$1CHAR  | 
|  DATE  |  SQL\$1TYPE\$1DATE  | 
|  DECIMAL  |  SQL\$1NUMERIC  | 
|  DOUBLE PRECISION  |  SQL\$1DOUBLE  | 
|  GEOGRAPHY  |  SQL\$1 LONGVARBINARY  | 
|  GEOMETRY  |  SQL\$1 LONGVARBINARY  | 
|  INTEGER  |  SQL\$1INTEGER  | 
|  REAL  |  SQL\$1REAL  | 
|  SMALLINT  |  SQL\$1SMALLINT  | 
|  SUPER  |  SQL\$1LONGVARCHAR  | 
|  TEXT  |  SQL\$1LONGVARCHAR  | 
|  TIME  |  SQL\$1TYPE\$1TIME  | 
|  TIMETZ  |  SQL\$1TYPE\$1TIME  | 
|  TIMESTAMP  |  SQL\$1TYPE\$1 TIMESTAMP  | 
|  TIMESTAMPTZ  |  SQL\$1TYPE\$1 TIMESTAMP  | 
|  VARBYTE  |  SQL\$1LONGVARBINARY  | 
|  VARCHAR  |  SQL\$1VARCHAR  | 

# Opciones del controlador ODBC
<a name="odbc20-configuration-options"></a>

Puede utilizar las opciones de configuración del controlador para controlar el comportamiento del controlador ODBC de Amazon Redshift. Las opciones del controlador no distinguen entre mayúsculas y minúsculas.

En Microsoft Windows, por lo general, las opciones del controlador se configuran cuando configura un nombre de origen de datos (DSN). También puede establecer opciones de controlador en la cadena de conexión cuando se conecta mediante programación o agregando o cambiando claves del Registro en `HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\your_DSN`.

En Linux, las opciones de configuración del controlador se establecen en los archivos `odbc.ini` y `amazon.redshiftodbc.ini`. Las opciones de configuración establecidas en un archivo `amazon.redshiftodbc.ini` se aplican a todas las conexiones. No obstante, las opciones de configuración establecidas en un archivo `odbc.ini` son específicas de una conexión. Las opciones de configuración establecidas en `odbc.ini` tienen prioridad sobre las opciones de configuración establecidas en `amazon.redshiftodbc.ini`.

A continuación, se muestran las descripciones relativas a las opciones que puede especificar para la versión 2.x del controlador ODBC de Amazon Redshift:

## AccessKeyID
<a name="odbc20-accesskeyid-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

 La clave de acceso de IAM para el usuario o el rol. Si establece este parámetro, también debe especificar **SecretAccessKey**.

Este parámetro es opcional.

## app\$1id
<a name="odbc20-app-id-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El ID único proporcionado por Okta que se asocia a su aplicación de Amazon Redshift.

Este parámetro es opcional.

## ApplicationName
<a name="odbc20-application_name-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre de la aplicación del cliente que se va a pasar a Amazon Redshift con fines de auditoría. El nombre de la aplicación que proporcione aparece en la columna “application\$1name” de la tabla [SYS\$1CONNECTION\$1LOG](https://docs.aws.amazon.com/redshift/latest/dg/SYS_CONNECTION_LOG.html). Esto ayuda a rastrear y solucionar problemas de orígenes de conexión al depurar problemas.

Este parámetro es opcional.

## app\$1name
<a name="odbc20-app-name-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre de la aplicación Okta que utiliza en la autenticación de la conexión con Amazon Redshift.

Este parámetro es opcional.

## AuthProfile
<a name="odbc20-authprofile-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El perfil de autenticación utilizado para administrar la configuración de la conexión. Si establece este parámetro, también debe establecer **AccessKeyID** y **SecretAccessKey**. 

Este parámetro es opcional.

## AuthType
<a name="odbc20-authtype-option"></a>
+ **Valor predeterminado**: estándar
+ **Tipo de datos:** cadena

Esta opción especifica el modo de autenticación que el controlador utiliza al configurar un DSN mediante el cuadro de diálogo Configuración de DSN del controlador ODBC de Amazon Redshift: 
+  Estándar: autenticación estándar mediante su nombre de usuario y contraseña de Amazon Redshift. 
+  Perfil de AWS: autenticación de IAM mediante un perfil.
+  Credenciales de AWS IAM: autenticación de IAM mediante credenciales de IAM. 
+  Proveedor de identidades: AD FS: autenticación de IAM mediante Active Directory Federation Services (AD FS). 
+  Proveedor de identidades: complemento de autenticación: complemento de autorización que acepta un token de AWS IAM Identity Center o un token de identidad basado en JSON (JWT) de OpenID Connect (OIDC) de cualquier proveedor de identidades web vinculado a AWS IAM Identity Center.
+  Proveedor de identidades: Azure AD: autenticación de IAM mediante un portal de Azure AD. 
+  Proveedor de identidades: JWT: autenticación de IAM mediante un JSON Web Token (JWT). 
+  Proveedor de identidades: Okta: autenticación de IAM mediante Okta. 
+  Proveedor de identidades: PingFederate: autenticación de IAM mediante PingFederate. 

Esta opción solo está disponible cuando configura un DSN mediante el cuadro de diálogo Configuración de DSN del controlador ODBC de Amazon Redshift en el controlador de Windows. Al configurar una conexión mediante una cadena de conexión o una máquina que no sea de Windows, el controlador determina automáticamente si se debe usar la autenticación estándar, de perfil de AWS o de credenciales de AWS IAM según las credenciales especificadas. Para utilizar un proveedor de identidades, debe configurar la propiedad **plugin\$1name**. 

Este parámetro es obligatorio.

## AutoCreate
<a name="odbc20-autocreate-option"></a>
+ **Valor predeterminado** – 0
+ **Tipos de datos:** booleano

Un booleano que especifica si el controlador crea un usuario nuevo cuando el usuario especificado no existe. 
+  1 \$1 TRUE: si el usuario especificado por el **UID** no existe, el controlador crea un usuario nuevo. 
+  0 \$1 FALSE: el controlador no crea un usuario nuevo. Si el usuario especificado no existe, se produce un error en la autenticación. 

Este parámetro es opcional.

## CaFile
<a name="odbc20-cafile-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

La ruta de acceso al archivo de certificado de CA que se utiliza para algunas formas de autenticación de IAM. 

 Este parámetro solo está disponible en Linux.

Este parámetro es opcional.

## client\$1id
<a name="odbc20-client-id-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El ID de cliente asociado a la aplicación de Amazon Redshift en Azure AD. 

Este parámetro es necesario si la autenticación se realiza a través del servicio Azure AD.

## client\$1 secret
<a name="odbc20-client-secret-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

 La clave secreta asociada a la aplicación de Amazon Redshift en Azure AD. 

Este parámetro es necesario si la autenticación se realiza a través del servicio Azure AD.

## ClusterId
<a name="odbc20-clusterid-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre del clúster de Amazon Redshift al que desea conectarse. Se utiliza en la autenticación de IAM. El ID de clúster no se especifica en el parámetro **Server** (Servidor).

Este parámetro es opcional.

## compression
<a name="odbc20-compression-option"></a>
+ **Valor predeterminado**: desconectado
+ **Tipo de datos:** cadena

Método de compresión utilizado para la comunicación mediante protocolo de conexión entre el servidor de Amazon Redshift y el cliente o el controlador.

Puede especificar los valores siguientes:
+ Iz4: establece el método de compresión utilizado para la comunicación mediante protocolo de conexión con Amazon Redshift a `lz4`. 
+ zstd: establece el método de compresión utilizado para la comunicación mediante protocolo de conexión con Amazon Redshift a `zstd`. 
+  off: no utiliza la compresión para la comunicación mediante protocolo de conexión con Amazon Redshift. 

Este parámetro es opcional.

## Database
<a name="odbc20-database-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre de la base de datos de Amazon Redshift a la que desea obtener acceso.

Este parámetro es obligatorio.

## DatabaseMetadataCurrentDbOnly
<a name="odbc20-database-metadata-option"></a>
+ **Valor predeterminado** – 1
+ **Tipos de datos:** booleano

Un booleano que especifica si el controlador devuelve metadatos de varias bases de datos y clústeres.
+ 1 \$1 TRUE: el controlador solo devuelve metadatos de la base de datos actual. 
+  0 \$1 FALSE. El controlador devuelve metadatos de varios clústeres y bases de datos de Amazon Redshift. 

Este parámetro es opcional.

## dbgroups\$1filter
<a name="odbc20-dbgroups-filter-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

La expresión regular que puede especificar para filtrar DbGroups que se reciben de la respuesta SAML a Amazon Redshift cuando se utilizan los tipos de autenticación Azure, Browser Azure y Browser SAML. 

Este parámetro es opcional.

## Controlador
<a name="odbc20-driver-option"></a>
+ **Valor predeterminado**: controlador ODBC de Amazon Redshift (x64)
+ **Tipo de datos:** cadena

El nombre del controlador. El único valor admitido es **Amazon Redshift ODBC Driver (x64)** (Controlador ODBC de Amazon Redshift [x64]).

Este parámetro es necesario si no establece el **DSN**.

## DSN
<a name="odbc20-dsn-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre del origen de datos del controlador. La aplicación especifica el DSN en la API de SQLDriverConnect.

Este parámetro es necesario si no establece el **Driver** (Controlador).

## EndpointUrl
<a name="odbc20-endpointurl-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El punto de conexión de anulación que se utiliza para comunicarse con Amazon Redshift Coral Service para la autenticación de IAM.

Este parámetro es opcional.

## ForceLowercase
<a name="odbc20-forcelowercase-option"></a>
+ **Valor predeterminado** – 0
+ **Tipos de datos:** booleano

Un valor booleano que especifica si el controlador escribe en minúsculas todos los DbGroups que se envían desde el proveedor de identidades a Amazon Redshift cuando se utiliza la autenticación de inicio de sesión único. 
+  1 \$1 TRUE: el controlador escribe en minúsculas todos los DbGroups que se envían desde el proveedor de identidades. 
+  0 \$1 FALSE: el controlador no modifica los DbGroups. 

Este parámetro es opcional.

## group\$1federation
<a name="odbc20-group-federation-option"></a>
+ **Valor predeterminado** – 0
+ **Tipos de datos:** booleano

Un valor booleano que especifica si la API `getClusterCredentialsWithIAM` se utiliza para obtener credenciales de clúster temporales en los clústeres aprovisionados. Esta opción permite a los usuarios de IAM integrarse con los roles de base de datos de Redshift en los clústeres aprovisionados. Tenga en cuenta que esta opción no se aplica a los espacios de nombres de Redshift sin servidor.
+  1 \$1 VERDADERO: el controlador utiliza la API `getClusterCredentialsWithIAM` para obtener credenciales de clúster temporales en los clústeres aprovisionados. 
+  0 \$1 FALSO: el controlador utiliza la API `getClusterCredentials` predeterminada para obtener credenciales de clúster temporales en los clústeres aprovisionados. 

Este parámetro es opcional.

## https\$1proxy\$1host
<a name="odbc20-https-proxy-host-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre de host o la dirección IP del servidor proxy a través del cual desea pasar los procesos de autenticación de IAM.

Este parámetro es opcional.

## https\$1proxy\$1password
<a name="odbc20-https-proxy-password-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

La contraseña que utiliza para obtener acceso al servidor proxy. Se utiliza para la autenticación de IAM.

Este parámetro es opcional.

## https\$1proxy\$1port
<a name="odbc20-https-proxy-port-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** entero

El número del puerto que el servidor proxy utiliza para escuchar las conexiones del cliente. Se utiliza para la autenticación de IAM.

Este parámetro es opcional.

## https\$1proxy\$1username
<a name="odbc20-https-proxy-username-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre de usuario que utiliza para obtener acceso al servidor proxy. Se utiliza para la autenticación de IAM.

Este parámetro es opcional.

## IAM
<a name="odbc20-iam-option"></a>
+ **Valor predeterminado** – 0
+ **Tipos de datos:** booleano

Un booleano que especifica si el controlador utiliza un método de autenticación de IAM para autenticar la conexión. 
+  1 \$1 TRUE: el controlador utiliza uno de los métodos de autenticación de IAM (mediante un par de clave de acceso y clave secreta, un perfil o un servicio de credenciales). 
+  0 \$1 FALSE. El controlador utiliza la autenticación estándar (con el nombre de usuario y la contraseña de la base de datos). 

Este parámetro es opcional.

## idc\$1client\$1display\$1name
<a name="odbc20-idc_client_display_name-option"></a>
+ **Valor predeterminado**: controlador ODBC de Amazon Redshift
+ **Tipo de datos:** cadena

El nombre para mostrar que se utilizará para el cliente que usa BrowserIdcAuthPlugin.

Este parámetro es opcional.

## idc\$1region
<a name="odbc20-idc_region"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

Es la región de AWS en la que se encuentra la instancia de AWS IAM Identity Center.

Este parámetro es necesario solo cuando en la autenticación se utiliza `BrowserIdcAuthPlugin` en la opción de configuración plugin\$1name.

## idp\$1host
<a name="odbc20-idp-host-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El alojamiento del IdP (proveedor de identidad) que utiliza para la autenticación en Amazon Redshift.

Este parámetro es opcional.

## idp\$1port
<a name="odbc20-idp-port-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** entero

El puerto del IdP (proveedor de identidades) que utiliza para la autenticación en Amazon Redshift. Según el puerto que haya seleccionado al crear, modificar o migrar el clúster, se permitirá el acceso al puerto seleccionado. 

Este parámetro es opcional.

## Idp\$1response\$1timeout
<a name="odbc20-idp-response-timeout-option"></a>
+ **Valor predeterminado** – 120
+ **Tipo de datos:** entero

La cantidad de segundos que el controlador espera para obtener la respuesta SAML del proveedor de identidades cuando se utilizan los servicios Azure AD o SAML a través de un complemento del navegador. 

Este parámetro es opcional.

## idp\$1tenant
<a name="odbc20-idp-tenant-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

 El ID de inquilino de Azure AD asociado a la aplicación de Amazon Redshift.

Este parámetro es necesario si la autenticación se realiza a través del servicio Azure AD.

## idp\$1partition
<a name="odbc20-idp-partition-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

Especifica la partición de la nube en la que está configurado el proveedor de identidades (IdP). Esto determina a qué punto de conexión de autenticación de IdP se conecta el controlador.

Si este parámetro se deja en blanco, el controlador utilizará de forma predeterminada la partición comercial. Los valores posibles son los que se indican a continuación.
+ `us-gov`: utilice este valor si su IdP está configurado en Azure Government. Por ejemplo, Azure AD Government usa el punto de conexión `login.microsoftonline.us`.
+ `cn`: utilice este valor si su IdP está configurado en la partición en la nube de China. Por ejemplo, Azure AD China usa el punto de conexión `login.chinacloudapi.cn`.

Este parámetro es opcional.

## idp\$1use\$1https\$1proxy
<a name="odbc20-idp-use-https-proxy-option"></a>
+ **Valor predeterminado** – 0
+ **Tipos de datos:** booleano

Un booleano que especifica si el controlador pasa los procesos de autenticación de los proveedores de identidades (IdP) a través de un servidor proxy. 
+  1 \$1 TRUE: el controlador pasa los procesos de autenticación de los IdP a través de un servidor proxy. 
+  0 \$1 FALSE. El controlador no pasa los procesos de autenticación de los IdP a través de un servidor proxy. 

Este parámetro es opcional.

## InstanceProfile
<a name="odbc20-instanceprofile-option"></a>
+ **Valor predeterminado** – 0
+ **Tipos de datos:** booleano

Un booleano que especifica si el controlador utiliza el perfil de instancia de Amazon EC2 cuando está configurado para usar un perfil para la autenticación.
+  1 \$1 TRUE: el controlador utiliza el perfil de instancia de Amazon EC2. 
+  0 \$1 FALSE. El controlador utiliza el perfil de roles encadenados especificado en la opción Nombre de perfil (**Profile** [Perfil]) en su lugar. 

Este parámetro es opcional.

## issuer\$1url
<a name="odbc20-issuer_url"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

 Apunta al punto de conexión de la instancia del servidor de AWS IAM Identity Center. 

Este parámetro es necesario solo cuando en la autenticación se utiliza `BrowserIdcAuthPlugin` en la opción de configuración plugin\$1name.

## KeepAlive
<a name="odbc20-keepalive-option"></a>
+ **Valor predeterminado** – 1
+ **Tipos de datos:** booleano

Un booleano que especifica si el controlador utiliza keepalives de TCP para evitar que se agote el tiempo de espera en las conexiones.
+  1el controlador utiliza keepalives de TCP para evitar que se agote el tiempo de espera en las conexiones. 
+  0 \$1 FALSE. El controlador no utiliza keepalives de TCP. 

Este parámetro es opcional.

## KeepAliveCount
<a name="odbc20-keepalivecount-option"></a>
+ **Valor predeterminado** – 0
+ **Tipo de datos:** entero

La cantidad de paquetes keepalive de TCP que se pueden perder antes de que se considere que se interrumpió la conexión. Cuando este parámetro está establecido en 0, el controlador utiliza el valor predeterminado del sistema para esta configuración. 

Este parámetro es opcional.

## KeepAliveInterval
<a name="odbc20-keepaliveinterval-option"></a>
+ **Valor predeterminado** – 0
+ **Tipo de datos:** entero

La cantidad de segundos entre cada retransmisión de keepalive de TCP. Cuando este parámetro está establecido en 0, el controlador utiliza el valor predeterminado del sistema para esta configuración. 

Este parámetro es opcional.

## KeepAliveTime
<a name="odbc20-keepalivetime-option"></a>
+ **Valor predeterminado** – 0
+ **Tipo de datos:** entero

La cantidad de segundos de inactividad antes de que el controlador envíe un paquete keepalive de TCP. Cuando este parámetro está establecido en 0, el controlador utiliza el valor predeterminado del sistema para esta configuración. 

Este parámetro es opcional.

## listen\$1port
<a name="odbc20-listen-port-option"></a>
+ **Valor predeterminado** – 7890
+ **Tipo de datos:** entero

El puerto que utiliza el controlador para recibir la respuesta SAML del proveedor de identidades o el código de autorización cuando se utilizan los servicios SAML, Azure AD o AWS IAM Identity Center a través de un complemento del navegador.

Este parámetro es opcional.

## login\$1url
<a name="odbc20-login-url-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

La dirección URL del recurso en el sitio web del proveedor de identidades cuando se utiliza el complemento de navegador SAML genérico.

Este parámetro es necesario si la autenticación se realiza con el servicio Azure AD o SAML a través de un complemento del navegador.

## loginToRp
<a name="odbc20-logintorp-option"></a>
+ **Valor predeterminado**: urn:amazon:webservices
+ **Tipo de datos:** cadena

La relación de confianza para usuario autenticado que desea utilizar para el tipo de autenticación de AD FS.

Esta cadena es opcional.

## LogLevel
<a name="odbc20-loglevel-option"></a>
+ **Valor predeterminado** – 0
+ **Tipo de datos:** entero

Utilice esta propiedad para habilitar o deshabilitar el registro en el controlador y especificar la cantidad de detalles incluidos en los archivos de registro. Le recomendamos que habilite el registro solo durante el tiempo suficiente para detectar un problema, ya que el registro reduce el rendimiento y puede consumir una gran cantidad de espacio en el disco.

 Establezca la propiedad en uno de los siguientes valores:
+  0: OFF. Desactive todos los registros. 
+  1: ERROR. Registra eventos de errores que podrían hacer que el controlador continúe ejecutándose, pero genere un error. 
+  2: API\$1CALL. Registra las llamadas a funciones de la API ODBC con valores de argumento de función. 
+  3: INFO. Registra información general que describe el progreso del controlador. 
+  4: MSG\$1PROTOCOL. Registra información detallada del protocolo de mensajes del controlador. 
+  5: DEBUG. Registra toda la actividad del controlador. 
+  6: DEBUG\$1APPEND. Siga agregando registros de todas las actividades del controlador. 

Cuando se habilita el registro, el controlador crea los siguientes archivos de registro en la ubicación que especifica en la propiedad **LogPath**: 
+  Un archivo `redshift_odbc.log.1` que registra la actividad del controlador que tiene lugar durante el protocolo de enlace de una conexión. 
+  Un archivo `redshift_odbc.log` para todas las actividades del controlador después de establecer una conexión a la base de datos. 

Este parámetro es opcional.

## LogPath
<a name="odbc20-logpath-option"></a>
+ **Valor predeterminado**: el directorio TEMP específico del sistema operativo
+ **Tipo de datos:** cadena

La ruta completa a la carpeta en la que el controlador guarda los archivos de registro cuando **LogLevel** es superior a 0.

Este parámetro es opcional.

## Min\$1TLS
<a name="odbc20-min-tls-option"></a>
+ **Valor predeterminado** – 1.2
+ **Tipo de datos:** cadena

 La versión mínima de TLS/SSL que el controlador permite que el almacén de datos utilice para cifrar las conexiones. Por ejemplo, si se especifica TLS 1.2, no se puede utilizar TLS 1.1 para cifrar las conexiones.

Min\$1TLS acepta los valores siguientes:
+  1.0: La conexión debe utilizar al menos TLS 1.0. 
+  1.1: La conexión debe utilizar al menos TLS 1.1. 
+  1.2: La conexión debe utilizar al menos TLS 1.2. 

Este parámetro es opcional.

## partner\$1spid
<a name="odbc20-partner-spid-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El valor del SPID (ID del proveedor de servicios) del socio que se utilizará cuando se autentique la conexión mediante el servicio PingFederate.

Este parámetro es opcional.

## Contraseña \$1 PWS
<a name="odbc20-password-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

La contraseña correspondiente al nombre de usuario proporcionado en el campo Usuario (**UID** \$1 **Usuario** \$1 **LogonID**). 

Este parámetro es opcional.

## plugin\$1name
<a name="odbc20-plugin-name-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre del complemento del proveedor de credenciales que desea utilizar para la autenticación. 

 Se admiten los siguientes valores: 
+  `ADFS`: utilice Active Federation Services para la autenticación. 
+  `AzureAD`: utilice el servicio de Microsoft Azure Active Directory (AD) para la autenticación. 
+  `BrowserAzureAD`: utilice un complemento del navegador del servicio de Microsoft Azure Active Directory (AD) para la autenticación. 
+  `BrowserIdcAuthPlugin `: complemento de autorización que utiliza AWS IAM Identity Center. 
+  `BrowserSAML`: utilice un complemento del navegador de los servicios SAML, como Okta o Ping, para la autenticación. 
+  `IdpTokenAuthPlugin`: complemento de autorización que acepta un token de AWS IAM Identity Center o un token de identidad basado en JSON (JWT) de OpenID Connect (OIDC) de cualquier proveedor de identidades web vinculado a AWS IAM Identity Center. 
+  `JWT`: utilice un JSON Web Token (JWT) para la autenticación. 
+  `Ping`: utilice el servicio PingFederate para la autenticación. 
+  `Okta`: utilice el servicio Okta para la autenticación. 

Este parámetro es opcional.

## Puerto \$1 PortNumber
<a name="odbc20-port-option"></a>
+ **Valor predeterminado** – 5439
+ **Tipo de datos:** entero

El número del puerto TCP que el servidor de Amazon Redshift utiliza para escuchar las conexiones del cliente. 

Este parámetro es opcional.

## preferred\$1role
<a name="odbc20-preferred-role-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El rol que desea asumir durante la conexión a Amazon Redshift. Se utiliza para la autenticación de IAM.

Este parámetro es opcional.

## Perfil
<a name="odbc20-profile-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre del perfil de usuario de AWS utilizado para autenticarse en Amazon Redshift.
+  Si Usar el parámetro del perfil de instancia (la propiedad **InstanceProfile**) se establece en 1 \$1 TRUE, esa configuración tiene prioridad y el controlador utiliza el perfil de instancia de Amazon EC2 en su lugar. 
+  La ubicación predeterminada del archivo de credenciales que contiene los perfiles es `~/.aws/Credentials`. La variable de entorno `AWS_SHARED_CREDENTIALS_FILE` se puede utilizar para apuntar a un archivo de credenciales diferente. 

Este parámetro es opcional.

## provider\$1name
<a name="odbc20-provider-name-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El proveedor de autenticación creado por el usuario mediante la consulta CREATE IDENTITY PROVIDER. Se utiliza en la autenticación nativa de Amazon Redshift.

Este parámetro es opcional.

## ProxyHost
<a name="odbc20-proxyhost-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre de host o la dirección IP del servidor proxy a través del que desea conectarse.

Este parámetro es opcional.

## ProxyPort
<a name="odbc20-proxyport-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** entero

El número del puerto que el servidor proxy utiliza para escuchar las conexiones del cliente.

Este parámetro es opcional.

## ProxyPwd
<a name="odbc20-proxypwd-option"></a>
+ **Valor predeterminado: versión anterior del controlador ODBC**: ninguno
+ **Tipo de datos:** cadena

La contraseña que utiliza para obtener acceso al servidor proxy. 

Este parámetro es opcional.

## ProxyUid
<a name="odbc20-proxyuid-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre de usuario que utiliza para obtener acceso al servidor proxy.

Este parámetro es opcional.

## ReadOnly
<a name="odbc20-readonly-option"></a>
+ **Valor predeterminado** – 0
+ **Tipos de datos:** booleano

Un booleano que especifica si el controlador se encuentra en modo de solo lectura. 
+  1l \$1 TRUE: a conexión se encuentra en modo de solo lectura y no se puede escribir en el almacén de datos. 
+  0la conexión no se encuentra en modo de solo lectura y se puede escribir en el almacén de datos. 

Este parámetro es opcional.

## region
<a name="odbc20-region-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

La región de AWS en la que se encuentra el clúster. 

Este parámetro es opcional.

## SecretAccessKey
<a name="odbc20-secretaccesskey-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

 La clave secreta de IAM para el usuario o el rol. Si establece este parámetro, también debe establecer **AccessKeyID**. 

Este parámetro es opcional.

## SessionToken
<a name="odbc20-sessiontoken-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

 El token de sesión temporal de IAM asociado con el rol de IAM que se está utilizando para la autenticación. 

Este parámetro es opcional.

## Servidor \$1 HostName \$1 Host
<a name="odbc20-server-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El servidor de punto de conexión al que desea conectarse.

Este parámetro es obligatorio.

## ssl\$1insecure
<a name="odbc20-ssl-insecure-option"></a>
+ **Valor predeterminado** – 0
+ **Tipos de datos:** booleano

Un booleano que especifica si el controlador verifica la autenticidad del certificado de servidor del IdP.
+  1 \$1 TRUE: el controlador no verifica la autenticidad del certificado de servidor del IdP. 
+  0 \$1 FALSE: el controlador verifica la autenticidad del certificado de servidor del IdP. 

Este parámetro es opcional.

## SSLMode
<a name="odbc20-sslmode-option"></a>
+ **Valor predeterminado** – `verify-ca`
+ **Tipo de datos:** cadena

El modo de verificación del certificado SSL que se utiliza para establecer la conexión a Amazon Redshift. Se admiten los siguientes valores: 
+  `verify-full`: conéctese solo con SSL, una entidad de certificación de confianza y un nombre de servidor que coincida con el certificado. 
+  `verify-ca`: conéctese solo con SSL y una entidad de certificación de confianza. 
+  `require`: conéctese solo con SSL. 
+  `prefer`: conéctese con SSL, si está disponible. De lo contrario, conéctese sin utilizar SSL. 
+  `allow`: de forma predeterminada, conéctese sin usar SSL. Si el servidor requiere conexiones SSL, utilice SSL. 
+  `disable`: conéctese sin utilizar SSL. 

Este parámetro es opcional.

## StsConnectionTimeout
<a name="odbc20-stsconnectiontimeout-option"></a>
+ **Valor predeterminado** – 0
+ **Tipo de datos:** entero

El tiempo de espera máximo de las conexiones de IAM, en segundos. Si se establece en 0 o no se especifica, el controlador espera 60 segundos para cada llamada a AWS STS. 

Este parámetro es opcional.

## StsEndpointUrl
<a name="odbc20-stsendpointurl-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

Esta opción especifica el punto de conexión de anulación que se utiliza para comunicarse con AWS Security Token Service (AWS STS). 

Este parámetro es opcional.

## token
<a name="jdbc20-token-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

Un token de acceso proporcionado por AWS IAM Identity Center o un token web JSON (JWT) de OpenID Connect (OIDC) proporcionado por un proveedor de identidades web que esté vinculado con AWS IAM Identity Center. Su aplicación debe generar este token autenticando al usuario de su aplicación con AWS IAM Identity Center o con un proveedor de identidades vinculado con AWS IAM Identity Center. 

Este parámetro funciona con `IdpTokenAuthPlugin`.

## token\$1type
<a name="jdbc20-token-type-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

Tipo de token que se utiliza en `IdpTokenAuthPlugin`.

Puede especificar los valores siguientes:

**ACCESS\$1TOKEN**  
Introdúzcalo si utiliza un token de acceso proporcionado por AWS IAM Identity Center.

**EXT\$1JWT**  
Introdúzcalo si utiliza un token web JSON (JWT) de OpenID Connect (OIDC) proporcionado por un proveedor de identidades basado en web que está integrado con AWS IAM Identity Center.

Este parámetro funciona con `IdpTokenAuthPlugin`.

## UID \$1 Usuario \$1 LogonID
<a name="odbc20-uid-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El nombre de usuario que utiliza para obtener acceso al servidor de Amazon Redshift.

Este parámetro es necesario si utiliza la autenticación de base de datos.

## UseUnicode
<a name="odbc20-useunicode-option"></a>
+ **Valor predeterminado** – 0
+ **Tipos de datos:** booleano

Un booleano que especifica si el controlador devuelve los datos de Redshift como Unicode o como tipos SQL estándar.
+  1 \$1 TRUE: el controlador devuelve un tipo SQL amplio para el tipo de datos de caracteres. 
  + Se devuelve SQL\$1WCHAR en lugar de SQL\$1CHAR.
  + Se devuelve SQL\$1WVARCHAR en lugar de SQL\$1VARCHAR.
  + Se devuelve SQL\$1WLONGVARCHAR en lugar de SQL\$1LONGVARCHAR.
+  0 \$1 FALSE: el controlador devuelve el tipo SQL normal para el tipo de datos de caracteres. 
  + Se devuelve SQL\$1CHAR en lugar de SQL\$1WCHAR.
  + Se devuelve SQL\$1VARCHAR en lugar de SQL\$1WVARCHAR.
  + Se devuelve SQL\$1LONGVARCHAR en lugar de SQL\$1WLONGVARCHAR.

Este parámetro es opcional. Está disponible en las versiones 2.1.15 y posteriores del controlador.

## web\$1identity\$1token
<a name="odbc20-web-identity-token-option"></a>
+ **Valor predeterminado:** ninguno
+ **Tipo de datos:** cadena

El token de OAUTH proporcionado por el proveedor de identidades. Se utiliza en el complemento JWT.

Este parámetro es necesario si establece el parámetro **plugin\$1name** en BasicJwtCredentialsProvider.

# Versiones anteriores del controlador ODBC
<a name="odbc20-previous-versions"></a>

Descargue una versión anterior del controlador ODBC versión 2.x de Amazon Redshift solo si su herramienta requiere una versión específica del controlador. 

## Usar versiones anteriores del controlador ODBC para Microsoft Windows
<a name="odbc20-previous-versions-windows"></a>

A continuación, se muestran las versiones anteriores del controlador ODBC versión 2.x de Amazon Redshift para Microsoft Windows: 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC64-2.1.14.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC64-2.1.14.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC64-2.1.13.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC64-2.1.13.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC64-2.1.12.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC64-2.1.12.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.11.0/AmazonRedshiftODBC64-2.1.11.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.11.0/AmazonRedshiftODBC64-2.1.11.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.10.0/AmazonRedshiftODBC64-2.1.10.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.10.0/AmazonRedshiftODBC64-2.1.10.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.9.0/AmazonRedshiftODBC64-2.1.9.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.9.0/AmazonRedshiftODBC64-2.1.9.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.9.0/AmazonRedshiftODBC64-2.1.9.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.9.0/AmazonRedshiftODBC64-2.1.9.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.8.0/AmazonRedshiftODBC64-2.1.8.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.8.0/AmazonRedshiftODBC64-2.1.8.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.7.0/AmazonRedshiftODBC64-2.1.7.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.7.0/AmazonRedshiftODBC64-2.1.7.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.6.0/AmazonRedshiftODBC64-2.1.6.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.6.0/AmazonRedshiftODBC64-2.1.6.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.4.0/AmazonRedshiftODBC64-2.1.4.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.4.0/AmazonRedshiftODBC64-2.1.4.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.3.0/AmazonRedshiftODBC64-2.1.3.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.3.0/AmazonRedshiftODBC64-2.1.3.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.2.0/AmazonRedshiftODBC64-2.1.2.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.2.0/AmazonRedshiftODBC64-2.1.2.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.1.0/AmazonRedshiftODBC64-2.1.1.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.1.0/AmazonRedshiftODBC64-2.1.1.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.0.0/AmazonRedshiftODBC64-2.1.0.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.0.0/AmazonRedshiftODBC64-2.1.0.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.1.0/AmazonRedshiftODBC64-2.0.1.0.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.1.0/AmazonRedshiftODBC64-2.0.1.0.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.11/AmazonRedshiftODBC64-2.0.0.11.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.11/AmazonRedshiftODBC64-2.0.0.11.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.9/AmazonRedshiftODBC64-2.0.0.9.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.9/AmazonRedshiftODBC64-2.0.0.9.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.8/AmazonRedshiftODBC64-2.0.0.8.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.8/AmazonRedshiftODBC64-2.0.0.8.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.7/AmazonRedshiftODBC64-2.0.0.7.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.7/AmazonRedshiftODBC64-2.0.0.7.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.6/AmazonRedshiftODBC64-2.0.0.6.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.6/AmazonRedshiftODBC64-2.0.0.6.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.5/AmazonRedshiftODBC64-2.0.0.5.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.5/AmazonRedshiftODBC64-2.0.0.5.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.3/AmazonRedshiftODBC64-2.0.0.3.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.3/AmazonRedshiftODBC64-2.0.0.3.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.1/AmazonRedshiftODBC64-2.0.0.1.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.1/AmazonRedshiftODBC64-2.0.0.1.msi) 

## Usar versiones anteriores del controlador ODBC para Linux
<a name="odbc20-previous-versions-linux"></a>

A continuación, se muestran las versiones anteriores del controlador ODBC versión 2.x de Amazon Redshift para Linux: 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC-64-bit-2.1.14.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC-64-bit-2.1.14.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC-64-bit-2.1.14.0.aarch64.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC-64-bit-2.1.14.0.aarch64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC-64-bit-2.1.13.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC-64-bit-2.1.13.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC-64-bit-2.1.13.0.aarch64.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC-64-bit-2.1.13.0.aarch64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC-64-bit-2.1.12.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC-64-bit-2.1.12.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC-64-bit-2.1.12.0.aarch64.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC-64-bit-2.1.12.0.aarch64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.11.0/AmazonRedshiftODBC-64-bit-2.1.11.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.11.0/AmazonRedshiftODBC-64-bit-2.1.11.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.11.0/AmazonRedshiftODBC-64-bit-2.1.11.0.aarch64.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.11.0/AmazonRedshiftODBC-64-bit-2.1.11.0.aarch64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.10.0/AmazonRedshiftODBC-64-bit-2.1.10.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.10.0/AmazonRedshiftODBC-64-bit-2.1.10.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.9.0/AmazonRedshiftODBC-64-bit-2.1.9.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.9.0/AmazonRedshiftODBC-64-bit-2.1.9.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.8.0/AmazonRedshiftODBC-64-bit-2.1.8.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.8.0/AmazonRedshiftODBC-64-bit-2.1.8.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.7.0/AmazonRedshiftODBC-64-bit-2.1.7.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.7.0/AmazonRedshiftODBC-64-bit-2.1.7.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.6.0/AmazonRedshiftODBC-64-bit-2.1.6.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.6.0/AmazonRedshiftODBC-64-bit-2.1.6.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.4.0/AmazonRedshiftODBC-64-bit-2.1.4.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.4.0/AmazonRedshiftODBC-64-bit-2.1.4.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.3.0/AmazonRedshiftODBC-64-bit-2.1.3.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.3.0/AmazonRedshiftODBC-64-bit-2.1.3.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.2.0/AmazonRedshiftODBC-64-bit-2.1.2.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.2.0/AmazonRedshiftODBC-64-bit-2.1.2.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.1.0/AmazonRedshiftODBC-64-bit-2.1.1.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.1.0/AmazonRedshiftODBC-64-bit-2.1.1.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.0.0/AmazonRedshiftODBC-64-bit-2.1.0.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.0.0/AmazonRedshiftODBC-64-bit-2.1.0.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.1.0/AmazonRedshiftODBC-64-bit-2.0.1.0.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.1.0/AmazonRedshiftODBC-64-bit-2.0.1.0.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.11/AmazonRedshiftODBC-64-bit-2.0.0.11.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.11/AmazonRedshiftODBC-64-bit-2.0.0.11.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.9/AmazonRedshiftODBC-64-bit-2.0.0.9.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.9/AmazonRedshiftODBC-64-bit-2.0.0.9.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.8/AmazonRedshiftODBC-64-bit-2.0.0.8.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.8/AmazonRedshiftODBC-64-bit-2.0.0.8.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.7/AmazonRedshiftODBC-64-bit-2.0.0.7.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.7/AmazonRedshiftODBC-64-bit-2.0.0.7.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.6/AmazonRedshiftODBC-64-bit-2.0.0.6.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.6/AmazonRedshiftODBC-64-bit-2.0.0.6.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.5/AmazonRedshiftODBC-64-bit-2.0.0.5.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.5/AmazonRedshiftODBC-64-bit-2.0.0.5.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.3/AmazonRedshiftODBC-64-bit-2.0.0.3.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.3/AmazonRedshiftODBC-64-bit-2.0.0.3.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.1/AmazonRedshiftODBC-64-bit-2.0.0.1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.0.0.1/AmazonRedshiftODBC-64-bit-2.0.0.1.x86_64.rpm) 

## Uso de versiones anteriores del controlador ODBC para Apple macOS
<a name="odbc20-previous-versions-mac"></a>

A continuación, se muestran las versiones anteriores del controlador ODBC versión 2.x de Amazon Redshift para Apple macOS: 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC-64-bit.2.1.14.0.universal.pkg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.14.0/AmazonRedshiftODBC-64-bit.2.1.14.0.universal.pkg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC-64-bit.2.1.13.0.universal.pkg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.13.0/AmazonRedshiftODBC-64-bit.2.1.13.0.universal.pkg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC-64-bit.2.1.12.0.universal.pkg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/2.1.12.0/AmazonRedshiftODBC-64-bit.2.1.12.0.universal.pkg) 

# Configuración de una conexión del controlador ODBC versión 1.x
<a name="configure-odbc-connection"></a>

Puede utilizar una conexión ODBC para conectarse a su clúster de Amazon Redshift desde distintas aplicaciones y herramientas de cliente SQL de terceros. Para hacerlo, configure la conexión en su equipo cliente o en una instancia de Amazon EC2. Si su equipo cliente es compatible con JDBC, puede elegir utilizar ese tipo de conexión, en lugar de una conexión ODBC ya que JDBC es más fácil de configurar. No obstante, si su herramienta de cliente no es compatible con JDBC, siga los pasos de esta sección para configurar una conexión ODBC. 

Amazon Redshift proporciona controladores ODBC de 64 bit para los sistemas operativos Linux, Windows y macOS X. Los controladores ODBC de 32 bits se suspenden. No se publicarán más actualizaciones, excepto las revisiones de seguridad urgentes. 

Para obtener la información más reciente acerca de la funcionalidad del controlador ODBC y los requisitos previos, consulte [Notas de la versión del controlador ODBC de Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Release+Notes.pdf). 

Para obtener información acerca de la instalación y la configuración de los controladores ODBC de Amazon Redshift, consulte la [Guía de instalación y configuración de controladores ODBC de Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). 

**Topics**
+ [Obtención de la URL de ODBC](obtain-odbc-url.md)
+ [Uso de un controlador ODBC de Amazon Redshift en Microsoft Windows](install-odbc-driver-windows.md)
+ [Uso de un controlador ODBC de Amazon Redshift en Linux](install-odbc-driver-linux.md)
+ [Uso de un controlador ODBC de Amazon Redshift en macOS X](install-odbc-driver-mac.md)
+ [Opciones del controlador ODBC](configure-odbc-options.md)
+ [Versiones anteriores del controlador ODBC](odbc-previous-versions.md)

# Obtención de la URL de ODBC
<a name="obtain-odbc-url"></a>

Amazon Redshift muestra la URL de ODBC de su clúster en la consola de Amazon Redshift. Esta dirección URL contiene la información que necesita para configurar la conexión entre su equipo cliente y la base de datos.

 Una URL de ODBC tiene el siguiente formato: `Driver={driver};Server=endpoint;Database=database_name;UID=user_name;PWD=password;Port=port_number` 

Los campos del formato mostrado anteriormente tienen los siguientes valores.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/obtain-odbc-url.html)

 Los campos de las tablas anteriores pueden contener los siguientes caracteres especiales:

```
[]{}(),;?*=!@ 
```

 Si utiliza estos caracteres especiales, debe incluir el valor entre llaves. Por ejemplo, el valor de contraseña `Your;password123` en una cadena de conexión se representa como `PWD={Your;password123};`. 

 Como los pares `Field=value` están separados por punto y coma, la combinación de `}` y `;` con cualquier número de espacios intermedios se considera el final de un par `Field={value};`. Le recomendamos que evite la secuencia `};` en los valores de campo. Por ejemplo, si establece el valor de su contraseña a `PWD={This is a passwor} ;d};`, su contraseña sería `This is a passwor} ;` y la URL generaría un error. 

A continuación, se muestra un ejemplo de la URL de ODBC.

```
Driver={Amazon Redshift (x64)};
                    Server=examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com;
                    Database=dev; 
                    UID=adminuser;
                    PWD=insert_your_admin_user_password_here;
                    Port=5439
```

Para obtener información acerca de cómo crear su propia conexión ODBC, consulte [Obtención de la cadena de conexión a su clúster](connecting-connection-string.md). 

# Uso de un controlador ODBC de Amazon Redshift en Microsoft Windows
<a name="install-odbc-driver-windows"></a>

Debe instalar el controlador ODBC de Amazon Redshift en los equipos cliente que tienen acceso a un almacenamiento de datos de Amazon Redshift. Cada equipo en el que instala el controlador debe cumplir una lista de requisitos mínimos de sistema: Para obtener información acerca de los requisitos mínimos del sistema, consulte la [Guía de instalación y configuración de conectores ODBC de Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). 

**Topics**
+ [Descarga e instalación del controlador ODBC de Amazon Redshift](odbc-driver-windows-how-to-install.md)
+ [Creación de una entrada de sistema DSN para una conexión ODBC](create-dsn-odbc-windows.md)

# Descarga e instalación del controlador ODBC de Amazon Redshift
<a name="odbc-driver-windows-how-to-install"></a>

Utilice el procedimiento siguiente para descargar los controladores ODBC de Amazon Redshift para los sistemas operativos Windows. Utilice un controlador diferente solo si está ejecutando una aplicación de terceros que está certificada para usarse con Amazon Redshift y que requiere un controlador específico. 

**Pasos para instalar el controlador ODBC**

1. Descargue alguno de los siguientes controladores, según la arquitectura de sistema de su aplicación o su herramienta de cliente SQL: 
   + [Versión 1.6.3 del controlador ODBC de 64 bits](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/AmazonRedshiftODBC64-1.6.3.1008.msi) 

     El nombre de este controlador es Amazon Redshift (x64).
   + [Versión 1.4.52 del controlador ODBC de 32 bits](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC32-1.4.52.1000.msi) 

     El nombre de este controlador es Amazon Redshift (x86). Los controladores ODBC de 32 bits se suspenden. No se publicarán más actualizaciones, excepto las revisiones de seguridad urgentes.
**nota**  
Descargue el paquete MSI que corresponde a la arquitectura de sistema de su aplicación o su herramienta de cliente SQL. Por ejemplo, si su herramienta de cliente SQL es de 64 bits, instale el controlador de 64 bits.

    A continuación, descargue y revise el [Acuerdo de licencia del controlador ODBC y JDBC de Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/Amazon+Redshift+ODBC+and+JDBC+Driver+License+Agreement.pdf). 

1.  Haga doble clic en el archivo .msi y, luego, siga los pasos en el asistente para instalar el controlador. 

# Creación de una entrada de sistema DSN para una conexión ODBC
<a name="create-dsn-odbc-windows"></a>

Después de descargar e instalar el controlador ODBC, agregue una entrada de nombre de origen de datos (DSN) al equipo cliente o a la instancia de Amazon EC2. Las herramientas de cliente SQL utilizan este origen de datos para conectarse a la base de datos de Amazon Redshift. 

Se recomienda crear un DSN del sistema en lugar de un DSN de usuario. Algunas aplicaciones cargan los datos con una cuenta de usuario diferente. Es posible que estas aplicaciones no puedan detectar DSN de usuario que se crean en otra cuenta de usuario.

**nota**  
Para la autenticación con credenciales de AWS Identity and Access Management (IAM) o credenciales de proveedor de identidad (IdP), se requieren pasos adicionales. Para obtener más información, consulte [Paso 5: Configurar una conexión JDBC u ODBC para usar credenciales de IAM](generating-iam-credentials-steps.md#generating-iam-credentials-configure-jdbc-odbc).

Para obtener información acerca de cómo crear una entrada DSN del sistema, consulte la [Guía de instalación y configuración de conectores ODBC de Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). 

**Para crear una entrada DSN del sistema para una conexión ODBC en Windows**

1. En el menú **Start (Inicio)**, abra **ODBC Data Sources (Orígenes de datos ODBC)**.

   Asegúrese de elegir el Administrador de orígenes de datos ODBC que tenga el mismo valor de bits que la aplicación cliente que está utilizando para conectarse a Amazon Redshift.

1. En el **Administrador de orígenes de datos ODBC**, elija la pestaña **Driver** (Controlador) y busque la carpeta del controlador:
   + **Controlador ODBC de Amazon Redshift (64 bits)**
   + **Controlador ODBC de Amazon Redshift (32 bits)**

1.  Elija la pestaña **System DSN (DSN de sistema)** para configurar el controlador para todos los usuarios del equipo o la pestaña **User DSN (DSN de usuario)** si para configurar solamente el controlador para la cuenta de usuario. 

1.  Elija **Agregar**. Se abrirá la ventana **Create New Data Source (Crear nuevo origen de datos)**. 

1.  Elija el controlador ODBC de **Amazon Redshift** y, a continuación, elija **Finish** (Finalizar). Se abrirá la ventana ** Amazon Redshift ODBC Driver DSN Setup** (Configuración de DSN del controlador ODBC de Amazon Redshift).

1. En **Connection Settings (Configuración de conexión)**, escriba la siguiente información:
<a name="rs-mgmt-dsn"></a>
**Nombre de origen de datos**  
Escriba un nombre para el origen de datos. Puede usar cualquier nombre que desee para identificar el origen de datos más adelante cuando cree la conexión al clúster. Por ejemplo, si siguió la *Guía de introducción a Amazon Redshift*, podría escribir `exampleclusterdsn` para que le sea más fácil recordar el clúster que asocia a este DSN.
<a name="rs-mgmt-server"></a>
**Server**  
Especifique el punto de conexión para su clúster de Amazon Redshift. Puede encontrar esta información en la consola de Amazon Redshift en la página de detalles del clúster. Para obtener más información, consulte [Configuración de conexiones en Amazon Redshift](configuring-connections.md).
<a name="rs-mgmt-port"></a>
**Puerto**  
Escriba el número de puerto que usa la base de datos. Utilice el puerto que se configuró para el clúster en el momento del lanzamiento o la modificación.
<a name="rs-mgmt-database"></a>
**Database**  
Introduzca el nombre de la base de datos de Amazon Redshift. Si ha lanzado el clúster sin especificar un nombre de base de datos, escriba `dev`. De lo contrario, utilice el nombre que eligió durante el proceso de inicio. Si siguió la *Guía de introducción a Amazon Redshift*, ingrese `dev`.

1. En **Authentication (Autenticación)**, especifique las opciones de configuración para configurar la autenticación de IAM o estándar. Para obtener información acerca de las opciones de autenticación, consulte “Configuración de la autenticación en Windows” en la *Guía de instalación y configuración de conectores ODBC de Amazon Redshift*. 

1. En **SSL Settings (Configuración de SSL)**, especifique un valor para el siguiente campo:
<a name="rs-mgmt-ssl-authentication"></a>
**Autenticación SSL**  
Elija un modo para controlar la Capa de conexión segura (SSL). En un entorno de prueba, podría usar `prefer`. No obstante, para entornos de producción y cuando se requiera un intercambio seguro de datos, use `verify-ca` o `verify-full`. Para obtener más información acerca del uso de SSL en Windows, consulte “Configuración de la verificación SSL en Windows” en la *Guía de instalación y configuración de conectores de ODBC de Amazon Redshift*. 

1. En **Additional Options (Opciones adicionales)**, especifique las opciones sobre cómo devolver los resultados de la consulta a la herramienta o aplicación cliente SQL. Para obtener más información, consulte “Configuración de opciones adicionales en Windows” en la *Guía de instalación y configuración de conectores ODBC de Amazon Redshift*. 

1. En **Logging Options (Opciones de registro)**, especifique valores para la opción de registro. Para obtener más información, consulte “Configuración de opciones de registro en Windows” en la *Guía de instalación y configuración de conectores ODBC de Amazon Redshift*. 

   A continuación, seleccione **OK (Aceptar)**.

1. En **Data Type Options (Opciones de tipo de datos)**, especifique valores para los tipos de datos. Para obtener más información, consulte “Configuración de opciones de tipos de datos en Windows” en la *Guía de instalación y configuración de conectores ODBC de Amazon Redshift*. 

   A continuación, seleccione **OK (Aceptar)**.

1. Seleccione **Probar** Si el equipo cliente puede conectarse a la base de datos de Amazon Redshift, verá el siguiente mensaje: **Connection successful** (Conexión realizada correctamente). 

    Si el equipo cliente no puede conectarse a la base de datos, puede solucionar los posibles problemas. Para obtener más información, consulte [Solución de problemas de conexión en Amazon Redshift](troubleshooting-connections.md). 

1. Configure las conexiones keepalive de TCP en Windows para evitar que se agote el tiempo de espera en las conexiones. Para obtener información acerca de cómo configurar keepalives de TCP en Windows, consulte la *Guía de instalación y configuración de conectores de ODBC de Amazon Redshift*.

1. Para ayudar a solucionar problemas, configure el registro. Para obtener información acerca de cómo configurar los registros en Windows, consulte la *Guía de instalación y configuración de conectores de ODBC de Amazon Redshift*. 

# Uso de un controlador ODBC de Amazon Redshift en Linux
<a name="install-odbc-driver-linux"></a>

Debe instalar el controlador ODBC de Amazon Redshift en los equipos cliente que tienen acceso a un almacenamiento de datos de Amazon Redshift. Cada equipo en el que instala el controlador debe cumplir una lista de requisitos mínimos de sistema: Para obtener información acerca de los requisitos mínimos del sistema, consulte la [Guía de instalación y configuración de conectores ODBC de Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). 

**Topics**
+ [Descarga e instalación del controlador ODBC de Amazon Redshift](odbc-driver-linux-how-to-install.md)
+ [Uso de un administrador de controladores ODBC para configurar el controlador](odbc-driver-configure-linux.md)

# Descarga e instalación del controlador ODBC de Amazon Redshift
<a name="odbc-driver-linux-how-to-install"></a>

Siga los pasos en esta sección para descargar e instalar los controladores ODBC de Amazon Redshift en una distribución Linux compatible. El proceso de instalación instala los archivos del controlador en los siguientes directorios: 
+ `/opt/amazon/redshiftodbc/lib/64` (para el controlador de 64 bits)
+ `/opt/amazon/redshiftodbc/ErrorMessages`
+ `/opt/amazon/redshiftodbc/Setup`
+  `/opt/amazon/redshiftodbc/lib/32` (para el controlador de 32 bits)<a name="rs-mgmt-install-odbc-drivers-linux"></a>

**Para instalar el controlador ODBC de Amazon Redshift**

1. Descargue alguno de los siguientes controladores, según la arquitectura de sistema de su aplicación o su herramienta de cliente SQL: 
   + [Versión 1.6.3 del controlador RPM de 64 bits](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/AmazonRedshiftODBC-64-bit-1.6.3.1008-1.x86_64.rpm) 
   + [Versión 1.6.3 del controlador Debian de 64 bits](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/AmazonRedshiftODBC-64-bit-1.6.3.1008-1.x86_64.deb) 
   + [Versión 1.4.52 del controlador de 32 bits](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC-32-bit-1.4.52.1000-1.i686.rpm) 

   El nombre de cada uno de estos controladores es el controlador ODBC de Amazon Redshift. Los controladores ODBC de 32 bits se suspenden. No se publicarán más actualizaciones, excepto las revisiones de seguridad urgentes.
**nota**  
Descargue el paquete que corresponde a la arquitectura de sistema de su aplicación o su herramienta de cliente SQL. Por ejemplo, si su herramienta de cliente es de 64 bits, instale un controlador de 64 bits.

    A continuación, descargue y revise el [Acuerdo de licencia del controlador ODBC y JDBC de Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/Amazon+Redshift+ODBC+and+JDBC+Driver+License+Agreement.pdf). 

1. Vaya a la ubicación en la que descargó el paquete y, a continuación, ejecute alguno de los siguientes comandos. Utilice el comando que corresponda a su distribución Linux. 
   + En los sistemas operativos RHEL y CentOS , ejecute el siguiente comando.

     ```
     yum -nogpgcheck localinstall RPMFileName
     ```

     Reemplace *`RPMFileName`* por el nombre de archivo del paquete RPM. Por ejemplo, el siguiente comando demuestra cómo instalar el controlador de 64 bits.

     ```
     yum -nogpgcheck localinstall AmazonRedshiftODBC-64-bit-1.x.xx.xxxx-x.x86_64.rpm
     ```
   + En SLES, ejecute el siguiente comando.

     ```
     zypper install RPMFileName
     ```

     Reemplace *`RPMFileName`* por el nombre de archivo del paquete RPM. Por ejemplo, el siguiente comando demuestra cómo instalar el controlador de 64 bits.

     ```
     zypper install AmazonRedshiftODBC-1.x.x.xxxx-x.x86_64.rpm
     ```
   + En Debian, ejecute el siguiente comando.

     ```
     sudo apt install ./DEBFileName.deb
     ```

     Sustituya `DEBFileName.deb` por el nombre del archivo del paquete Debian. Por ejemplo, el siguiente comando demuestra cómo instalar el controlador de 64 bits.

     ```
     sudo apt install ./AmazonRedshiftODBC-1.x.x.xxxx-x.x86_64.deb
     ```

**importante**  
Cuando haya terminado de instalar los controladores, configúrelos para usarlos en su sistema. Para obtener más información acerca de la configuración de los controladores, consulte [Uso de un administrador de controladores ODBC para configurar el controladorUso de un administrador de controladores ODBC para configurar el controlador](odbc-driver-configure-linux.md).

# Uso de un administrador de controladores ODBC para configurar el controlador
<a name="odbc-driver-configure-linux"></a>

En los sistemas operativos Linux, debe utilizar un administrador de controlador ODBC para configurar la conexión ODBC. Los administradores del controlador ODBC usan archivos de configuración para definir y configurar los controladores y el origen de datos de ODBC. El administrador del controlador ODBC que utiliza depende del sistema operativo que utiliza. Para Linux, es el administrador de controladores unixODBC.

Para obtener más información acerca de los administradores de controladores ODBC compatibles que se utilizan para configurar los controladores ODBC de Amazon Redshift, consulte [Uso de un controlador ODBC de Amazon Redshift en LinuxUso de un controlador ODBC en Linux](install-odbc-driver-linux.md) para sistemas operativos Linux. Asimismo, consulte "Especificación de administradores de controladores ODBC en máquinas que no sean de Windows" en la [Guía de instalación y configuración de conectores ODBC de Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). 

Se necesitan tres archivos para configurar el controlador ODBC de Amazon Redshift: `amazon.redshiftodbc.ini`, `odbc.ini` y `odbcinst.ini`.

Si instaló el controlador en la ubicación predeterminada, el archivo de configuración `amazon.redshiftodbc.ini` se encuentra en alguno de los siguientes directorios:
+ `/opt/amazon/redshiftodbc/lib/64` (para el controlador de 64 bits en sistemas operativos Linux)
+ `/opt/amazon/redshiftodbc/lib/32` (para el controlador de 32 bits en sistemas operativos Linux)

Además, en `/opt/amazon/redshiftodbc/Setup` en Linux, hay ejemplos de archivos `odbc.ini` y `odbcinst.ini`. Puede utilizar estos archivos como ejemplos para configurar el controlador ODBC de Amazon Redshift y el nombre del origen de datos (DSN).

No le recomendamos utilizar el directorio de instalación del controlador ODBC de Amazon Redshift para los archivos de configuración. Los archivos de muestra del directorio `Setup` son solo con fines de ejemplo. Si vuelve a instalar el controlador ODBC de Amazon Redshift más adelante o actualiza a una versión más reciente, se sobrescribe el directorio de instalación. A continuación, perderá los cambios que haya realizado en esos archivos.

Para evitarlo, copie el archivo `amazon.redshiftodbc.ini` en un directorio distinto al directorio de instalación. Si copia este archivo en el directorio principal del usuario, agregue un punto (.) al principio del nombre del archivo para convertirlo en un archivo oculto.

Para los archivos `odbc.ini` y `odbcinst.ini`, utilice los archivos de configuración en el directorio principal del usuario o cree nuevas versiones en otro directorio. De manera predeterminada, el sistema operativo Linux debe tener un archivo `odbc.ini` y un archivo `odbcinst.ini` en el directorio de inicio del usuario (`/home/$USER` o `~/`). Estos archivos predeterminados son archivos ocultos, que se indica con el punto (.) delante de cada nombre de archivo. Estos archivos solo se muestran cuando se utiliza el indicador `-a` para enumerar el contenido del directorio.

Cualquiera que sea la opción que elija para los archivos `odbc.ini` y `odbcinst.ini`, modifique los archivos para agregar información de configuración del controlador y DSN. Si selecciona crear archivos nuevos, también deberá configurar variables de entorno para especificar la ubicación de estos archivos de configuración. 

De manera predeterminada, los administradores de controladores ODBC están configurados para usar versiones ocultas de los archivos de configuración `odbc.ini` y `odbcinst.ini` (denominados .`odbc.ini` y .`odbcinst.ini`) ubicados en el directorio de inicio. También están configurados para utilizar el archivo `amazon.redshiftodbc.ini` en la subcarpeta `/lib` del directorio de instalación del controlador. Si almacena estos archivos de configuración en otro lugar, establezca las variables de entorno que se describen a continuación para que el administrador de controladores pueda localizar los archivos. Para obtener más información, consulte "Especificación de las ubicaciones de los archivos de configuración del controlador" en la [Guía de instalación y configuración de conectores ODBC de Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). 

## Creación de un nombre de origen de datos en sistemas operativos Linux
<a name="configure-odbc-ini-file"></a>

 Cuando se conecte al almacenamiento de datos mediante un nombre de origen de datos (DSN), configure el archivo `odbc.ini` para definir los DSN. Establezca las propiedades del archivo `odbc.ini` para crear un DSN que especifique la información de conexión para el almacén de datos.

Para obtener información acerca de cómo configurar el archivo `odbc.ini`, consulte "Creación de un nombre de origen de datos en una máquina que no sea de Windows" en la [Guía de instalación y configuración del conector ODBC de Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf) 

 Utilice el siguiente formato en sistemas operativos Linux:

```
[ODBC Data Sources]
driver_name=dsn_name

[dsn_name]
Driver=path/driver_file

Host=cluster_endpoint
Port=port_number
Database=database_name
locale=locale
```

En el siguiente ejemplo, se muestra la configuración del archivo odbc.ini con el controlador ODBC de 64 bits para sistemas operativos Linux.

```
[ODBC Data Sources]
Amazon_Redshift_x64=Amazon Redshift (x64)

[Amazon Redshift (x64)]
Driver=/opt/amazon/redshiftodbc/lib/64/libamazonredshiftodbc64.so
Host=examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com
Port=5932
Database=dev
locale=en-US
```

En el siguiente ejemplo, se muestra la configuración del archivo odbc.ini con el controlador ODBC de 32 bits para sistemas operativos Linux.

```
[ODBC Data Sources]
Amazon_Redshift_x32=Amazon Redshift (x86)

[Amazon Redshift (x86)]
Driver=/opt/amazon/redshiftodbc/lib/32/libamazonredshiftodbc32.so
Host=examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com
Port=5932
Database=dev
locale=en-US
```

## Configuración de una conexión sin DSN en sistemas operativos Linux
<a name="configure-odbcinst-ini-file"></a>

Para conectarse al almacén de datos a través de una conexión que no tenga DSN, defina el controlador en el archivo `odbcinst.ini`. A continuación, proporcione una cadena de conexión sin DSN en su aplicación.

Para obtener información acerca de cómo configurar el archivo `odbcinst.ini` en este caso, consulte "Configuración de una conexión sin DSN en una máquina que no sea de Windows" en la [Guía de instalación y configuración de conectores ODBC de Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). 

Utilice el siguiente formato en sistemas operativos Linux:

```
[ODBC Drivers]
driver_name=Installed
...
                            
[driver_name]
Description=driver_description
Driver=path/driver_file
    
...
```

En el siguiente ejemplo, se muestra la configuración de `odbcinst.ini` para los controladores de 64 bits que se instalan en los directorios predeterminados en sistemas operativos Linux.

```
[ODBC Drivers]
Amazon Redshift (x64)=Installed

[Amazon Redshift (x64)]
Description=Amazon Redshift ODBC Driver (64-bit)
Driver=/opt/amazon/redshiftodbc/lib/64/libamazonredshiftodbc64.so
```

En el siguiente ejemplo, se muestra la configuración de `odbcinst.ini` para los controladores de 32 bits que se instalan en los directorios predeterminados en sistemas operativos Linux.

```
[ODBC Drivers]
Amazon Redshift (x86)=Installed

[Amazon Redshift (x86)]
Description=Amazon Redshift ODBC Driver (32-bit)
Driver=/opt/amazon/redshiftodbc/lib/32/libamazonredshiftodbc32.so
```

## Configuración de variables de entorno
<a name="rs-mgmt-config-global-env-variables"></a>

Utilice el administrador de controladores ODBC correcto para cargar el controlador correcto. Para ello, configure la variable de entorno de ruta de biblioteca. Para obtener más información, consulte "Especificación de administradores de controladores ODBC en máquinas que no sean de Windows" en la [Guía de instalación y configuración de controladores ODBC de Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). 

De manera predeterminada, los administradores de controladores ODBC están configurados para usar versiones ocultas de los archivos de configuración `odbc.ini` y `odbcinst.ini` (denominados .`odbc.ini` y .`odbcinst.ini`) ubicados en el directorio de inicio. También están configurados para utilizar el archivo `amazon.redshiftodbc.ini` en la subcarpeta `/lib` del directorio de instalación del controlador. Si almacena estos archivos de configuración en otro lugar, las variables de entorno para que el administrador de controladores pueda localizar los archivos. Para obtener más información, consulte “Especificación de las ubicaciones de los archivos de configuración del controlador” en la *Guía de instalación y configuración de conectores ODBC de Amazon Redshift*. 

## Configuración de las características de conexión
<a name="connection-config-features"></a>

Puede configurar las siguientes características de conexión para la configuración de ODBC:
+ Configure el controlador ODBC para proporcionar credenciales y autenticar la conexión a la base de datos de Amazon Redshift.
+ Configure el controlador ODBC para conectarse a un socket habilitado con la capa de conexión segura (SSL), si se está conectando a un servidor de Amazon Redshift que tiene SSL habilitado.
+ Configure el controlador ODBC para conectarse a Amazon Redshift a través de un servidor proxy.
+ Configure el controlador ODBC para utilizar un modo de procesamiento de consultas para evitar que las consultas consuman demasiada memoria.
+ Configure el controlador ODBC para que transfiera los procesos de autenticación de IAM a través de un servidor proxy.
+ Configure el controlador ODBC para que utilice conexiones keepalive de TCP para evitar que se agote el tiempo de espera en las conexiones.

Para obtener información acerca de estas características de conexión, consulte la [Guía de instalación y configuración de conectores ODBC de Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). 

# Uso de un controlador ODBC de Amazon Redshift en macOS X
<a name="install-odbc-driver-mac"></a>

Debe instalar el controlador en los equipos cliente que tienen acceso a un almacenamiento de datos de Amazon Redshift. Cada equipo en el que instala el controlador debe cumplir una lista de requisitos mínimos de sistema: Para obtener información acerca de los requisitos mínimos del sistema, consulte la [Guía de instalación y configuración de conectores ODBC de Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). 

**Topics**
+ [Descarga e instalación del controlador ODBC de Amazon Redshift](odbc-driver-mac-how-to-install.md)
+ [Uso de un administrador de controladores ODBC para configurar el controlador](odbc-driver-configure-mac.md)

# Descarga e instalación del controlador ODBC de Amazon Redshift
<a name="odbc-driver-mac-how-to-install"></a>

Siga los pasos de esta sección para descargar e instalar el controlador ODBC de Amazon Redshift en una versión compatible con macOS X. Con el proceso de instalación, se instalan los archivos del controlador en los siguientes directorios: 
+ `/opt/amazon/redshift/lib/universal`
+ `/opt/amazon/redshift/ErrorMessages`
+ `/opt/amazon/redshift/Setup`<a name="rs-mgmt-install-odbc-drivers-mac"></a>

**Para instalar el controlador ODBC de Amazon Redshift en macOS X**

1. Para instalar el controlador ODBC de Amazon Redshift en macOS X, descargue la [versión 1.6.3 del controlador para macOS](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/AmazonRedshiftODBC-64-bit.1.6.3.1008.universal.pkg). 

   A continuación, descargue y revise el [Acuerdo de licencia del controlador ODBC y JDBC de Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/Amazon+Redshift+ODBC+and+JDBC+Driver+License+Agreement.pdf). 

1. Haga doble clic en **AmazonRedshiftODBC.pkg** para ejecutar el instalador.

1. Siga los pasos del instalador para completar el proceso de instalación del controlador. Para llevar a cabo la instalación, acepte los términos del acuerdo de licencia.

**importante**  
Cuando haya terminado de instalar el controlador, configúrelo para usarlo en su sistema. Para obtener más información acerca de la configuración de los controladores, consulte [Uso de un administrador de controladores ODBC para configurar el controladorUso de un administrador de controladores ODBC para configurar el controlador](odbc-driver-configure-mac.md).

# Uso de un administrador de controladores ODBC para configurar el controlador
<a name="odbc-driver-configure-mac"></a>

En los sistemas operativos macOS X, debe utilizar un administrador de controlador ODBC para configurar la conexión ODBC. Los administradores del controlador ODBC usan archivos de configuración para definir y configurar los controladores y el origen de datos de ODBC. El administrador del controlador ODBC que utiliza depende del sistema operativo que utiliza. Para un sistema operativo macOS X, es el administrador de controladores iODBC.

Para obtener más información acerca de los administradores de controladores ODBC compatibles que se utilizan para configurar los controladores ODBC de Amazon Redshift, consulte [Uso de un controlador ODBC de Amazon Redshift en macOS XUso de un controlador ODBC en macOS X](install-odbc-driver-mac.md) para sistemas operativos macOS X. Asimismo, consulte "Especificación de administradores de controladores ODBC en máquinas que no sean de Windows" en la [Guía de instalación y configuración de conectores ODBC de Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). 

Se necesitan tres archivos para configurar el controlador ODBC de Amazon Redshift: `amazon.redshiftodbc.ini`, `odbc.ini` y `odbcinst.ini`.

Si instaló el controlador en la ubicación predeterminada, el archivo de configuración `amazon.redshiftodbc.ini` se encuentra en `/opt/amazon/redshift/lib`.

Además, en `/opt/amazon/redshift/Setup` en macOS X, hay ejemplos de archivos `odbc.ini` y `odbcinst.ini`. Puede utilizar estos archivos como ejemplos para configurar el controlador ODBC de Amazon Redshift y el nombre del origen de datos (DSN).

No le recomendamos utilizar el directorio de instalación del controlador ODBC de Amazon Redshift para los archivos de configuración. Los archivos de muestra del directorio `Setup` son solo con fines de ejemplo. Si vuelve a instalar el controlador ODBC de Amazon Redshift más adelante o actualiza a una versión más reciente, se sobrescribe el directorio de instalación. A continuación, perderá los cambios que haya realizado en esos archivos.

Para evitarlo, copie el archivo `amazon.redshiftodbc.ini` en un directorio distinto al directorio de instalación. Si copia este archivo en el directorio principal del usuario, agregue un punto (.) al principio del nombre del archivo para convertirlo en un archivo oculto.

Para los archivos `odbc.ini` y `odbcinst.ini`, utilice los archivos de configuración en el directorio principal del usuario o cree nuevas versiones en otro directorio. De manera predeterminada, el sistema operativo macOS X debe tener un archivo `odbc.ini` y un archivo `odbcinst.ini` en el directorio de inicio del usuario (`/home/$USER` o `~/`). Estos archivos predeterminados son archivos ocultos, que se indica con el punto (.) delante de cada nombre de archivo. Estos archivos solo se muestran cuando se utiliza el indicador `-a` para enumerar el contenido del directorio.

Cualquiera que sea la opción que elija para los archivos `odbc.ini` y `odbcinst.ini`, modifique los archivos para agregar información de configuración del controlador y DSN. Si selecciona crear archivos nuevos, también deberá configurar variables de entorno para especificar la ubicación de estos archivos de configuración. 

De manera predeterminada, los administradores de controladores ODBC están configurados para usar versiones ocultas de los archivos de configuración `odbc.ini` y `odbcinst.ini` (denominados .`odbc.ini` y .`odbcinst.ini`) ubicados en el directorio de inicio. También están configurados para utilizar el archivo `amazon.redshiftodbc.ini` en la subcarpeta `/lib` del directorio de instalación del controlador. Si almacena estos archivos de configuración en otro lugar, establezca las variables de entorno que se describen a continuación para que el administrador de controladores pueda localizar los archivos. Para obtener más información, consulte "Especificación de las ubicaciones de los archivos de configuración del controlador" en la [Guía de instalación y configuración de conectores ODBC de Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). 

## Creación de un nombre de origen de datos en sistemas operativos macOS X
<a name="configure-odbc-ini-file"></a>

 Cuando se conecte al almacenamiento de datos mediante un nombre de origen de datos (DSN), configure el archivo `odbc.ini` para definir los DSN. Establezca las propiedades del archivo `odbc.ini` para crear un DSN que especifique la información de conexión para el almacén de datos.

Para obtener información acerca de cómo configurar el archivo `odbc.ini`, consulte "Creación de un nombre de origen de datos en una máquina que no sea de Windows" en la [Guía de instalación y configuración del conector ODBC de Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf) 

Utilice el siguiente formato en sistemas operativos Mac OS X:

```
[ODBC Data Sources]
driver_name=dsn_name

[dsn_name]
Driver=path/lib/amazonredshiftodbc.dylib

Host=cluster_endpoint
Port=port_number
Database=database_name
locale=locale
```

 En el siguiente ejemplo, se muestra la configuración del archivo `odbc.ini` en sistemas operativos Mac OS X.

```
[ODBC Data Sources]
Amazon_Redshift_dylib=Amazon Redshift DSN for macOS X

[Amazon Redshift DSN for macOS X]
Driver=/opt/amazon/redshift/lib/amazonredshiftodbc.dylib
Host=examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com
Port=5932
Database=dev
locale=en-US
```

## Configuración de una conexión sin DSN en sistemas operativos macOS X
<a name="configure-odbcinst-ini-file"></a>

Para conectarse al almacén de datos a través de una conexión que no tenga DSN, defina el controlador en el archivo `odbcinst.ini`. A continuación, proporcione una cadena de conexión sin DSN en su aplicación.

Para obtener información acerca de cómo configurar el archivo `odbcinst.ini` en este caso, consulte "Configuración de una conexión sin DSN en una máquina que no sea de Windows" en la [Guía de instalación y configuración de conectores ODBC de Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). .

Utilice el siguiente formato en sistemas operativos Mac OS X:

```
[ODBC Drivers]
driver_name=Installed
...
                            
[driver_name]
Description=driver_description
Driver=path/lib/amazonredshiftodbc.dylib
    
...
```

En el siguiente ejemplo, se muestra la configuración del archivo `odbcinst.ini` para el controlador que se instala en el directorio predeterminado en sistemas operativos Mac OS X.

```
[ODBC Drivers]
Amazon RedshiftODBC DSN=Installed

[Amazon RedshiftODBC DSN]
Description=Amazon Redshift ODBC Driver for macOS X
Driver=/opt/amazon/redshift/lib/amazonredshiftodbc.dylib
```

## Configuración de variables de entorno
<a name="rs-mgmt-config-global-env-variables"></a>

Utilice el administrador de controladores ODBC correcto para cargar el controlador correcto. Para ello, configure la variable de entorno de ruta de biblioteca. Para obtener más información, consulte "Especificación de administradores de controladores ODBC en máquinas que no sean de Windows" en la [Guía de instalación y configuración de controladores ODBC de Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). 

De manera predeterminada, los administradores de controladores ODBC están configurados para usar versiones ocultas de los archivos de configuración `odbc.ini` y `odbcinst.ini` (denominados .`odbc.ini` y .`odbcinst.ini`) ubicados en el directorio de inicio. También están configurados para utilizar el archivo `amazon.redshiftodbc.ini` en la subcarpeta `/lib` del directorio de instalación del controlador. Si almacena estos archivos de configuración en otro lugar, las variables de entorno para que el administrador de controladores pueda localizar los archivos. Para obtener más información, consulte “Especificación de las ubicaciones de los archivos de configuración del controlador” en la *Guía de instalación y configuración de conectores ODBC de Amazon Redshift*. 

## Configuración de las características de conexión
<a name="connection-config-features"></a>

Puede configurar las siguientes características de conexión para la configuración de ODBC:
+ Configure el controlador ODBC para proporcionar credenciales y autenticar la conexión a la base de datos de Amazon Redshift.
+ Configure el controlador ODBC para conectarse a un socket habilitado con la capa de conexión segura (SSL), si se está conectando a un servidor de Amazon Redshift que tiene SSL habilitado.
+ Configure el controlador ODBC para conectarse a Amazon Redshift a través de un servidor proxy.
+ Configure el controlador ODBC para utilizar un modo de procesamiento de consultas para evitar que las consultas consuman demasiada memoria.
+ Configure el controlador ODBC para que transfiera los procesos de autenticación de IAM a través de un servidor proxy.
+ Configure el controlador ODBC para que utilice conexiones keepalive de TCP para evitar que se agote el tiempo de espera en las conexiones.

Para obtener información acerca de estas características de conexión, consulte la [Guía de instalación y configuración de conectores ODBC de Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). 

# Opciones del controlador ODBC
<a name="configure-odbc-options"></a>

Puede utilizar las opciones de configuración para controlar el comportamiento del controlador ODBC de Amazon Redshift.

En Microsoft Windows, por lo general, las opciones del controlador se configuran cuando configura un nombre de origen de datos (DSN). También puede establecer opciones de controlador en la cadena de conexión cuando se conecta mediante programación o agregando o cambiando claves del Registro en `HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\your_DSN`. Para obtener más información acerca de la configuración de un DSN, consulte [Uso de un controlador ODBC de Amazon Redshift en Microsoft Windows](install-odbc-driver-windows.md).

En macOS X, se establecen las opciones de configuración del controlador en los archivos `odbc.ini` y `amazon.redshiftodbc.ini`, como se describe en [Uso de un administrador de controladores ODBC para configurar el controladorUso de un administrador de controladores ODBC para configurar el controlador](odbc-driver-configure-mac.md). Las opciones de configuración establecidas en un archivo `amazon.redshiftodbc.ini` se aplican a todas las conexiones. No obstante, las opciones de configuración establecidas en un archivo `odbc.ini` son específicas de una conexión. Las opciones de configuración establecidas en `odbc.ini` tienen prioridad sobre las opciones de configuración establecidas en `amazon.redshiftodbc.ini`.

Para obtener información acerca de cómo configurar las opciones de configuración de controladores ODBC, consulte la [Guía de instalación y configuración de conectores ODBC de Amazon Redshift](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1008/Amazon+Redshift+ODBC+Connector+Install+Guide.pdf). 

# Versiones anteriores del controlador ODBC
<a name="odbc-previous-versions"></a>

Descargue una versión anterior del controlador ODBC de Amazon Redshift solo si su herramienta requiere una versión específica de este. 

## Versiones anteriores del controlador ODBC para Windows
<a name="odbc-previous-versions-windows"></a>

Los siguientes son los controladores de 64 bits: 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1006/AmazonRedshiftODBC64-1.6.3.1006.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1006/AmazonRedshiftODBC64-1.6.3.1006.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.1.1000/AmazonRedshiftODBC64-1.6.1.1000.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.1.1000/AmazonRedshiftODBC64-1.6.1.1000.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC64-1.5.20.1024.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC64-1.5.20.1024.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.16.1019/AmazonRedshiftODBC64-1.5.16.1019.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.16.1019/AmazonRedshiftODBC64-1.5.16.1019.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.9.1011/AmazonRedshiftODBC64-1.5.9.1011.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.9.1011/AmazonRedshiftODBC64-1.5.9.1011.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.7.1007/AmazonRedshiftODBC64-1.5.7.1007.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.7.1007/AmazonRedshiftODBC64-1.5.7.1007.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.65.1000/AmazonRedshiftODBC64-1.4.65.1000.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.65.1000/AmazonRedshiftODBC64-1.4.65.1000.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.62.1000/AmazonRedshiftODBC64-1.4.62.1000.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.62.1000/AmazonRedshiftODBC64-1.4.62.1000.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC64-1.4.59.1000.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC64-1.4.59.1000.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC64-1.4.56.1000.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC64-1.4.56.1000.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.53.1000/AmazonRedshiftODBC64-1.4.53.1000.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.53.1000/AmazonRedshiftODBC64-1.4.53.1000.msi) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC64-1.4.52.1000.msi](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC64-1.4.52.1000.msi) 

Los controladores de 32 bits se suspenden y no se admiten versiones anteriores.

## Versiones anteriores del controlador ODBC para Linux
<a name="odbc-previous-versions-linux"></a>

Las siguientes son las versiones del controlador de 64 bits: 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1006/AmazonRedshiftODBC-64-bit-1.6.3.1006-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1006/AmazonRedshiftODBC-64-bit-1.6.3.1006-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.1.1000/AmazonRedshiftODBC-64-bit-1.6.1.1000-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.1.1000/AmazonRedshiftODBC-64-bit-1.6.1.1000-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC-64-bit-1.5.20.1024-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC-64-bit-1.5.20.1024-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.16.1019/AmazonRedshiftODBC-64-bit-1.5.16.1019-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.16.1019/AmazonRedshiftODBC-64-bit-1.5.16.1019-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.9.1011/AmazonRedshiftODBC-64-bit-1.5.9.1011-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.9.1011/AmazonRedshiftODBC-64-bit-1.5.9.1011-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.7.1007/AmazonRedshiftODBC-64-bit-1.5.7.1007-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.7.1007/AmazonRedshiftODBC-64-bit-1.5.7.1007-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.65.1000/AmazonRedshiftODBC-64-bit-1.4.65.1000-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.65.1000/AmazonRedshiftODBC-64-bit-1.4.65.1000-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.62.1000/AmazonRedshiftODBC-64-bit-1.4.62.1000-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.62.1000/AmazonRedshiftODBC-64-bit-1.4.62.1000-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC-64-bit-1.4.59.1000-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC-64-bit-1.4.59.1000-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC-64-bit-1.4.59.1000-1.x86\$164.deb](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC-64-bit-1.4.59.1000-1.x86_64.deb) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC-64-bit-1.4.56.1000-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC-64-bit-1.4.56.1000-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC-64-bit-1.4.56.1000-1.x86\$164.deb](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC-64-bit-1.4.56.1000-1.x86_64.deb) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC-64-bit-1.4.52.1000-1.x86\$164.rpm](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC-64-bit-1.4.52.1000-1.x86_64.rpm) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC-64-bit-1.4.52.1000-1.x86\$164.deb](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC-64-bit-1.4.52.1000-1.x86_64.deb) 

Los controladores de 32 bits se suspenden y no se admiten versiones anteriores.

## Versiones anteriores del controlador ODBC para macOS X
<a name="odbc-previous-versions-mac"></a>

A continuación, se muestran las versiones del controlador ODBC de Amazon Redshift para macOS X: 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1006/AmazonRedshiftODBC-64-bit.1.6.3.1006.universal.pkg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.3.1006/AmazonRedshiftODBC-64-bit.1.6.3.1006.universal.pkg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.1.1000/AmazonRedshiftODBC-64-bit.1.6.1.1000.universal.pkg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.6.1.1000/AmazonRedshiftODBC-64-bit.1.6.1.1000.universal.pkg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC-1.5.20.1024.arm64.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC-1.5.20.1024.arm64.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC-1.5.20.1024.x86\$164.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.20.1024/AmazonRedshiftODBC-1.5.20.1024.x86_64.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.16.1019/AmazonRedshiftODBC-1.5.16.1019.x86\$164.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.16.1019/AmazonRedshiftODBC-1.5.16.1019.x86_64.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.9.1011/AmazonRedshiftODBC-1.5.9.1011.x86\$164.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.9.1011/AmazonRedshiftODBC-1.5.9.1011.x86_64.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.7.1007/AmazonRedshiftODBC-1.5.7.1007.x86\$164.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.5.7.1007/AmazonRedshiftODBC-1.5.7.1007.x86_64.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.65.1000/AmazonRedshiftODBC-1.4.65.1000.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.65.1000/AmazonRedshiftODBC-1.4.65.1000.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.62.1000/AmazonRedshiftODBC-1.4.62.1000.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.62.1000/AmazonRedshiftODBC-1.4.62.1000.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC-1.4.59.1000.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.59.1000/AmazonRedshiftODBC-1.4.59.1000.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC-1.4.56.1000.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.56.1000/AmazonRedshiftODBC-1.4.56.1000.dmg) 
+ [https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC-1.4.52.1000.dmg](https://s3.amazonaws.com/redshift-downloads/drivers/odbc/1.4.52.1000/AmazonRedshiftODBC-1.4.52.1000.dmg) 

# Configuración de las opciones de seguridad para las conexiones
<a name="connecting-ssl-support"></a>

Amazon Redshift admite las conexiones de capa de conexión segura (SSL) para cifrar datos y los certificados de servidor para validar el certificado del servidor al que se conecta el cliente. 

## SSL
<a name="connect-using-ssl"></a>

Para admitir las conexiones SSL, Amazon Redshift crea e instala un certificado SSL emitido por [AWS Certificate Manager (ACM)](https://aws.amazon.com/certificate-manager/) en cada clúster. La mayoría de los sistemas operativos, navegadores web y clientes confían públicamente en los certificados ACM. No obstante, este cambio lo afectará en caso de que sus clientes o aplicaciones SQL se conectan a Amazon Redshift mediante SSL con el conjunto de opciones de conexión `sslmode` establecido como `require`, `verify-ca` o `verify-full`. Si su cliente necesita un certificado, Amazon Redshift proporciona un certificado de paquete de la siguiente manera:
+ Descargue el paquete desde [https://s3.amazonaws.com/redshift-downloads/amazon-trust-ca-bundle.crt](https://s3.amazonaws.com/redshift-downloads/amazon-trust-ca-bundle.crt). 
  + El número de suma de comprobación MD5 esperado es 418dea9b6d5d5de7a8f1ac42e164cdcf.
  + El número de suma de comprobación sha256 es 36dba8e4b8041cd14b9d60158893963301bcbb92e1c456847784de2acb5bd550.

  No utilice el paquete de certificados anterior que se encontraba en `https://s3.amazonaws.com/redshift-downloads/redshift-ca-bundle.crt`. 
+  En la Región de AWS China, descargue el paquete desde [https://s3---cn-north-1.amazonaws.com.rproxy.govskope.us.cn/redshift-downloads-cn/amazon-trust-ca-bundle.crt](https://s3---cn-north-1.amazonaws.com.rproxy.govskope.us.cn/redshift-downloads-cn/amazon-trust-ca-bundle.crt). 
  + El número de suma de comprobación MD5 esperado es 418dea9b6d5d5de7a8f1ac42e164cdcf.
  + El número de suma de comprobación sha256 es 36dba8e4b8041cd14b9d60158893963301bcbb92e1c456847784de2acb5bd550.

  No utilice los paquetes de certificados anteriores que se encontraban en `https://s3---cn-north-1.amazonaws.com.rproxy.govskope.us.cn/redshift-downloads-cn/redshift-ca-bundle.crt` y `https://s3---cn-north-1.amazonaws.com.rproxy.govskope.us.cn/redshift-downloads-cn/redshift-ssl-ca-cert.pem`

**importante**  
Amazon Redshift ha cambiado la forma en que se administran los certificados SSL. Es posible que tenga que actualizar sus certificados de CA raíz de confianza actuales para seguir conectándose a los clústeres que usan SSL. Para obtener más información, consulte [Migración a certificados de ACM para las conexiones SSL](connecting-transitioning-to-acm-certs.md).

De manera predeterminada, las bases de datos del clúster aceptan una conexión, independientemente de que use una SSL o no. Para configurar que su clúster requiera una conexión SSL, establezca el parámetro `require_SSL` en `true` en el grupo de parámetros asociado al clúster. 

Amazon Redshift admite un modo SSL conforme con el Estándar de procesamiento de la información federal (FIPS, Federal Information Processing Standard) 140-2. El modo SSL compatible con FIPS está deshabilitado de manera predeterminada. 

**importante**  
Habilite el modo SSL compatible con FIPS solo si el sistema debe ser compatible con FIPS.

Para habilitar el modo SSL compatible con FIPS, establezca el parámetro `use_fips_ssl` y el parámetro `require_SSL` en `true` en el grupo de parámetros asociado al clúster de Amazon Redshift o grupo de trabajo de Redshift sin servidor. Para obtener información acerca de cómo modificar un grupo de parámetros en un clúster, consulte [Grupos de parámetros de Amazon Redshift](working-with-parameter-groups.md). Para obtener información acerca de cómo modificar un grupo de parámetros en un grupo de trabajo, consulte [Configuración de una conexión SSL compatible con FIPS a Amazon Redshift sin servidor](serverless-connecting.md#serverless_secure-fips-ssl). 

 Amazon Redshift es compatible con el protocolo de acuerdo de clave de Elliptic Curve Diffie-Hellman Ephemeral (ECDHE). Con ECDHE, tanto el cliente como el servidor tienen un par de claves pública-privada de curva elíptica que se usa para establecer un código secreto compartido sobre un canal inseguro. No es necesario que configure nada en Amazon Redshift para habilitar ECDHE. Si se conecta desde una herramienta de cliente SQL que usa ECDHE para cifrar la comunicación entre el cliente y el servidor, Amazon Redshift usará la lista de cifrado proporcionada para realizar la conexión adecuada. Para obtener más información, consulte [Elliptic Curve Diffie-Hellman](https://en.wikipedia.org/wiki/Elliptic_curve_Diffie%E2%80%93Hellman) en Wikipedia y [Ciphers](https://www.openssl.org/) en el sitio web de OpenSSL. 

## Certificados SSL y de entidad de certificación de confianza en ODBC
<a name="connecting-ssl-support-odbc"></a>

Si se conecta usando los controladores ODBC de Amazon Redshift más recientes (versión 1.3.7.1000 o posterior), puede omitir esta sección. Para descargar los controladores más recientes, consulte [Configuración de una conexión del controlador ODBC versión 2.x para Amazon Redshift](odbc20-install.md). 

Es posible que tenga que actualizar sus certificados de CA raíz de confianza actuales para seguir conectándose a los clústeres que usan SSL. Para obtener más información, consulte [SSL](#connect-using-ssl).

Puede verificar que el certificado que descargó concuerda con el número de suma de comprobación MD5 esperado. Para hacer esto, puede usar el programa Md5sum en sistemas operativos Linux u otra herramienta en sistemas operativos Windows y Mac OS X.

 Los DSN de ODBC contienen un valor `sslmode` que determina cómo se va a administrar el cifrado en las conexiones cliente y la verificación del certificado del servidor. Amazon Redshift admite los siguientes valores `sslmode` de la conexión de cliente: 
+ `disable`

  SSL está deshabilitada y la conexión no está cifrada.
+ `allow`

  Se utiliza SSL si el servidor lo requiere.
+ `prefer`

  Se utiliza SSL si el servidor lo admite. Amazon Redshift es compatible con SSL y, por lo tanto, se utiliza cuando se establece `sslmode` en `prefer`.
+ `require`

  SSL es obligatoria.
+ `verify-ca`

  Se debe utilizar SSL y se debe comprobar el certificado de servidor.
+ `verify-full`

  Se debe utilizar SSL. Se debe comprobar el certificado de servidor y el nombre del host debe coincidir con el atributo del nombre de host del certificado. 

Puede determinar si se utiliza SSL y si se verifican los certificados del servidor en una conexión entre el cliente y el servidor. Para ello, debe revisar la configuración de `sslmode` para su DSN de ODBC en el cliente y la configuración de `require_SSL` para el clúster de Amazon Redshift en el servidor. En la tabla a continuación, se describe el resultado del cifrado para diferentes combinaciones de configuraciones de clientes y servidores: 

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/connecting-ssl-support.html)

### Conexión a través del certificado de servidor con ODBC en Microsoft Windows
<a name="connecting-ssl-support-odbc-with-cert"></a>

 Si desea conectarse al clúster mediante SSL y el certificado de servidor, descargue primero el certificado en el equipo cliente o la instancia de Amazon EC2. A continuación, configure el DSN ODBC. 

1.  Descargue el paquete de entidades de certificación de Amazon Redshift en la computadora cliente, en la carpeta `lib` del directorio de instalación del controlador, y guarde el archivo como `root.crt`. Para obtener información sobre la descarga, consulte [SSL](#connect-using-ssl).

1.  Abra **ODBC Data Source Administrator (Administrador de orígenes de datos de ODBC)** y agregue o edite la entrada DSN del sistema de su conexión ODBC. En **SSL Mode (Modo SSL)**, seleccione `verify-full` a menos que use un alias DNS. Si usa un alias DNS, seleccione `verify-ca`. A continuación, elija **Guardar**. 

    Para obtener más información acerca de la configuración del DSN de ODBC, consulte [Configuración de una conexión del controlador ODBC versión 2.x para Amazon Redshift](odbc20-install.md). 

## Certificados SSL y de servidor en Java
<a name="connecting-ssl-support-java"></a>

SSL proporciona una capa de seguridad al cifrar los datos que se mueven entre su cliente y el clúster. El uso de un certificado de servidor proporciona una capa adicional de seguridad, ya que comprueba que el clúster sea un clúster de Amazon Redshift. La validación la hace comprobando que el certificado de servidor se instale automáticamente en todos los clústeres que usted aprovisiona. Para obtener más información acerca del uso de certificados de servidor con JDBC, visite [Configuring the Client](https://jdbc.postgresql.org/documentation/ssl/#configuring-the-client) en la documentación de PostgreSQL.

### Conexión mediante certificados de entidad de certificación en Java
<a name="connecting-ssl-support-java-with-cert"></a>

**importante**  
Amazon Redshift ha cambiado la forma en que se administran los certificados SSL. Es posible que tenga que actualizar sus certificados de CA raíz de confianza actuales para seguir conectándose a los clústeres que usan SSL. Para obtener más información, consulte [SSL](#connect-using-ssl).

**Para conectarse mediante certificados de CA de confianza**

Puede usar el archivo `redshift-keytool.jar` para importar los certificados de entidad de certificación del paquete de entidades de certificación de Amazon Redshift en un TrustStore de Java o en su TrustStore privado.

1. Si usa la opción `-Djavax.net.ssl.trustStore` de la línea de comandos de Java, elimínela de la línea de comandos, si es posible.

1. Descargue [redshift-keytool.jar](https://s3.amazonaws.com/redshift-downloads/redshift-keytool.jar).

1. Realice una de las siguientes acciones:
   + Para importar el paquete de entidades de certificación de Amazon Redshift en un TrustStore de Java, ejecute el siguiente comando. 

     ```
     java -jar redshift-keytool.jar -s
     ```
   + Para importar el paquete de entidades de certificación de Amazon Redshift en su TrustStore privado, ejecute el siguiente comando: 

     ```
     java -jar redshift-keytool.jar -k <your_private_trust_store> -p <keystore_password> 
     ```

# Migración a certificados de ACM para las conexiones SSL
<a name="connecting-transitioning-to-acm-certs"></a>

Amazon Redshift está sustituyendo los certificados SSL en sus clústeres con certificados emitidos por [AWS Certificate Manager (ACM)](https://aws.amazon.com/certificate-manager/). ACM en una entidad de certificación (CA) pública de confianza en la que confían la mayoría de los sistemas actuales. Es posible que tenga que actualizar sus certificados de CA raíz de confianza actuales para seguir conectándose a los clústeres que usan SSL. 

Este cambio solo le afecta si se dan las siguientes circunstancias:
+  Sus clientes SQL o aplicaciones se conectan a clústeres de Amazon Redshift mediante SSL con el conjunto de opciones de conexión `sslMode` establecido en la opción de configuración `require`, `verify-ca` o `verify-full`. 
+ No utiliza los controladores ODBC o JDBC de Amazon Redshift ODBC, o bien utiliza controladores de Amazon Redshift anteriores a ODBC versión 1.3.7.1000 o JDBC versión 1.2.8.1005. 

Si este cambio lo afecta en las regiones comerciales de Amazon Redshift, debe actualizar sus certificados de entidad de certificación raíz actuales antes del 23 de octubre de 2017. Amazon Redshift migrará sus clústeres para usar certificados de ACM entre la fecha actual y el 23 de octubre de 2017. El cambio apenas debería tener efecto en el rendimiento o la disponibilidad de sus clústeres.

Si este cambio lo afecta en las regiones de AWS GovCloud (US) (EE. UU.), debe actualizar los certificados de entidad de certificación raíz de confianza actuales antes del 1 de abril de 2020 para evitar la interrupción del servicio. A partir de esta fecha, los clientes que se conectan a clústeres de Amazon Redshift mediante conexiones cifradas SSL necesitan una entidad de certificación (CA) de confianza adicional. Los clientes utilizan entidades de certificación de confianza para confirmar la identidad del clúster de Amazon Redshift cuando se conectan a él. Su acción es necesaria para actualizar los clientes y aplicaciones SQL para utilizar un paquete de certificados actualizado que incluya la nueva entidad de certificación de confianza. 

**importante**  
A partir del 5 de enero de 2021, en las regiones de China, Amazon Redshift reemplazará los certificados SSL de sus clústeres por certificados emitidos por AWS Certificate Manager (ACM). Si este cambio lo afecta en la región China (Pekín) o en la región China (Ningxia), debe actualizar sus certificados de entidad de certificación raíz de confianza actuales antes del 5 de enero de 2021 para evitar la interrupción del servicio. A partir de esta fecha, los clientes que se conectan a clústeres de Amazon Redshift mediante conexiones cifradas SSL necesitan una entidad de certificación (CA) de confianza adicional. Los clientes utilizan entidades de certificación de confianza para confirmar la identidad del clúster de Amazon Redshift cuando se conectan a él. Su acción es necesaria para actualizar los clientes y aplicaciones SQL para utilizar un paquete de certificados actualizado que incluya la nueva entidad de certificación de confianza.
+ [Uso de los controladores ODBC o JDBC de Amazon Redshift más recientes](#connecting-transitioning-to-acm-latest-odbc-jdbc)
+ [Uso de controladores ODBC o JDBC de Amazon Redshift anteriores](#connecting-transitioning-to-acm-earlier-odbc-jdbc)
+ [Uso de otros tipos de conexión SSL](#connecting-transitioning-to-acm-other-ssl-types)

## Uso de los controladores ODBC o JDBC de Amazon Redshift más recientes
<a name="connecting-transitioning-to-acm-latest-odbc-jdbc"></a>

El método preferido es usar los controladores ODBC o JDBC de Amazon Redshift más recientes. Los controladores ODBC de Amazon Redshift a partir de la versión 1.3.7.1000 y JDBC a partir de la versión 1.2.8.1005 realizan la migración automáticamente desde un certificado autofirmado de Amazon Redshift a un certificado de ACM. Para descargar los controladores más recientes, consulte [Configuración de una conexión del controlador JDBC versión 2.x para Amazon Redshift](jdbc20-install.md). 

Si usa el controlador JDBC de Amazon Redshift más reciente, es aconsejable que no use `-Djavax.net.ssl.trustStore` en las opciones de JVM. ‎Si debe usar `-Djavax.net.ssl.trustStore`, importe el paquete de entidades de certificación de Redshift en el TrustStore al que apunta. Para obtener información sobre la descarga, consulte [SSL](connecting-ssl-support.md#connect-using-ssl). Para obtener más información, consulte [Importación del paquete de entidades de certificación de Amazon Redshift en un TrustStore](#importing-the-acm-bundle-to-truststore).

## Uso de controladores ODBC o JDBC de Amazon Redshift anteriores
<a name="connecting-transitioning-to-acm-earlier-odbc-jdbc"></a>
+ Si el DSN de ODBC está configurado con `SSLCertPath`, sobrescriba el archivo de certificado en la ruta especificada.
+ Si `SSLCertPath` no está establecido, sobrescriba el archivo de certificado `root.crt` en la ubicación de la DLL del controlador. 

Si debe usar un controlador JDBC de Amazon Redshift anterior a la versión 1.2.8.1005, proceda de una de las siguientes maneras:
+ Si la cadena de conexión de JDBC usa la opción `sslCert`, elimine la opción `sslCert`. A continuación, importe el Paquete de entidades de certificación de Redshift en su TrustStore de Java. Para obtener información sobre la descarga, consulte [SSL](connecting-ssl-support.md#connect-using-ssl). Para obtener más información, consulte [Importación del paquete de entidades de certificación de Amazon Redshift en un TrustStore](#importing-the-acm-bundle-to-truststore). 
+ Si usa la opción `-Djavax.net.ssl.trustStore` de la línea de comandos de Java, elimínela de la línea de comandos, si es posible. A continuación, importe el Paquete de entidades de certificación de Redshift en su TrustStore de Java. Para obtener información sobre la descarga, consulte [SSL](connecting-ssl-support.md#connect-using-ssl). Para obtener más información, consulte [Importación del paquete de entidades de certificación de Amazon Redshift en un TrustStore](#importing-the-acm-bundle-to-truststore).

### Importación del paquete de entidades de certificación de Amazon Redshift en un TrustStore
<a name="importing-the-acm-bundle-to-truststore"></a>

Puede usar `redshift-keytool.jar` para importar los certificados de entidad de certificación del paquete de entidades de certificación de Amazon Redshift en un TrustStore de Java o en su TrustStore privado.

**Para importar el paquete de entidades de certificación de Amazon Redshift en un TrustStore**

1. Descargue [redshift-keytool.jar](https://s3.amazonaws.com/redshift-downloads/redshift-keytool.jar).

1. Realice una de las siguientes acciones:
   + Para importar el paquete de entidades de certificación de Amazon Redshift en un TrustStore de Java, ejecute el siguiente comando. 

     ```
     java -jar redshift-keytool.jar -s
     ```
   + Para importar el paquete de entidades de certificación de Amazon Redshift en su TrustStore privado, ejecute el siguiente comando: 

     ```
     java -jar redshift-keytool.jar -k <your_private_trust_store> -p <keystore_password> 
     ```

## Uso de otros tipos de conexión SSL
<a name="connecting-transitioning-to-acm-other-ssl-types"></a>

Siga los pasos de esta sección si se conecta mediante alguno de los métodos siguientes:
+  Controlador ODBC de código abierto 
+  Controlador JDBC de código abierto 
+  La interfaz de línea de comandos de [Amazon Redshift RSQL](https://docs.aws.amazon.com/redshift/latest/mgmt/rsql-query-tool.html) 
+  Alguna conexión de lenguaje de programación basada en libpq, como psycopg2 (Python) y ruby-pg (Ruby) 

**Para usar certificados de ACM con otros tipos de conexión SSL:**

1.  Descargue el paquete de entidades de certificación de Amazon Redshift. Para obtener información sobre la descarga, consulte [SSL](connecting-ssl-support.md#connect-using-ssl).

1. Coloque los certificados del paquete en su archivo `root.crt`. 
   + En los sistemas operativos Linux y Mac OS X, el archivo es `~/.postgresql/root.crt`.
   + En Microsoft Windows, el archivo es `%APPDATA%\postgresql\root.crt`.

# Conexión desde herramientas y código cliente
<a name="connecting-via-client-tools"></a>

Amazon Redshift proporciona el editor de consultas de Amazon Redshift v2 para conectarse a sus clústeres y grupos de trabajo. Para obtener más información, consulte [Consulta de una base de datos mediante el editor de consultas v2Consulta de una base de datos mediante el editor de consultas v2 de Amazon Redshift](query-editor-v2.md).

En esta sección, se proporcionan algunas opciones para la conexión de herramientas de terceros. Además, se describe cómo conectarse a su clúster mediante programación. 

**Topics**
+ [Conexión con Amazon Redshift RSQL](rsql-query-tool.md)
+ [Conexión a un clúster con Amazon Redshift RSQL](rsql-query-tool-starting-tool-connection.md)
+ [Metacomandos de Amazon Redshift RSQL](rsql-query-tool-commands.md)
+ [Variables de Amazon Redshift RSQL](rsql-query-tool-variables.md)
+ [Códigos de error de Amazon Redshift RSQL](rsql-query-tool-error-codes.md)
+ [Variables de entorno de Amazon Redshift RSQL](rsql-query-tool-environment-variables.md)

# Conexión con Amazon Redshift RSQL
<a name="rsql-query-tool"></a>

 Amazon Redshift RSQL es un cliente de línea de comandos para interactuar con clústeres y bases de datos de Amazon Redshift. Puede conectarse a un clúster de Amazon Redshift, describir objetos de base de datos, consultar datos y ver los resultados de las consultas en varios formatos de salida. 

 Amazon Redshift RSQL admite las capacidades de la herramienta de línea de comandos psql de PostgreSQL con un conjunto adicional de capacidades específicas de Amazon Redshift. Estos incluyen los siguientes: 
+ Puede utilizar la autenticación de inicio de sesión único mediante AD FS, PingIdentity, Okta, Azure AdM u otros proveedores de identidades basados en SAML/JWT. También puede utilizar proveedores de identidades SAML basados en navegador para la autenticación multifactor (MFA).
+ Puede describir las propiedades o los atributos de los objetos de Amazon Redshift, tales como claves de distribución de tablas, claves de clasificación de tablas, vistas de enlace tardío (LBV) y vistas materializadas. También puede describir las propiedades o los atributos de las tablas externas en un catálogo AWS Glue o Apache Hive Metastore, bases de datos externas en Amazon RDS for PostgreSQL, edición compatible con PostgreSQL de Amazon Aurora, RDS para MySQL (versión preliminar) y edición compatible con MySQL de Amazon Aurora (versión preliminar), y tablas compartidas mediante el uso compartido de datos de Amazon Redshift.
+ También puede utilizar comandos de flujo de control mejorados, como `IF` (`\ELSEIF`, `\ELSE,` `\ENDIF`), `\GOTO` y `\LABEL`.

 Con el modo por lotes de Amazon Redshift RSQL, que ejecuta un script pasado como parámetro de entrada, puede ejecutar scripts que incluyan SQL y lógica empresarial compleja. Si ya tiene almacenamientos de datos autoadministrados en las instalaciones, puede utilizar Amazon Redshift RSQL para reemplazar los scripts de extracción, transformación, carga (ETL) y automatización existentes, como los scripts BTEQ de Teradata. El uso de RSQL lo ayuda a evitar la reimplementación manual de scripts en un lenguaje de procedimiento. 

 Amazon Redshift RSQL está disponible para los sistemas operativos Linux, Windows y macOS X. 

Para informar de problemas de Amazon Redshift RSQL, escriba aredshift-rsql-support@amazon.com.

**Topics**
+ [Introducción a Amazon Redshift RSQL](rsql-query-tool-getting-started.md)
+ [Registro de cambios de Amazon Redshift RSQL](rsql-query-tool-changelog.md)

# Introducción a Amazon Redshift RSQL
<a name="rsql-query-tool-getting-started"></a>

Instale Amazon Redshift RSQL en una computadora con un sistema operativo Linux, macOS o Microsoft Windows.

## Descarga de RSQL
<a name="rsql-query-tool-download"></a>
+ RPM de Linux de 64 bits: [versión 1.1.2 de RSQL](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.1.2/AmazonRedshiftRsql-1.1.2.rhel.x86_64.rpm) 
  + Clave de firma del artefacto de Linux: [clave](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.1.2/AmazonRedshiftRsql-1.1.2-certificate.pem) 
  + Hash firmado del artefacto de Linux: [Hash](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.1.2/AmazonRedshiftRsql-1.1.2-signature.bin) 
+ PKG de Mac OS de 64 bits: [versión 1.1.2 de RSQL](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.1.2/AmazonRedshiftRsql-1.1.2.universal.pkg) 
+ MSI de Windows de 64 bits: [versión 1.1.2 de RSQL](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.1.2/AmazonRedshiftRsql-1.1.2.x86_64.msi) 

Consulte el registro de cambios y las descargas de versiones anteriores en [Registro de cambios de Amazon Redshift RSQL](rsql-query-tool-changelog.md).

## Instalación de RSQL para Linux
<a name="rsql-query-tool-linux-install"></a>

Siga los pasos que se indican a continuación para instalar RSQL para Linux.

1. Instale el administrador de controladores con el siguiente comando:

   ```
   sudo yum install unixODBC
   ```

1. Instale el controlador ODBC: [Descarga e instalación del controlador ODBC de Amazon RedshiftDescarga e instalación del controlador ODBC](odbc20-install-linux.md).

1. Copie el archivo ini en el directorio de inicio.

   ```
   cp /opt/amazon/redshiftodbcx64/odbc.ini ~/.odbc.ini
   ```

1. Establezca las variables de entorno para que apunten a la ubicación del archivo:

   ```
   export ODBCINI=~/.odbc.ini
   export ODBCSYSINI=/opt/amazon/redshiftodbcx64/
   export AMAZONREDSHIFTODBCINI=/opt/amazon/redshiftodbcx64/amazon.redshiftodbc.ini
   ```

1. Ahora puede instalar RSQL si ejecuta el siguiente comando.

   ```
   sudo rpm -i AmazonRedshiftRsql-<version>.rhel.x86_64.rpm
   ```

## Instalación de RSQL para Mac
<a name="rsql-query-tool-mac-install"></a>

Siga los pasos que se indican a continuación para instalar RSQL para Mac OSX.

1. Instale el administrador de controladores con el siguiente comando:

   ```
   brew install unixodbc --build-from-source
   ```

1. Instale el controlador ODBC: [Descarga e instalación del controlador ODBC de Amazon RedshiftDescarga e instalación del controlador ODBC](odbc-driver-mac-how-to-install.md).

1. Copie el archivo ini en el directorio de inicio.

   ```
   cp /opt/amazon/redshift/Setup/odbc.ini ~/.odbc.ini
   ```

1. Establezca las variables de entorno para que apunten a la ubicación del archivo:

   ```
   export ODBCINI=~/.odbc.ini
   export ODBCSYSINI=/opt/amazon/redshift/Setup
   export AMAZONREDSHIFTODBCINI=/opt/amazon/redshift/lib/amazon.redshiftodbc.ini
   ```

1. Establezca `DYLD_LIBRARY_PATH` en la ubicación de su libodbc.dylib si no está en `/usr/local/lib`.

   ```
   export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/usr/local/lib
   ```

1. Haga doble clic en el archivo pkg para ejecutar el instalador.

1. Siga los pasos de instalación para completar la instalación. Acepte los términos del acuerdo de licencia.

## Instalación de RSQL para Windows
<a name="rsql-query-tool-windows-install"></a>

Siga los pasos que se indican a continuación para instalar RSQL para Windows.

1. Instale el controlador ODBC: [Descarga e instalación del controlador ODBC de Amazon RedshiftDescarga e instalación del controlador ODBC](odbc-driver-windows-how-to-install.md).

1. Haga doble clic en el archivo de descarga de RSQL para ejecutar el instalador y, a continuación, siga las indicaciones para completar la instalación.

# Registro de cambios de Amazon Redshift RSQL
<a name="rsql-query-tool-changelog"></a>

*1.1.2 (2025-12-11)*

Correcciones de errores
+ Se ha corregido un error que provocaba errores en los comandos \$1goto y \$1label.
+ Se ha corregido un error que impedía a RSQL imprimir valores de variables cuando las variables estaban entre comillas.
+ Se ha corregido un error que provocaba que RSQL se bloqueara cuando los resultados de las consultas superaban el tamaño del parámetro DSN Fetch de ODBC mientras UseDeclareFetch estaba habilitado.
+ Se ha corregido un problema que provocaba que se devolvieran varias páginas de resultados a la vez aunque la paginación estuviera activada.
+ Se ha corregido un error que provocaba que RSQL se bloqueara cuando las consultas producían un error dentro de los bloques de transacciones.

*1.1.1 (2025-11-20)*

Correcciones de errores
+ Se ha corregido un problema por el que RSQL analizaba incorrectamente las consultas al utilizar el indicador -c. Esta corrección se aplica a todas las plataformas.
+ Se ha corregido un error en Mac que impedía a los usuarios utilizar el comando \$1s en RSQL.

*1.1.0 (2025-11-11)*

Correcciones de errores
+ Se ha resuelto un problema de pérdida de memoria que provocaba bloqueos inesperados en rSQL.
+ Se ha eliminado la dependencia de OpenSSL de RSQL.
+ Se han corregido los conflictos de vinculación con las instalaciones de libpq/psql en el mismo entorno.
+ Se ha mejorado la compatibilidad de plataforma mejorada para Amazon Linux 2023, Windows y macOS.
+ Se ha corregido un error que provocaba que la salida se truncara al superar el tamaño de la pantalla actual.

*1.0.8 (2023-06-19)*

Correcciones de errores
+ Se ha solucionado un problema por el que la salida se truncaba con los comandos SHOW.
+ Se ha agregado soporte a \$1de para describir flujos de Kinesis externos y temas de Kafka.

*1.0.7 (2023-03-22)*

Correcciones de errores
+ Se corrigió un problema por el que RSQL no podía describir las vistas materializadas.
+ Se corrigió el error de permiso denegado en stl\$1connection\$1log al usar Amazon Redshift sin servidor.
+ Se corrigió el problema por el que RSQL podía procesar las etiquetas \$1GOTO de forma incorrecta.
+ Se corrigió el problema por el que los mensajes SSL se imprimían en modo silencioso.
+ Se corrigió el problema con los caracteres aleatorios que se mostraban al describir los procedimientos almacenados.
+ Se corrigió el problema al imprimir mensajes ERROR/INFO duplicados.

New
+ RSQL ahora obtiene la información de SSL directamente del controlador ODBC.



*1.0.6 (2023-02-21)*

Correcciones de errores
+ Se corrigió un problema por el que \$1d genera el error de sintaxis de entrada no válida para el entero: “xid”, en Redshift parche 1.0.46086 (P173).

New
+ Se cambió el nombre de los archivos de instalación para reflejar la arquitectura compatible.



*1.0.5 (27-06-2022)*

Correcciones de errores
+ Envíe mensajes de error SQL al error estándar (stderr).
+ Se corrigió el problema con los códigos de salida al usar ON\$1ERROR\$1STOP. Ahora los scripts finalizan después de encontrar un error y devuelven los códigos de salida correctos.
+ Maxerror ahora distingue entre mayúsculas y minúsculas.

New
+ Se agregó compatibilidad para el controlador ODBC 2.x.



*1.0.4 (2022-03-19)*
+ Agregue compatibilidad con la variable de entorno RSPASSWORD. Establezca una contraseña para conectarse a Amazon Redshift. Por ejemplo, `export RSPASSWORD=TestPassw0rd`.



*1.0.3 (08-12-2021)*

Correcciones de errores
+ Se ha corregido el diálogo emergente al usar `\c` o `\logon` para cambiar entre bases de datos en el sistema operativo Windows.
+ Se ha corregido el fallo al comprobar la información de SSL.



## Versiones anteriores de Amazon Redshift RSQL
<a name="rsql-query-tool-changelog-legacy-versions"></a>

Elija uno de los enlaces para descargar la versión de Amazon Redshift RSQL que necesita, según su sistema operativo.

**Archivo RPM de Linux de 64 bits**
+ [Versión 1.1.1 de RSQL 1.1.1](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.1.1/AmazonRedshiftRsql-1.1.1.rhel.x86_64.rpm)
+ [Versión 1.1.0 de RSQL 1.1.0](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.1.0/AmazonRedshiftRsql-1.1.0.rhel.x86_64.rpm)
+ [Versión 1.0.8 de RSQL 1.0.8](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.8/AmazonRedshiftRsql-1.0.8.x86_64.rpm)
+ [Versión 1.0.7 de RSQL 1.0.7](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.7/AmazonRedshiftRsql-1.0.7.x86_64.rpm)
+ [Versión 1.0.6 de RSQL 1.0.6](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.6/AmazonRedshiftRsql-1.0.6.x86_64.rpm)
+ [Versión 1.0.5 de RSQL 1.0.5](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.5/AmazonRedshiftRsql-1.0.5-1.x86_64.rpm)
+ [Versión 1.0.4 de RSQL 1.0.4](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.4/AmazonRedshiftRsql-1.0.4-1.x86_64.rpm)
+ [RSQL, versión 1.0.3](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.3/AmazonRedshiftRsql-1.0.3-1.x86_64.rpm)
+ [RSQL, versión 1.0.1](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.1/AmazonRedshiftRsql-1.0.1-1.x86_64.rpm)

**DMG/PKG de Mac OS de 64 bits**
+ [Versión 1.1.1 de RSQL 1.1.1](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.1.1/AmazonRedshiftRsql-1.1.1.universal.pkg)
+ [Versión 1.1.0 de RSQL 1.1.0](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.1.0/AmazonRedshiftRsql-1.1.0.universal.pkg)
+ [Versión 1.0.8 de RSQL 1.0.8](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.8/AmazonRedshiftRsql-1.0.8.x86_64.dmg)
+ [Versión 1.0.7 de RSQL 1.0.7](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.7/AmazonRedshiftRsql-1.0.7.x86_64.dmg)
+ [Versión 1.0.6 de RSQL 1.0.6](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.6/AmazonRedshiftRsql-1.0.6.x86_64.dmg)
+ [RSQL, versión 1.0.5](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.5/AmazonRedshiftRsql-1.0.5.dmg)
+ [RSQL, versión 1.0.4](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.4/AmazonRedshiftRsql-1.0.4.dmg)
+ [RSQL, versión 1.0.3](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.3/AmazonRedshiftRsql-1.0.3.dmg)
+ [RSQL, versión 1.0.1](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.1/AmazonRedshiftRsql-1.0.1.dmg)

**Archivo MSI de Windows de 64 bits**
+ [Versión 1.1.1 de RSQL 1.1.1](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.1.1/AmazonRedshiftRsql-1.1.1.x86_64.msi)
+ [Versión 1.1.0 de RSQL 1.1.0](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.1.0/AmazonRedshiftRsql-1.1.0.x86_64.msi)
+ [Versión 1.0.8 de RSQL 1.0.8](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.8/AmazonRedshiftRsql-1.0.8.x86_64.msi)
+ [Versión 1.0.7 de RSQL 1.0.7](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.7/AmazonRedshiftRsql-1.0.7.x86_64.msi)
+ [Versión 1.0.6 de RSQL 1.0.6](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.6/AmazonRedshiftRsql-1.0.6.x86_64.msi)
+ [Versión 1.0.5 de RSQL 1.0.5](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.5/AmazonRedshiftRsql-1.0.5.msi)
+ [Versión 1.0.4 de RSQL 1.0.4](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.4/AmazonRedshiftRsql-1.0.4.msi)
+ [RSQL, versión 1.0.3](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.3/AmazonRedshiftRsql-1.0.3.msi)
+ [RSQL, versión 1.0.1](https://s3.amazonaws.com/redshift-downloads/amazon-redshift-rsql/1.0.1/AmazonRedshiftRsql-1.0.1.msi)

# Conexión a un clúster con Amazon Redshift RSQL
<a name="rsql-query-tool-starting-tool-connection"></a>

Con Amazon Redshift, puede conectarse a un clúster e interactuar con él mediante RSQL. Se trata de una herramienta de línea de comandos que proporciona una forma segura de consultar datos, crear objetos de bases de datos y administrar el clúster de Amazon Redshift. Las siguientes secciones lo guían por los pasos para establecer una conexión con el clúster mediante RSQL con y sin un nombre de origen de datos (DSN).

## Conexión sin un DSN
<a name="rsql-query-tool-starting-tool-connection-dsn-less-example"></a>

1. En la consola de Amazon Redshift, elija el clúster al que desea conectarse y anote el punto de conexión, la base de datos y el puerto.

1. En el símbolo del sistema, especifique la información de conexión usando los parámetros de línea de comando.

   ```
   rsql -h <endpoint> -U <username> -d <databasename> -p <port>
   ```

    A continuación, se aplica lo siguiente: 
   +  *<endpoint>* en el **punto de conexión** que registró en el paso anterior.
   +  *<username>* es el nombre de usuario con permisos para conectarse al clúster.
   +  *<databasename>* es el **nombre de base de datos** que registró en el paso anterior.
   +  *<port>* es el **puerto** que registró en el paso anterior. *<port>* es un parámetro opcional.

   Ejemplo:

   ```
   rsql -h testcluster.example.amazonaws.com -U user1 -d dev -p 5439
   ```

1.  Cuando se le solicite la contraseña, ingrese la contraseña del usuario *<username>*.

   Una respuesta de conexión exitosa tendría el siguiente aspecto.

   ```
   % rsql -h testcluster.example.com -d dev -U user1 -p 5349
   Password for user user1:
   DSN-less Connected
   DBMS Name: Amazon Redshift
   Driver Name: Amazon Redshift ODBC Driver
   Driver Version: 1.4.27.1000
   Rsql Version: 1.0.1
   Redshift Version: 1.0.29306
   Type "help" for help.
   
   (testcluster) user1@dev=#
   ```

El comando de conexión tiene los mismos parámetros en Linux, Mac OS y Windows.

## Conexión con un DSN
<a name="rsql-query-tool-starting-tool-connection-dsn-example"></a>

Puede conectar RSQL a Amazon Redshift mediante un DSN para simplificar la organización de las propiedades de conexión. Este tema incluye instrucciones para la instalación del controlador ODBC y descripciones de las propiedades de DSN.

### Uso de una conexión DSN con contraseña
<a name="rsql-query-tool-starting-tool-connection-dsn-example-password"></a>

A continuación se muestra un ejemplo de configuración de conexión DSN que utiliza una contraseña. El `<path to driver>` predeterminado para Mac OSX es `/opt/amazon/redshift/lib/libamazonredshiftodbc.dylib` y para Linux es `/opt/amazon/redshiftodbc/lib/64/libamazonredshiftodbc64.so`.

```
[testuser]
Driver=/opt/amazon/redshiftodbc/lib/64/libamazonredshiftodbc64.so
SSLMode=verify-ca
Min_TLS=1.2
boolsaschar=0
Host=<server endpoint>
Port=<database port>
Database=<dbname>
UID=<username>
PWD=<password>
sslmode=prefer
```

El siguiente es el resultado de una conexión correcta.

```
% rsql -D testuser
DSN Connected
DBMS Name: Amazon Redshift
Driver Name: Amazon Redshift ODBC Driver
Driver Version: 1.4.27.1000
Rsql Version: 1.0.1
Redshift Version: 1.0.29306
Type "help" for help.

(testcluster) user1@dev=#
```

### Uso de DSN de inicio de sesión único
<a name="rsql-query-tool-starting-tool-connection-dsn"></a>

Puede configurar un DSN para la autenticación de inicio de sesión único. A continuación se muestra un ejemplo de una configuración de conexión DSN que utiliza el inicio de sesión único de Okta.

```
[testokta]
Driver=<path to driver>
SSLMode=verify-ca
Min_TLS=1.2
boolsaschar=0
Host=<server endpoint>
clusterid=<cluster id>
region=<region name>
Database=<dbname>
locale=en-US
iam=1
plugin_name=<plugin name>
uid=<okta username>
pwd=<okta password>
idp_host=<idp endpoint>
app_id=<app id>
app_name=<app name>
preferred_role=<role arn>
```

Salida de ejemplo de una conexión correcta.

```
% rsql -D testokta 
DSN Connected
DBMS Name: Amazon Redshift
Driver Name: Amazon Redshift ODBC Driver
Driver Version: 1.4.27.1000
Rsql Version: 1.0.1
Redshift Version: 1.0.29306
Type "help" for help.

(testcluster) user1@dev=#
```

A continuación se muestra un ejemplo de una configuración de conexión DSN que utiliza el inicio de sesión único de Azure.

```
[testazure]
Driver=<path to driver>
SSLMode=verify-ca
Min_TLS=1.2
boolsaschar=0
Host=<server endpoint>
Port=<cluster port>
clusterid=<cluster id>
region=<region name>
Database=<dbname>
locale=en-us
iam=1
plugin_name=<plugin name>
uid=<azure username>
pwd=<azure password>
idp_tenant=<Azure idp tenant uuid>
client_id=<Azure idp client uuid>
client_secret=<Azure idp client secret>
```

### Uso de una conexión DSN con un perfil de IAM
<a name="rsql-query-tool-starting-tool-connection-dsn-iam"></a>

Puede conectarse a Amazon Redshift mediante el perfil de IAM configurado. El perfil de IAM debe tener privilegios para llamar a `GetClusterCredentials`. En el siguiente ejemplo, se muestran las propiedades de DSN que se utilizarán. Los parámetros `ClusterID` y `Region` son obligatorios solo si el `Host` no es un punto de conexión proporcionado por Amazon como `examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com`.

```
[testiam]
Driver=Default
Host=testcluster.example.com
Database=dev
DbUser=testuser
ClusterID=rsqltestcluster
Region=us-east-1
IAM=1
Profile=default
```

El valor de la clave `Profile` es el perfil con nombre que elija de sus credenciales de la AWS CLI. En este ejemplo, se muestran las credenciales del perfil denominado `default`.

```
$ cat .aws/credentials
[default]
aws_access_key_id = ASIAIOSFODNN7EXAMPLE 
aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
```

A continuación se muestra la respuesta de conexión.

```
$ rsql -D testiam
DSN Connected
DBMS Name: Amazon Redshift
Driver Name: Amazon Redshift ODBC Driver
Driver Version: 1.4.27.1000
Rsql Version: 1.0.1
Redshift Version: 1.0.29306
Type "help" for help.

(testcluster) testuser@dev=>
```

### Uso de una conexión DSN con un perfil de instancias
<a name="rsql-query-tool-starting-tool-connection-dsn-instance"></a>

Puede conectarse a Amazon Redshift mediante su perfil de instancia de Amazon EC2. El perfil de instancias debe tener privilegios para llamar a `GetClusterCredentials`. Consulte el siguiente ejemplo para ver las propiedades de DSN que se van a utilizar. Los parámetros `ClusterID` y `Region` son obligatorios solo si el `Host` no es un punto de conexión proporcionado por Amazon como `examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com`.

```
[testinstanceprofile]
Driver=Default
Host=testcluster.example.com
Database=dev
DbUser=testuser
ClusterID=rsqltestcluster
Region=us-east-1
IAM=1
Instanceprofile=1
```

A continuación se muestra la respuesta de conexión.

```
$ rsql -D testinstanceprofile
DSN Connected
DBMS Name: Amazon Redshift
Driver Name: Amazon Redshift ODBC Driver
Driver Version: 1.4.27.1000
Rsql Version: 1.0.1
Redshift Version: 1.0.29306
Type "help" for help.

(testcluster) testuser@dev=>
```

### Uso de una conexión DSN con la cadena predeterminada de proveedores de credenciales
<a name="rsql-query-tool-starting-tool-connection-dsn-provider-chain"></a>

Para conectarse mediante la cadena predeterminada de proveedores de credenciales, especifique solo la propiedad de IAM; Amazon Redshift RSQL intentará adquirir las credenciales en el orden descrito en [Uso de credenciales de AWS](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/credentials.html) en el AWS SDK para Java. Al menos uno de los proveedores de la cadena debe tener el permiso `GetClusterCredentials`. Eso resulta útil para conectarse desde contenedores de ECS, por ejemplo.

```
[iamcredentials]
Driver=Default
Host=testcluster.example.com
Database=dev
DbUser=testuser
ClusterID=rsqltestcluster
Region=us-east-1
IAM=1
```

# Metacomandos de Amazon Redshift RSQL
<a name="rsql-query-tool-commands"></a>

Los metacomandos de Amazon Redshift RSQL devuelven registros informativos sobre bases de datos u objetos de base de datos específicos. Los resultados pueden incluir varias columnas y metadatos. Otros comandos realizan acciones específicas. Estos comandos van precedidos de una barra invertida.

## \$1d[S\$1]
<a name="rsql-query-tool-describe-d"></a>

 Muestra las tablas creadas por el usuario local, las vistas regulares, las vistas de enlace tardío y las vistas materializadas. `\dS ` también enumera tablas y vistas, como `\d`, pero los objetos del sistema se incluyen en los registros devueltos. Los resultados `+` en la columna de metadatos adicionales `description` para todos los objetos enumerados. A continuación se muestran los registros de ejemplo devueltos como resultado del comando. 

```
List of relations
 schema |   name    | type  |  owner  
--------+-----------+-------+---------
 public | category  | table | awsuser
 public | date      | table | awsuser
 public | event     | table | awsuser
 public | listing   | table | awsuser
 public | sales     | table | awsuser
 public | users     | table | awsuser
 public | venue     | table | awsuser
(7 rows)
```

## \$1d[S\$1] NOMBRE
<a name="rsql-query-tool-describe-s-plus-named"></a>

Describe una tabla, vista o índice. Incluye los nombres y tipos de columnas. También proporciona el estilo diststyle, la configuración de copias de seguridad, la fecha de creación (tablas creadas después de octubre de 2018) y las restricciones. Por ejemplo, `\dS+ sample` devuelve las propiedades de objeto. Anexar `S+` da como resultado columnas adicionales incluidas en los registros devueltos.

```
Table "public.sample"
 Column |            Type             |   Collation    | Nullable | Default Value | Encoding  | DistKey | SortKey
--------+-----------------------------+----------------+----------+---------------+-----------+---------+---------
 col1   | smallint                    |                | NO       |               | none      | t       | 1
 col2   | character(100)              | case_sensitive | YES      |               | none      | f       | 2
 col3   | character varying(100)      | case_sensitive | YES      |               | text32k   | f       | 3
 col4   | timestamp without time zone |                | YES      |               | runlength | f       | 0
 col5   | super                       |                | YES      |               | zstd      | f       | 0
 col6   | bigint                      |                | YES      |               | az64      | f       | 0

Diststyle: KEY
Backup: YES
Created: 2021-07-20 19:47:27.997045
Unique Constraints:
    "sample_pkey" PRIMARY KEY (col1)
    "sample_col2_key" UNIQUE (col2)
Foreign-key constraints:
    "sample_col2_fkey" FOREIGN KEY (col2) REFERENCES lineitem(l_orderkey)
```

El estilo de distribución, o *Diststyle*, de la tabla puede ser KEY, AUTO, EVEN o ALL.

*Backup* indica si se realiza una copia de seguridad de la tabla cuando se toma una instantánea. Los valores válidos son `YES` o `NO`.

*Create* es la marca de tiempo de cuando se crea la tabla. La fecha de creación no está disponible para las tablas de Amazon Redshift creadas antes de noviembre de 2018. Las tablas creadas antes de esta fecha muestran n/a (No disponible). 

*Unique Constraints* enumera las restricciones de clave única y principal de la tabla.

*Foreign-key constraints* enumera las restricciones de clave extranjera de la tabla.

## \$1dC[\$1] [PATRÓN]
<a name="rsql-query-tool-describe-dc"></a>

Enumera las conversiones. Incluye el tipo de origen, el tipo de destino y si la conversión está implícita.

A continuación, se muestra un subconjunto de resultados de `\dC+`.

```
List of casts
         source type         |         target type         |      function       |   implicit?   | description 
-----------------------------+-----------------------------+---------------------+---------------+-------------
 "char"                      | character                   | bpchar              | in assignment | 
 "char"                      | character varying           | text                | in assignment | 
 "char"                      | integer                     | int4                | no            | 
 "char"                      | text                        | text                | yes           | 
 "path"                      | point                       | point               | no            | 
 "path"                      | polygon                     | polygon             | in assignment | 
 abstime                     | date                        | date                | in assignment | 
 abstime                     | integer                     | (binary coercible)  | no            | 
 abstime                     | time without time zone      | time                | in assignment | 
 abstime                     | timestamp with time zone    | timestamptz         | yes           | 
 abstime                     | timestamp without time zone | timestamp           | yes           | 
 bigint                      | bit                         | bit                 | no            | 
 bigint                      | boolean                     | bool                | yes           | 
 bigint                      | character                   | bpchar              | in assignment | 
 bigint                      | character varying           | text                | in assignment | 
 bigint                      | double precision            | float8              | yes           | 
 bigint                      | integer                     | int4                | in assignment | 
 bigint                      | numeric                     | numeric             | yes           | 
 bigint                      | oid                         | oid                 | yes           | 
 bigint                      | real                        | float4              | yes           | 
 bigint                      | regclass                    | oid                 | yes           | 
 bigint                      | regoper                     | oid                 | yes           | 
 bigint                      | regoperator                 | oid                 | yes           | 
 bigint                      | regproc                     | oid                 | yes           | 
 bigint                      | regprocedure                | oid                 | yes           | 
 bigint                      | regtype                     | oid                 | yes           | 
 bigint                      | smallint                    | int2                | in assignment | 
 bigint                      | super                       | int8_partiql        | in assignment |
```

## \$1dd[S] [PATRÓN]
<a name="rsql-query-tool-describe-dds"></a>

Muestra las descripciones de objetos que no se muestran en ningún otro lugar.

## \$1de
<a name="rsql-query-tool-describe-de"></a>

Muestra las tablas externas. Esto incluye las tablas del AWS Glue Data Catalog, Hive Metastore y tablas federadas de Amazon RDS/Aurora MySQL, Amazon RDS/Aurora PostgreSQL y tablas de recursos compartidos de datos de Amazon Redshift.

## \$1de NOMBRE
<a name="rsql-query-tool-describe-de-name"></a>

Describe una tabla externa.

El siguiente ejemplo muestra una tabla externa de AWS Glue.

```
# \de spectrum.lineitem
                            Glue External table "spectrum.lineitem"
     Column      | External Type | Redshift Type | Position | Partition Key | Nullable
-----------------+---------------+---------------+----------+---------------+----------
 l_orderkey      | bigint        | bigint        | 1        | 0             |
 l_partkey       | bigint        | bigint        | 2        | 0             |
 l_suppkey       | int           | int           | 3        | 0             |
 l_linenumber    | int           | int           | 4        | 0             |
 l_quantity      | decimal(12,2) | decimal(12,2) | 5        | 0             |
 l_extendedprice | decimal(12,2) | decimal(12,2) | 6        | 0             |
 l_discount      | decimal(12,2) | decimal(12,2) | 7        | 0             |
 l_tax           | decimal(12,2) | decimal(12,2) | 8        | 0             |
 l_returnflag    | char(1)       | char(1)       | 9        | 0             |
 l_linestatus    | char(1)       | char(1)       | 10       | 0             |
 l_shipdate      | date          | date          | 11       | 0             |
 l_commitdate    | date          | date          | 12       | 0             |
 l_receiptdate   | date          | date          | 13       | 0             |
 l_shipinstruct  | char(25)      | char(25)      | 14       | 0             |
 l_shipmode      | char(10)      | char(10)      | 15       | 0             |
 l_comment       | varchar(44)   | varchar(44)   | 16       | 0             |

Location: s3://redshiftbucket/kfhose2019/12/31
Input_format: org.apache.hadoop.mapred.TextInputFormat
Output_format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
Serialization_lib: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
Serde_parameters: {"field.delim":"|","serialization.format":"|"}
Parameters: {"EXTERNAL":"TRUE","numRows":"178196721475","transient_lastDdlTime":"1577771873"}
```

Una tabla de Hive Metastore.

```
# \de emr.lineitem
                     Hive Metastore External Table "emr.lineitem"
     Column      | External Type | Redshift Type | Position | Partition Key | Nullable
-----------------+---------------+---------------+----------+---------------+----------
 l_orderkey      | bigint        | bigint        | 1        | 0             |
 l_partkey       | bigint        | bigint        | 2        | 0             |
 l_suppkey       | int           | int           | 3        | 0             |
 l_linenumber    | int           | int           | 4        | 0             |
 l_quantity      | decimal(12,2) | decimal(12,2) | 5        | 0             |
 l_extendedprice | decimal(12,2) | decimal(12,2) | 6        | 0             |
 l_discount      | decimal(12,2) | decimal(12,2) | 7        | 0             |
 l_tax           | decimal(12,2) | decimal(12,2) | 8        | 0             |
 l_returnflag    | char(1)       | char(1)       | 9        | 0             |
 l_linestatus    | char(1)       | char(1)       | 10       | 0             |
 l_commitdate    | date          | date          | 11       | 0             |
 l_receiptdate   | date          | date          | 12       | 0             |
 l_shipinstruct  | char(25)      | char(25)      | 13       | 0             |
 l_shipmode      | char(10)      | char(10)      | 14       | 0             |
 l_comment       | varchar(44)   | varchar(44)   | 15       | 0             |
 l_shipdate      | date          | date          | 16       | 1             |

Location: s3://redshiftbucket/cetas
Input_format: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat
Output_format: org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat
Serialization_lib: org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe
Serde_parameters: {"serialization.format":"1"}
Parameters: {"EXTERNAL":"TRUE", "numRows":"4307207", "transient_lastDdlTime":"1626990007"}
```

Tabla externa de PostgreSQL.

```
# \de pgrsql.alltypes
                                Postgres Federated Table "pgrsql.alltypes"
 Column |        External Type        |        Redshift Type        | Position | Partition Key | Nullable
--------+-----------------------------+-----------------------------+----------+---------------+----------
 col1   | bigint                      | bigint                      | 1        | 0             |
 col2   | bigint                      | bigint                      | 2        | 0             |
 col5   | boolean                     | boolean                     | 3        | 0             |
 col6   | box                         | varchar(65535)              | 4        | 0             |
 col7   | bytea                       | varchar(65535)              | 5        | 0             |
 col8   | character(10)               | character(10)               | 6        | 0             |
 col9   | character varying(10)       | character varying(10)       | 7        | 0             |
 col10  | cidr                        | varchar(65535)              | 8        | 0             |
 col11  | circle                      | varchar(65535)              | 9        | 0             |
 col12  | date                        | date                        | 10       | 0             |
 col13  | double precision            | double precision            | 11       | 0             |
 col14  | inet                        | varchar(65535)              | 12       | 0             |
 col15  | integer                     | integer                     | 13       | 0             |
 col16  | interval                    | varchar(65535)              | 14       | 0             |
 col17  | json                        | varchar(65535)              | 15       | 0             |
 col18  | jsonb                       | varchar(65535)              | 16       | 0             |
 col19  | line                        | varchar(65535)              | 17       | 0             |
 col20  | lseg                        | varchar(65535)              | 18       | 0             |
 col21  | macaddr                     | varchar(65535)              | 19       | 0             |
 col22  | macaddr8                    | varchar(65535)              | 20       | 0             |
 col23  | money                       | varchar(65535)              | 21       | 0             |
 col24  | numeric                     | numeric(38,20)              | 22       | 0             |
 col25  | path                        | varchar(65535)              | 23       | 0             |
 col26  | pg_lsn                      | varchar(65535)              | 24       | 0             |
 col28  | point                       | varchar(65535)              | 25       | 0             |
 col29  | polygon                     | varchar(65535)              | 26       | 0             |
 col30  | real                        | real                        | 27       | 0             |
 col31  | smallint                    | smallint                    | 28       | 0             |
 col32  | smallint                    | smallint                    | 29       | 0             |
 col33  | integer                     | integer                     | 30       | 0             |
 col34  | text                        | varchar(65535)              | 31       | 0             |
 col35  | time without time zone      | varchar(65535)              | 32       | 0             |
 col36  | time with time zone         | varchar(65535)              | 33       | 0             |
 col37  | timestamp without time zone | timestamp without time zone | 34       | 0             |
 col38  | timestamp with time zone    | timestamp with time zone    | 35       | 0             |
 col39  | tsquery                     | varchar(65535)              | 36       | 0             |
 col40  | tsvector                    | varchar(65535)              | 37       | 0             |
 col41  | txid_snapshot               | varchar(65535)              | 38       | 0             |
 col42  | uuid                        | varchar(65535)              | 39       | 0             |
 col43  | xml                         | varchar(65535)              | 40       | 0             |
```

## \$1df[anptw][S\$1] [PATRÓN]
<a name="rsql-query-tool-df"></a>

 Enumera funciones de varios tipos. El comando `\df`, por ejemplo, devuelve una lista de funciones. Los resultados incluyen propiedades como nombre, tipo de datos devuelto, privilegios de acceso y metadatos adicionales. Los tipos de funciones pueden incluir desencadenadores, procedimientos almacenados, funciones de ventana y otros tipos. Cuando anexa `S+` al comando, por ejemplo, `\dfantS+`, se incluyen columnas de metadatos adicionales, como`owner`, `security` y `access privileges`. 

## \$1dL[S\$1] [PATRÓN]
<a name="rsql-query-tool-describe-dl"></a>

 Enumera datos sobre los lenguajes de procedimiento asociados a la base de datos. La información incluye el nombre, como plpgsql, y metadatos adicionales, que incluyen si es de confianza, privilegios de acceso y descripción. La llamada de muestra es, por ejemplo, `\dLS+`, que enumera los lenguajes y sus propiedades. Cuando anexa `S+` al comando, se incluyen columnas de metadatos adicionales, como `call handler` y `access privileges`. 

Resultados de ejemplo:

```
List of languages
   name    | trusted | internal language |      call handler       |                         validator                          | access privileges |          description           
-----------+---------+-------------------+-------------------------+------------------------------------------------------------+-------------------+--------------------------------
 c         | f       | t                 | -                       | fmgr_c_validator(oid)                                      |                   | Dynamically-loaded C functions
 exfunc    | f       | f                 | exfunc_call_handler()   | -                                                          | rdsdb=U/rdsdb     | 
 internal  | f       | t                 | -                       | fmgr_internal_validator(oid)                               |                   | Built-in functions
 mlfunc    | f       | f                 | mlfunc_call_handler()   | -                                                          | rdsdb=U/rdsdb     | 
 plpgsql   | t       | f                 | plpgsql_call_handler()  | plpgsql_validator(oid)                                     |                   | 
 plpythonu | f       | f                 | plpython_call_handler() | plpython_compiler(cstring,cstring,cstring,cstring,cstring) | rdsdb=U/rdsdb     | 
 sql       | t       | t                 | -                       | fmgr_sql_validator(oid)                                    | =U/rdsdb          | SQL-language functions
```

## \$1dm[S\$1] [PATRÓN]
<a name="rsql-query-tool-describe-dm"></a>

 Enumera las vistas materializadas. Por ejemplo, `\dmS+` enumera las vistas materializadas y sus propiedades. Cuando anexa `S+` al comando, se incluyen columnas de metadatos adicionales. 

## \$1dn[S\$1] [PATRÓN]
<a name="rsql-query-tool-describe-dn"></a>

 Enumera esquemas. Cuando anexa `S+` al comando, por ejemplo, `\dnS+`, se incluyen columnas de metadatos adicionales, como `description` y `access privileges`. 

## \$1dp [PATRÓN]
<a name="rsql-query-tool-describe-dp"></a>

 Enumera los privilegios de acceso a tablas, vistas y secuencias. 

## \$1dt[S\$1] [PATRÓN]
<a name="rsql-query-tool-describe-dt"></a>

 Enumera tablas. Cuando anexa `S+` al comando, por ejemplo, `\dtS+`, se incluyen columnas de metadatos adicionales, como `description` en este caso. 

## \$1du
<a name="rsql-query-tool-describe-du"></a>

 Enumera los usuarios de la base de datos. Incluye su nombre y sus roles, como superusuario y atributos. 

## \$1dv[S\$1] [PATRÓN]
<a name="rsql-query-tool-describe-dv"></a>

 Enumera vistas. Incluye datos de propietario, esquema y tipo. Cuando anexa `S+` al comando, por ejemplo, `\dvS+`, se incluyen columnas de metadatos adicionales. 

## \$1H
<a name="rsql-query-tool-describe-h"></a>

 Activa la salida HTML. Esto resulta útil para devolver rápidamente los resultados formateados. Por ejemplo, `select * from sales; \H` devuelve los resultados de la tabla de ventas, en HTML. Para volver a los resultados tablulares, utilice `\q`, o inactividad. 

## \$1i
<a name="rsql-query-tool-describe-i"></a>

 Ejecuta comandos desde un archivo. Por ejemplo, si se asume que tiene rsql\$1steps.sql en el directorio de trabajo, lo siguiente ejecuta los comandos en el archivo: `\i rsql_steps.sql`. 

## \$1l[\$1] [PATRÓN]
<a name="rsql-query-tool-describe-l"></a>

 Enumera bases de datos. Incluye propietario, codificación e información adicional. 

## \$1q
<a name="rsql-query-tool-describe-q"></a>

 La inactividad, o comando `\q`, cierra la sesión de la base de datos y cierra de RSQL. 

## \$1sv[\$1] VIEWNAME
<a name="rsql-query-tool-describe-sv-name"></a>

 Muestra la definición de una vista. 

## \$1timing
<a name="rsql-query-tool-describe-timing"></a>

 Muestra el tiempo de ejecución, para una consulta, por ejemplo. 

## \$1z [PATRÓN]
<a name="rsql-query-tool-describe-z"></a>

 El mismo resultado que \$1dp. 

## \$1?
<a name="rsql-query-tool-help"></a>

 Muestra información de ayuda. El parámetro opcional especifica el elemento que se va a explicar. 

## \$1EXIT
<a name="rsql-query-tool-flow-control-exit"></a>

 Cierra la sesión de todas las sesiones de base de datos y cierra Amazon Redshift RSQL. Además puede especificar un código de salida opcional. Por ejemplo, `\EXIT 15` saldrá de la terminal de Amazon Redshift RSQL y devolverá el código de salida 15.

En el siguiente ejemplo, se muestra el resultado de una conexión y la salida de RSQL.

```
% rsql -D testuser
DSN Connected
DBMS Name: Amazon Redshift
Driver Name: Amazon Redshift ODBC Driver
Driver Version: 1.4.34.1000
Rsql Version: 1.0.1
Redshift Version: 1.0.29306 
Type "help" for help.

(testcluster) user1@dev=# \exit 15

% echo $?
15
```

## \$1EXPORT
<a name="rsql-query-tool-export"></a>

 Especifica el nombre de un archivo de exportación que RSQL utiliza para almacenar la información de la base de datos que devuelve una instrucción SQL SELECT posterior.

export\$101.sql

```
\export report file='E:\\accounts.out'
\rset rformat off
\rset width 1500
\rset heading "General Title"
\rset titledashes on
select * from td_dwh.accounts;
\export reset
```

Salida de la consola

```
Rformat is off.
Target width is 1500.
Heading is set to: General Title
Titledashes is on.
(exported 40 rows)
```

## \$1LOGON
<a name="rsql-query-tool-flow-control-logon"></a>

 Se conecta a una base de datos. Puede especificar parámetros de conexión mediante sintaxis posicional o como cadena de conexión.

La sintaxis de comandos es la siguiente: `\logon {[DBNAME|- USERNAME|- HOST|- PORT|- [PASSWORD]] | conninfo}`

`DBNAME` es el nombre de la base de datos a la que se debe conectar. `USERNAME` es el nombre de usuario para contectarse. El `HOST` predeterminado es `localhost`. El `PORT` predeterminado es `5439`.

Cuando se especifica un nombre de host en un comando `\LOGON`, se convierte en el nombre de host predeterminado para agregar comandos `\LOGON` adicionales. Para cambiar el nombre de host predeterminado, especifique un nuevo `HOST` en un comando `\LOGON` adicional.

A continuación se muestra el resultado de ejemplo del comando `\LOGON` para `user1`.

```
(testcluster) user1@redshiftdb=# \logon dev
DBMS Name: Amazon Redshift
Driver Name: Amazon Redshift ODBC Driver
Driver Version: 1.4.27.1000
Rsql Version: 1.0.1
You are now connected to database "dev" as user "user1".
(testcluster) user1@dev=#
```

Resultados de ejemplo de para *user2*.

```
(testcluster) user1@dev=# \logon dev user2 testcluster2.example.com
Password for user user2: 
DBMS Name: Amazon Redshift
Driver Name: Amazon Redshift ODBC Driver
Driver Version: 1.4.27.1000
Rsql Version: 1.0.1
You are now connected to database "dev" as user "user2" on host "testcluster2.example.com" at port "5439".
(testcluster2) user2@dev=#
```

## \$1REMARK
<a name="rsql-query-tool-flow-control-remark"></a>

 Ampliación del comando `\echo`. `\REMARK` imprime la cadena especificada en el flujo de salida. `\REMARK ` amplía `\echo` agregando la capacidad de dividir la salida en líneas separadas.

En el siguiente ejemplo, se muestra la salida desde el comando.

```
(testcluster) user1@dev=# \remark 'hello//world'
hello
world
```

## \$1RSET
<a name="rsql-query-tool-rset"></a>

El comando `\rset` establece parámetros de comando y variables. `\rset` tiene un modo interactivo y otro por lotes. No admite opciones como opciones bash, como *-x*, o argumentos; por ejemplo, *--<arg>*.

Establece variables, como las siguientes:
+ ERRORLEVEL
+ HEADING y RTITLE
+ RFORMAT
+ MAXERROR
+ TITLEDASHES
+ WIDTH

En el siguiente ejemplo, se especifica un encabezado.

```
\rset heading "Winter Sales Report"
```

Para obtener más ejemplos de cómo utilizar `\rset`, puede encontrar varios en los temas de [Variables de Amazon Redshift RSQL](rsql-query-tool-variables.md).

## \$1RUN
<a name="rsql-query-tool-flow-control-run"></a>

 Ejecuta el script de Amazon Redshift RSQL contenido en el archivo especificado. `\RUN` amplía el comando `\i` agregando una opción para omitir líneas de encabezado en un archivo.

Si el nombre del archivo incluye una coma, un punto y coma o un espacio, colóquelo entre comillas simples. Además, si hay texto después del nombre del archivo, colóquelo entre comillas. En UNIX, los nombres de los archivos distinguen mayúsculas de minúsculas. En Windows, los nombres de los archivos distinguen entre mayúsculas y minúsculas.

En el siguiente ejemplo, se muestra la salida desde el comando.

```
(testcluster) user1@dev=# \! cat test.sql
select count(*) as lineitem_cnt from lineitem;
select count(*) as customer_cnt from customer;
select count(*) as orders_cnt from orders;



(testcluster) user1@dev=# \run file=test.sql
 lineitem_cnt
--------------
      4307207
(1 row)

 customer_cnt
--------------
     37796166
(1 row)

 orders_cnt
------------
          0
(1 row)


(testcluster) user1@dev=# \run file=test.sql skip=2
2 records skipped in RUN file.
 orders_cnt
------------
          0
(1 row)
```

## \$1OS
<a name="rsql-query-tool-flow-control-os"></a>

 Un alias para el comando `\!`. `\OS` ejecuta el comando del sistema operativo que se pasa como parámetro. El control vuelve a Amazon Redshift RSQL después de ejecutar el comando. Por ejemplo, puede ejecutar el siguiente comando para imprimir la hora de la fecha actual del sistema y volver al terminal RSQL: `\os date`.

```
(testcluster) user1@dev=# \os date
Tue Sep 7 20:47:54 UTC 2021
```

## \$1GOTO
<a name="rsql-query-tool-flow-control-goto"></a>

 Un nuevo comando para Amazon Redshift RSQL. `\GOTO` omite todos los comandos que intervienen y reanuda el procesamiento en el `\LABEL` especificado. El `\LABEL` debe ser una referencia anticipada. No puede saltar a un `\LABEL` que precede léxicamente al `\GOTO`.

A continuación se muestra una salida de ejemplo.

```
(testcluster) user1@dev=# \! cat test.sql
select count(*) as cnt from lineitem \gset
select :cnt as cnt;
\if :cnt > 100
    \goto LABELB
\endif

\label LABELA
\remark 'this is label LABELA'
\label LABELB
\remark 'this is label LABELB'


(testcluster) user1@dev=# \i test.sql
   cnt
---------
 4307207
(1 row)

\label LABELA ignored
\label LABELB processed
this is label LABELB
```

## \$1LABEL
<a name="rsql-query-tool-flow-control-label"></a>

 Un nuevo comando para Amazon Redshift RSQL. `\LABEL` establece un punto de entrada para ejecutar el programa, como objetivo de un comando `\GOTO`.

En el siguiente ejemplo, se muestra un ejemplo de salida del comando.

```
(testcluster) user1@dev=# \! cat test.sql
select count(*) from lineitem limit 5;
\goto LABELB
\remark "this step was skipped by goto label";
\label LABELA
\remark 'this is label LABELA'
\label LABELB
\remark 'this is label LABELB'



(testcluster) user1@dev=# \i testgoto.sql
  count
 4307193
(1 row)

\label LABELA ignored
\label LABELB processed
this is label LABELB
```

## \$1IF (\$1ELSEIF, \$1ELSE, \$1ENDIF)
<a name="rsql-query-tool-flow-control-if"></a>

 `\IF` y los comandos relacionados ejecutan de forma condicional partes del script de entrada. Extensión de comando `\if` (`\elif`, `\else`, `\endif`) de PSQL. `\IF` y `\ELSEIF` admiten expresiones booleanas, incluidas las condiciones `AND`, `OR` y `NOT`. 

En el siguiente ejemplo, se muestra un ejemplo de salida desde el comando.

```
(testcluster) user1@dev=# \! cat test.sql
SELECT query FROM stv_inflight LIMIT 1 \gset
select :query as query;
\if :query > 1000000
    \remark 'Query id is greater than 1000000'
\elseif :query = 1000000
    \remark 'Query id is equal than 1000000'
\else
    \remark 'Query id is less than 1000000'
\endif


(testcluster) user1@dev=# \i test.sql 
 query
--------
 994803
(1 row)
 
Query id is less than 1000000
```

Use `ERRORCODE` en su lógica de ramificación.

```
\if :'ERRORCODE' = '00000'
    \remark 'The statement was executed without error'
\else
    \remark :LAST_ERROR_MESSAGE
\endif
```

Use `\GOTO` dentro de un bloque `\IF` para controlar cómo se ejecuta el código.

# Variables de Amazon Redshift RSQL
<a name="rsql-query-tool-variables"></a>

 Algunas palabras clave actúan como variables en RSQL. Puede establecer cada una en un valor específico o volver a establecer el valor. La mayoría se establecen con `\rset`, que tiene un modo interactivo y otro por lotes. Los comandos se pueden definir en minúsculas o mayúsculas.

## ACTIVITYCOUNT
<a name="rsql-query-tool-activitycount"></a>

 Indica el número de filas afectadas por la última solicitud enviada. En el caso de una solicitud de devolución de datos, es el número de filas devueltas a RSQL desde la base de datos. El valor es 0 o un número entero positivo. El valor máximo es 18 446 744 073 709 551 615. 

 La variable `ACTIVITYCOUNT`, que se trata de forma especial, es similar a la variable `ROW_COUNT`. No obstante, `ROW_COUNT` no notifica un recuento de filas afectadas a la aplicación cliente al finalizar el comando para `SELECT`, `COPY` o `UNLOAD`. En cambio, `ACTIVITYCOUNT` sí. 

activitycount\$101.sql:

```
select viewname, schemaname
from pg_views
where schemaname = 'not_existing_schema';
\if :ACTIVITYCOUNT = 0
\remark 'views do not exist'
\endif
```

Salida de la consola:

```
viewname | schemaname
----------+------------
(0 rows)

views do not exist
```

## ERRORLEVEL
<a name="rsql-query-tool-describe-rset-errorlevel"></a>

Asigna los niveles de gravedad a los errores. Utilice los niveles de gravedad para determinar un procedimiento a seguir. Si el comando `ERRORLEVEL` no se ha utilizado, su valor es `ON` de manera predeterminada.

errorlevel\$101.sql:

```
\rset errorlevel 42P01 severity 0

select * from tbl;

select 1 as col;

\echo exit
\quit
```

Salida de la consola:

```
Errorlevel is on.
rsql: ERROR: relation "tbl" does not exist
(1 row)

col
1

exit
```

## HEADING y RTITLE
<a name="rsql-query-tool-describe-rset-heading-rtitle"></a>

Permite a los usuarios especificar un encabezado que aparece en la parte superior de un informe. El encabezado que especifica el comando `RSET RTITLE` incluye automáticamente la fecha actual del sistema de la computadora cliente.

Contenido de rset\$1heading\$1rtitle\$102.rsql:

```
\remark Starting...
\rset rtitle "Marketing Department||Confidential//Third Quarter//Chicago"
\rset width 70
\rset rformat on
select * from rsql_test.tbl_currency order by id limit 2;
\exit
\remark Finishing...
```

Salida de la consola:

```
Starting...
Rtitle is set to: &DATE||Marketing Department||Confidential//Third Quarter//Chicago (Changes will take effect after RFORMAT is
switched ON)
Target width is 70.
Rformat is on.
09/11/20       Marketing       Department Confidential
                  Third Quarter
                     Chicago
id  | bankid  | name |      start_date
100 |       1 | USD | 2020-09-11 10:51:39.106905
110 |       1 | EUR | 2020-09-11 10:51:39.106905
(2 rows)

Press any key to continue . . .
```

## MAXERROR
<a name="rsql-query-tool-describe-rset-maxerror"></a>

Designa un nivel máximo de gravedad de los errores a partir del que RSQL termina el procesamiento de trabajos. Los códigos de devolución son valores enteros que RSQL devuelve al sistema operativo cliente después de completar cada trabajo o tarea. El valor del código de devolución indica el estado de finalización del trabajo o tarea. Si un script contiene una instrucción que produce un nivel de gravedad de error superior al valor de `maxerror` designado, RSQL se cierra inmediatamente. Por lo tanto, para que RSQL se cierre con un nivel de gravedad de error de 8, utilice `RSET MAXERROR 7`.

Contenido de maxerror\$101.sql:

```
\rset maxerror 0
                        
select 1 as col;

\quit
```

Salida de la consola:

```
Maxerror is default.
(1 row)

col
1
```

## RFORMAT
<a name="rsql-query-tool-describe-rset-heading-rformat"></a>

Permite a los usuarios especificar si se aplicará la configuración de los comandos de formato.

Contenido de rset\$1rformat.rsql:

```
\remark Starting...
\pset border 2
\pset format wrapped
\pset expanded on
\pset title 'Great Title'
select * from rsql_test.tbl_long where id = 500;
\rset rformat
select * from rsql_test.tbl_long where id = 500;
\rset rformat off
select * from rsql_test.tbl_long where id = 500;
\rset rformat on
select * from rsql_test.tbl_long where id = 500;
\exit
\remark Finishing...
```

Salida de la consola:

```
Starting...
Border style is 2. (Changes will take effect after RFORMAT is switched ON)
Output format is wrapped. (Changes will take effect after RFORMAT is switched ON)
Expanded display is on. (Changes will take effect after RFORMAT is switched ON)
Title is "Great Title". (Changes will take effect after RFORMAT is switched ON)
id  |                                                             long_string
500 | In general, the higher the number the more borders and lines the tables will have, but details depend on the particular
format.
(1 row)

Rformat is on.
Great Title
+-[ RECORD 1 ]+----------------------------------------------------------------------------------------------------------------------
-----------+
| id           | 500
|
| long_string | In general, the higher the number the more borders and lines the tables will have, but details depend on the
particular format. |
+-------------+----------------------------------------------------------------------------------------------------------------------
-----------+

Rformat is off.
id  |                                                             long_string
500 | In general, the higher the number the more borders and lines the tables will have, but details depend on the particular format.
(1 row)

Rformat is on.
Great Title
+-[ RECORD 1 ]+----------------------------------------------------------------------------------------------------------------------
-----------+
| id           | 500
|
| long_string | In general, the higher the number the more borders and lines the tables will have, but details depend on the
particular format. |
+-------------+----------------------------------------------------------------------------------------------------------------------
-----------+
Press any key to continue . . .
```

## ROW\$1COUNT
<a name="rsql-query-tool-describe-rset-row_count"></a>

Obtiene el número de registros a los que afecta la consulta anterior. Normalmente se utiliza para comprobar un resultado, como en el siguiente fragmento de código:

```
SET result = ROW_COUNT;

IF result = 0
...
```

## TITLEDASHES
<a name="rsql-query-tool-describe-rset-heading-titledashes"></a>

Este control permite a los usuarios especificar si se imprimirá una línea de caracteres de guion encima de los datos de columna devueltos para las instrucciones SQL.

Ejemplo:

```
\rset titledashes on
select dept_no, emp_no, salary from rsql_test.EMPLOYEE
where dept_no = 100;
\rset titledashes off
select dept_no, emp_no, salary from rsql_test.EMPLOYEE
where dept_no = 100;
```

Salida de la consola:

```
dept_no      emp_no          salary
----------- ----------- --------------------
100         1000346        1300.00
100         1000245        5000.00
100         1000262        2450.00

dept_no     emp_no         salary
100         1000346        1300.00
100         1000245        5000.00
100         1000262        2450.00
```

## WIDTH
<a name="rsql-query-tool-describe-rset-heading-width"></a>

Establece el formato de salida como ajustado y especifica la anchura de destino de cada línea de un informe. Sin un parámetro, devuelve la configuración actual para el formato y para la anchura de destino.

Contenido de rset\$1width\$101.rsql:

```
\echo Starting...
\rset width
\rset width 50
\rset width
\quit
\echo Finishing...
```

Salida de la consola:

```
Starting...
Target width is 75.
Target width is 50.
Target width is 50.
Press any key to continue . . .
```

Ejemplo con parámetro:

```
\echo Starting...
\rset rformat on
\pset format wrapped
select * from rsql_test.tbl_long where id = 500;
\rset width 50
select * from rsql_test.tbl_long where id = 500;
\quit
\echo Finishing...
```

Salida de la consola:

```
Starting...
Rformat is on.
Output format is wrapped.
id  |                                          long_string
500 | In general, the higher the number the more borders and lines the ta.
    |.bles will have, but details depend on the particular format.
(1 row)

Target width is 50.
id  |                                          long_string
500 | In general, the higher the number the more.
    |. borders and lines the tables will have, b.
    |.ut details depend on the particular format.
    |..
(1 row)
Press any key to continue . . .
```

# Códigos de error de Amazon Redshift RSQL
<a name="rsql-query-tool-error-codes"></a>

Mensajes de éxito, advertencias y excepciones:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/rsql-query-tool-error-codes.html)

Excepciones de datos:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/rsql-query-tool-error-codes.html)

Violaciones de restricciones de integridad:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/rsql-query-tool-error-codes.html)

# Variables de entorno de Amazon Redshift RSQL
<a name="rsql-query-tool-environment-variables"></a>

 Amazon Redshift RSQL puede utilizar variables de entorno para seleccionar valores de parámetros predeterminados. 

## RSPASSWORD
<a name="rsql-query-tool-rspassword"></a>

**importante**  
No recomendamos utilizar esta variable de entorno por motivos de seguridad, ya que algunos sistemas operativos permiten a los usuarios no administrativos ver las variables de entorno de los procesos.

 Establece la contraseña de Amazon Redshift RSQL que se utilizará al conectarse a Amazon Redshift. Esta variable de entorno requiere Amazon Redshift RSQL 1.0.4 y superior. 

 RSQL da prioridad a RSPASSWORD si se establece uno. Si RSPASSWORD no está configurado y se está conectando mediante DSN, RSQL toma la contraseña de los parámetros del archivo DSN. Por último, si RSPASSWORD no está configurado y no está utilizando DSN, RSQL proporciona un mensaje de contraseña después de intentar conectarse. 

A continuación se muestra un ejemplo de cómo configurar un RSPASSWORD:

```
export RSPASSWORD=TestPassw0rd
```

# Puede conectarse a Amazon Redshift con un perfil de autenticación.
<a name="connecting-with-authentication-profiles"></a>

Si tiene muchas conexiones a Amazon Redshift, puede ser difícil administrar la configuración de todas ellas. A menudo, cada conexión JDBC u ODBC utiliza opciones de configuración específicas. Mediante un perfil de autenticación, puede almacenar las opciones de conexión juntas. De esta forma, los usuarios pueden elegir un perfil con el que se conectarán y evitar administrar la configuración de opciones individuales. Los perfiles se pueden aplicar a varios escenarios y tipos de usuario.

Después de crear un perfil de autenticación, los usuarios pueden agregar el perfil listo para usar a una cadena de conexión. De este modo, pueden conectarse a Amazon Redshift con la configuración correcta para cada rol y caso de uso.

Para obtener información de la API de Amazon Redshift, consulte [CreateAuthenticationProfile](https://docs.aws.amazon.com/redshift/latest/APIReference/redshift-api.pdf#API_CreateAuthenticationProfile). 

# Creación de un perfil de autenticación
<a name="connecting-with-authentication-profiles-creating"></a>

Con el uso de la AWS CLI, crea un perfil de autenticación con el comando `create-authentication-profile`. De este modo, se presupone que dispone de un clúster de Amazon Redshift y una base de datos existentes. Sus credenciales deben tener permiso para conectarse a la base de datos de Amazon Redshift y derechos para obtener el perfil de autenticación. Proporciona las opciones de configuración como cadena JSON o hace referencia a un archivo que contiene la cadena JSON. 

```
create-authentication-profile --authentication-profile-name<value: String> --authentication-profile-content<value: String>
```

 En el siguiente ejemplo, se crea un perfil denominado `ExampleProfileName`. Aquí, puede agregar claves y valores que definan el nombre de su clúster y otras configuraciones de opciones, como una cadena JSON. 

```
create-authentication-profile --authentication-profile-name "ExampleProfileName" --authentication-profile-content "{\"AllowDBUserOverride\":\"1\",\"Client_ID\":\"ExampleClientID\",\"App_ID\":\"ExampleAppID\",\"AutoCreate\":false,\"enableFetchRingBuffer\":true,\"databaseMetadataCurrentDbOnly\":true}"
}
```

 Este comando crea el perfil con la configuración JSON especificada. Se devuelve lo siguiente, lo que indica que se ha creado el perfil. 

 `{"AuthenticationProfileName": "ExampleProfileName", "AuthenticationProfileContent": "{\"AllowDBUserOverride\":\"1\",\"Client_ID\":\"ExampleClientID\",\"App_ID\":\"ExampleAppID\",\"AutoCreate\":false,\"enableFetchRingBuffer\":true,\"databaseMetadataCurrentDbOnly\":true}" } ` 

## Limitaciones y cuotas para crear un perfil de autenticación
<a name="connecting-with-authentication-profiles-limitations"></a>

Cada cliente tiene una cuota de diez (10) perfiles de autenticación.

Pueden producirse ciertos errores con los perfiles de autenticación. Algunos ejemplos son si crea un nuevo perfil con un nombre existente o si supera su cuota de perfil. Para obtener más información, consulte [CreateAuthenticationProfile](https://docs.aws.amazon.com/redshift/latest/APIReference/redshift-api.pdf#API_CreateAuthenticationProfile). 

No se pueden almacenar ciertos valores y claves de opción para cadenas de conexión JDBC, ODBC y Python en el almacén de perfiles de autenticación: 
+ `AccessKeyID`
+ `access_key_id`
+ `SecretAccessKey`
+ `secret_access_key_id`
+ `PWD`
+ `Password`
+ `password`

No puede almacenar la clave o el valor `AuthProfile` en el almacén de perfiles, para cadenas de conexión JDBC u ODBC. Para las conexiones de Python, no puede almacenar `auth_profile`. 

Los perfiles de autenticación se almacenan en Amazon DynamoDB y se administran mediante AWS.

# Conexión con un perfil de autenticación
<a name="connecting-with-authentication-profiles-using"></a>

Después de crear un perfil de autenticación, puede incluir el nombre del perfil como opción de conexión para la versión 2.0 de JDBC . 2.0 `AuthProfile`. Con esta opción de conexión se recuperan las configuraciones almacenadas.

```
jdbc:redshift:iam://endpoint:port/database?AuthProfile=<Profile-Name>&AccessKeyID=<Caller-Access-Key>&SecretAccessKey=<Caller-Secret-Key>
```

A continuación, se muestra un ejemplo de la cadena URL de un JDBC.

```
jdbc:redshift:iam://examplecluster:us-west-2/dev?AuthProfile="ExampleProfile"&AccessKeyID="AKIAIOSFODNN7EXAMPLE"&SecretAccessKey="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
```

Especifique tanto `AccessKeyID` como `SecretAccessKey` en la URL de JDBC, junto con el nombre del perfil de autenticación.

También puede separar las opciones de configuración con delimitadores de punto y coma, como en el siguiente ejemplo, que incluye opciones para registrar.

```
jdbc:redshift:iam://my_redshift_end_point:5439/dev?LogLevel=6;LogPath=/tmp;AuthProfile=my_profile;AccessKeyID="AKIAIOSFODNN7EXAMPLE";SecretAccessKey="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
```

**nota**  
 No agregue información confidencial al perfil de autenticación. Por ejemplo, no almacene un valor `AccessKeyID` o `SecretAccessKey` en un perfil de autenticación. El almacén de perfiles de autenticación tiene reglas para prohibir el almacenamiento de claves secretas. Se produce un error si intenta almacenar una clave y un valor asociados a información confidencial. 

# Obtención de perfiles de autenticación
<a name="connecting-with-authentication-profiles-getting"></a>

Para enumerar los perfiles de autenticación existentes, llame al siguiente comando.

```
describe-authentication-profiles --authentication-profile-name <value: String>
```

En el siguiente ejemplo, se muestran dos perfiles recuperados. Se devuelven todos los perfiles si no especifica un nombre de perfil.

`{ "AuthenticationProfiles": [ { "AuthenticationProfileName": "testProfile1", "AuthenticationProfileContent": "{\"AllowDBUserOverride\":\"1\",\"Client_ID\":\"ExampleClientID\",\"App_ID\":\"ExampleAppID\",\"AutoCreate\":false,\"enableFetchRingBuffer\":true,\"databaseMetadataCurrentDbOnly\":true}" }, { "AuthenticationProfileName": "testProfile2", "AuthenticationProfileContent": "{\"AllowDBUserOverride\":\"1\",\"Client_ID\":\"ExampleClientID\",\"App_ID\":\"ExampleAppID\",\"AutoCreate\":false,\"enableFetchRingBuffer\":true,\"databaseMetadataCurrentDbOnly\":true}" } ] } `

# Solución de problemas de conexión en Amazon Redshift
<a name="troubleshooting-connections"></a>

 Si tiene problemas para conectarse a su clúster desde una herramienta de cliente SQL, hay distintos puntos que puede controlar para acotar la solución del problema. Si está usando certificados SSL o de servidor, primero elimine esta complejidad mientras solucione el problema de conexión. Una vez que haya encontrado una solución, vuelva a agregarla. Para obtener más información, consulte [Configuración de las opciones de seguridad para las conexiones](connecting-ssl-support.md). 

Para obtener información sobre los cambios de comportamiento en la funcionalidad de Amazon Redshift que pueden afectar a la aplicación, consulte [Cambios de comportamiento en Amazon Redshift](behavior-changes.md).

**importante**  
Amazon Redshift ha cambiado la forma en que se administran los certificados SSL. Si tiene problemas para conectarse mediante SSL, es posible que tenga que actualizar sus certificados de CA raíz de confianza actuales. Para obtener más información, consulte [Migración a certificados de ACM para las conexiones SSL](connecting-transitioning-to-acm-certs.md).

 En la siguiente sección, se muestran algunos ejemplos de mensajes de error y posibles soluciones para los problemas de conexión. Como las diferentes herramientas de cliente SQL proporcionan diferentes mensajes de error, esta no es un lista completa, pero debe ser un buen punto de partida para la solución de problemas. 

## Conexión desde fuera de Amazon EC2 y encontrarse con un problema con el tiempo de espera del firewall
<a name="connecting-firewall-guidance"></a>



 Su conexión cliente a la base de datos parece que dejó de funcionar o que superó el tiempo de espera mientras ejecutaba consultas largas, como un comando COPY. En este caso, es posible que observe que la consola de Amazon Redshift muestra que se ha completado la consulta, pero, aparentemente, la propia herramienta cliente sigue ejecutando la consulta. Los resultados de la consulta podrían ser que falta procesar o que está incompleta según cuándo se haya detenido la conexión. 

### Posibles soluciones:
<a name="connecting-firewall-guidance.Solutions"></a>

Este problema ocurre cuando se conecta a Amazon Redshift desde una máquina que no sea una instancia de Amazon EC2. En este caso, las conexiones inactivas se terminan con un componente de red intermedio, como un firewall, tras un periodo de inactividad. Este comportamiento es normal cuando se accede desde una red privada virtual (VPN) o desde la red local. 

Para evitar estos tiempos de espera, le recomendamos realizar los siguientes cambios:
+ Aumentar los valores del sistema cliente que administran los tiempos de espera de TCP/IP. Realice estos cambios en el equipo que está usando para conectarse a su clúster. El periodo de tiempo de espera debe adaptarse a su cliente y su red. Para obtener más información, consulte [Modificación de la configuración del tiempo de espera de TCP/IP](#connecting-firewall-guidance.change-tcpip-settings).
+ Si lo prefiere, configure el comportamiento de keepalive en el nivel de DSN. Para obtener más información, consulte [Modificación de la configuración del tiempo de espera del DSN](#connecting-firewall-guidance.change-dsn-settings).

### Modificación de la configuración del tiempo de espera de TCP/IP
<a name="connecting-firewall-guidance.change-tcpip-settings"></a>

Para cambiar la configuración del tiempo de espera de TCP/IP, establezca las configuraciones de tiempo de espera conforme al sistema operativo que usa para conectarse a su clúster. 
+ Linux: si su cliente se está ejecutando en Linux, ejecute el siguiente comando como usuario raíz para cambiar la configuración del tiempo de espera para la sesión actual: 

  ```
  /sbin/sysctl -w net.ipv4.tcp_keepalive_time=200 net.ipv4.tcp_keepalive_intvl=200 net.ipv4.tcp_keepalive_probes=5
  ```

  Para continuar con la configuración, cree o modifique el archivo `/etc/sysctl.conf` con los siguientes valores y, luego, reinicie su sistema. 

  ```
  net.ipv4.tcp_keepalive_time=200
  net.ipv4.tcp_keepalive_intvl=200
  net.ipv4.tcp_keepalive_probes=5
  ```
+ Windows: si su cliente se ejecuta en Windows, edite los valores para las siguientes configuraciones de registro en HKEY\$1LOCAL\$1MACHINE\$1SYSTEM\$1CurrentControlSet\$1Services\$1Tcpip\$1Parameters\$1: 
  + KeepAliveTime: 30000
  + KeepAliveInterval: 1000
  + TcpMaxDataRetransmissions: 10

  Estas configuraciones usan tipos de datos DWORD. Si no existen en la ruta de registro, puede crear las configuraciones y especificar estos valores recomendados. Para obtener más información acerca de cómo editar el registro de Windows, consulte la documentación de Windows. 

  Después de configurar estos valores, reinicie su equipo para que se apliquen los cambios. 

 
+ Mac: si su cliente se está ejecutando en una Mac, ejecute los siguientes comandos para cambiar la configuración de tiempo de espera para la sesión actual: 

  ```
  sudo sysctl net.inet.tcp.keepintvl=200000
  sudo sysctl net.inet.tcp.keepidle=200000
  sudo sysctl net.inet.tcp.keepinit=200000
  sudo sysctl net.inet.tcp.always_keepalive=1
  ```

  Para continuar con la configuración, cree o modifique el archivo `/etc/sysctl.conf` con los siguientes valores: 

  ```
  net.inet.tcp.keepidle=200000
  net.inet.tcp.keepintvl=200000
  net.inet.tcp.keepinit=200000
  net.inet.tcp.always_keepalive=1
  ```

  Reinicie su equipo y, luego, ejecute los siguientes comandos para controlar que los valores están configurados. 

  ```
  sysctl net.inet.tcp.keepidle
  sysctl net.inet.tcp.keepintvl
  sysctl net.inet.tcp.keepinit
  sysctl net.inet.tcp.always_keepalive
  ```

### Modificación de la configuración del tiempo de espera del DSN
<a name="connecting-firewall-guidance.change-dsn-settings"></a>

Puede configurar el comportamiento de keepalive en el nivel de DSN que elija. Puede hacerlo agregando o modificando los siguientes parámetros en el archivo odbc.ini: 

**KeepAlivesCount**  
La cantidad de paquetes keepalive de TCP que se pueden perder antes de que se considere que se interrumpió la conexión.

**KeepAlivesIdle**  
La cantidad de segundos de inactividad antes de que el controlador envíe un paquete keepalive de TCP.

**KeepAlivesInterval**  
La cantidad de segundos entre cada retransmisión de keepalive de TCP.

Si estos parámetros no existen o si tienen un valor 0, el sistema usará los parámetros keepalive especificados para TCP/IP con objeto de determinar el comportamiento keepalive del DSN. En Windows, puede encontrar los parámetros TCP/IP en el registro en `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\`. En Linux y Mac OS, puede encontrar los parámetros de TCP/IP en el archivo sysctl.conf. 

## La conexión devuelve un error o se rechaza
<a name="connecting-refusal-failure-issues"></a>

Si la conexión se rechaza o produce un error, es posible que reciba un error similar a uno de los siguientes.
+ "No se pudo establecer conexión con *<endpoint>*".
+ "No se pudo conectar al servidor: se ha agotado el tiempo de espera. ¿El servidor se está ejecutando en el host *'<endpoint>'* y acepta conexiones TCP/IP en el puerto *'<port>'*?"
+ "Conexión rechazada. Compruebe que el nombre de host y el puerto sean los correctos y que el administrador de correo acepte conexiones TCP/IP".

### Posibles soluciones:
<a name="connecting-refusal-failure-issues.Solutions"></a>

Generalmente, cuando recibe un mensaje de error indicando que hay un error al establecer una conexión, se trata de un problema con el permiso para acceder al clúster o con el tráfico de red que llega al clúster. 

Para conectarse al clúster desde una herramienta cliente fuera de la red en la que se encuentra el clúster, debe agregar una regla de entrada al grupo de seguridad del clúster. La configuración de las reglas depende de si el clúster de Amazon Redshift se ha creado en una nube privada virtual (VPC):
+ Si ha creado el clúster de Amazon Redshift en una nube privada virtual (VPC) basada en Amazon VPC, agregue una regla de entrada al grupo de seguridad de VPC que especifique la dirección CIDR/IP del cliente, en Amazon VPC. Para obtener más información sobre la configuración de los grupos de seguridad de la VPC para su clúster y las opciones de acceso público, consulte [Recursos de Redshift en una VPC](managing-clusters-vpc.md).
+  Si creó su clúster de Amazon Redshift fuera de una VPC, agregue su dirección CIDR/IP de cliente al grupo de seguridad del clúster en Amazon Redshift. Para obtener más información acerca de cómo configurar los grupos de seguridad del clúster, consulte [Grupos de seguridad de Amazon Redshift](security-network-isolation.md#working-with-security-groups).

Si intenta conectarse al clúster desde una herramienta cliente que se ejecuta en una instancia de Amazon EC2, agregue también una regla de entrada. En este caso, agregue una regla al grupo de seguridad del clúster. La regla debe especificar el grupo de seguridad de Amazon EC2 asociado a la instancia de Amazon EC2 de la herramienta cliente.

 En algunos casos, es posible que tenga una capa entre el cliente y el servidor, como un firewall. En estos casos, asegúrese de que el firewall acepte conexiones entrantes a través del puerto que configuró para el clúster. 

## El cliente y el controlador son incompatibles
<a name="connecting-architecture-mismatch"></a>

 Si el cliente y el controlador son incompatibles, es posible que reciba un mensaje de error que diga: “El DSN especificado contiene una arquitectura que no coincide entre el controlador y la aplicación”. 

### Posibles soluciones:
<a name="connecting-architecture-mismatch.Solutions"></a>

 Cuando intenta conectarse y obtiene un error sobre una discordancia de arquitectura, esto significa que la herramienta cliente y el controlador no son compatibles. Esto ocurre porque su arquitectura del sistema no coincide. Por ejemplo, esto puede ocurrir si tiene una herramienta de cliente de 32 bits, pero tiene instalada la versión de 64 bits del controlador. Algunas veces, las herramientas de cliente de 64 bits pueden usar controladores de 32 bits, pero no puede usar aplicaciones de 32 bits con controladores de 64 bits. Asegúrese de que el controlador y la herramienta de cliente estén usando la misma versión de arquitectura de sistema. 

## Falta de respuesta de las consultas y pérdidas de consultas antes de llegar al clúster
<a name="connecting-drop-issues"></a>

Tiene un problema con la finalización de las consultas. Aparentemente, las consultas se están ejecutan pero dejan de responder en la herramienta de cliente SQL. Algunas veces, las consultas no aparecen en el clúster, como en las tablas de sistema o en la consola de Amazon Redshift. 

### Posibles soluciones:
<a name="connecting-drop-issues.Solutions"></a>

 Este problema puede ocurrir debido a la pérdida de paquetes. En este caso, hay una diferencia en el tamaño máximo de la unidad de transmisión (MTU) en la ruta de red entre dos hosts de Internet Protocol (IP). El tamaño de la MTU determina el tamaño máximo, en bytes, de un paquete que puede ser transferido en una trama Ethernet desde una conexión de red. En AWS, algunos tipos de instancia de Amazon EC2 admiten una MTU de 1500 (tramas Ethernet v2) y otros tipos de instancia admiten una MTU de 9001 (tramas gigantes TCP/IP). 

 Para evitar problemas relacionados con las diferencias en tamaños de la MTU, recomendamos realizar alguna de las siguientes operaciones: 
+ Si el clúster utiliza la plataforma EC2-VPC, configure el grupo de seguridad de Amazon VPC con una regla de entrada personalizada del protocolo de mensajes de control de Internet (ICMP, Internet Control Message Protocol) que devuelva `Destination Unreachable`. Por lo tanto, la regla indica al host de origen que utilice el tamaño mínimo de MTU a lo largo de la ruta de red. Para obtener más información acerca de este método, consulte [Configuración de los grupos de seguridad para permitir el ICMP "Destination Unreachable"](#configure-custom-icmp). 
+ Si el clúster usa la plataforma EC2-Classic o si no puede permitir la regla entrante de ICMP, deshabilite las tramas gigantes TCP/IP para que se usen las tramas Ethernet v2. Para obtener más información acerca de este método, consulte [Configuración de la MTU de una instancia](#set-mtu).

### Configuración de los grupos de seguridad para permitir el ICMP "Destination Unreachable"
<a name="configure-custom-icmp"></a>

 Cuando haya una diferencia en el tamaño de la MTU en la red entre los dos hosts, primero asegúrese de que su configuración de red no bloque la detección de la MTU de la ruta (PMTUD). La PMTUD permite que el host receptor responda al host origen con el siguiente mensaje de ICMP: `Destination Unreachable: fragmentation needed and DF set (ICMP Type 3, Code 4)`. Este mensaje le indica al host origen que use el mínimo tamaño de la MTU en la ruta de la red para volver a enviar la solicitud. Sin esta negociación, puede perderse el paquete porque la solicitud es muy grande para que la acepte el host receptor. Para obtener más información acerca de este mensaje de ICMP, consulte [RFC792](http://tools.ietf.org/html/rfc792) en el sitio web *Internet Engineering Task Force (IETF)*. 

 Si no configura de forma explícita esta regla de entrada de ICMP para su grupo de seguridad de Amazon VPC, se bloquea la PMTUD. En AWS, los grupos de seguridad son como un firewall virtual que especifican reglas para controlar el tráfico entrante y saliente de una instancia. Para obtener información acerca del grupo de seguridad del clúster de Amazon Redshift, consulte [Grupos de seguridad de Amazon Redshift](security-network-isolation.md#working-with-security-groups). Para los clústeres que usan la plataforma EC2-VPC, Amazon Redshift utiliza grupos de seguridad de VPC para permitir o rechazar el tráfico al clúster. De manera predeterminada, los grupos de seguridad están bloqueados y rechazan el tráfico entrante. Para obtener información acerca de cómo configurar reglas de entrada y salida para instancias EC2-Classic o EC2-VPC, consulte [Diferencias entre instancias en EC2-Classic y una VPC](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-classic-platform.html#ec2_classic_platform) en la *Guía del usuario de Amazon EC2*.

 Para obtener más información acerca de cómo agregar reglas a los grupos de seguridad de VPC, consulte [Grupos de seguridad de la VPC](managing-vpc-security-groups.md). Para obtener más información acerca de la configuración específica de PMTUD que se requiere en esta regla, consulte [Detección de la MTU de la ruta](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/network_mtu.html#path_mtu_discovery) en la *Guía del usuario de Amazon EC2.* 

### Configuración de la MTU de una instancia
<a name="set-mtu"></a>

En algunos casos, el clúster puede usar la plataforma EC2-Classic o no puede permitir la regla ICMP personalizada para el tráfico entrante. En estos casos, se recomienda ajustar la MTU a 1500 en la interfaz de red (NIC) de las instancias EC2 desde las que se conecta al clúster de Amazon Redshift. Este ajuste deshabilita las tramas gigantes TCP/IP para garantizar que las conexiones usen siempre el mismo tamaño de paquete. No obstante, esta opción reduce el rendimiento máximo de su red para toda la instancia, no solo para las conexiones a Amazon Redshift. Para obtener más información, consulte los siguientes procedimientos. <a name="set-mtu-win-os"></a>

**Pasos para configurar la MTU en un sistema operativo Microsoft Windows**

Si su cliente se ejecuta en un sistema operativo Microsoft Windows, puede revisar y configurar el valor de la MTU para el adaptador Ethernet usando el comando `netsh`. 

1. Ejecute el siguiente comando para determinar el valor actual de la MTU: 

   ```
   netsh interface ipv4 show subinterfaces
   ```

1.  Revise el valor de `MTU` para el adaptador `Ethernet` en la salida. 

1. Si el valor no es `1500`, ejecute el siguiente comando para verlo: 

   ```
   netsh interface ipv4 set subinterface "Ethernet" mtu=1500 store=persistent
   ```

   Después de configurar este valor, reinicie su equipo para que se apliquen los cambios.<a name="set-mtu-linux-os"></a>

**Pasos para configurar la MTU en un sistema operativo Linux**

 Si su cliente se ejecuta en un sistema operativo Linux, puede revisar y configurar el valor de la MTU usando el comando `ip`. 

1. Ejecute el siguiente comando para determinar el valor actual de la MTU: 

   ```
   $ ip link show eth0
   ```

1. Revise el valor posterior a `mtu` en la salida. 

1. Si el valor no es `1500`, ejecute el siguiente comando para verlo: 

   ```
   $ sudo ip link set dev eth0 mtu 1500
   ```<a name="set-mtu-mac-os"></a>

**Pasos para configurar la MTU en un sistema operativo Mac**
+ Siga las instrucciones del sitio de soporte de macOS sobre `How to change the MTU for troubleshooting purposes`. Para obtener más información, consulte el [sitio web de soporte. ](https://support.apple.com) 

## Configuración del parámetro de tamaño de búsqueda de la JDBC
<a name="jdbc_fetch_size"></a>

De forma predeterminada, el controlador JDBC de Redshift usa un búfer de anillo para administrar la memoria de manera eficiente y evitar errores de falta de memoria. El parámetro de tamaño de recuperación solo se aplica cuando el búfer de anillo está desactivado de forma explícita. Para obtener más información, consulte el [enlace](https://docs.aws.amazon.com/redshift/latest/mgmt/jdbc20-configuration-options.html#jdbc20-enablefetchringbuffer-option). En esta configuración, debe establecer el tamaño de búsqueda para controlar el número de filas que se recuperan en cada lote.

Utilice el parámetro de tamaño de búsqueda cuando:
+ Necesita un control detallado sobre el procesamiento por lotes basado en filas
+ Se trabaja con aplicaciones antiguas que requieren un comportamiento de tamaño de búsqueda tradicional

Cuando el búfer de anillo está desactivado, el controlador JDBC recopila todos los resultados de una consulta a la vez de forma predeterminada. Las consultas que devuelven conjuntos de resultados grandes pueden consumir memoria excesiva. Para recuperar los conjuntos de resultados en lotes en lugar de recuperarlos todos a la vez, defina el parámetro de tamaño de búsqueda de JDBC en la aplicación.

**nota**  
El tamaño de búsqueda no es compatible con la Open Database Connectivity (ODBC, Conectividad de base de datos abierta).

Para conseguir el mejor rendimiento, configure el tamaño de búsqueda con el valor máximo que no genere errores de memoria insuficiente. Un valor de tamaño de búsqueda inferior genera más vueltas en el servidor, lo que prolonga los tiempos de ejecución. El servidor reserva recursos, incluido el slot de consultas de Workload Management (WLM, Administración de cargas de trabajo) y la memoria asociada hasta que el cliente recupera todo el conjunto de resultados o hasta que se cancela la consulta. Cuando ajusta el tamaño de búsqueda como corresponde, esos recursos se liberan con mayor rapidez, lo que hace que queden disponibles para otras consultas.

**nota**  
Si necesita extraer grandes conjuntos de datos, le recomendamos que utilice una instrucción [UNLOAD](https://docs.aws.amazon.com/redshift/latest/dg/r_UNLOAD.html) para transferir los datos a Amazon S3. Cuando usa UNLOAD, los nodos de computación trabajan en paralelo para acelerar la transferencia de datos.

Para obtener más información acerca de la configuración de los parámetros de tamaño de búsqueda de JDBC, visite [Getting results based on a cursor](https://jdbc.postgresql.org/documentation/query/#getting-results-based-on-a-cursor) en la documentación de PostgreSQL.

# Uso de la API de datos de Amazon Redshift
<a name="data-api"></a>

La API de datos de Amazon Redshift simplifica el acceso al almacenamiento de datos de Amazon Redshift al eliminar la necesidad de administrar controladores de bases de datos, conexiones, configuraciones de red, almacenamiento de datos en búfer, credenciales y mucho más. Puede ejecutar instrucciones SQL mediante las operaciones de la API de datos con el AWS SDK. Para obtener más información sobre las operaciones de la API de datos, consulte [Referencia de la API de datos de Amazon Redshift](https://docs.aws.amazon.com/redshift-data/latest/APIReference/).

La API de datos no requiere una conexión persistente a la base de datos. En su lugar, proporciona un punto de enlace HTTP seguro e integración con los AWS SDK. Puede usar el punto de enlace para ejecutar instrucciones SQL sin administrar conexiones. Las llamadas a la API de datos son asíncronas. La API de datos puede utilizar las credenciales almacenadas en AWS Secrets Manager o las credenciales temporales de la base de datos. No es necesario transmitir contraseñas en las llamadas a la API con ninguno de los dos métodos de autorización. Para obtener más información sobre AWS Secrets Manager, consulte [¿Qué es AWS Secrets Manager?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) en la *Guía del usuario de AWS Secrets Manager*. También puede utilizar AWS IAM Identity Center para la autorización.

Con la API de datos, puede obtener acceso mediante programación a los datos de Amazon Redshift con aplicaciones basadas en servicios web, entre ellas, AWS Lambda, cuadernos de Amazon SageMaker AI y AWS Cloud9. Para obtener más información sobre estas aplicaciones, consulte [AWS Lambda](https://aws.amazon.com/lambda/), [Amazon SageMaker AI](https://aws.amazon.com/sagemaker/) y [AWS Cloud9](https://aws.amazon.com/cloud9/). 

Para obtener más información sobre la API de datos, consulte [Introducción a la API de datos de Amazon Redshift](https://aws.amazon.com/blogs/big-data/get-started-with-the-amazon-redshift-data-api/) en el *blog de macrodatos de AWS*.

## Uso de la API de datos de Amazon Redshift
<a name="data-api-workflow"></a>

Antes de utilizar la API de datos de Amazon Redshift, consulte los siguientes pasos: 

1. Determine si usted, como persona que llama a la API de datos, cuenta con la autorización necesaria. Para obtener más información acerca de la autorización , consulte [Autorización del acceso a la API de datos de Amazon Redshift](data-api-access.md).

1. Determine si tiene previsto llamar a la API de datos con credenciales de autenticación de Secrets Manager, credenciales temporales o utilizar AWS IAM Identity Center. Para obtener más información, consulte [Elección de las credenciales de autenticación de base de datos al llamar a la API de datos de Amazon Redshift](#data-api-calling-considerations-authentication).

1. Configure un secreto si utiliza Secrets Manager para las credenciales de autenticación. Para obtener más información, consulte [Almacenamiento de credenciales de base de datos en AWS Secrets Manager](data-api-secrets.md).

1. Revise las consideraciones y las limitaciones que intervienen al llamar a la API de datos. Para obtener más información, consulte [Consideraciones que deben tenerse en cuenta al llamar a la API de datos de Amazon Redshift](#data-api-calling-considerations).

1. Llame a la API de datos desde la AWS Command Line Interface (AWS CLI), desde su propio código o mediante el editor de consultas de la consola de Amazon Redshift. Si desea ver algunos ejemplos de llamadas desde la AWS CLI, consulte [Llamadas a la API de datos](data-api-calling.md).

## Consideraciones que deben tenerse en cuenta al llamar a la API de datos de Amazon Redshift
<a name="data-api-calling-considerations"></a>

Cuando llame a la API de datos, tenga en cuenta los siguientes aspectos:
+ La API de datos de Amazon Redshift puede acceder a las bases de datos de los clústeres aprovisionados de Amazon Redshift y de los grupos de trabajo de Redshift sin servidor. Para obtener una lista de Regiones de AWS en las que está disponible la API de datos de Redshift, consulte los puntos de conexión enumerados para la [API de datos de Redshift](https://docs.aws.amazon.com/general/latest/gr/redshift-service.html) en la *Referencia general de Amazon Web Services*. 
+ La duración máxima de una consulta es de 24 horas. 
+ La cantidad máxima de consultas activas (consultas `STARTED` y `SUBMITTED`) por clúster de Amazon Redshift es de 500. 
+ El tamaño máximo del resultado de la consulta es 500 MB (después de la compresión gzip). Si una llamada devuelve más de 500 MB de datos como respuesta, se terminará la llamada. 
+ El tiempo máximo de retención de los resultados de la consulta es de 24 horas. 
+ El tamaño máximo de las instrucciones de la consulta es de 100 KB. 
+ La API de datos está disponible para consultar clústeres de uno o más nodos con los siguientes tipos de nodos:
  + dc2.large
  + dc2.8xlarge
  + ra3.large
  + ra3.xlplus
  + ra3.4xlarge
  + ra3.16xlarge
+ El clúster debe estar en una nube virtual privada (VPC) basada en el servicio Amazon VPC. 
+ De manera predeterminada, los usuarios que tengan el mismo rol de IAM que el ejecutor de una operación `ExecuteStatement` o `BatchExecuteStatement` de la API pueden actuar en la misma instrucción con las operaciones `CancelStatement`, `DescribeStatement`, `GetStatementResult`, `GetStatementResultV2` y `ListStatements` de la API. Para actuar sobre la misma instrucción SQL de otro usuario, el usuario debe poder asumir el rol de IAM del usuario que ejecutó la instrucción SQL. Para obtener más información sobre cómo asumir un rol, consulte [Autorización del acceso a la API de datos de Amazon Redshift](data-api-access.md). 
+ Las instrucciones SQL del parámetro `Sqls` de la operación de la API `BatchExecuteStatement` se ejecutan como una sola transacción. Se ejecutan en serie en el orden de la matriz. Las instrucciones SQL posteriores no se inician hasta que se completa la instrucción anterior de la matriz. Si alguna instrucción SQL falla, dado que se ejecuta como una sola transacción, se deshace todo el trabajo.
+ El tiempo máximo de retención de un token de cliente utilizado en una operación de API `ExecuteStatement` o `BatchExecuteStatement` es de 8 horas.
+ Si los clústeres aprovisionados por Amazon Redshift y el grupo de trabajo sin servidor de Redshift están cifrados mediante una clave administrada por el cliente, Redshift crea una concesión que permite a la API de datos de Redshift utilizar la clave para sus operaciones. Para obtener más información, consulte [Uso de AWS KMS con la API de datos de Amazon Redshift](data-api-kms.md). 
+ Cada API de la API de datos de Redshift tiene una cuota de transacciones por segundo antes de limitar las solicitudes. Para conocer la cuota, consulte [Cuotas para la API de datos de Amazon Redshift](amazon-redshift-limits.md#data-api-quotas-account). Si la tasa de solicitudes supera la cuota, se devuelve una `ThrottlingException` con el código de estado HTTP 400. Para responder a la limitación, utilice una estrategia de reintentos tal como se describe en el apartado [Comportamiento de los reintentos](https://docs.aws.amazon.com/sdkref/latest/guide/feature-retry-behavior.html) de la *Guía de referencia de los SDK y las herramientas de AWS*. Esta estrategia se implementa automáticamente para los errores de limitación en algunos SDK de AWS.
**nota**  
De forma predeterminada, los reintentos no están habilitados en AWS Step Functions. Si necesita llamar a una API de datos de Redshift en una máquina de estados de Step Functions, incluya el parámetro de idempotencia `ClientToken` en la llamada a la API de datos de Redshift. El valor de `ClientToken` debe persistir entre los reintentos. En el siguiente fragmento de ejemplo de una solicitud a la API `ExecuteStatement`, la expresión `States.ArrayGetItem(States.StringSplit($$.Execution.Id, ':'), 7)` utiliza una función intrínseca para extraer la parte del UUID de `$$.Execution.Id`, que es única para cada ejecución de la máquina de estado. Para obtener más información, consulte [Funciones intrínsecas](https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html) en la *Guía para desarrolladores de AWS Step Functions*.  

  ```
  {
    "Database": "dev",
    "Sql": "select 1;",
    "ClusterIdentifier": "MyCluster",
    "ClientToken.$": "States.ArrayGetItem(States.StringSplit($$.Execution.Id, ':'), 7)"
  }
  ```

## Elección de las credenciales de autenticación de base de datos al llamar a la API de datos de Amazon Redshift
<a name="data-api-calling-considerations-authentication"></a>

Cuando se llama a la API de datos, se utiliza uno de los siguientes métodos de autenticación en determinadas operaciones de la API. Para cada método, se requiere una combinación diferente de parámetros. 

**AWS IAM Identity Center**  
Se puede acceder a la API de datos con un usuario de inicio de sesión único registrado en AWS IAM Identity Center. Para obtener información sobre los pasos para configurar IAM Identity Center, consulte [Uso de la API de datos con propagación de identidad de confianza](data-api-trusted-identity-propagation.md).

**AWS Secrets Manager**  
Con este método, proporcione el `secret-arn` de un secreto almacenado en AWS Secrets Manager que tenga `username` y `password`. El secreto especificado contiene las credenciales para conectarse a la `database` que se indique. Cuando se conecta a un clúster, también proporciona el nombre de la base de datos. Si proporciona un identificador de clúster (`dbClusterIdentifier`), debe coincidir con el identificador de clúster almacenado en el secreto. Cuando se conecta a un grupo de trabajo sin servidor, también proporciona el nombre de la base de datos. Para obtener más información, consulte [Almacenamiento de credenciales de base de datos en AWS Secrets Manager](data-api-secrets.md).   
Con este método, también puede proporcionar un valor de `region` que especifique la Región de AWS donde se encuentran los datos. 

**Credenciales temporales**  
Con este método, elija una de las siguientes opciones:  
+ Al conectarse a un grupo de trabajo sin servidor, se especifica el nombre del grupo de trabajo y de la base de datos. El nombre de usuario de base de datos se deriva de la identidad de IAM. Por ejemplo, `arn:iam::123456789012:user:foo` tiene el nombre de usuario de base de datos `IAM:foo`. Además, se requiere permiso para llamar a la operación `redshift-serverless:GetCredentials`.
+ Al conectarse a un clúster como una identidad de IAM, especifique el identificador de clúster y el nombre de la base de datos. El nombre de usuario de base de datos se deriva de la identidad de IAM. Por ejemplo, `arn:iam::123456789012:user:foo` tiene el nombre de usuario de base de datos `IAM:foo`. Además, se requiere permiso para llamar a la operación `redshift:GetClusterCredentialsWithIAM`.
+ Al conectarse a un clúster como un usuario de base de datos, especifique el identificador de clúster, el nombre de la base de datos y el nombre de usuario de base de datos. Además, se requiere permiso para llamar a la operación `redshift:GetClusterCredentials`. Para obtener información sobre cómo unir grupos de bases de datos al conectarse con este método, consulte [Unión a grupos de bases de datos al conectarse a un clúster](data-api-dbgroups.md).
Con este método, también puede proporcionar un valor de `region` que especifique la Región de AWS donde se encuentran los datos. 

## Asignación de tipos de datos JDBC al llamar a la API de datos de Amazon Redshift
<a name="data-api-calling-considerations-jdbc"></a>

 En la tabla siguiente se mapean los tipos de datos de Java Database Connectivity (JDBC) con los tipos de datos que especifica en las llamadas a la API de datos.


****  

|  Tipo de datos JDBC  |  Tipo de datos de la API de datos  | 
| --- | --- | 
|  `INTEGER, SMALLINT, BIGINT`  |  `LONG`  | 
|  `FLOAT, REAL, DOUBLE`  |  `DOUBLE`  | 
|  `DECIMAL`  |  `STRING`  | 
|  `BOOLEAN, BIT`  |  `BOOLEAN`  | 
|  `BLOB, BINARY, LONGVARBINARY`  |  `BLOB`  | 
|  `VARBINARY`  |  `STRING`  | 
|  `CLOB`  |  `STRING`  | 
|  Otros tipos (incluidos los tipos relacionados con la fecha y hora)  |  `STRING`  | 

Los valores de las cadenas se transmiten a la base de datos de Amazon Redshift y se convierten implícitamente en un tipo de datos de la base de datos.

**nota**  
Actualmente, la API de datos no admite matrices de identificadores únicos universales (UUID).

## Ejecución de instrucciones SQL con parámetros cuando se llama a la API de datos de Amazon Redshift
<a name="data-api-calling-considerations-parameters"></a>

Puede controlar el texto SQL enviado al motor de base de datos llamando a la operación de la API de datos con los parámetros relativos a partes de la instrucción SQL. Los parámetros con nombre proporcionan una manera flexible de transmitir parámetros sin codificarlos de forma rígida en el texto SQL. Sirven para que vuelva a utilizar el texto SQL y evite los problemas de inyección SQL.

En el siguiente ejemplo, se muestran los parámetros con nombre de un campo `parameters` de un comando `execute-statement` de la AWS CLI.

```
--parameters "[{\"name\": \"id\", \"value\": \"1\"},{\"name\": \"address\", \"value\": \"Seattle\"}]"
```

A la hora de utilizar parámetros con nombre, tenga en cuenta lo siguiente:
+ Los parámetros con nombre solo se pueden usar para reemplazar valores en las instrucciones SQL.
  + Puede reemplazar los valores en una instrucción INSERT, por ejemplo, `INSERT INTO mytable VALUES(:val1)`.

    Los parámetros con nombre pueden estar dispuestos en cualquier orden y se pueden utilizar parámetros más de una vez en el texto SQL. En la opción de parámetros que se muestra en un ejemplo anterior, los valores `1` y `Seattle` se insertan en las columnas de tabla `id` y `address`. En el texto SQL, se especifican los parámetros con nombre de la siguiente manera:

    ```
    --sql "insert into mytable values (:id, :address)"
    ```
  + Puede reemplazar los valores en una cláusula de condiciones, como `WHERE attr >= :val1`, `WHERE attr BETWEEN :val1 AND :val2` y `HAVING COUNT(attr) > :val`.
  + No puede reemplazar los nombres de columna en una instrucción SQL, como `SELECT column-name`, `ORDER BY column-name` o `GROUP BY column-name`.

    Por ejemplo, la siguiente instrucción SELECT tiene un error de sintaxis no válida.

    ```
    --sql "SELECT :colname, FROM event" --parameters "[{\"name\": \"colname\", \"value\": \"eventname\"}]"
    ```

    Si describe (operación `describe-statement`) la instrucción con el error de sintaxis, la `QueryString` que se devuelve no sustituye el nombre de columna por el parámetro (`"QueryString": "SELECT :colname, FROM event"`) y se notifica un error (ERROR: error de sintaxis en o cerca de \$1"FROM\$1"\$1n Posición: 12).
  + No puede reemplazar los nombres de columna en una función de agregación, como `COUNT(column-name)`, `AVG(column-name)` o `SUM(column-name)`.
  + No puede reemplazar los nombres de columna en una cláusula JOIN.
+ Cuando se ejecuta SQL, los datos se convierten de forma implícita en un tipo de datos. Para obtener más información acerca de la conversión de tipos de datos, consulte [Tipos de datos](https://docs.aws.amazon.com/redshift/latest/dg/c_Supported_data_types.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*. 
+ No se puede establecer un valor en NULL. La API de datos lo interpreta como la cadena literal `NULL`. En el siguiente ejemplo, se reemplaza `id` con la cadena literal `null`. No con el valor NULL de SQL. 

  ```
  --parameters "[{\"name\": \"id\", \"value\": \"null\"}]"
  ```
+ No se puede establecer un valor de longitud cero. Se produce un error en la instrucción SQL de la API de datos. En el siguiente ejemplo, se intenta establecer `id` con un valor de longitud cero y se produce un error en la instrucción SQL. 

  ```
  --parameters "[{\"name\": \"id\", \"value\": \"\"}]"
  ```
+ No se puede establecer un nombre de tabla en la instrucción SQL con un parámetro. La API de datos cumple la regla de JDBC `PreparedStatement`. 
+ La salida de la operación `describe-statement` devuelve los parámetros de consulta de una instrucción SQL.
+ Solo la operación `execute-statement` admite instrucciones SQL con parámetros.

## Ejecución de instrucciones SQL con un token de idempotencia cuando se llama a la API de datos de Amazon Redshift
<a name="data-api-calling-considerations-idempotency"></a>

Cuando realiza una solicitud de API de mutación, la solicitud suele devolver un resultado antes de que se hayan completado los flujos de trabajo asíncronos de la operación. También es posible que se agote el tiempo de espera de las operaciones o que surjan otros problemas con el servidor antes de que finalicen, aunque la solicitud ya haya devuelto un resultado. Esto podría dificultar la determinación de si la solicitud se ha realizado correctamente o no, y podría dar lugar a múltiples reintentos para garantizar que la operación se completa correctamente. No obstante, si la solicitud original y los reintentos posteriores se realizan correctamente, la operación se completa varias veces. Esto significa que podría actualizar más recursos de los previstos.

La *idempotencia* garantiza que una solicitud a la API no se complete más de una vez. Con una solicitud idempotente, si la solicitud original se completa correctamente, cualquier reintento posterior también se completa correctamente sin realizar ninguna otra acción. Las operaciones `ExecuteStatement` y `BatchExecuteStatement` de la API de datos tienen un parámetro idempotente `ClientToken` opcional. `ClientToken` caduca a las 8 horas.

**importante**  
Si llama a las operaciones `ExecuteStatement` y `BatchExecuteStatement` desde un SDK de AWS, este genera automáticamente un token de cliente para utilizarlo en el reintento. En este caso, no recomendamos utilizar el parámetro `client-token` con las operaciones `ExecuteStatement` y `BatchExecuteStatement`. Consulte el registro de CloudTrail para ver `ClientToken`. Para ver un ejemplo de registro de CloudTrail, consulte [Ejemplo de la API de datos de Amazon Redshift](logging-with-cloudtrail.md#data-api-cloudtrail).

El siguiente comando `execute-statement` de la AWS CLI ilustra el parámetro `client-token` opcional para idempotencia.

```
aws redshift-data execute-statement 
    --secret-arn arn:aws:secretsmanager:us-west-2:123456789012:secret:myuser-secret-hKgPWn 
    --cluster-identifier mycluster-test 
    --sql "select * from stl_query limit 1" 
    --database dev 
    --client-token b855dced-259b-444c-bc7b-d3e8e33f94g1
```

En la siguiente tabla se muestran algunas respuestas comunes que puede obtener para solicitudes de API idempotentes y se ofrecen recomendaciones de reintento.


| Respuesta | Recomendación | Comentarios | 
| --- | --- | --- | 
|  200 (OK)  |  No reintentar  |  La solicitud original se ha completado correctamente. Cualquier reintento posterior se devuelve correctamente.  | 
|  Códigos de respuesta de la serie 400   |  No reintentar  |  Hay un problema con la solicitud, uno de los siguientes:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/redshift/latest/mgmt/data-api.html) Si la solicitud implica un recurso que está en proceso de cambiar de estado, el reintento de la solicitud podría realizarse correctamente.  | 
|  Códigos de respuesta de la serie 500   |  Retry  |  El error se debe a un problema en el servidor de AWS y suele ser transitorio. Repita la solicitud con una estrategia de retardo adecuada.  | 

Para obtener información sobre los códigos de respuesta de Amazon Redshift, consulte [Common Errors](https://docs.aws.amazon.com/redshift/latest/APIReference/CommonErrors.html) (Errores comunes) en *Amazon Redshift API Reference* (Referencia de la API de Amazon Redshift).

## Ejecución de instrucciones SQL con reutilización de sesión cuando se llama a la API de datos de Amazon Redshift
<a name="data-api-calling-considerations-session-reuse"></a>

Al realizar una solicitud a la API para ejecutar una instrucción SQL, la sesión en la que se ejecuta el código SQL suele terminar cuando finaliza dicho código SQL. Para mantener la sesión activa durante un número de segundos específico, las operaciones `ExecuteStatement` y `BatchExecuteStatement` de la API de datos tienen un parámetro `SessionKeepAliveSeconds` opcional. Un campo de respuesta `SessionId` contiene la identidad de la sesión, que luego se puede utilizar en las operaciones `ExecuteStatement` y `BatchExecuteStatement` posteriores. En las llamadas posteriores, puede especificar otro valor de `SessionKeepAliveSeconds` para cambiar el tiempo de espera de inactividad. Si no cambia el valor de `SessionKeepAliveSeconds`, se mantiene la configuración de tiempo de espera de inactividad inicial. Tenga en cuenta lo siguiente al usar la reutilización de sesión:
+ El valor máximo de `SessionKeepAliveSeconds` es de 24 horas.
+ La sesión puede durar 24 horas como máximo. Transcurridas 24 horas, la sesión se cierra de un modo forzado y finalizan las consultas en curso.
+ El número máximo de sesiones por clúster de Amazon Redshift o grupo de trabajo de Amazon Redshift sin servidor es de 500.
+ Solo puede ejecutar una consulta cada vez en una sesión. Debe esperar a que finalice la consulta para ejecutar la siguiente consulta en la misma sesión. Es decir, no puede ejecutar consultas en paralelo en una sesión indicada.
+ La API de datos no puede poner en cola las consultas de una sesión determinada.

Para recuperar el valor de `SessionId` que utilizan las llamadas a las operaciones `ExecuteStatement` y `BatchExecuteStatement`, llame a las operaciones `DescribeStatement` y `ListStatements`.

En el siguiente ejemplo, se muestra el uso de los parámetros `SessionKeepAliveSeconds` y `SessionId` para mantener una sesión activa y reutilizada. En primer lugar, llame al comando `execute-statement` de la AWS CLI con el parámetro opcional `session-keep-alive-seconds` establecido a `2`.

```
aws redshift-data execute-statement 
    --session-keep-alive-seconds 2 
    --sql "select 1" 
    --database dev 
    --workgroup-name mywg
```

La respuesta contiene el identificador de sesión.

```
{
    "WorkgroupName": "mywg",
    "CreatedAt": 1703022996.436,
    "Database": "dev",
    "DbUser": "awsuser",
    "Id": "07c5ffea-76d6-4786-b62c-4fe3ef529680",
    "SessionId": "5a254dc6-4fc2-4203-87a8-551155432ee4"
}
```

A continuación, llame al comando `execute-statement` de la AWS CLI con el valor de `SessionId` devuelto en la primera llamada. Y, si lo desea, especifique el parámetro `session-keep-alive-seconds` establecido a `10` para cambiar el valor del tiempo de espera de inactividad.

```
aws redshift-data execute-statement 
    --sql "select 1" 
    --session-id 5a254dc6-4fc2-4203-87a8-551155432ee4
    --session-keep-alive-seconds 10
```

## Obtención de los resultados de las instrucciones de SQL
<a name="data-api-calling-considerations-result-format"></a>

Se utilizan diferentes operaciones de la API de datos para obtener los resultados de SQL en función de su formato. Al llamar a las operaciones `ExecuteStatement` y `BatchExecuteStatement`, puede especificar si los resultados tienen el formato JSON o CSV. Si no lo especifica, el valor predeterminado es JSON. Para recuperar los resultados de JSON, use la operación `GetStatementResult`. Para recuperar los resultados de CSV, use la operación `GetStatementResultV2`.

Los resultados devueltos en formato JSON son registros que incluyen metadatos sobre cada columna. Cada registro está en formato JSON. Por ejemplo, la respuesta de `GetStatementResult` será similar a la siguiente:

```
{
   "ColumnMetadata": [ 
      { 
         "isCaseSensitive": false,
         "isCurrency": false,
         "isSigned": true,
         "label": "?column?",
         "name": "?column?",
         "nullable": 1,
         "precision": 10,
         "scale": 0,
         "schemaName": "",
         "tableName": "",
         "typeName": "int4",
         "length": 0
      }
   ],
   "NextToken": "<token>",
   "Records": [
        [
            {
                "longValue": 1
            }
        ]
    ],
   "TotalNumRows": <number>
}
```

Los resultados devueltos en formato CSV son registros que incluyen metadatos sobre cada columna. Los resultados se devuelven en fragmentos de 1 MB y cada fragmento puede almacenar cualquier número de filas en formato CSV. Cada solicitud devuelve hasta 15 MB de resultados. Si los resultados superan los 15 MB, se devuelve el token de la página siguiente para seguir recuperando los resultados. Por ejemplo, la respuesta de `GetStatementResultV2` será similar a la siguiente:

```
{
    "ColumnMetadata": [
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "?column?",
            "name": "?column?",
            "nullable": 1,
            "precision": 10,
            "scale": 0,
            "schemaName": "",
            "tableName": "",
            "typeName": "int4",
            "length": 0
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "?column?",
            "name": "?column?",
            "nullable": 1,
            "precision": 10,
            "scale": 0,
            "schemaName": "",
            "tableName": "",
            "typeName": "int4",
            "length": 0
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "?column?",
            "name": "?column?",
            "nullable": 1,
            "precision": 10,
            "scale": 0,
            "schemaName": "",
            "tableName": "",
            "typeName": "int4",
            "length": 0
        }
    ],
    "NextToken": "<token>",
    "Records": [
        [
            {
                "CSVRecords":"1,2,3\r\n4,5,6\r\n7,8,9\rn, .... 1MB" // First 1MB Chunk
            },
            {
                "CSVRecords":"1025,1026,1027\r\n1028,1029,1030\r\n....2MB" // Second 1MB chunk
            }
            ...
        ]
    ],
    "ResultFormat" : "CSV",
    "TotalNumRows": <number>
}
```

# Autorización del acceso a la API de datos de Amazon Redshift
<a name="data-api-access"></a>

Para poder obtener acceso a la API de datos, el usuario debe contar con la autorización respectiva. Puede autorizar a un usuario a obtener acceso a la API de datos si agrega la política administrada, que es una política de AWS Identity and Access Management (IAM) predefinida, a ese usuario. Como práctica recomendada, aconsejamos asociar las políticas de permisos a un rol de IAM y luego asignarlo a los usuarios y grupos según sea necesario. Para obtener más información, consulte [Administración de identidades y accesos en Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-authentication-access-control.html). Para ver los permisos permitidos y denegados por las políticas administradas, consulte la consola de IAM ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)). 

# Configuración de permisos de IAM
<a name="data-api-iam"></a>

Amazon Redshift proporciona la política administrada `AmazonRedshiftDataFullAccess`. Esta política proporciona acceso pleno a las operaciones de la API de datos de Amazon Redshift. Esta política también permite el acceso limitado a operaciones específicas de la API de Amazon Redshift, AWS Secrets Manager e IAM que se necesitan para autenticar y obtener acceso a un clúster de Amazon Redshift o a un grupo de trabajo de Redshift sin servidor. 

También puede crear una política de IAM propia que permita obtener acceso a recursos específicos. Para crear su política, utilice la política `AmazonRedshiftDataFullAccess` como la plantilla de partida. Una vez creada la política, agréguela a todos los usuarios que deban acceder a la API de datos.

Tenga en cuenta los siguientes requisitos de la política de IAM asociada al usuario:
+ Si se utiliza AWS Secrets Manager para la autenticación, confirmar la política permite que se use la acción `secretsmanager:GetSecretValue` para recuperar el secreto etiquetado con la clave `RedshiftDataFullAccess`.
+ Si se utilizan credenciales temporales para autenticar un clúster, confirmar la política permite el uso de la acción `redshift:GetClusterCredentials` en el nombre de usuario de base de datos `redshift_data_api_user` correspondiente a cualquiera de las bases de datos del clúster. Es necesario que este nombre de usuario ya se haya creado en su base de datos.
+ Si utiliza credenciales temporales para autenticarse en un grupo de trabajo sin servidor, confirme que la política permite el uso de la acción `redshift-serverless:GetCredentials` para recuperar el grupo de trabajo etiquetado con la clave `RedshiftDataFullAccess`. El usuario de la base de datos se asigna 1:1 a la identidad de AWS Identity and Access Management (IAM) de origen. Por ejemplo, el usuario sample\$1user se asigna al usuario `IAM:sample_user` de la base de datos y el rol de IAM sample\$1role se asigna a `IAMR:sample_role`. Para obtener más información acerca de las identidades de IAM, consulte [Identidades (usuarios, grupos de usuarios y roles)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) en la Guía del usuario de IAM.
+ La acción de IAM `redshift-data:GetStatementResult` permite el acceso a las operaciones `GetStatementResult` y `GetStatementResultV2` de la API.

En los siguientes enlaces, encontrará más información sobre AWS Identity and Access Management en la *Guía del usuario de IAM*.
+ Para obtener más información sobre cómo crear roles de IAM, consulte [Creación de roles de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html). 
+ Para obtener más información sobre cómo crear una política de IAM, consulte [Creación de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html).
+ Para obtener información sobre cómo agregar una política de IAM a un usuario, consulte [Adición y eliminación de permisos de identidad de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html). 

## Ejecución de una consulta en un clúster que es propiedad de otra cuenta
<a name="data-api-run-query-on-others-cluster"></a>

Para ejecutar una consulta en un clúster que es propiedad de otra cuenta, la cuenta propietaria debe proporcionar un rol de IAM que la API de datos pueda asumir en la cuenta que llama. Por ejemplo, supongamos que la cuenta B posee un clúster al que la cuenta A necesita acceder. La cuenta B puede asociar la política administrada de AWS `AmazonRedshiftDataFullAccess` al rol de IAM de la cuenta B. A continuación, la cuenta B se fía de la cuenta A gracias a una política de confianza como la siguiente:``

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:role/someRoleA"
                ]
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

------

Por último, el rol de IAM de la cuenta A debe ser capaz de asumir el rol de IAM de la cuenta B.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": "sts:AssumeRole",
        "Resource": "arn:aws:iam::111122223333:role/someRoleB"
    }
}
```

------

## Especificación de un rol de IAM que restrinja los recursos a los grupos de trabajo de Redshift sin servidor y a los clústeres de Amazon Redshift en una Cuenta de AWS
<a name="data-api-restrict-to-account"></a>

Puede especificar los ARN de recursos en la política basada en identidad para controlar el acceso a los grupos de trabajo de Redshift sin servidor y a los clústeres de Amazon Redshift en una Cuenta de AWS. En este ejemplo se muestra cómo podría crear una política que permita el acceso a la API de datos solo para el grupo de trabajo y los clústeres en la Cuenta de AWS especificada.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "redshift-data:CancelStatement",
                "redshift-data:DescribeStatement",
                "redshift-data:GetStatementResult",
                "redshift-data:ListStatements"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "redshift-data:*",
            "Resource": [
                "arn:aws:redshift:us-east-1:111122223333:workgroup/*",
                "arn:aws:redshift:us-east-1:111122223333:cluster:*"
            ]
        }
    ]
}
```

------

## Configuración de una política de IAM que restrinja el acceso a la información de la instrucción SQL solo al propietario de la instrucción
<a name="data-api-restrict-to-statement-owner"></a>

De forma predeterminada, la API de datos de Amazon Redshift trata el rol de IAM utilizado al llamar a `ExecuteStatement` y `BatchExecuteStatement` como el propietario de la instrucción SQL. Cualquier persona a la que se le permita asumir el rol puede acceder a la información sobre la instrucción SQL, incluidos los resultados. Para restringir el acceso a la información de una instrucción SQL a una sesión de rol de IAM con un propietario concreto, agregue una condición `redshift-data:statement-owner-iam-userid: "${aws:userid}"`. La siguiente política de IAM restringe el acceso.

------
#### [ JSON ]

****  

```
{
"Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "redshift-data:CancelStatement",
                "redshift-data:DescribeStatement",
                "redshift-data:GetStatementResult",
                "redshift-data:ListStatements"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "redshift-data:statement-owner-iam-userid": "${aws:userid}"
                }
            }
        }
    ]
}
```

------

Puede utilizar la condición `statement-owner-iam-userid` con `CancelStatement`, `DescribeStatement`, `GetStatementResult` y `ListStatements`. Para obtener más información, consulte [Acciones definidas por la API de datos de Amazon Redshift](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonredshiftdataapi.html#amazonredshiftdataapi-redshift-data_statement-owner-iam-userid).

## Configuración de una política de IAM que restrinja el acceso a los resultados de SQL solo al propietario de la sesión
<a name="data-api-restrict-session-owner"></a>

De forma predeterminada, la API de datos de Amazon Redshift trata el rol de IAM utilizado al llamar a `ExecuteStatement` y `BatchExecuteStatement` como el propietario de la sesión de base de datos que ejecuta la instrucción SQL. Cualquier usuario al que se le permita asumir el rol puede enviar consultas a la sesión de base de datos. Para restringir el acceso de sesión a una sesión de rol de IAM con un propietario concreto, agregue una condición ` redshift-data:session-owner-iam-userid: "${aws:userid}"`. La siguiente política de IAM restringe el acceso.

La siguiente política de IAM permite que solo el propietario de la sesión obtenga los resultados de las instrucciones. La condición `session-owner-iam-userid` se usa para limitar el acceso a los recursos al `userid` especificado.

------
#### [ JSON ]

****  

```
{
"Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [ 
                "redshift-data:ExecuteStatement",
                "redshift-data:BatchExecuteStatement"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "redshift-data:session-owner-iam-userid": "${aws:userid}"
                }
            }
        }
    ]
}
```

------

Puede utilizar la condición `session-owner-iam-userid` con `ExecuteStatement` y `BatchExecuteStatement`. Para obtener más información, consulte [Acciones definidas por la API de datos de Amazon Redshift](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonredshiftdataapi.html#amazonredshiftdataapi-redshift-data_statement-owner-iam-userid).

# Almacenamiento de credenciales de base de datos en AWS Secrets Manager
<a name="data-api-secrets"></a>

Al llamar a la API de datos, puede transmitir las credenciales del clúster o grupo de trabajo sin servidor con un secreto en AWS Secrets Manager. Para pasar credenciales mediante este método, especifique el nombre del secreto o el Nombre de recurso de Amazon (ARN) del secreto. 

Para almacenar credenciales con Secrets Manager, se necesita contar con el permiso de la política administrada `SecretManagerReadWrite`. Para obtener más información sobre los permisos mínimos, consulte [Creación y administración de secretos con AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/managing-secrets.html) en la *Guía del usuario de AWS Secrets Manager*. 

**Si desea almacenar las credenciales en un secreto para un clúster de Amazon Redshift**

1. Utilice la consola de AWS Secrets Manager para crear un secreto que contenga credenciales para el clúster:
   + Cuando elija **Store a new secret** (Almacenar un secreto nuevo), elija **Credentials for Redshift cluster** (Credenciales para clúster de Redshift). 
   + Almacene sus valores para **User name** (Nombre de usuario) que es el usuario de la base de datos, **Password** (Contraseña) y **DB cluster **(Clúster de base de datos) que es el identificador del clúster, en su secreto. 
   + Etiquete el secreto con la clave `RedshiftDataFullAccess`. La política administrada de AWS `AmazonRedshiftDataFullAccess` solo permite la acción `secretsmanager:GetSecretValue` para los secretos etiquetados con la clave `RedshiftDataFullAccess`. 

   Para obtener instrucciones, consulte [Creación de un secreto básico](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html) en la *Guía del usuario de AWS Secrets Manager*.

1. Utilice la consola de AWS Secrets Manager para ver los detalles del secreto que ha creado, o ejecute el comando de la `aws secretsmanager describe-secret` AWS CLI.

   Anote el nombre y el ARN del secreto. Puede utilizarlos en las llamadas a la API de datos.

**Para almacenar las credenciales en un secreto para un grupo de trabajo sin servidor**

1. Utilice los comandos de la AWS CLI de AWS Secrets Manager para almacenar un secreto que contenga credenciales para el grupo de trabajo sin servidor:
   + Cree su secreto en un archivo, por ejemplo, un archivo JSON llamado `mycreds.json`. Proporcione los valores de **User name** (Nombre de usuario) (usuario de base de datos) y **Password** (Contraseña) en el archivo.

     ```
     {
           "username": "myusername",
           "password": "mypassword"
     }
     ```
   + Almacene los valores en el secreto y etiquete el secreto con la clave `RedshiftDataFullAccess`.

     ```
     aws secretsmanager create-secret --name MyRedshiftSecret  --tags Key="RedshiftDataFullAccess",Value="serverless" --secret-string file://mycreds.json
     ```

     El ejemplo siguiente muestra el código resultante.

     ```
     {
         "ARN": "arn:aws:secretsmanager:region:accountId:secret:MyRedshiftSecret-mvLHxf",
         "Name": "MyRedshiftSecret",
         "VersionId": "a1603925-e8ea-4739-9ae9-e509eEXAMPLE"
     }
     ```

   Para obtener más información, consulte [Creación de un secreto básico con AWS CLI](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html#proc-create-api) en la *Guía del usuario de AWS Secrets Manager*.

1. Utilice la consola de AWS Secrets Manager para ver los detalles del secreto que ha creado, o ejecute el comando de la `aws secretsmanager describe-secret` AWS CLI.

   Anote el nombre y el ARN del secreto. Puede utilizarlos en las llamadas a la API de datos.

# Creación de un punto de enlace de la VPC de Amazon VPC (AWS PrivateLink) para la API de datos
<a name="data-api-vpc-endpoint"></a>

Amazon Virtual Private Cloud (Amazon VPC) le permite lanzar recursos de AWS, como clústeres y aplicaciones de Amazon Redshift, en una nube virtual privada (VPC). AWS PrivateLink proporciona conectividad segura y privada entre las nubes virtuales privadas (VPC) y los servicios de AWS a través de la red de Amazon. Con AWS PrivateLink, puede crear puntos de enlace de la VPC que puede utilizar para conectarse a servicios a través de diferentes cuentas y VPC basadas en Amazon VPC. Para obtener más información acerca de AWS PrivateLink, consulte [Servicios de punto de enlace de la VPC (AWS PrivateLink)](https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-service.html) en la *guía del usuario de Amazon Virtual Private Cloud*.

Puede llamar a la API de datos con los puntos de enlace de la Amazon VPC. El uso de un punto de enlace de la Amazon VPC mantiene el tráfico entre las aplicaciones de su Amazon VPC y la API de datos en la red de AWS, sin usar direcciones IP públicas. Los puntos de enlace de la Amazon VPC pueden ayudarle a cumplir los requisitos reglamentarios y de conformidad relacionados con la limitación de la conectividad a internet público. Por ejemplo, si utiliza un punto de enlace de la Amazon VPC, puede mantener el tráfico entre una aplicación que se ejecuta en una instancia Amazon EC2 y la API de datos en las VPC donde se contienen.

Después de crear el punto de enlace de la Amazon VPC, puede comenzar a usarlo sin realizar ningún cambio de código o configuración en la aplicación.

**Para crear un punto de enlace de la Amazon VPC para la API de datos**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon VPC en [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. Elija **Endpoints (Puntos de enlace)** y, a continuación, elija **Create Endpoint (Crear punto de enlace)**.

1. En la página **Crear punto de conexión**, en **Categoría de servicio**, elija **Servicios de AWS**. En **Service Name** (Nombre del servicio), elija **redshift-data** (`com.amazonaws.region.redshift-data`).

1. Para **VPC**, elija la VPC en la que crear el punto de enlace.

   Elija la VPC que contiene la aplicación que realiza llamadas a la API de datos.

1. En **Subnets** (Subredes), elija la subred para cada zona de disponibilidad (AZ) utilizada por el servicio de AWS que ejecuta la aplicación.

   Para crear un punto de enlace de la VPC de Amazon VPC, especifique el rango de direcciones IP privadas con las que se puede acceder al punto de enlace. Para ello, elija la subred para cada zona de disponibilidad. Al hacerlo, se restringe el punto de enlace de la VPC al rango de direcciones IP privadas específico de cada zona de disponibilidad y también se crea un punto de enlace de la Amazon VPC en cada zona de disponibilidad.

1. En **Enable Private DNS Name** (Habilitar nombre de DNS privado), seleccione **Enable for this endpoint** (Habilitar para este punto de enlace).

   El DNS privado resuelve el nombre de host de DNS de la API de datos estándar (`https://redshift-data.region.amazonaws.com`) en las direcciones IP privadas asociadas con el nombre de host de DNS específico del punto de enlace de la Amazon VPC. Como resultado, puede acceder al punto de enlace de la VPC de la API de datos utilizando los SDK de AWS CLI o la AWS sin realizar ningún cambio de código o configuración para actualizar la URL del punto de enlace de la API de datos.

1. En **Security group (Grupo de seguridad)**, elija los grupos de seguridad que deban asociarse al punto de enlace de la Amazon VPC.

   Elija el grupo de seguridad que permita el acceso al servicio de AWS que ejecuta la aplicación. Por ejemplo, si una instancia Amazon EC2 está ejecutando la aplicación, elija el grupo de seguridad que permita el acceso a la instancia Amazon EC2. El grupo de seguridad le permite controlar el tráfico al punto de enlace de la Amazon VPC desde los recursos de la VPC.

1. Elija **Create endpoint** (Crear punto de enlace).

Una vez creado el punto de enlace, elija el vínculo en la Consola de administración de AWS para ver los detalles del punto de enlace.

La ficha **Details** (Detalles) del punto de enlace muestra los nombres de host de DNS que se generaron al crear el punto de enlace de la Amazon VPC.

Puede utilizar el punto de enlace estándar (`redshift-data.region.amazonaws.com`) o uno de los puntos de enlace específicos de la VPC para llamar a la API de datos dentro de la Amazon VPC. El punto de enlace de la API de datos estándar se dirige automáticamente al punto de enlace de la Amazon VPC. Este enrutamiento se produce porque cuando se creó el punto de enlace de la Amazon VPC se habilitó el nombre de host de DNS privado.

Cuando utiliza un punto de enlace de la Amazon VPC en una llamada a la API de datos, todo el tráfico entre la aplicación y la API de datos permanece en las Amazon VPC donde se contienen. Puede usar un punto de enlace de la Amazon VPC para cualquier tipo de llamada a la API de datos. Para obtener más información sobre la llamada a la API de datos, consulte [Consideraciones que deben tenerse en cuenta al llamar a la API de datos de Amazon Redshift](data-api.md#data-api-calling-considerations).

# Unión a grupos de bases de datos al conectarse a un clúster
<a name="data-api-dbgroups"></a>

Los grupos de bases de datos son colecciones de usuarios de bases de datos. Se pueden conceder privilegios de base de datos a los grupos. Un administrador puede configurar un rol de IAM para que estos grupos de bases de datos se tengan en cuenta cuando su código SQL se ejecute con la API de datos. Para obtener más información sobre los grupos de bases de datos, consulte [Grupos](https://docs.aws.amazon.com/redshift/latest/dg/r_Groups.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*. 

Puede configurar el rol de IAM del intermediario de la API de datos para que el usuario de base de datos especificado en la llamada se una a los grupos de bases de datos cuando la API de datos se conecte a un clúster. Esta capacidad solo se admite cuando se conecta a clústeres aprovisionados. No es compatible cuando se conecta a grupos de trabajo de Redshift sin servidor. El rol de IAM del intermediario de la API de datos también debe permitir la acción `redshift:JoinGroup`.

Agregue etiquetas a los roles de IAM para configurarlo. El administrador del rol de IAM del intermediario agrega etiquetas con la clave `RedshiftDbGroups` y un valor de clave de una lista de grupos de bases de datos. El valor es una lista de nombres de grupos de bases de datos separados por dos puntos (:) hasta una longitud total de 256 caracteres. Los grupos de bases de datos deben estar previamente definidos en la base de datos conectada. Si algún grupo especificado no se encuentra en la base de datos, se omite. Por ejemplo, para los grupos de bases de datos `accounting` y `retail`, la clave-valor es `accounting:retail`. El par clave-valor de etiqueta `{"Key":"RedshiftDbGroups","Value":"accounting:retail"}` lo utiliza la API de datos para determinar qué grupos de base de datos están asociados al usuario de base de datos proporcionado en la llamada a la API de datos.

**Unión a grupos de bases de datos**

1. Inicie sesión en Consola de administración de AWS y abra la consola IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. En el panel de navegación de la consola, elija **Roles** (Roles) y, a continuación, elija el nombre de la entidad que desea editar.

1. Elija la pestaña **Etiquetas** y, a continuación, **Administrar etiquetas**.

1. Elija **Agregar etiqueta** y, a continuación, agregue la clave **RedshiftDbGroups** y un valor que sea una *lista de grupos de bases de datos separados por dos puntos*.

1. Seleccione **Save changes (Guardar cambios)**.

   Ahora, cuando una entidad principal de IAM (con este rol de IAM asociado) llama a la API de datos, el usuario de base de datos especificado se une a los grupos de base de datos indicados en el rol de IAM.

Para obtener más información sobre cómo adjuntar una etiqueta a una entidad principal, incluidos los roles de IAM y los usuarios de IAM, consulte [Etiquetado de recursos de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) en la *Guía del usuario de IAM*. 

# Uso de la API de datos con propagación de identidad de confianza
<a name="data-api-trusted-identity-propagation"></a>

Como administrador de cuentas de Amazon Redshift, puede integrar el clúster o grupo de trabajo de Amazon Redshift con AWS IAM Identity Center, lo que ayuda a administrar el acceso del personal a Amazon Redshift con inicio de sesión único. Para obtener más información, consulte [Configuración de la integración de AWS IAM Identity Center con Amazon Redshift](redshift-iam-access-control-idp-connect-console.md). La API de datos de Amazon Redshift admite la propagación de identidades de usuario de IAM Identity Center a un clúster o grupo de trabajo de Amazon Redshift, y a otros servicios, como AWS Lake Formation, en la cadena. Puede configurar y consultar mediante la API de datos si sigue los pasos de [Acceso a los servicios de AWS mediante programación con la propagación de identidad de confianza](https://aws.amazon.com/blogs//security/access-aws-services-programmatically-using-trusted-identity-propagation/).

Cuando llama a la API de datos con una identidad de usuario de IAM Identity Center desde una sesión de rol de IAM con identidad mejorada, solo puede acceder a la instrucción resultante y al resultado de la instrucción con el mismo usuario de IAM Identity Center. Por ejemplo, el siguiente comando de la AWS CLI llama a la operación `execute-statement` para ejecutar un comando SQL con propagación de identidad de confianza.

```
aws redshift-data execute-statement 
--sql "select current_user;" 
--cluster-id mycluster
--database dev
```

El siguiente comando de la AWS CLI llama a la operación `batch-execute-statement` para ejecutar dos comandos SQL.

```
aws redshift-data batch-execute-statement 
--sqls  "select current_user;"  "select current_date;"
--cluster-id mycluster
--database dev
```

Para acceder a las instrucciones con `cancel-statement`, `describe-statement`, `get-statement-result` y `get-statement-result-v2` enviadas por sesiones de rol de IAM con identidad mejorada, el usuario de IAM Identity Center y el rol de IAM deben coincidir con las credenciales utilizadas para ejecutar `execute-statment` o `batch-execute-statement`. Por ejemplo, el siguiente comando de la AWS CLI obtiene los resultados de una instrucción SQL.

```
aws redshift-data get-statement-result 
--id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111
```

Para enumerar instrucciones, se debe proporcionar un parámetro `cluster-identifier` o `workgroup-name` a fin de garantizar que el usuario de IAM Identity Center solo tenga acceso a las aplicaciones de Amazon Redshift IAM Identity Center a las que está asignado. Por ejemplo, el siguiente comando de la AWS CLI enumera instrucciones para un clúster específico.

```
aws redshift-data list-statements
--cluster-identifier mycluster
```

También puede invocar las operaciones de la API de datos que acceden a objetos de base de datos en un clúster o grupo de trabajo mediante la propagación de identidad de confianza. Esto incluye las operaciones `list-databases`, `list-schemas`, `list-tables` y `describe-table`.

Las llamadas a la API realizadas por el usuario de IAM Identity Center pueden rastrearse en AWS CloudTrail. En la sección `onBehalfOf` del evento de CloudTrail se muestra el ID de usuario de IAM Identity Center y el ARN del almacén de identidades. En el siguiente ejemplo se muestra un fragmento de un evento de CloudTrail que muestra la sección `onBehalfOf` con el ID de usuario de IAM Identity Center de `a1b2c3d4-5678-90ab-cdef-EXAMPLE11111` y el ARN del almacén de identidades de `arn:aws:identitystore::123456789012:identitystore/d-9067bc44d2`.

```
{
            "eventVersion":"1.10",
            "userIdentity":{
            "type":"AssumedRole",
            ...
            },
            "onBehalfOf":{
            "userId":"a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
            "identityStoreArn":"arn:aws:identitystore::123456789012:identitystore/d-9067bc44d2"
            }
            },
            "eventTime":"2025-01-13T04:46:27Z",
            "eventSource":"redshift-data.amazonaws.com",
            "eventName":"ExecuteStatement",
            "awsRegion":"us-east-1"
            }
```

Puede ejecutar el siguiente comando SQL para comprobar la consulta enviada por el usuario de IAM Identity Center. En este ejemplo, el correo electrónico registrado en Identity Center es `username@example.com`.

```
SELECT
    h.query_id,
    h.database_name,
    h.status,
    h.query_text,
    u.usename,
    h.start_time,
    h.end_time
FROM
    sys_query_history h
LEFT JOIN
    pg_user u
ON
    h.user_id = u.usesysid
where u.usename='awsidc:username@example.com'    
ORDER BY
    h.start_time DESC;
```

# Llamadas a la API de datos
<a name="data-api-calling"></a>

Se puede llamar a la API de datos o a la AWS CLI a fin de ejecutar instrucciones SQL en el clúster o grupo de trabajo sin servidor. Las operaciones principales para ejecutar instrucciones SQL son [https://docs.aws.amazon.com/redshift-data/latest/APIReference/API_ExecuteStatement.html](https://docs.aws.amazon.com/redshift-data/latest/APIReference/API_ExecuteStatement.html) y [https://docs.aws.amazon.com/redshift-data/latest/APIReference/API_BatchExecuteStatement.html](https://docs.aws.amazon.com/redshift-data/latest/APIReference/API_BatchExecuteStatement.html) en la *Referencia de API de datos de Amazon Redshift*. La API de datos admite los lenguajes de programación compatibles con el AWS SDK. Para obtener más información sobre estos, consulte [Herramientas para crear en AWS](https://aws.amazon.com/tools/).

Para ver ejemplos de código de llamadas a la API de datos, consulte la [Introducción a la API de datos de Redshift](https://github.com/aws-samples/getting-started-with-amazon-redshift-data-api#getting-started-with-redshift-data-api) en *GitHub*. Este repositorio contiene ejemplos de uso de AWS Lambda para acceder a los datos de Amazon Redshift desde Amazon EC2, AWS Glue Data Catalog y Amazon SageMaker Runtime. Los lenguajes de programación de ejemplo incluyen Python, Go, Java y Javascript.

Puede llamar a la API de datos utilizando la AWS CLI.

En los siguientes ejemplos, se utiliza la AWS CLI para llamar a la API de datos. Para ejecutar los ejemplos, edite los valores de los parámetros para que se ajusten a su entorno. En muchos de los ejemplos se proporciona un `cluster-identifier` que se ejecuta en un clúster. Cuando se ejecuta en un grupo de trabajo sin servidor, se debe proporcionar un `workgroup-name` en su lugar. En estos ejemplos, se demuestran algunas de las operaciones de la API de datos. Para obtener más información, consulte *Referencia de comandos de la AWS CLI*. 

Los comandos que figuran en los siguientes ejemplos se han dividido y se han formateado para facilitar su lectura. No todos los parámetros y respuestas se muestran en todos los ejemplos. Para ver la definición de la API de la sintaxis completa de la solicitud, los parámetros de la solicitud, la sintaxis de respuesta y los elementos de respuesta, consulte la [Referencia de la API de datos de Amazon Redshift](https://docs.aws.amazon.com/redshift-data/latest/APIReference/).

# Transferencia de instrucciones SQL a un almacenamiento de datos de Amazon Redshift
<a name="pass-sql-statements"></a>

Los ejemplos de esta página describen diferentes formas de transferir una instrucción SQL al almacenamiento de datos

## Ejecución de una instrucción SQL
<a name="data-api-calling-cli-execute-statement"></a>

Para ejecutar una instrucción SQL, utilice el comando AWS CLI de la `aws redshift-data execute-statement`.

El siguiente comando de la AWS CLI ejecuta una instrucción SQL en un clúster y devuelve un identificador que permite obtener los resultados. En este ejemplo, se utiliza el método de autenticación de AWS Secrets Manager.

```
aws redshift-data execute-statement 
    --secret-arn arn:aws:secretsmanager:us-west-2:123456789012:secret:myuser-secret-hKgPWn 
    --cluster-identifier mycluster-test 
    --sql "select * from stl_query limit 1" 
    --database dev
```

A continuación se muestra un ejemplo de respuesta.

```
{
    "ClusterIdentifier": "mycluster-test",
    "CreatedAt": 1598323175.823,
    "Database": "dev",
    "Id": "c016234e-5c6c-4bc5-bb16-2c5b8ff61814",
    "SecretArn": "arn:aws:secretsmanager:us-west-2:123456789012:secret:myuser-secret-hKgPWn"
}
```

El siguiente comando de la AWS CLI ejecuta una instrucción SQL en un clúster y devuelve un identificador que permite obtener los resultados. En este ejemplo, se utiliza el método de autenticación de credenciales temporales.

```
aws redshift-data execute-statement 
    --db-user myuser 
    --cluster-identifier mycluster-test 
    --database dev 
    --sql "select * from stl_query limit 1"
```

A continuación se muestra un ejemplo de respuesta.

```
{
    "ClusterIdentifier": "mycluster-test",
    "CreatedAt": 1598306924.632,
    "Database": "dev",
    "DbUser": "myuser",
    "Id": "d9b6c0c9-0747-4bf4-b142-e8883122f766"
}
```

El siguiente comando de la AWS CLI ejecuta una instrucción SQL en un grupo de trabajo sin servidor y devuelve un identificador que permite obtener los resultados. En este ejemplo, se utiliza el método de autenticación de credenciales temporales.

```
aws redshift-data execute-statement 
    --database dev 
    --workgroup-name myworkgroup 
    --sql "select 1;"
```

A continuación se muestra un ejemplo de respuesta.

```
{
 "CreatedAt": "2022-02-11T06:25:28.748000+00:00",
 "Database": "dev",
 "DbUser": "IAMR:RoleName",
 "Id": "89dd91f5-2d43-43d3-8461-f33aa093c41e",
 "WorkgroupName": "myworkgroup"
}
```

El siguiente comando de la AWS CLI ejecuta una instrucción SQL en un clúster y devuelve un identificador que permite obtener los resultados. En este ejemplo se utiliza el método de autenticación de AWS Secrets Manager y un token de idempotencia.

```
aws redshift-data execute-statement 
    --secret-arn arn:aws:secretsmanager:us-west-2:123456789012:secret:myuser-secret-hKgPWn 
    --cluster-identifier mycluster-test 
    --sql "select * from stl_query limit 1" 
    --database dev 
    --client-token b855dced-259b-444c-bc7b-d3e8e33f94g1
```

A continuación se muestra un ejemplo de respuesta.

```
{
    "ClusterIdentifier": "mycluster-test",
    "CreatedAt": 1598323175.823,
    "Database": "dev",
    "Id": "c016234e-5c6c-4bc5-bb16-2c5b8ff61814",
    "SecretArn": "arn:aws:secretsmanager:us-west-2:123456789012:secret:myuser-secret-hKgPWn"
}
```

## Ejecución de una instrucción SQL con parámetros
<a name="data-api-calling-cli-execute-statement-parameters"></a>

Para ejecutar una instrucción SQL, utilice el comando AWS CLI de la `aws redshift-data execute-statement`.

 El siguiente comando de la AWS CLI ejecuta una instrucción SQL en un clúster y devuelve un identificador que permite obtener los resultados. En este ejemplo, se utiliza el método de autenticación de AWS Secrets Manager. El texto SQL tiene el parámetro con nombre `distance`. En este caso, la distancia utilizada en el predicado es `5`. En una instrucción SELECT, los parámetros con nombre de los nombres de columna solo se pueden usar en el predicado. Los valores de los parámetros con nombre para la instrucción SQL se especifican en la opción `parameters`.

```
aws redshift-data execute-statement 
    --secret-arn arn:aws:secretsmanager:us-west-2:123456789012:secret:myuser-secret-hKgPWn 
    --cluster-identifier mycluster-test 
    --sql "SELECT ratecode FROM demo_table WHERE trip_distance > :distance"  
    --parameters "[{\"name\": \"distance\", \"value\": \"5\"}]"
    --database dev
```

A continuación se muestra un ejemplo de respuesta.

```
{
    "ClusterIdentifier": "mycluster-test",
    "CreatedAt": 1598323175.823,
    "Database": "dev",
    "Id": "c016234e-5c6c-4bc5-bb16-2c5b8ff61814",
    "SecretArn": "arn:aws:secretsmanager:us-west-2:123456789012:secret:myuser-secret-hKgPWn"
}
```

En el siguiente ejemplo, se utiliza la tabla `EVENT` de la base de datos de muestra. Para obtener más información, consulte [Tabla EVENT](https://docs.aws.amazon.com/redshift/latest/dg/r_eventtable.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift.*. 

Si aún no dispone de una tabla `EVENT` en la base de datos, puede crear una con la API de datos de la siguiente manera:

```
aws redshift-data execute-statement 
--database dev
--cluster-id mycluster-test
--db-user awsuser
--sql "create table event( eventid integer not null distkey, 
                           venueid smallint not null, 
                           catid smallint not null, 
                           dateid smallint not null sortkey, 
                           eventname varchar(200), 
                           starttime timestamp)"
```

El siguiente comando inserta una fila en la tabla `EVENT`. 

```
aws redshift-data execute-statement 
--database dev
--cluster-id mycluster-test
--db-user awsuser 
--sql "insert into event values(:eventid, :venueid::smallint, :catid, :dateid, :eventname, :starttime)" 
--parameters "[{\"name\": \"eventid\", \"value\": \"1\"}, {\"name\": \"venueid\", \"value\": \"1\"}, 
               {\"name\": \"catid\", \"value\": \"1\"}, 
               {\"name\": \"dateid\", \"value\": \"1\"}, 
               {\"name\": \"eventname\", \"value\": \"event 1\"}, 
               {\"name\": \"starttime\", \"value\": \"2022-02-22\"}]"
```

El siguiente comando inserta una segunda fila en la tabla `EVENT`. Este ejemplo hace lo siguiente: 
+ El parámetro con nombre `id` se utiliza cuatro veces en el texto SQL.
+ La conversión del tipo implícita se aplica automáticamente cuando se inserta un parámetro `starttime`.
+ La columna `venueid` se convierte en un tipo de datos SMALLINT.
+ Las cadenas de caracteres que representan el tipo de datos DATE se convierten de forma implícita en el tipo de datos TIMESTAMP.
+ Los comentarios se pueden emplear en el texto SQL.

```
aws redshift-data execute-statement 
--database dev
--cluster-id mycluster-test
--db-user awsuser 
--sql "insert into event values(:id, :id::smallint, :id, :id, :eventname, :starttime) /*this is comment, and it won't apply parameterization for :id, :eventname or :starttime here*/" 
--parameters "[{\"name\": \"eventname\", \"value\": \"event 2\"}, 
               {\"name\": \"starttime\", \"value\": \"2022-02-22\"}, 
               {\"name\": \"id\", \"value\": \"2\"}]"
```

A continuación, se muestran las dos filas que se han insertado:

```
 eventid | venueid | catid | dateid | eventname |      starttime
---------+---------+-------+--------+-----------+---------------------
       1 |       1 |     1 |      1 | event 1   | 2022-02-22 00:00:00
       2 |       2 |     2 |      2 | event 2   | 2022-02-22 00:00:00
```

El siguiente comando utiliza un parámetro con nombre en una cláusula WHERE que permite recuperar la fila donde `eventid` es `1`. 

```
aws redshift-data execute-statement 
--database dev
--cluster-id mycluster-test
--db-user awsuser 
--sql "select * from event where eventid=:id"
--parameters "[{\"name\": \"id\", \"value\": \"1\"}]"
```

Ejecute el siguiente comando para obtener los resultados SQL de la instrucción SQL precedente:

```
aws redshift-data get-statement-result --id 7529ad05-b905-4d71-9ec6-8b333836eb5a        
```

Proporciona los siguientes resultados:

```
{
    "Records": [
        [
            {
                "longValue": 1
            },
            {
                "longValue": 1
            },
            {
                "longValue": 1
            },
            {
                "longValue": 1
            },
            {
                "stringValue": "event 1"
            },
            {
                "stringValue": "2022-02-22 00:00:00.0"
            }
        ]
    ],
    "ColumnMetadata": [
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "eventid",
            "length": 0,
            "name": "eventid",
            "nullable": 0,
            "precision": 10,
            "scale": 0,
            "schemaName": "public",
            "tableName": "event",
            "typeName": "int4"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "venueid",
            "length": 0,
            "name": "venueid",
            "nullable": 0,
            "precision": 5,
            "scale": 0,
            "schemaName": "public",
            "tableName": "event",
            "typeName": "int2"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "catid",
            "length": 0,
            "name": "catid",
            "nullable": 0,
            "precision": 5,
            "scale": 0,
            "schemaName": "public",
            "tableName": "event",
            "typeName": "int2"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "dateid",
            "length": 0,
            "name": "dateid",
            "nullable": 0,
            "precision": 5,
            "scale": 0,
            "schemaName": "public",
            "tableName": "event",
            "typeName": "int2"
        },
        {
            "isCaseSensitive": true,
            "isCurrency": false,
            "isSigned": false,
            "label": "eventname",
            "length": 0,
            "name": "eventname",
            "nullable": 1,
            "precision": 200,
            "scale": 0,
            "schemaName": "public",
            "tableName": "event",
            "typeName": "varchar"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": false,
            "label": "starttime",
            "length": 0,
            "name": "starttime",
            "nullable": 1,
            "precision": 29,
            "scale": 6,
            "schemaName": "public",
            "tableName": "event",
            "typeName": "timestamp"
        }
    ],
    "TotalNumRows": 1
}
```

## Ejecución de varias instrucciones SQL
<a name="data-api-calling-cli-batch-execute-statement"></a>

Para ejecutar varias instrucciones SQL con un solo comando, utilice el comando `aws redshift-data batch-execute-statement` de la AWS CLI.

El siguiente comando de la AWS CLI ejecuta tres instrucciones SQL en un clúster y devuelve un identificador que permite obtener los resultados. En este ejemplo, se utiliza el método de autenticación de credenciales temporales.

```
aws redshift-data batch-execute-statement 
    --db-user myuser 
    --cluster-identifier mycluster-test 
    --database dev 
    --sqls "set timezone to BST" "select * from mytable" "select * from another_table"
```

A continuación se muestra un ejemplo de respuesta.

```
{
    "ClusterIdentifier": "mycluster-test",
    "CreatedAt": 1598306924.632,
    "Database": "dev",
    "DbUser": "myuser",
    "Id": "d9b6c0c9-0747-4bf4-b142-e8883122f766"
}
```

# Muestra de metadatos sobre las instrucciones SQL
<a name="data-api-calling-cli-list-statements"></a>

Para enumerar los metadatos relativos a las instrucciones SQL, utilice el comando `aws redshift-data list-statements` de la AWS CLI. La autorización para ejecutar este comando se basa en los permisos de IAM de la persona que llama.

El siguiente comando de la AWS CLI enumera las instrucciones SQL que se ejecutaron.

```
aws redshift-data list-statements 
    --status ALL
```

A continuación se muestra un ejemplo de respuesta.

```
{
    "Statements": [
        {
            "CreatedAt": 1598306924.632,
            "Id": "d9b6c0c9-0747-4bf4-b142-e8883122f766",
            "QueryString": "select * from stl_query limit 1",
            "Status": "FINISHED",
            "UpdatedAt": 1598306926.667
        },
        {
            "CreatedAt": 1598311717.437,
            "Id": "e0ebd578-58b3-46cc-8e52-8163fd7e01aa",
            "QueryString": "select * from stl_query limit 1",
            "Status": "FAILED",
            "UpdatedAt": 1598311719.008
        },
        {
            "CreatedAt": 1598313683.65,
            "Id": "c361d4f7-8c53-4343-8c45-6b2b1166330c",
            "QueryString": "select * from stl_query limit 1",
            "Status": "ABORTED",
            "UpdatedAt": 1598313685.495
        },
        {
            "CreatedAt": 1598306653.333,
            "Id": "a512b7bd-98c7-45d5-985b-a715f3cfde7f",
            "QueryString": "select 1",
            "Status": "FINISHED",
            "UpdatedAt": 1598306653.992
        }
    ]
}
```

# Descripción de metadatos sobre una instrucción SQL
<a name="data-api-calling-cli-describe-statement"></a>

Para obtener descripciones de los metadatos de una instrucción SQL, utilice el comando `aws redshift-data describe-statement` de la AWS CLI. La autorización para ejecutar este comando se basa en los permisos de IAM de la persona que llama. 

El siguiente comando de la AWS CLI describe una instrucción SQL. 

```
aws redshift-data describe-statement 
    --id d9b6c0c9-0747-4bf4-b142-e8883122f766
```

A continuación se muestra un ejemplo de respuesta.

```
{
    "ClusterIdentifier": "mycluster-test",
    "CreatedAt": 1598306924.632,
    "Duration": 1095981511,
    "Id": "d9b6c0c9-0747-4bf4-b142-e8883122f766",
    "QueryString": "select * from stl_query limit 1",
    "RedshiftPid": 20859,
    "RedshiftQueryId": 48879,
    "ResultRows": 1,
    "ResultSize": 4489,
    "Status": "FINISHED",
    "UpdatedAt": 1598306926.667
}
```

A continuación, se muestra un ejemplo de una respuesta `describe-statement` que surge después de ejecutar un comando `batch-execute-statement` con varias instrucciones SQL.

```
{
    "ClusterIdentifier": "mayo",
    "CreatedAt": 1623979777.126,
    "Duration": 6591877,
    "HasResultSet": true,
    "Id": "b2906c76-fa6e-4cdf-8c5f-4de1ff9b7652",
    "RedshiftPid": 31459,
    "RedshiftQueryId": 0,
    "ResultRows": 2,
    "ResultSize": 22,
    "Status": "FINISHED",
    "SubStatements": [
        {
            "CreatedAt": 1623979777.274,
            "Duration": 3396637,
            "HasResultSet": true,
            "Id": "b2906c76-fa6e-4cdf-8c5f-4de1ff9b7652:1",
            "QueryString": "select 1;",
            "RedshiftQueryId": -1,
            "ResultRows": 1,
            "ResultSize": 11,
            "Status": "FINISHED",
            "UpdatedAt": 1623979777.903
        },
        {
            "CreatedAt": 1623979777.274,
            "Duration": 3195240,
            "HasResultSet": true,
            "Id": "b2906c76-fa6e-4cdf-8c5f-4de1ff9b7652:2",
            "QueryString": "select 2;",
            "RedshiftQueryId": -1,
            "ResultRows": 1,
            "ResultSize": 11,
            "Status": "FINISHED",
            "UpdatedAt": 1623979778.076
        }
    ],
    "UpdatedAt": 1623979778.183
}
```

# Obtención de los resultados de una instrucción SQL
<a name="data-api-calling-cli-get-statement-result"></a>

Para obtener el resultado de una instrucción de SQL que ya se ejecutó, utilice el comando `redshift-data get-statement-result` o `redshift-data get-statement-result-v2` de la AWS CLI. Los resultados de `get-statement-result` están en formato JSON. Los resultados de `get-statement-result-v2` están en formato CSV. Puede proporcionar un `Id` que reciba en respuesta a `execute-statement` o `batch-execute-statement`. El valor `Id` para una instrucción SQL ejecutada por `batch-execute-statement` se puede recuperar en el resultado de `describe-statement` y lleva como sufijo dos puntos y un número de secuencia, como `b2906c76-fa6e-4cdf-8c5f-4de1ff9b7652:2`. Si ejecuta varias instrucciones SQL con `batch-execute-statement`, cada una de ellas tiene un valor `Id` como se muestra en `describe-statement`. La autorización para ejecutar este comando se basa en los permisos de IAM de la persona que llama. 

La siguiente instrucción devuelve el resultado de una instrucción de SQL que se ejecuta mediante `execute-statement` que hace que `ResultFormat` utilice `JSON` de manera predeterminada. Para recuperar los resultados, llame a la operación `get-statement-result`.

```
aws redshift-data get-statement-result 
    --id d9b6c0c9-0747-4bf4-b142-e8883122f766
```

La siguiente instrucción devuelve el resultado de la segunda instrucción SQL que se ejecuta mediante `batch-execute-statement`.

```
aws redshift-data get-statement-result 
    --id b2906c76-fa6e-4cdf-8c5f-4de1ff9b7652:2
```

A continuación, se muestra un ejemplo de una respuesta a una llamada a `get-statement-result` en la que se devuelve el resultado de SQL en formato JSON en la clave `Records` de la respuesta.

```
{
    "ColumnMetadata": [
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "userid",
            "length": 0,
            "name": "userid",
            "nullable": 0,
            "precision": 10,
            "scale": 0,
            "schemaName": "",
            "tableName": "stll_query",
            "typeName": "int4"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "query",
            "length": 0,
            "name": "query",
            "nullable": 0,
            "precision": 10,
            "scale": 0,
            "schemaName": "",
            "tableName": "stll_query",
            "typeName": "int4"
        },
        {
            "isCaseSensitive": true,
            "isCurrency": false,
            "isSigned": false,
            "label": "label",
            "length": 0,
            "name": "label",
            "nullable": 0,
            "precision": 320,
            "scale": 0,
            "schemaName": "",
            "tableName": "stll_query",
            "typeName": "bpchar"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "xid",
            "length": 0,
            "name": "xid",
            "nullable": 0,
            "precision": 19,
            "scale": 0,
            "schemaName": "",
            "tableName": "stll_query",
            "typeName": "int8"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "pid",
            "length": 0,
            "name": "pid",
            "nullable": 0,
            "precision": 10,
            "scale": 0,
            "schemaName": "",
            "tableName": "stll_query",
            "typeName": "int4"
        },
        {
            "isCaseSensitive": true,
            "isCurrency": false,
            "isSigned": false,
            "label": "database",
            "length": 0,
            "name": "database",
            "nullable": 0,
            "precision": 32,
            "scale": 0,
            "schemaName": "",
            "tableName": "stll_query",
            "typeName": "bpchar"
        },
        {
            "isCaseSensitive": true,
            "isCurrency": false,
            "isSigned": false,
            "label": "querytxt",
            "length": 0,
            "name": "querytxt",
            "nullable": 0,
            "precision": 4000,
            "scale": 0,
            "schemaName": "",
            "tableName": "stll_query",
            "typeName": "bpchar"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": false,
            "label": "starttime",
            "length": 0,
            "name": "starttime",
            "nullable": 0,
            "precision": 29,
            "scale": 6,
            "schemaName": "",
            "tableName": "stll_query",
            "typeName": "timestamp"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": false,
            "label": "endtime",
            "length": 0,
            "name": "endtime",
            "nullable": 0,
            "precision": 29,
            "scale": 6,
            "schemaName": "",
            "tableName": "stll_query",
            "type": 93,
            "typeName": "timestamp"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "aborted",
            "length": 0,
            "name": "aborted",
            "nullable": 0,
            "precision": 10,
            "scale": 0,
            "schemaName": "",
            "tableName": "stll_query",
            "typeName": "int4"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "insert_pristine",
            "length": 0,
            "name": "insert_pristine",
            "nullable": 0,
            "precision": 10,
            "scale": 0,
            "schemaName": "",
            "tableName": "stll_query",
            "typeName": "int4"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "concurrency_scaling_status",
            "length": 0,
            "name": "concurrency_scaling_status",
            "nullable": 0,
            "precision": 10,
            "scale": 0,
            "schemaName": "",
            "tableName": "stll_query",
            "typeName": "int4"
        }
    ],
    "Records": [
        [
            {
                "longValue": 1
            },
            {
                "longValue": 3
            },
            {
                "stringValue": "health"
            },
            {
                "longValue": 1023
            },
            {
                "longValue": 15279
            },
            {
                "stringValue": "dev"
            },
            {
                "stringValue": "select system_status from stv_gui_status;"
            },
            {
                "stringValue": "2020-08-21 17:33:51.88712"
            },
            {
                "stringValue": "2020-08-21 17:33:52.974306"
            },
            {
                "longValue": 0
            },
            {
                "longValue": 0
            },
            {
                "longValue": 6
            }
        ]
    ],
    "TotalNumRows": 1
}
```

En el siguiente ejemplo, se muestra una instrucción de SQL ejecutada por `execute-statement` para devolver resultados en formato JSON. La tabla `testingtable` tiene tres columnas de enteros (col1, col2, col3) y hay tres filas con valores (1, 2, 3), (4, 5, 6) y (7, 8, 9).

```
aws redshift-data execute-statement 
    --database dev 
    --sql "SELECT col1, col2, col3 FROM testingtable" 
    --cluster-id mycluster-test 
    --result-format JSON
```

```
{
    "ClusterIdentifier": "mycluster-test",
    "CreatedAt": "2024-04-02T16:45:25.144000+00:00",
    "Database": "dev",
    "DbUser": "IAMR:Administrator",
    "Id": "d468d942-6df9-4f85-8ae3-bac01a61aec3"
}
```

A continuación, se muestra un ejemplo de una respuesta a una llamada a `get-statement-result` en la que se devuelve el resultado de SQL en formato JSON en la clave `Records` de la respuesta.

```
aws redshift-data get-statement-result
    --id d468d942-6df9-4f85-8ae3-bac01a61aec3
```

```
{
    "Records": [
        [
            {
                "longValue": 1
            },
            {
                "longValue": 2
            },
            {
                "longValue": 3
            }
        ],
        [
            {
                "longValue": 4
            },
            {
                "longValue": 5
            },
            {
                "longValue": 6
            }
        ],
        [
            {
                "longValue": 7
            },
            {
                "longValue": 8
            },
            {
                "longValue": 9
            }
        ]
    ],
    "ColumnMetadata": [
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "col1",
            "name": "col1",
            "nullable": 1,
            "precision": 10,
            "scale": 0,
            "schemaName": "public",
            "tableName": "testingtable",
            "typeName": "int4",
            "length": 0
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "col2",
            "name": "col2",
            "nullable": 1,
            "precision": 10,
            "scale": 0,
            "schemaName": "public",
            "tableName": "testingtable",
            "typeName": "int4",
            "length": 0
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "col3",
            "name": "col3",
            "nullable": 1,
            "precision": 10,
            "scale": 0,
            "schemaName": "public",
            "tableName": "testingtable",
            "typeName": "int4",
            "length": 0
        }
    ],
    "TotalNumRows": 3
}
```

En el siguiente ejemplo, se muestra una instrucción de SQL ejecutada por `execute-statement` para devolver resultados en formato CSV. La tabla `testingtable` tiene tres columnas de enteros (col1, col2, col3) y hay tres filas con valores (1, 2, 3), (4, 5, 6) y (7, 8, 9).

```
aws redshift-data execute-statement 
    --database dev 
    --sql "SELECT col1, col2, col3 FROM testingtable" 
    --cluster-id mycluster-test 
    --result-format CSV
```

```
{
    "ClusterIdentifier": "mycluster-test",
    "CreatedAt": "2024-04-02T16:45:25.144000+00:00",
    "Database": "dev",
    "DbUser": "IAMR:Administrator",
    "Id": "d468d942-6df9-4f85-8ae3-bac01a61aec3"
}
```

A continuación, se muestra un ejemplo de una respuesta a una llamada a `get-statement-result-v2` en la que se devuelve el resultado de SQL en formato CSV en la clave `Records` de la respuesta. Las filas están separadas por un retorno de carro y una línea nueva (\$1r\$1n). La primera fila devuelta en `Records` son los encabezados de columna. Los resultados en formato CSV se devuelven en fragmentos de 1 MB y cada fragmento puede almacenar cualquier número de filas de hasta 1 MB. 

```
aws redshift-data get-statement-result-v2
    --id d468d942-6df9-4f85-8ae3-bac01a61aec3
```

```
{
    "Records": [
        {
            "CSVRecords": "col1,col2,col3\r\n1,2,3\r\n4,5,6\r\n7,8,9\r\n"
        }
    ],
    "ColumnMetadata": [
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "col1",
            "name": "col1",
            "nullable": 1,
            "precision": 10,
            "scale": 0,
            "schemaName": "public",
            "tableName": "testingtable",
            "typeName": "int4",
            "length": 0
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "col2",
            "name": "col2",
            "nullable": 1,
            "precision": 10,
            "scale": 0,
            "schemaName": "public",
            "tableName": "testingtable",
            "typeName": "int4",
            "length": 0
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": true,
            "label": "col3",
            "name": "col3",
            "nullable": 1,
            "precision": 10,
            "scale": 0,
            "schemaName": "public",
            "tableName": "testingtable",
            "typeName": "int4",
            "length": 0
        }
    ],
    "TotalNumRows": 3,
    "ResultFormat": "csv"
}
```

# Descripción de una tabla
<a name="data-api-calling-cli-describe-table"></a>

Para obtener los metadatos que describen una tabla, utilice el comando `aws redshift-data describe-table` de la AWS CLI.

El siguiente comando de la AWS CLI ejecuta una instrucción SQL en un clúster y devuelve los metadatos que describen una tabla. En este ejemplo, se utiliza el método de autenticación de AWS Secrets Manager.

```
aws redshift-data describe-table  
    --cluster-identifier mycluster-test 
    --database dev 
    --schema information_schema 
    --table sql_features 
    --secret-arn arn:aws:secretsmanager:us-west-2:123456789012:secret:myuser-secret-hKgPWn
```

A continuación se muestra un ejemplo de respuesta.

```
{
    "ColumnList": [
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": false,
            "length": 2147483647,
            "name": "feature_id",
            "nullable": 1,
            "precision": 2147483647,
            "scale": 0,
            "schemaName": "information_schema",
            "tableName": "sql_features",
            "typeName": "character_data"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": false,
            "length": 2147483647,
            "name": "feature_name",
            "nullable": 1,
            "precision": 2147483647,
            "scale": 0,
            "schemaName": "information_schema",
            "tableName": "sql_features",
            "typeName": "character_data"
        }     
    ]
}
```

El siguiente comando de la AWS CLI ejecuta una instrucción SQL en un clúster que describe una tabla. En este ejemplo, se utiliza el método de autenticación de credenciales temporales.

```
aws redshift-data describe-table 
    --db-user myuser 
    --cluster-identifier mycluster-test 
    --database dev 
    --schema information_schema 
    --table sql_features
```

A continuación se muestra un ejemplo de respuesta.

```
{
    "ColumnList": [
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": false,
            "length": 2147483647,
            "name": "feature_id",
            "nullable": 1,
            "precision": 2147483647,
            "scale": 0,
            "schemaName": "information_schema",
            "tableName": "sql_features",
            "typeName": "character_data"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": false,
            "length": 2147483647,
            "name": "feature_name",
            "nullable": 1,
            "precision": 2147483647,
            "scale": 0,
            "schemaName": "information_schema",
            "tableName": "sql_features",
            "typeName": "character_data"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": false,
            "length": 2147483647,
            "name": "sub_feature_id",
            "nullable": 1,
            "precision": 2147483647,
            "scale": 0,
            "schemaName": "information_schema",
            "tableName": "sql_features",
            "typeName": "character_data"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": false,
            "length": 2147483647,
            "name": "sub_feature_name",
            "nullable": 1,
            "precision": 2147483647,
            "scale": 0,
            "schemaName": "information_schema",
            "tableName": "sql_features",
            "typeName": "character_data"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": false,
            "length": 2147483647,
            "name": "is_supported",
            "nullable": 1,
            "precision": 2147483647,
            "scale": 0,
            "schemaName": "information_schema",
            "tableName": "sql_features",
            "typeName": "character_data"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": false,
            "length": 2147483647,
            "name": "is_verified_by",
            "nullable": 1,
            "precision": 2147483647,
            "scale": 0,
            "schemaName": "information_schema",
            "tableName": "sql_features",
            "typeName": "character_data"
        },
        {
            "isCaseSensitive": false,
            "isCurrency": false,
            "isSigned": false,
            "length": 2147483647,
            "name": "comments",
            "nullable": 1,
            "precision": 2147483647,
            "scale": 0,
            "schemaName": "information_schema",
            "tableName": "sql_features",
            "typeName": "character_data"
        }
    ]
}
```

# Enumeración de las bases de datos de un clúster
<a name="data-api-calling-cli-list-databases"></a>

Para enumerar las bases de datos de un clúster, utilice el comando `aws redshift-data list-databases` de la AWS CLI.

El siguiente comando de la AWS CLI ejecuta una instrucción SQL en un clúster para mostrar bases de datos. En este ejemplo, se utiliza el método de autenticación de AWS Secrets Manager.

```
aws redshift-data list-databases  

    --secret-arn arn:aws:secretsmanager:us-west-2:123456789012:secret:myuser-secret-hKgPWn 
    --cluster-identifier mycluster-test 
    --database dev
```

A continuación se muestra un ejemplo de respuesta.

```
{
    "Databases": [
        "dev"
    ]
}
```

El siguiente comando de la AWS CLI ejecuta una instrucción SQL en un clúster para mostrar bases de datos. En este ejemplo, se utiliza el método de autenticación de credenciales temporales.

```
aws redshift-data list-databases  
    --db-user myuser 
    --cluster-identifier mycluster-test 
    --database dev
```

A continuación se muestra un ejemplo de respuesta.

```
{
    "Databases": [
        "dev"
    ]
}
```

# Enumeración de los esquemas de una base de datos
<a name="data-api-calling-cli-list-schemas"></a>

Para enumerar los esquemas de una base de datos, utilice el comando `aws redshift-data list-schemas` de la AWS CLI.

El siguiente comando de la AWS CLI ejecuta una instrucción SQL en un clúster para mostrar esquemas en una base de datos. En este ejemplo, se utiliza el método de autenticación de AWS Secrets Manager.

```
aws redshift-data list-schemas 
    --secret-arn arn:aws:secretsmanager:us-west-2:123456789012:secret:myuser-secret-hKgPWn 
    --cluster-identifier mycluster-test 
    --database dev
```

A continuación se muestra un ejemplo de respuesta.

```
{
    "Schemas": [
        "information_schema",
        "pg_catalog",
        "pg_internal",
        "public"
    ]
}
```

El siguiente comando de la AWS CLI ejecuta una instrucción SQL en un clúster para mostrar esquemas en una base de datos. En este ejemplo, se utiliza el método de autenticación de credenciales temporales.

```
aws redshift-data list-schemas 
    --db-user mysuser 
    --cluster-identifier mycluster-test 
    --database dev
```

A continuación se muestra un ejemplo de respuesta.

```
{
    "Schemas": [
        "information_schema",
        "pg_catalog",
        "pg_internal",
        "public"
    ]
}
```

# Enumeración de tablas de una base de datos
<a name="data-api-calling-cli-list-tables"></a>

Para enumerar las tablas de una base de datos, utilice el comando `aws redshift-data list-tables` de la AWS CLI.

El siguiente comando de la AWS CLI ejecuta una instrucción SQL en un clúster para mostrar tablas en una base de datos. En este ejemplo, se utiliza el método de autenticación de AWS Secrets Manager.

```
aws redshift-data list-tables 
    --secret-arn arn:aws:secretsmanager:us-west-2:123456789012:secret:myuser-secret-hKgPWn 
    --cluster-identifier mycluster-test 
    --database dev 
    --schema information_schema
```

A continuación se muestra un ejemplo de respuesta.

```
{
    "Tables": [
        {
            "name": "sql_features",
            "schema": "information_schema",
            "type": "SYSTEM TABLE"
        },
        {
            "name": "sql_implementation_info",
            "schema": "information_schema",
            "type": "SYSTEM TABLE"
        }
}
```

El siguiente comando de la AWS CLI ejecuta una instrucción SQL en un clúster para mostrar tablas en una base de datos. En este ejemplo, se utiliza el método de autenticación de credenciales temporales.

```
aws redshift-data list-tables  

     --db-user myuser 
     --cluster-identifier mycluster-test 
     --database dev 
     --schema information_schema
```

A continuación se muestra un ejemplo de respuesta.

```
{
    "Tables": [
        {
            "name": "sql_features",
            "schema": "information_schema",
            "type": "SYSTEM TABLE"
        },
        {
            "name": "sql_implementation_info",
            "schema": "information_schema",
            "type": "SYSTEM TABLE"
        }
    ]
}
```

# Solución de problemas de la API de datos de Amazon Redshift
<a name="data-api-troubleshooting"></a>

Use las siguientes secciones, tituladas con mensajes de error comunes, para ayudar a solucionar problemas que tenga con la API de datos. 

**Topics**
+ [El paquete de la consulta es demasiado grande](#data-api-troubleshooting-packet-too-large)
+ [Límite de tamaño superado de respuesta de base de datos](#data-api-troubleshooting-response-size-too-large)

## El paquete de la consulta es demasiado grande
<a name="data-api-troubleshooting-packet-too-large"></a>

Si aparece un error que indica que el paquete de una consulta es demasiado grande, por lo general, el conjunto de resultados que se obtiene para una fila también es demasiado grande. El límite de tamaño de la API de datos es 64 KB por fila en el conjunto de resultados devuelto por la base de datos.

Para solventar este problema, asegúrese de que cada fila de un conjunto de resultados sea de 64 KB o menos.

## Límite de tamaño superado de respuesta de base de datos
<a name="data-api-troubleshooting-response-size-too-large"></a>

Si aparece un error que indica que la respuesta de la base de datos ha superado el límite de tamaño, por lo general, esto significa que el tamaño del conjunto de resultados devuelto por la base de datos era demasiado grande. El límite de la API de datos es 500 MB en el conjunto de resultados devuelto por la base de datos.

Para resolver este problema, asegúrese de que las llamadas a la API de datos devuelvan 500 MB o menos. Si necesita devolver más de 500 MB, puede ejecutar varias llamadas de instrucción con la cláusula `LIMIT` en la consulta.

# Programación de operaciones de la API de datos de Amazon Redshift con Amazon EventBridge
<a name="data-api-calling-event-bridge"></a>

Puede crear reglas que coincidan con los eventos seleccionados y que los dirijan a los destinos para realizar alguna acción. También puede utilizar reglas para realizar acciones en una programación predeterminada. Para más información, consulte la [Guía del usuario de Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/). 

Para programar operaciones de la API de datos con EventBridge, el rol de IAM asociado debe confiar en la entidad principal de CloudWatch Events (events.amazonaws.com). Este rol debería tener el equivalente a la política administrada `AmazonEventBridgeFullAccess` adjunta. Además, debería contar con los permisos de la política `AmazonRedshiftDataFullAccess` que administra la API de datos. Puede crear un rol de IAM con estos permisos en la consola de IAM. Al crear un rol en la consola de IAM, elija la entidad de confianza del servicio de AWS para CloudWatch Events. Especifique el rol de IAM en el valor JSON `RoleArn` del destino de EventBridge. Para obtener más información sobre cómo crear un rol de IAM, consulte [Creación de un rol para un servicio de AWS (consola)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#roles-creatingrole-service-console) en la *Guía del usuario de IAM*.

La regla `name` que cree en Amazon EventBridge debe coincidir con el `StatementName` en los `RedshiftDataParameters`.

En los siguientes ejemplos, se muestran las variaciones de la creación de reglas de EventBridge con una o varias instrucciones SQL y con un clúster de Amazon Redshift o un grupo de trabajo de Amazon Redshift sin servidor como almacenamiento de datos.

## Llamada con una sola instrucción SQL y un clúster
<a name="data-api-calling-event-bridge-sql-cluster"></a>

En el siguiente ejemplo, se utiliza la AWS CLI a fin de crear una regla de EventBridge que se use para ejecutar una instrucción SQL en un clúster de Amazon Redshift.

```
aws events put-rule 
--name test-redshift-cluster-data 
--schedule-expression "rate(1 minute)"
```

A continuación, se crea un objetivo de EventBridge para que se ejecute en la programación especificada en la regla. 

```
aws events put-targets 
--cli-input-json file://data.json
```

El archivo data.json de entrada es así. La clave JSON `Sql` indica que hay una sola instrucción SQL. El valor JSON `Arn` contiene un identificador de clúster. El valor JSON `RoleArn` contiene el rol de IAM que se utiliza para ejecutar el código SQL, tal como se describió anteriormente. 

```
{
    "Rule": "test-redshift-cluster-data",
    "EventBusName": "default",
    "Targets": [
        {
            "Id": "2",
            "Arn": "arn:aws:redshift:us-east-1:123456789012:cluster:mycluster",
            "RoleArn": "arn:aws:iam::123456789012:role/Administrator",
            "RedshiftDataParameters": {
                "Database": "dev",
                "DbUser": "root",
                "Sql": "select 1;",
                "StatementName": "test-redshift-cluster-data",
                "WithEvent": true
            }
        }
    ]
}
```

## Llamada con una sola instrucción SQL y un grupo de trabajo
<a name="data-api-calling-event-bridge-sql-workgroup"></a>

En el siguiente ejemplo, se utiliza la AWS CLI a fin de crear una regla de EventBridge que se use para ejecutar una instrucción SQL en un grupo de trabajo de Amazon Redshift sin servidor.

```
aws events put-rule 
--name  test-redshift-serverless-workgroup-data 
--schedule-expression "rate(1 minute)"
```

A continuación, se crea un objetivo de EventBridge para que se ejecute en la programación especificada en la regla. 

```
aws events put-targets 
--cli-input-json file://data.json
```

El archivo data.json de entrada es así. La clave JSON `Sql` indica que hay una sola instrucción SQL. El valor JSON `Arn` contiene un nombre de grupo de trabajo. El valor JSON `RoleArn` contiene el rol de IAM que se utiliza para ejecutar el código SQL, tal como se describió anteriormente. 

```
{
    "Rule": "test-redshift-serverless-workgroup-data", 
    "EventBusName": "default", 
    "Targets": [ 
        {
            "Id": "2",
            "Arn": "arn:aws:redshift-serverless:us-east-1:123456789012:workgroup/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
            "RoleArn": "arn:aws:iam::123456789012:role/Administrator", 
            "RedshiftDataParameters": {
                "Database": "dev",
                "Sql": "select 1;",
                "StatementName": "test-redshift-serverless-workgroup-data", 
                "WithEvent": true 
            } 
        } 
    ] 
}
```

## Llamada con varias instrucciones SQL y un clúster
<a name="data-api-calling-event-bridge-sqls-cluster"></a>

En el siguiente ejemplo, se utiliza la AWS CLI a fin de crear una regla de EventBridge que se use para ejecutar varias instrucciones SQL en un clúster de Amazon Redshift.

```
aws events put-rule 
--name  test-redshift-cluster-data 
--schedule-expression "rate(1 minute)"
```

A continuación, se crea un objetivo de EventBridge para que se ejecute en la programación especificada en la regla. 

```
aws events put-targets 
--cli-input-json file://data.json
```

El archivo data.json de entrada es así. La clave JSON `Sqls` indica que hay varias instrucciones SQL. El valor JSON `Arn` contiene un identificador de clúster. El valor JSON `RoleArn` contiene el rol de IAM que se utiliza para ejecutar el código SQL, tal como se describió anteriormente. 

```
{
    "Rule": "test-redshift-cluster-data", 
    "EventBusName": "default", 
    "Targets": [ 
        {
            "Id": "2",
            "Arn": "arn:aws:redshift:us-east-1:123456789012:cluster:mycluster",
            "RoleArn": "arn:aws:iam::123456789012:role/Administrator", 
            "RedshiftDataParameters": {
                "Database": "dev",
                "Sqls": ["select 1;", "select 2;", "select 3;"],
                "StatementName": "test-redshift-cluster-data", 
                "WithEvent": true 
            } 
        } 
    ] 
}
```

## Llamada con varias instrucciones SQL y un grupo de trabajo
<a name="data-api-calling-event-bridge-sqls-workgroup"></a>

En el siguiente ejemplo, se utiliza la AWS CLI a fin de crear una regla de EventBridge que se use para ejecutar varias instrucciones SQL en un grupo de trabajo de Amazon Redshift sin servidor.

```
aws events put-rule 
--name  test-redshift-serverless-workgroup-data 
--schedule-expression "rate(1 minute)"
```

A continuación, se crea un objetivo de EventBridge para que se ejecute en la programación especificada en la regla. 

```
aws events put-targets 
--cli-input-json file://data.json
```

El archivo data.json de entrada es así. La clave JSON `Sqls` indica que hay varias instrucciones SQL. El valor JSON `Arn` contiene un nombre de grupo de trabajo. El valor JSON `RoleArn` contiene el rol de IAM que se utiliza para ejecutar el código SQL, tal como se describió anteriormente. 

```
{
    "Rule": "test-redshift-serverless-workgroup-data", 
    "EventBusName": "default", 
    "Targets": [ 
        {
            "Id": "2",
            "Arn": "arn:aws:redshift-serverless:us-east-1:123456789012:workgroup/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
            "RoleArn": "arn:aws:iam::123456789012:role/Administrator", 
            "RedshiftDataParameters": {
                "Database": "dev",
                "Sqls": ["select 1;", "select 2;", "select 3;"],
                "StatementName": "test-redshift-serverless-workgroup-data", 
                "WithEvent": true 
            } 
        } 
    ] 
}
```

# Monitoreo de la API de datos
<a name="data-api-monitoring"></a>

El monitoreo es una parte importante del mantenimiento de la fiabilidad, la disponibilidad y el rendimiento de la API de datos y de sus otras soluciones de AWS. AWS proporciona las siguientes herramientas de monitoreo para vigilar la API de datos, informar cuando algo va mal y realizar acciones de manera automática cuando sea necesario: 
+ Amazon EventBridge puede utilizarse para automatizar los servicios de AWS y responder automáticamente a eventos del sistema, como problemas de disponibilidad de las aplicaciones o cambios en los recursos. Los eventos de los servicios de AWS se envían a EventBridge casi en tiempo real. Puede crear reglas sencillas para indicar qué eventos le resultan de interés, así como qué acciones automatizadas se van a realizar cuando un evento cumple una de las reglas. Para obtener más información, consulte la [Guía del usuario de Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/). 
+ AWS CloudTrail captura llamadas a la API y eventos relacionados efectuados por su cuenta de AWS o en su nombre, y entrega los archivos de registro al bucket de Amazon S3 que se haya especificado. También puede identificar qué usuarios y cuentas llamaron a AWS, la dirección IP de origen de las llamadas y el momento en que se hicieron. Para obtener más información sobre cómo Amazon Redshift se integra con AWS CloudTrail, consulte [Registro con CloudTrail](https://docs.aws.amazon.com/redshift/latest/mgmt/logging-with-cloudtrail.html). Para obtener más información acerca de CloudTrail, consulte la [Guía del usuario de AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/). 

**Topics**
+ [Monitoreo de eventos para la API de datos de Amazon Redshift en Amazon EventBridge](data-api-monitoring-events.md)

# Monitoreo de eventos para la API de datos de Amazon Redshift en Amazon EventBridge
<a name="data-api-monitoring-events"></a>

Puede monitorear los eventos de la API de datos en EventBridge, lo que envía un flujo de datos en tiempo real desde sus propias aplicaciones, aplicaciones de software como servicio (SaaS) y servicios de AWS. EventBridge dirige esos datos a los objetivos, como AWS Lambda y Amazon SNS. Estos eventos son los mismos que los que aparecen en CloudWatch Events, lo que proporciona un flujo de eventos del sistema casi en tiempo real que describen los cambios en los recursos de AWS. Los eventos se envían a la cuenta donde se encuentra la base de datos de Amazon Redshift. Por ejemplo, si se asume un rol en otra cuenta, los eventos se envían a esa cuenta. Para obtener más información, consulte los [Eventos de Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html) en la *Guía del usuario de Amazon EventBridge*. 

Los eventos de la API de datos se envían cada vez que la operación `ExecuteStatement` o `BatchExecuteStatement` de la API establece la opción `WithEvent` como `true`. El campo `state` del evento contiene uno de los siguientes valores. 
+ ABORTED: el usuario ha detenido la ejecución de la consulta. 
+ FAILED: se produce un error en la ejecución de la consulta. 
+ FINISHED: se completó la ejecución de la consulta. 

Los eventos se entregan de forma garantizada. Para obtener más información, consulte [Eventos de servicios de AWS](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html) en la *Guía del usuario de Amazon EventBridge*. 

## Ejemplo de evento terminado de la API de datos
<a name="data-api-monitoring-events-finished"></a>

En el siguiente ejemplo, se muestra un evento de la API de datos en el momento en que la operación `ExecuteStatement` de la API se completa. En este ejemplo, una instrucción denominada `test.testtable` completó la ejecución.

```
{
    "version": "0",
    "id": "18e7079c-dd4b-dd64-caf9-e2a31640dab0",
    "detail-type": "Redshift Data Statement Status Change",
    "source": "aws.redshift-data",
    "account": "123456789012",
    "time": "2020-10-01T21:14:26Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:redshift:us-east-1:123456789012:cluster:redshift-cluster-1"
    ],
    "detail": {
        "principal": "arn:aws:iam::123456789012:user/myuser",
        "statementName": "test.testtable",
        "statementId": "dd2e1ec9-2ee3-49a0-819f-905fa7d75a4a",
        "redshiftQueryId": -1,
        "state": "FINISHED",
        "rows": 1,
        "expireAt": 1601673265
    }
}
```

# Uso de AWS KMS con la API de datos de Amazon Redshift
<a name="data-api-kms"></a>

Al cifrar el clúster de Amazon Redshift o el grupo de trabajo sin servidor de Redshift con una clave administrada por el cliente, la API de datos de Amazon Redshift utiliza esa misma clave administrada por el cliente para almacenar y cifrar las consultas y los resultados.

La API de datos cifra los datos de forma predeterminada para proteger la información confidencial, como el texto y los resultados de las consultas. Utiliza claves de cifrado de AWS KMS que son propiedad de AWS para esta protección.

El cifrado predeterminado de los datos en reposo reduce la sobrecarga operativa y la complejidad al proteger la información confidencial. Este enfoque lo ayuda a crear aplicaciones seguras que cumplen con los estrictos requisitos normativos y de conformidad del cifrado.

## Uso de concesiones en AWS KMS
<a name="data-api-kms-grants"></a>

La API de datos requiere una concesión para utilizar la clave administrada por el cliente.

Cuando llama a `ExecuteStatement` o `BatchExecuteStatement` en contra de un clúster cifrado con una clave administrada por el cliente, Amazon Redshift crea una concesión en su nombre mediante el envío de una solicitud [https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html) a AWS KMS. AWS KMS usa concesiones para otorgar a la API de datos acceso a una clave de KMS en la cuenta.

La API de datos necesita la concesión para utilizar la clave administrada por el cliente para las siguientes operaciones:
+ Envíe solicitudes de [https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html) a AWS KMS para cifrar los metadatos de las consultas con la clave administrada por el cliente.
+ Envíe solicitudes de [https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) a AWS KMS para generar claves de datos cifradas por la clave administrada por el cliente.
+ Envíe solicitudes de [https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) a AWS KMS para descifrar las claves de datos cifradas, para que puedan cifrarse los datos.

Puede revocar el acceso a la concesión o eliminar el acceso de Amazon Redshift a la clave administrada por el cliente en cualquier momento. Si lo hace, la API de datos ya no puede acceder a datos cifrados por la clave administrada por el cliente, lo que afecta a las operaciones que dependan de esos datos. Por ejemplo, si intenta recuperar los resultados de una consulta o realizar un seguimiento del estado de la consulta después de revocar la concesión, la API de datos devuelve una `AccessDeniedException`.

## Políticas de claves para la clave administrada por el cliente
<a name="data-api-kms-policy"></a>

Las políticas de clave controlan el acceso a la clave administrada por el cliente. Cada clave administrada por el cliente debe tener exactamente una política de clave, que contiene instrucciones que determinan quién puede usar la clave y cómo puede utilizarla. Cuando crea la clave administrada por el cliente, puede especificar una política de clave. Para más información, consulte las [claves administradas por el cliente](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-mgn-key) en la *Guía para desarrolladores de AWS Key Management Service*.

Para utilizar las claves administradas por el cliente con la API de datos, primero debe permitir el acceso a Amazon Redshift. Las operaciones de la API siguientes se deben permitir en la política de claves:
+ `kms:CreateGrant`: agrega una concesión a una clave administrada por el cliente. Concede acceso de control a una clave de AWS KMS especificada, lo que permite acceder a las operaciones de concesión que Amazon Redshift necesita. Para obtener más información, consulte [Uso de concesiones en AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations).

A continuación, se muestra una política de claves de ejemplo:

```
"Statement":[
   {
      "Sid":"Allow access to principals authorized to use Amazon Redshift",
      "Effect":"Allow",
      "Principal":{
         "AWS":"*"
      },
      "Action":[
         "kms:DescribeKey",
         "kms:CreateGrant"
      ],
      "Resource":"*",
      "Condition":{
         "StringEquals":{
            "kms:ViaService":"redshift.amazonaws.com",
            "kms:CallerAccount":"111122223333"
         }
      }
   },
   {
      "Sid":"AllowKeyAdministratorsAccess",
      "Effect":"Allow",
      "Principal":{
         "AWS":"arn:aws:iam::111122223333:role/ExampleAdminRole"
      },
      "Action":"kms:*",
      "Resource":"*"
   },
   {
      "Sid":"AllowKeyUseForExampleRole",
      "Effect":"Allow",
      "Principal":{
         "AWS":"arn:aws:iam::111122223333:role/ExampleUserRole"
      },
      "Action":[
         "kms:Encrypt",
         "kms:Decrypt",
         "kms:ReEncrypt*",
         "kms:GenerateDataKey*",
         "kms:DescribeKey"
      ],
      "Resource":"*"
   }
]
```

## Contexto de cifrado de API de datos
<a name="data-api-kms-encryption"></a>

Un contexto de cifrado es un conjunto de pares de valor de clave opcional que contiene información contextual adicional sobre los datos. AWS KMS utiliza el contexto de cifrado como datos autenticados adicionales para permitir el cifrado autenticado. Cuando se incluye un contexto de cifrado en una solicitud para cifrar datos, AWS KMS vincula el contexto de cifrado a los datos cifrados. Para descifrar los datos, debe incluir el mismo contexto de cifrado en la solicitud. 

La API de datos utiliza los mismos tres pares clave-valor del contexto de cifrado en todas las operaciones criptográficas de AWS KMS de los clústeres aprovisionados:
+ `aws:redshift:arn`: el nombre de recurso de Amazon (ARN) del clúster
+ `aws:redshift:createtime`: la marca temporal en que solicitó la creación de un clúster
+ `serviceName` – `RedshiftDataAPI`

```
"EncryptionContextSubset": {
    "aws:redshift:arn": "arn:aws:redshift:us-east-1:123456789012:cluster:redshift-cluster",
    "aws:redshift:createtime": "20250815T0000Z",
    "serviceName": "RedshiftDataAPI",
}
```

La API de datos utiliza dos pares clave-valor del contexto de cifrado en todas las operaciones criptográficas de AWS KMS de los grupos de trabajo sin servidor:
+ `aws:redshift-serverless:arn`: el nombre de recurso de Amazon (ARN) del espacio de nombres
+ `serviceName`: RedshiftDataAPI

```
"EncryptionContextSubset": {
    "aws:redshift-serverless:arn": "arn:aws:redshift-serverless:us-east-1:123456789012:namespace:12345678-1234-1234-1234-123456789012",
    "serviceName": "RedshiftDataAPI"
}
```

Para obtener más información sobre el cifrado, consulte [Introducción a los detalles criptográficos de AWS KMS](https://docs.aws.amazon.com/kms/latest/cryptographic-details/intro.html). Para obtener más información sobre Amazon Redshift y la integración de AWS KMS, consulte [Cómo Amazon Redshift utiliza AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/services-redshift.html). 

# Uso de Estudio unificado de Amazon SageMaker para consultar las bases de datos en Amazon Redshift y SageMaker Lakehouse
<a name="sagemaker-unified-studio"></a>

Estudio unificado de Amazon SageMaker proporciona un entorno de desarrollo fuera de la consola y admite el análisis SQL de los datos en SageMaker Lakehouse, Amazon Redshift y Amazon Athena para el análisis de SQL. Diríjase a Estudio unificado de Amazon SageMaker mediante la URL del administrador y utilice su SSO o sus credenciales de AWS para iniciar sesión. Para obtener más información sobre cómo configurar el primer proyecto, consulte [Introducción](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/getting-started.html) en la *Guía del usuario de Estudio unificado de Amazon SageMaker*.

En Estudio unificado de Amazon SageMaker, puede realizar [análisis de SQL](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/sql-query.html) ejecutando Amazon Redshift y Amazon Athena con el [editor de consultas](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/query-editor-navigate.html). Use el editor de consultas para editar y ejecutar consultas, visualizar resultados y compartir su trabajo con el equipo. Ejecute consultas en los almacenes de datos de Redshift en las Cuentas de AWS (dentro de la misma cuenta y en las otras Cuentas de AWS), cree consultas SQL para Redshift y Athena mediante la misma interfaz y programe las consultas SQL con Flujos de trabajo gestionados por Amazon para Apache Airflow. También puede usar el SQL generativo de Amazon Q para generar SQL de lenguaje natural.