Configurar la conexión entre un cliente SQL externo y un clúster de Amazon Redshift es más sencillo de lo que parece, siempre que conozcas los pasos previos en la consola de AWS. Con un clúster activo, un bucket listo y un rol de acceso configurado, solo resta ajustar unas reglas de seguridad y utilizar los datos de conexión que Redshift proporciona para empezar a escribir consultas SQL tal como lo harías en PostgreSQL.
¿Cómo habilitar el acceso público al clúster de Redshift?
Antes de conectarte desde cualquier editor SQL, es necesario preparar el clúster para recibir conexiones externas. Dentro de la consola de administración de AWS, al ingresar a Amazon Redshift y seleccionar el clúster previamente creado, encontrarás la pestaña de Propiedades [0:42].
Al final de esa pestaña hay un indicador clave: el flag de acceso público. Este parámetro define si el clúster acepta conexiones desde fuera de la red interna de AWS. Para trabajar con un cliente externo como DBeaver, este valor debe estar en yes [1:07].
¿Qué configuración de firewall necesita el clúster?
El siguiente paso involucra las reglas del VPC Security Group, que funcionan como reglas de firewall para controlar el tráfico de entrada y salida del clúster [1:16]. Al acceder al grupo de seguridad asignado, puedes agregar una regla de entrada específica para Redshift.
El puerto por defecto de Redshift es el 5439 [1:40]. Al crear la regla y seleccionar "Redshift" como tipo, el sistema autocompleta ese puerto. Aunque para este ejercicio se permite el acceso desde cualquier IP, la buena práctica consiste en especificar exactamente qué direcciones IP tienen permiso de conexión [1:55].
¿Dónde encontrar los datos de conexión JDBC y ODBC?
De vuelta en la pestaña de Propiedades del clúster, en la parte derecha aparecen los detalles de conexión [2:25]. Redshift ofrece dos tipos de drivers para conectarse a bases de datos:
- JDBC: orientado a aplicaciones Java.
- ODBC: estándar abierto compatible con múltiples herramientas.
Para este caso se copia la cadena de conexión ODBC y se lleva al editor SQL elegido [2:40].
¿Cómo conectar DBeaver a Redshift paso a paso?
DBeaver es un editor SQL gratuito, ligero y compatible con Windows, Linux y macOS [2:52]. Soporta conexiones a múltiples motores: Redshift, PostgreSQL, Oracle, Apache Hive y muchos más.
Al crear una nueva conexión de base de datos y seleccionar Redshift, el programa solicita estos campos [3:20]:
- Host (o server): se extrae de la cadena ODBC copiada.
- Puerto: 5439 por defecto.
- Base de datos: el nombre asignado durante la creación del clúster.
- Username y password: las credenciales configuradas al crear el clúster.
Tras completar los campos y probar la conexión, DBeaver confirma el enlace exitoso con el clúster en la nube [4:07].
¿Es realmente SQL estándar lo que se usa en Redshift?
Una de las grandes ventajas de Redshift es que utiliza SQL prácticamente idéntico al de PostgreSQL [4:30]. Para comprobarlo, se ejecutan operaciones básicas directamente desde DBeaver.
Primero, el clásico SELECT 'Hola Mundo' funciona sin problemas [4:40]. Luego se crean dos tablas con sentencias DDL estándar:
sql
CREATE TABLE estudiante (
id INT2,
nombre VARCHAR(30),
pais_id INT2
);
CREATE TABLE pais (
pais_id INT2,
nombre VARCHAR(60)
);
Un detalle importante: en Redshift, el número dentro de VARCHAR no representa la longitud en caracteres, sino la cantidad de bytes que admite la cadena [5:15]. Esta diferencia resulta crucial al diseñar tablas con datos en idiomas que usan caracteres multibyte.
¿Cómo funcionan los INSERT y los JOIN en Redshift?
La inserción de registros se realiza con INSERT INTO convencional [5:45]. Sin embargo, esta no es la forma más eficiente de cargar datos en Redshift; existen métodos optimizados como el comando COPY.
Los joins funcionan exactamente igual que en otras bases de datos relacionales. Un INNER JOIN entre estudiante y país devuelve solo los registros con coincidencia en ambas tablas [6:30]. Si un estudiante tiene un pais_id que no existe en la tabla país, el inner join lo excluye. La solución es un LEFT JOIN, que conserva todos los registros de la tabla izquierda sin importar si hay coincidencia [7:00].
Finalmente, las tablas se eliminan con DROP TABLE sin inconvenientes [7:15]. El atajo Ctrl + Enter en DBeaver permite ejecutar sentencias de forma rápida.
Lo que se demuestra aquí es poderoso: desde un programa local, sin relación alguna con Amazon, es posible crear, consultar y eliminar objetos en un clúster alojado en la nube, usando el mismo SQL de toda la vida. No hay que aprender una nomenclatura nueva ni un lenguaje diferente. ¿Ya probaste conectarte a tu propio clúster? Comparte tu experiencia y cualquier duda que tengas.