Dataiku×Snowflake データ接続手順
はじめに
SnowflakeとDataikuは高いシナジーを発揮することが可能で、Dataikuを活用されているお客様の多くが、データソースとしてSnowflakeを使用しています。
具体的には、Snowflakeのデータストレージとコンピューティングのパフォーマンスの高さを、Dataikuの誰でも使える管理されたプラットフォームをかぶせることにより、データパイプライン構築やデータサイエンスのプロジェクトを高速に高度化、大規模化することが可能になります。
今回は、DataikuとSnowflakeの接続についてまとめてみました。
DataikuとSnowflakeの接続
以下の手順で接続します。
Connectionの作成 DataikuのHome画面の右上の[Navigate to other sections of Dataiku]から「Administartion(アドミニストレーション)」>「Connection」から作成が可能です。(Stacks版のみ、Dataiku CloudではLaunchpadの「Connection」から作成)


画面右上の[NEW CONNECTION]から「Snowflake」をクリックします。

New connection nameに任意のコネクション名を設定し、以下の入力項目に接続先のSnowflakeの情報を入力します。

Host
Snowflakeのサインイン画面のURLから取得できます。 「xxxx-yyyy..ap-northeast-1.aws.snowflakecomputing.com」の箇所がHost名になります。 (AWSの場合)

Database
出力結果を格納したいデータベースを入力します。Snowflake上のHome画面の画面左のメニューから「Data」>「Databases」を選択し、画面右上の「+Database」から作成することができます。

Warehouse
SnowflakeのSQLワークシート上で「SELECT CURRENT_WAREHOUSE();」と入力し、右上の「▶」から実行すると表示されます。

Role
Snowflakeの画面左下の「ACCOUNTADMIN」の箇所がコネクション権限を付与するRoleに該当します。

Schema
作成したDatabaseの下層にあるスキーマを入力します。

User
1.の「ユーザー名」を入力します。
Password
- の「パスワード」を入力します。
3.が入力完了後、画面左下の「SAVE」をクリックし、Connectionを作成します。

フローに遷移し、「データセット」>「SQLデータベース」>「Snowflake」を選択します。

Connectionに先ほど作成したコネクション名を選択し「GET TABLES LIST」をクリック 表示されたフォームの「CONFIRM」をクリックします。


Tableのドロップダウンリストから接続したいテーブルを選択する

テーブル選択後、「TEST TABLE」を選択し、問題なく読み込めているか確認 確認後、画面右上のデータセット名を入力し、「CREATE」をクリックします。


※上記の方法はテーブル以外にもビュー、マテリアライズドビューもDataikuのデータセットとして読み込むことができます。
(Appendix)内部STAGE上のデータ接続
テーブルやビューに対して接続する方法を紹介しましたが、Snowflakeの内部STAGEデータについても、後述の方法によりDataikuに接続することができます。
上記1~5までの手順で設定、Connection画面のModeを「SQL query」を選択します。

SQL query入力フォームに以下の図のように記入します。 入力の際はいくつか注意点がございます。
STAGE上のテーブルのため、SELECT *で全カラムを設定することができません。csvのn列目のカラムのカラム名を一つずつ定義する必要があります。($n AS カラム名)
FROM句の後は、STAGE/ファイル名のようにパスを指定する必要があります

右上のデータセット名を入力し、「CREATE」ボタンをクリックすることでデータを接続することができます。

まとめ
今回は、SnowflakeのデータをDataikuに接続するための手順を紹介しました。テーブルデータのみならず、他のオブジェクトにも接続することができますので、分析・機械学習を構築してみたいオブジェクトがありましたら、本ブログを参考に作成していただければと思います。
次回は、作成したモデルをUDFとしてSnowflakeに出力する方法について解説いたします。
Discussion