Amazon Redshift編~RubySDKパート③~

こんにちは! JQです。

前回は『 Amazon Redshift編~RubySDKパート②~ 』ということで、RedshiftをRubySDKから削除しました。

今回は『Amazon Redshift編~RubySDKパート③~』と題して、RubyからRedshiftを操作してみたいと思います。

**

DBIとdbd-pgのインストール

**

今回はDBIとdbd-pgを利用してRedshiftに接続をしてみたいと思います。

※Redshiftの作成には以前のレシピを参照下さい。

**Postgresqlモジュールのインストール

**

  1. まずDBIとdbd-pgを利用する為に必要な、postgresqlとpostgresql-develをインストールします。
1#yum -y install postgresql2#yum -y install postgresql-devel

DBIとdbd-pgのインストール

  1. 続いてDBIとdbd-pgのインストールを行います。
1#gem install dbi2#gem install dbd-pg

接続情報の取得

  1. 次に下記スクリプトを利用して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 dburl

Redshiftに接続

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に『いいね!』をクリックして頂くと

最新のお役立ちレシピが配信されます★

┏━━━━━━━━━━━━━┓

┃ナレコムクラウド Facebook┃

┗━━━━━━━━━━━━━┛

——————————————————————————————————

この記事を書いた人

aws-recipe-user