Primeros pasos con amazon-redshift

Instalación o configuración

Como se muestra en la guía paso a paso (introducción a Amazon Redshift), implica:

  • Paso 1: configurar los requisitos previos

  • Paso 2: Lanzar un clúster de Amazon Redshift de muestra

  • Paso 3: Autorizar el acceso al clúster

  • Paso 4: Conéctese al clúster de muestra

Configuración de requisitos previos

La configuración de los requisitos previos implica registrarse en una cuenta de AWS e instalar controladores y herramientas de cliente SQL como SQL Workbench/J

Para instalar SQL Workbench J y configurarlo:

  • Use este enlace para descargar el paquete genérico para todos los sistemas (sql-workbench) . Suponiendo que tiene todos sus requisitos previos instalados.
  • Obtener el JDBC/ODBC Driver apropiado.
  • Usando el script en el directorio de instalación, inicie SQL-Workbench.
  • Abra la ventana de conexión > Administrar controladores > Examinar y seleccione el archivo del controlador.
  • En la ventana Seleccionar perfil de conexión. Seleccione el controlador creado en el cuadro Controlador. Pegue la URL del clúster de redshift creado (URL de JDBC de la consola de Amazon Redshift) y el nombre de usuario del usuario maestro, la contraseña.

Lanzar un clúster de muestra de Amazon Redshift

  • Haga clic en Iniciar clúster desde el panel de control de Amazon Redshift
  • En la página de detalles del clúster, elija cualquier Identificador de clúster, Nombre de la base de datos, Puerto de la base de datos (elija un puerto abierto en su firewall ya que no puede cambiar el número de puerto una vez que se crea el clúster), Nombre de usuario maestro, Contraseña de usuario maestro. En la página Configuración de nodos, seleccione la versión (versión Redshift), el tipo de nodo, el tipo de clúster y el número de nodos de cómputo.
  • Según la plataforma EC2-VPC o EC2 Classic que seleccione, los pasos de seguridad varían para autorizar su clúster. Para el resto de las páginas, puede usar la configuración predeterminada por ahora.

Autorizar clúster

Para la plataforma EC2-VPC, haga clic en el nombre del clúster creado después de abrir la pestaña del clúster Redshift desde el panel de navegación y vaya a la pestaña de configuración. En las propiedades del clúster, elija el grupo de seguridad. Edite las reglas de entrada y salida (Protocolo, Rango de puertos, Fuente) según sus requisitos desde la pestaña Entrada y salida.

Para la plataforma EC2-Classic, haga clic en el nombre del clúster creado después de abrir la pestaña del clúster Redshift desde el panel de navegación y vaya a la pestaña de configuración. Elija predeterminado en Propiedades de clúster, para Grupos de seguridad de clúster. Luego elija el grupo de seguridad del clúster en la pestaña Grupos de seguridad, en la lista de grupos de seguridad del clúster. Seleccione CIDR/IP del tipo de conexión en la pestaña de conexiones del grupo de seguridad y autorícelo con una IP/Puerto.

Conéctese al clúster de muestra

Siga el último paso para configurar los requisitos previos.

Conecte la base de datos de desplazamiento al rojo de Amazon y obtenga datos en Array usando Node.js

La mejor manera de conectar Amazon Redshift usando JDBC, use el controlador adecuado según la versión http://docs.aws.amazon.com/redshift/latest/mgmt/configure-jdbc-connection.html

Paso 1: npm instala jdbc

Paso 2:

var JDBC = require('jdbc');
var jinst = require('jdbc/lib/jinst');
// isJvmCreated will be true after the first java call.  When this happens, the
// options and classpath cannot be adjusted.
if (!jinst.isJvmCreated()) {
  // Add all java options required by your project here.  You get one chance to
  // setup the options before the first java call.
  jinst.addOption("-Xrs");
  // Add all jar files required by your project here.  You get one chance to
  // setup the classpath before the first java call.
  jinst.setupClasspath(['./drivers/hsqldb.jar',
                        './drivers/derby.jar',
                        './drivers/derbyclient.jar',
                        './drivers/derbytools.jar',
                        './lib/drivers/RedshiftJDBC41-1.1.10.1010.jar'
                        ]);
}

var config = {
  url: 'jdbc:redshift://test-redshift.czac2vcs84ci.us-east-.redshift.amazonaws.com:5439/testredshift?user=redshift&password=W9P3GC42GJYFpGxBitxPszAc8iZFW',
  drivername: 'com.amazon.redshift.jdbc41.Driver',
  user : 'username',
  password: 'password',
  minpoolsize: 10,
  maxpoolsize: 100
};
var hsqldbInit = false;
GLOBAL.hsqldb = new JDBC(config);`

Paso 3: npm install async (Use el módulo asíncrono para consultar su código) (Opcional)

Paso 4: cree manualmente un nombre de base de datos prueba y una tabla sample_data, busque el comando de base de datos de Amazon Redshift aquí

Paso-5:

var asyncjs = require('async');
hsqldb.reserve(function(err, connObj) {
    if (connObj) {
        console.log("Connection: " + connObj.uuid);
        var conn = connObj.conn;
        asyncjs.series([
            function(callback) {
                conn.createStatement(function(err, statement) {
                    if (err) {
                        callback(err);
                    } else {
                        statement.setFetchSize(100, function(err) {
                            if (err) {
                                callback(err);
                            } else {
                              statement.executeQuery("SELECT * FROM test.sample_data", function(err, resultset) {
                                resultset.toObjArray(function(err,sresults){
                                  console.log(sresults);
                                });   
                              });   
                           }
                        })
                      }
                    })
                 }
              ]) 
         }
      })