amazon-redshift开始使用amazon-redshift


备注

本节概述了amazon-redshift是什么,以及开发人员为什么要使用它。

它还应该提到amazon-redshift中的任何大型主题,并链接到相关主题。由于amazon-redshift的文档是新的,您可能需要创建这些相关主题的初始版本。

使用Node.js连接Amazon Redshift数据库并将数据提取到Array中

使用JDBC连接amazon redshift的最佳方法,根据版本使用适当的驱动程序http://docs.aws.amazon.com/redshift/latest/mgmt/configure-jdbc-connection.html

第1步:npm安装jdbc

第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);`
 

步骤3:npm install async(使用异步模块查询代码)(可选)

步骤4:手动创建一个数据库名称test和table sample_data在这里找到amazon redshift database命令

第五步:

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

安装或设置

如分步指南( Amazon Redshift入门 )所示,它涉及:

  • 第1步:设置先决条件

  • 第2步:启动示例Amazon Redshift群集

  • 第3步:授权访问群集

  • 第4步:连接到示例群集

设置先决条件

设置先决条件涉及注册AWS账户和安装SQL客户端驱动程序和SQL Workbench / J等工具

要安装SQL Workbench J并对其进行配置:

  • 使用此链接下载所有系统的通用包( sql-workbench )。假设您已安装所有先决条件。
  • 获取适当的JDBC / ODBC驱动程序。
  • 使用安装目录中的脚本启动SQL-Workbench。
  • 打开连接窗口>管理驱动程序>浏览并选择驱动程序文件。
  • 在选择连接配置文件窗口中。在驱动程序框中选择创建的驱动程序。粘贴创建的红移群集(来自Amazon Redshift控制台的JDBC URL)和主用户用户名密码的URL。

启动示例Amazon Redshift群集

  • 单击Amazon Redshift Dashboard中的Launch Cluster
  • 在群集详细信息页面上,选择任何群集标识符,数据库名称,数据库端口(选择防火墙中的开放端口,因为创建群集后无法更改端口号。),主用户名,主用户密码。在Node Configuration页面上,选择Version(Redshift Version),Node Type,Cluster Type和Number of Compute Nodes。
  • 根据您选择的EC2-VPC或EC2 Classic平台,安全步骤因授权群集而异。对于其余页面,您现在可以使用默认设置。

授权群集

对于EC2-VPC平台,在导航窗格中打开Redshift群集选项卡后,单击创建的群集名称,然后转到配置选项卡。在群集属性中,选择安全组。根据入站和出站选项卡中的要求编辑入站和出站规则(协议,端口范围,源)。

对于EC2-Classic Platform,在导航窗格中打开Redshift cluster选项卡后单击创建的群集名称,然后转到配置选项卡。对于Cluster Security Groups,选择Cluster Properties下的default。然后从群集安全组列表的“安全组”选项卡中选择群集安全组。从安全组连接选项卡中的连接类型中选择CIDR / IP,并使用IP /端口对其进行授权。

连接到示例群集

按照设置先决条件的最后一步操作。