Yellowfin で Snowflake のデータを分析

最近では、データウェアハウスやデータレイクをクラウド上に再構築する企業も多いのではないでしょうか。そこで、今回は Yellowfin と Snowflake の連携を取り扱います。 
Snowflake のサービスを利用開始すると、いくつかサンプルデータを利用できるようになります。サンプルデータを Yellowfin で可視化するまでの手順を紹介します。

### 1. Snowflake の利用開始
試しに Snowflake を利用してみようという場合は、期間限定ではありますが、30日間の無料トライアルの利用が可能です。
https://signup.snowflake.com/
既に利用可能な環境があれば、もちろんそちらをご利用ください。

### 2. JDBC ドライバーのダウンロード
Yellowfin から Snowflake に対しては、JDBC でアクセスします。そのためには、以下 URL の「ドライバーのダウンロード」に記載のある手順に従って、ドライバーを入手する必要があります。基本的には、最新のバージョンのドライバーを入手すれば大丈夫です。
https://docs.snowflake.com/ja/user-guide/jdbc-download.html

### 3. プラグイン管理
上記で入手した JDBC ドライバーを Yellowfin に登録します。手順の詳細は、下記 Wiki ページでご確認ください。
https://wiki.yellowfin.co.jp/pages/viewpage.action?pageId=2294164
なお、2022年3月3日時点で最新バージョンは「snowflake-jdbc-3.13.9.jar」でした。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2128512/2b50a596-382e-e3c2-c0af-d7e40b61ece9.png)

### 4. データソースの設定
プラグインの登録が完了すると、データソースとして Snowflake を選択できるようになります。設定手順は Wiki ページ (https://wiki.yellowfin.co.jp/display/yfcurrent/Snowflake) にも説明がありますが、Wiki の情報だけだとおそらく十分ではありません。そのため、以下の手順を参考に設定してみてください。
Yellowfin にログインして、[管理] > [管理コンソール] > [データソース] > [追加] ボタンと手順を進め、[新規データソース] 画面でデータソースとして [データベース] を選択します。

[新規接続] 画面が表示されるため、以下に従って情報を入力します。
|項目|備考|
|:-:|---|
|名前|任意の名前を入力します。|
|データベースタイプ|[Snowflake] を選択します。|
|アカウント|Snowflake のアカウント ID とリージョン情報を入力します。Snowflake 管理画面を開くための URL (例: https://ld00000.japan-east.azure.snowflakecomputing.com) から、ID とリージョンに関する情報 (例: ld00000.japan-east.azure) を抜き出します。こちらは Azure 東京リージョンの例ですが、AWS や GCP 上の Snowflake を利用している場合は、リージョンの情報が異なってきます。|
|ウェアハウス|規定で作成されるウェアハウスが COMPUTE_WH です。サンプルデータは COMPUTE_WH に格納されています。ウェアハウス名は、分析対象のスキーマやデータベースが格納されているものを選択します。|
|デフォルトスキーマ|必須ではないので、必ずしも入力する必要はありません。ただ、サンプルデータのテーブル数が非常に多く、またビッグデータを管理するスキーマもあるため、単なる動作確認であればデータ量の少ない TPCH_SF1 を指定することをお勧めします。サンプルデータの中身に関しては、クラスメソッドさんの情報 (https://dev.classmethod.jp/articles/snowflake-sample-data) が大変参考になります。|
|JDBC ドライバー|既定のままで大丈夫です。|
|アカウント / パスワード|Snowflake の管理画面にアクセスする際に使用するアカウントの情報を入力します。|

結果、以下のような入力状況になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2128512/078bf5b0-a5bf-ae12-7e24-3a9a72337338.png)

### 5. ビューの作成
以上の手順を完了すると、ビュー作成時に、データソースとして、Snowflake が選択できるようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2128512/954e79f6-68ac-ea78-778b-8a528a9c7eb1.png)
参考までに、TPCH_SF1 スキーマのテーブルを全て接続すると、以下のような関連図になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2128512/4fb915d9-24cd-32b2-9a32-8f5c1d59c572.png)
ビュー作成の詳細は Wiki ページをご確認ください。
https://wiki.yellowfin.co.jp/pages/viewpage.action?pageId=2293852

### 6. レポートの作成
先の手順で作成したビューから、例えば [N_NAME]、[O_TOTALPRICE] を選択してテーブルと棒グラフを作成すると、以下のような感じになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2128512/aef9c062-aa13-97d0-225d-3d95d74a2c1f.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2128512/559de8c4-00f0-9623-a623-2ab24f2e154c.png)
レポート作成の詳細は Wiki ページをご確認ください。
https://wiki.yellowfin.co.jp/pages/viewpage.action?pageId=2293995

### 7. 次回
今回は、Snowflake との連携に焦点を当てたため、グラフは簡単なものを作成するまでにとどめておきます。
Snowflake と Yellowfin の連携により、色々と面白いことが実現できそうなので、次回以降でもSnowflake 連携を取り扱っていければと思っています。

それでは ‎Santé! Cheers!