今回の課題
EC2にRedashを建てて、Snowflakeのデータを参照するまでにつまずいたりしたので、流れを記録する。
ちなみに、これまで下記の記事のようにRDSからスナップショットをparquet形式のファイルでS3にエクスポートし、S3にエクスポートしたファイルをSnowflakeにロードする。ということを行ってきた。
今回はそれらをRedashで可視化してみる。
進めた手順
1)EC2にRedashを立ち上げる
下記の手順でEC2にRedashを立ち上げた
1)-1. リージョン毎に用意されているAMIからインスタンスを立ち上げる
└ca-central-1
のAMIを使用した。
└また、インスタンスタイプはt2.small
が推奨されていたので、そちらを使った。
※インスタンスタイプを無料枠のt2.micro
でインスタンスを立ち上げると、ブラウザからRedashにアクセスすることができなかったので注意。
└パブリックIPアドレスの自動割り当ては「有効化」を選択して、パブリックIPアドレスは割り当てておく。
1)-2. 立ち上げたインスタンスのセキュリティグループを設定する
立ち上げたインスタンスのセキュリティグループのインバウンドルールに、
ポート22(SSH), 80(HTTP), 443(HTTPS)
を追加する。
これによって、インスタンスにSSH, HTTP, HTTPS接続でアクセスすることができるようになる。
1)-3. Elastic IPを設定する
EC2のパブリックIPアドレスは動的なIPアドレスなので、インスタンスを立ち上げるたびに変ってしまう。
そこで、Elastic IPアドレスをEC2インスタンスに割り当てることで、
EC2インスタンスのアドレスを固定にすることができる。
2)ブラウザからRedashにアクセスしてログインする
ブラウザのアドレスバーに、https://[ECのElastic IPアドレス]
を入力して検索することで、Redashのログイン画面にアクセスすることができるので、必要項目を入力してRedashにログインする。
3)RedashとSnowflakeを接続する
ログインが完了したら、
RedashのトップページのConnect a Data Source
をクリックして、
Dew Data Source
に進み、Snowflake
を選択する。
すると下記のような画面に進むので必要な箇所を入力していく。
入力項目
SnowflakeとRedashを接続する際の、
入力項目が少し分かりずらかったため補足説明をメモ。
-
Name
:接続設定につけたい名称を入力する。 -
Account
:[Locator].[リージョン名].aws
を入力する。
Locatorはworksheets上でshow organization accounts;
を実行して、抽出されたデータのaccount_locator
カラムの値と同じ。 -
User
:Snowflakeのユーザー名を入力する。 -
Password
:Snowflakeのパスワードを入力する。 -
Warehouse
:使用したいWarehouseを入力する。 -
Database
:Redashに接続したいDatabaseを入力する。 -
Region
:入力すると原因不明のエラーが発生するので空欄にする。
4)Redashでクエリを実行してみる
メニューバーのCreate > Query
から、
下記の画像のようなクエリの編集画面に飛ぶことができるので、ここでクエリを実行する。
また、クエリ編集画面の下の、+ New Visualization
をクリックすることで、
Visualization Editorに飛ぶことができ、データを可視化することができる。
Save
とPublish
ボタンを押して、保存することも忘れないようにする。
まとめ
以上で、Redashでデータを可視化するところまで実装することができた。
おまけ
気になった言葉や参考にした記事など。
AMI(Amazon Machine Image)とは
EC2インスタンスの起動に必要な情報を提供するテンプレート。
OSやボリュームの情報などを提供する。
今回の件では、Redashが用意しているAMI(OSやボリュームなどを提供するテンプレート)を使って、
EC2のインスタンスを構築した。というイメージ。
参考記事