Pocket

Amazon Redshift を動かしてSQLで使ってみるまでの手順

  • add this entry to hatena bookmark

今回、Amazon Redshift を一時的に触ってみる機会があったので、Redshiftを動かしてSQLツールで使ってみるまでの手順を記録しておきます。

Redshiftを利用する際のイメージを付けたい方向けに記載しています。

Amazon Redshift

Amazon Redshift は SQLデータウェアハウスサービスです。 集計・分析が得意で列指向ストレージ技術が採用されています。BIツールなどからJDBCやODBCで接続が出来ます。

最小構成では、DW1のオンデマンドで $1.250/1時間(2014/03/23)で使えます。

クラスターの中に、必要なインスタンスを追加していく事が可能で、インスタンスを追加する毎にデータ容量と処理性能が向上する仕組みになっています。

今回の検証構成

今回試した構成は以下のような構成です。

Redshift-201403

手順は以下となります。

  1. Redshift Cluster の作成
  2. SQL Workbench の設定
  3. サンプルデータの投入
  4. SQL Workbench からのRedshift利用
  5. Redshift 利用状況の観察

結構すんなり使えるようになりました。ざっと使ってみるぐらいであれば、1~2時間あれば簡単な検証はできると思います。

1.Redshift Cluster の作成

さっそく、Redshift画面からクラスターを作成してみます。

launch-cluster

「Launch Cluster」ボタンをクリックすると、Cluster Details 設定画面が開きます。

cluster-details

クラスター識別子やデータベース名、データベースポート番号(デフォルト 5439)、クラスターでのマスターユーザー名とパスワードを設定します。

次は、Node Configuration 設定画面です。ここでは、ノードタイプやクラスタータイプ、ノード数を指定します。

node-Configuration

DW1での最少構成は、Note Typeは「dw1.xlarge」で、CPUは4.4ECU、メモリ 15GB、ストレージは2TBとなります。(500GB未満で良い場合は、DW2を選択すると良いです。)

今回は、クラスタータイプは Single Node で設定しました。

次は Addtional Configuration 設定画面です。データベースの暗号化やVPC選択、AZ選択などが可能です。

Additional-Configuration

今回はデフォルトのままです。次の確認画面でCluster起動前に設定を確認できます。この画面で料金の提示もされます。「Launch Cluster」ボタンをクリックすると、クラスターの起動処理が始まります。

クラスターが使えるようになったら、Statusが「available」になります。

Cluster-available

クラスターを選択すると、詳細を確認できます。「Configuration」画面では、接続アドレスやJDBC URL などが確認できます。

Cluster-Configuration

エンドポイントアドレスやJDBC URL を用いて、BIツールなどから接続する事になります。

2.SQL Workbench の設定

次は、Redshift に接続して、SQLを発行するツール「SQL Workbench」をダウンロードして設定します。

ダウンロードは SQL Workbench/J Download から可能です。Windowsで使う場合は、「Download generic package for all systems」からダウンロードします。

2014/03/22 時点では「Workbench-Build115.zip」をダウンロードできるので、適当な場所に解凍します。64bitの場合は解凍ディレクトリにある「SQLWorkbench64.exe」を起動すると利用できます。

なお、私は PostgreSQL JDBC で接続する為に PostgreSQL JDBC Download から「postgresql-9.3-1101.jdbc41.jar」をダウンロードして、「Workbench-Build115.zip」の解凍ディレクトリに配置しました。

SQL Workbench Profile設定画面で、Driver で PostgreSQL を選択した際に、ダウンロードした「postgresql-9.3-1101.jdbc41.jar」を選択します。

SQL-Workbench-Profile

OKボタンをクリックすると、SQL Workbench ワークスペース画面が表示されますので、これでSQL発行の準備が完了です。

3.サンプルデータの投入

Redshift サンプルデータは、Amazon Redshift Getting Started Guide に記載されています。

「1.Create tables」に記載されているテーブル 7個を SQL Workbench で登録します。

