はじめに

このエントリでは、Qlik SenseとAmazon RedShiftを利用したデータ・ディスカバリのデモ環境構築方法についてご説明します。以下の様にAWS上にRedshiftクラスタを作成し、ユーザーはAmazon EC2上に稼働するQlik Sense Serverを介してデータ分析を行う構成となっています。

image

データのロードはAmazon S3 (Simple Storage Service) にサンプルデータを含むCSVをアップロードし、そのデータをRedshift上のテーブルにコピーする手順で行います。また、Redshift上でのテーブル作成などSQLクエリを実行するためのSQLクライアントツールとしてSQL Workbench/JをローカルPC上にインストールします。

インメモリのデータ分析ツールであるQlik Senseでは、高速な分析を行うために分析対象とする全データをメモリ内に格納する方法が主に採用されますが、今回はQlik Senseの「Direct Discovery」の機能を利用し、Qlik Senseのメモリ内に取り込まずにAmazon Redshiftに格納された明細データに対してQlik Senseから直接クエリを発行してデータ分析を行う方法についてご説明します。尚、本エントリではAmazon EC2インスタンス上に導入されたQlik Sense Serverが利用可能な前提でご説明させて頂きますのでご了承ください。(Qlik Sense Serverのインストール方法はこちらをご参照ください)また、QlikViewでもほぼ同様の手順でDirect Discoveryの利用が可能ですので、説明の中で併せてQlikView Desktopでの利用方法も補足でご説明させて頂きます。

image

サンプルデータは以下のリンク先に公開されているQlikViewのOmini-Channel Analyticsの元データを利用させて頂いています。

http://eu-b.demo.qlik.com/detail.aspx?appName=Retail%20Omni-Channel%20Analytics.qvw

image2014-9-29 1-24-58

Amazon Redshiftクラスタのセットアップ

事前の準備

Redshiftのセットアップには以下の事前準備が必要となります:

  • AWSアカウントへの登録(アカウントが未登録の場合、以下のサイトから登録が可能です。)
    http://aws.amazon.com
  • 外部インターネットへポート5439番でアクセスが可能となっていること。

尚、AWS Redshiftの利用につきましては課金が発生しますのでご了承ください。料金につきましては下記URLをご参照下さい。

Amazon Redshiftクラスタのセットアップ

1. 以下のURLからAWSコンソールにログオンします。

image

2. 適切なリージョンを選択し、「Redshift」をクリックします。

02_amc

3. 「Launch Cluster」をクリックします。

 03_launch_cluster

4. 以下の値を入力し、「Continue」 をクリックします。  

パラメタ名
Cluster Identifier qlikcluster
Database Name dev
Database Port 5439
Master User Name masteruser
Master User Password <任意のパスワードを入力>

04_cluster_detail 

5. 以下の値を入力し、「Continue」 をクリックします。

パラメタ名
Node Type dw2.large
Cluster Type Single Node

05_node_configuration

※今回のご説明ではシングルノードの構成としていますが、必要に応じて任意のノードタイプ、クラスタタイプを選択してください。

6. デフォルト設定のまま「Continue」 をクリックします。

 06_additional_configuration

7. 入力内容を確認し、 「Launch Cluster」をクリックします。

 07_review

8. 「Close」をクリックします。

 08_confirm

9. 「Cluster Status」 が「available」 、「DB Health」が「healthy」となったことを確認します。これで、Amazon Redshift クラスタの設定と起動が完了しました。

 09_cluster_list

Security groupの設定

1. Cluster 一覧のページから「qlikcluster」をクリックします。

01_cluster_list

2. 「VPC Security Groups」の「default (sg-xxxxxx)」をクリックします。

 02_property

3. 「Inbound」タブを選択し、「Edit」をクリックします。

 03_security_group

4. 「Add Rule」をクリックし、以下の値を入力して「Save」をクリックします。

パラメタ名
Type Custom TCP Rule
Protocol TCP
Port Range 5439
Source 0.0.0.0/0

※ Sourceの「0.0.0.0/0」の設定は全てのIPアドレスからのアクセスを許可するため、本番環境での利用は推奨されませんのでご注意ください。

 04_inbound_rule

SQLクライアントツールの導入・設定

事前の準備

SQL Workbench/Jに必要なJava RuntimeがローカルPCにインストールされている必要があります。サポートされているJava Runtimeのバージョンなどの情報については以下のURLをご参照ください。

Connection Stringの入手

1. Cluster 一覧のページから「qlikcluster」をクリックします。

 01_cluster_list

2. 「Configuration」タブ の「Cluster Database Properties」 から「JDBC URL」をコピーして控えておきます。

 02_connection_string

SQL Workbench/JからAmazon Redshiftへの接続

1. SQL Workbench/JからAmazon Redshiftクラスタに接続を行うためのJDBCドライバを以下からダウンロードします。

2. SQL Workbench/J のインストールイメージを以下のサイトからダウンロードします(当デモの検証に利用したWindows 7 64bit OSでは”generic package for all platforms”を利用しています。 )

 03_workbench_site

3.ダウンロードしたパッケージを解凍して”SQLWorkbench64.exe” をクリックします。

 04_launch_SQLWorkbench

4. 「Driver」リストボックスから「PostgresSQL (org.postgresql.Driver)」を選択します。(SQL Workbench/J を始めて利用する場合には、以下のダイアローグボックスが表示されますので「Yes」をクリックします。)

 05_postgreSQL_driver

5.「Manage drivers」ウインドウ右側のフォルダアイコンをクリックします。

 06_manage_driver

5. ダウンロードしたJDBCドライバを選択します。

 07_path_to_driver

6. JDBC Driver へのパスが正しく設定されていることを確認し、「OK」をクリックします。

 08_manage_driver

7. 「Select Connection Profile」ウインドウ上で以下の情報を入力し、「OK」をクリックします。

パラメタ名
Connection Profile Name AWS Redshift
Driver PostgresSQL (org.postgresql.Driver)
URL <前ステップでコピーした「JDBC URL」を張り付け>
Username masteruser
Password <masteruserのパスワードを入力>
Autocommit ON

 09_select_connection_profile

8. 「Statement 1」タブ上で「select current_user;」と入力しクエリの実行アイコンをクリックします。Amazon Redshiftクラスタと接続が出来ている場合、「masteruser」のユーザー名が「Result 1」ウインドウに表示されます。

 10_connection_test

まとめ

以上、この「Qlik Sense + Amazon Redshiftを使ったデータ分析環境の構築(前編)」ではAmazon Redshiftクラスタを立ち上げ、SQLクライアントツールから接続を確認する作業を実施しました。次回の後編ではAmazon Redshift上でのテーブル作成、デモデータのロード、Qlik Sense・QlikViewからの利用についてご説明したいと思います。