Premiers pas avec amazon-redshift

Installation ou configuration

Comme indiqué dans le guide étape par étape ([Getting started with Amazon Redshift][1]), il s’agit de :

  • Étape 1 : Configurer les prérequis

  • Étape 2 : Lancer un exemple de cluster Amazon Redshift

  • Étape 3 : Autoriser l’accès au cluster

  • Étape 4 : Connectez-vous à l’exemple de cluster

Configuration des prérequis

La configuration des prérequis implique l’inscription à un compte AWS et l’installation de pilotes et d’outils client SQL comme SQL Workbench/J

Pour installer SQL Workbench J et le configurer :

  • Utilisez ce lien pour télécharger le package générique pour tous les systèmes ([sql-workbench][2]) . En supposant que vous avez tous ses prérequis installés.
  • Obtenez le pilote [JDBC][3]/[ODBC][4] approprié.
  • A l’aide du script dans le répertoire d’installation lancez SQL-Workbench .
  • Ouvrir la fenêtre de connexion > Gérer les pilotes > Parcourir et sélectionner le fichier du pilote.
  • Dans la fenêtre Sélectionner un profil de connexion. Sélectionnez le pilote créé dans la zone Pilote. Collez l’URL du cluster redshift créé (URL JDBC de la console Amazon Redshift) et l’utilisateur maître Username , Password.

Lancer un exemple de cluster Amazon Redshift

  • Cliquez sur Lancer le cluster depuis le tableau de bord Amazon Redshift
  • Sur la page des détails du cluster, choisissez un identifiant de cluster, un nom de base de données, un port de base de données (choisissez un port ouvert dans votre pare-feu car vous ne pouvez pas modifier le numéro de port une fois le cluster créé.), nom d’utilisateur principal, mot de passe d’utilisateur principal. Sur la page de configuration du nœud, sélectionnez la version (version Redshift), le type de nœud, le type de cluster et le nombre de nœuds de calcul.
  • En fonction de la plate-forme EC2-VPC ou EC2 Classic que vous sélectionnez, les étapes de sécurité varient pour autoriser votre cluster. Pour le reste des pages, vous pouvez utiliser les paramètres par défaut pour le moment.

Autoriser le cluster

Pour la plate-forme EC2-VPC, cliquez sur le nom du cluster créé après avoir ouvert l’onglet du cluster Redshift dans le volet de navigation et accédez à l’onglet de configuration. Dans les propriétés du cluster, choisissez le groupe de sécurité. Modifiez les règles entrantes et sortantes (protocole, plage de ports, source) selon vos besoins à partir de l’onglet entrant et sortant.

Pour la plate-forme EC2-Classic, cliquez sur le nom du cluster créé après avoir ouvert l’onglet du cluster Redshift dans le volet de navigation et accédez à l’onglet de configuration. Choisissez default sous Cluster Properties , pour Cluster Security Groups. Choisissez ensuite le groupe de sécurité du cluster dans l’onglet Groupes de sécurité, dans la liste des groupes de sécurité du cluster. Sélectionnez CIDR/IP dans le type de connexion dans l’onglet Connexions du groupe de sécurité et autorisez-le avec une adresse IP/un port.

Connectez-vous à l’exemple de cluster

Suivez la dernière étape de configuration des prérequis.

[1] : http://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html [2] : http://www.sql-workbench.net/downloads.html [3] : http://docs.aws.amazon.com/redshift/latest/mgmt/configure-jdbc-connection.html#download-jdbc-driver [4] : http://docs.aws.amazon.com/redshift/latest/mgmt/install-odbc-driver-linux.html [5] : http://i.stack.imgur.com/sAOgv.png [6] : http://docs.aws.amazon.com/redshift/latest/gsg/rs-gsg-create-an-iam-role.html

Connectez la base de données Amazon redshift et récupérez les données dans Array à l’aide de Node.js

Meilleur moyen de connecter amazon redshift à l’aide de JDBC, utilisez le pilote approprié selon la version http://docs.aws.amazon.com/redshift/latest/mgmt/configure-jdbc-connection.html

Étape 1 : npm installer jdbc

Étape 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);`

Étape 3 : npm install async (utilisez le module async pour interroger votre code) (facultatif)

Étape 4 : Créez manuellement un nom de base de données test et une table sample_data , recherchez la commande de base de données amazon redshift [ici][2]

Étape-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);
                                });   
                              });   
                           }
                        })
                      }
                    })
                 }
              ]) 
         }
      })

[1] : http://docs.aws.amazon.com/redshift/latest/mgmt/configure-jdbc-connection.html [2] : http://docs.aws.amazon.com/redshift/latest/dg/c_SQL_commands.html