次に、S3に用意されているデータを登録します。登録方法は同様に Amazon Redshift Getting Started Guide に記載されていますが、COPYコマンドをSQL Workbenchから発行して、S3上のデータを Redshift に登録する形になります。

SQL-Workbench-copy-users

各テーブルのデータを登録していきます。各テーブルのレコード数は以下です。

users 49990
venue 202
category 11
date 365
event 8798
listing 192497
sales 3765

listing が約20万件ある状態です。

各レコードの内容は以下のような感じです。(サーバ上に持ってきて見てみました。)

# head -3 allusers_pipe.txt
1|JSG99FHE|Rafael|Taylor|Kent|WA|Etiam.laoreet.libero@sodalesMaurisblandit.edu|(664) 602-4412|TRUE|TRUE||FALSE|TRUE|||TRUE|FALSE|TRUE
2|PGL08LJI|Vladimir|Humphrey|Murfreesboro|SK|Suspendisse.tristique@nonnisiAenean.edu|(783) 492-1886||||TRUE|TRUE|||TRUE|FALSE|TRUE
3|IFT66TXU|Lars|Ratliff|High Point|ME|amet.faucibus.ut@condimentumegetvolutpat.ca|(624) 767-2465|TRUE|FALSE||FALSE||FALSE|TRUE|||TRUE
# head -3 venue_pipe.txt
1|Toyota Park|Bridgeview|IL|0
2|Columbus Crew Stadium|Columbus|OH|0
3|RFK Stadium|Washington|DC|0
# head -3 category_pipe.txt
1|Sports|MLB|Major League Baseball
2|Sports|NHL|National Hockey League
3|Sports|NFL|National Football League
# head -3 date2008_pipe.txt
1827|2008-01-01|WE|1|JAN|1|2008|TRUE
1828|2008-01-02|TH|1|JAN|1|2008|FALSE
1829|2008-01-03|FR|1|JAN|1|2008|FALSE
# head -3 allevents_pipe.txt
1|305|8|1851|Gotterdammerung|2008-01-25 14:30:00
2|306|8|2114|Boris Godunov|2008-10-15 20:00:00
3|302|8|1935|Salome|2008-04-19 14:30:00
# head -3 listings_pipe.txt
1|36861|7872|1850|10|182.00|1820.00|2008-01-24 06:43:29
2|16002|4806|1890|7|233.00|1631.00|2008-03-05 12:25:29
3|21461|4256|2131|2|182.00|364.00|2008-11-01 07:35:33
# head -3 sales_tab.txt
1       1       36861   21191   7872    1875    4       728     109.2   2/18/2008 02:36:48
2       4       8117    11498   4337    1983    2       76      11.4    6/6/2008 05:00:16
3       5       1616    17433   8647    1983    2       350     52.5    6/6/2008 08:26:17
#

登録していく過程で、Redshift Cluster画面でQueriesタブを見てみると、実行クエリーの情報が見れます。一覧画面は以下のような画面です(画面右側も情報がありますがカットしています)。

redshift-queries

各クエリーの詳細情報も確認できます。

Query-Details

同様に「Loads」タブでもロードした情報が確認できます。

4.SQL Workbench からの Redshift 利用

データの準備が終わりましたので、SQLを SQL Workbench から発行してみます。

発行するSQLサンプルは先ほどと同様、 Amazon Redshift Getting Started Guide に記載されています。

select-redshift

実行結果がちゃんと返されます。注目ポイントである検索速度ですが、速い時は速いです。このデータを使って別の仕組みとの比較はしていないので何とも言えないというのが実情です。

5.Redshift 利用状況の観察

他のAWSサービスと同様に、Redshift のパフォーマンスデータなどの利用状況を確認できます。

以下は、クラスターのパフォーマンス画面です。

Cluster_Performance

Redshift のパラメータは「Parameter Groups」から確認できます。

ParameterGroups

検証が終わったら、Redshift Cluster を削除する事をお忘れなく!ストレージ単価で見ると安いと思いますが、削除を忘れて課金された時の金額はデカいと思いますので。

Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*

チェックサイト RSS Feed読者登録はいかがでしょうか?RSS配信中です。