こんにちは! JQです。
前回は『 Amazon Redshift編~RubySDKパート②~ 』ということで、RedshiftをRubySDKから削除しました。
今回は『Amazon Redshift編~RubySDKパート③~』と題して、RubyからRedshiftを操作してみたいと思います。
**
DBIとdbd-pgのインストール
**
今回はDBIとdbd-pgを利用してRedshiftに接続をしてみたいと思います。
※Redshiftの作成には以前のレシピを参照下さい。
**Postgresqlモジュールのインストール
**
- まずDBIとdbd-pgを利用する為に必要な、postgresqlとpostgresql-develをインストールします。
1#yum -y install postgresql2#yum -y install postgresql-develDBIとdbd-pgのインストール
- 続いてDBIとdbd-pgのインストールを行います。
1#gem install dbi2#gem install dbd-pg接続情報の取得
- 次に下記スクリプトを利用してRedshiftの接続情報を取得してみます。
※cluster_identifierを必要に応じて変更して下さい。
1#!/usr/bin/env ruby23require 'rubygems'4require 'aws-sdk'56cluster_identifier = "dev"78redshift = AWS:: Redshift.new(9 :redshift_endpoint => "redshift.ap-northeast-1.amazonaws.com",10 :access_key_id => 'xxxxxxxxxxxx',11 :secret_access_key => 'xxxxxxxxxxxxxxx'12)1314client = redshift.client1516cluster = client.describe_clusters(17 :cluster_identifier => cluster_identifier18).clusters[0]1920dbuser=cluster.master_username2122dburl="DBI:Pg:dbname=#{cluster.db_name};host=#{cluster.endpoint.address};port=#{cluster.endpoint.port}"2324puts dbuser25puts dburlRedshiftに接続
1. それでは3番の取得スクリプトを利用して実際にRedshiftに接続してみましょう!
※cluster_identifier とpasswordは環境に合わせて変更して下さい。
1#!/usr/bin/env ruby23require 'rubygems'4require 'aws-sdk'5require "dbi"67cluster_identifier = "dev"89redshift = AWS:: Redshift.new(10 :redshift_endpoint => "redshift.ap-northeast-1.amazonaws.com",11 :access_key_id => 'xxxxxxxxxxxx',12 :secret_access_key => 'xxxxxxxxxxxxxxx'13)1415client = redshift.client1617cluster = client.describe_clusters(18 :cluster_identifier => cluster_identifier19).clusters[0]2021dbuser=cluster.master_username2223dburl="DBI:Pg:dbname=#{cluster.db_name};host=#{cluster.endpoint.address};port=#{cluster.endpoint.port}"24dbpassword = "パスワード"2526begin27 db=DBI.connect(dburl,dbuser,dbpassword)28 row = db.select_one( "SELECT VERSION()" )29 puts row[0]30rescue DBI::DatabaseError => e31 puts "rescue"32 puts "Error code: #{e.err}"33 puts "Error message: #{e.errstr}"34end3536db.disconnect接続が成功すればバージョン情報が表示されると思います!
いかがでしたでしょうか?
次回は『Amazon Redshift編~Unloadパート①~』ということで、RedshiftからS3にデータを出力してみたいと思います。
お楽しみに!
——————————————————————————————————
ナレコムクラウドのFacebookに『いいね!』をクリックして頂くと
最新のお役立ちレシピが配信されます★
——————————————————————————————————