Dataiku×Snowflake データ接続手順

はじめに

SnowflakeとDataikuは高いシナジーを発揮することが可能で、Dataikuを活用されているお客様の多くが、データソースとしてSnowflakeを使用しています。

具体的には、Snowflakeのデータストレージとコンピューティングのパフォーマンスの高さを、Dataikuの誰でも使える管理されたプラットフォームをかぶせることにより、データパイプライン構築やデータサイエンスのプロジェクトを高速に高度化、大規模化することが可能になります。

今回は、DataikuとSnowflakeの接続についてまとめてみました。

DataikuとSnowflakeの接続

以下の手順で接続します。

  1. Connectionの作成 DataikuのHome画面の右上の[Navigate to other sections of Dataiku]から「Administartion(アドミニストレーション)」>「Connection」から作成が可能です。(Stacks版のみ、Dataiku CloudではLaunchpadの「Connection」から作成)
  1. 画面右上の[NEW CONNECTION]から「Snowflake」をクリックします。
  1. New connection nameに任意のコネクション名を設定し、以下の入力項目に接続先のSnowflakeの情報を入力します。
    1. Host
      1. Snowflakeのサインイン画面のURLから取得できます。 「xxxx-yyyy..ap-northeast-1.aws.snowflakecomputing.com」の箇所がHost名になります。 (AWSの場合)
    1. Database
      1. 出力結果を格納したいデータベースを入力します。Snowflake上のHome画面の画面左のメニューから「Data」>「Databases」を選択し、画面右上の「+Database」から作成することができます。
    1. Warehouse
      1. SnowflakeのSQLワークシート上で「SELECT CURRENT_WAREHOUSE();」と入力し、右上の「▶」から実行すると表示されます。
    1. Role
      1. Snowflakeの画面左下の「ACCOUNTADMIN」の箇所がコネクション権限を付与するRoleに該当します。
    1. Schema
      1. 作成したDatabaseの下層にあるスキーマを入力します。
    1. User
      1. 1.の「ユーザー名」を入力します。
    1. Password
      1. 1. の「パスワード」を入力します。
  1. 3.が入力完了後、画面左下の「SAVE」をクリックし、Connectionを作成します。
  1. フローに遷移し、「データセット」>「SQLデータベース」>「Snowflake」を選択します。
  1. Connectionに先ほど作成したコネクション名を選択し「GET TABLES LIST」をクリック 表示されたフォームの「CONFIRM」をクリックします。
  1. Tableのドロップダウンリストから接続したいテーブルを選択する
  1. テーブル選択後、「TEST TABLE」を選択し、問題なく読み込めているか確認 確認後、画面右上のデータセット名を入力し、「CREATE」をクリックします。

※上記の方法はテーブル以外にもビュー、マテリアライズドビューもDataikuのデータセットとして読み込むことができます。

(Appendix)内部STAGE上のデータ接続

テーブルやビューに対して接続する方法を紹介しましたが、Snowflakeの内部STAGEデータについても、後述の方法によりDataikuに接続することができます。

  1. 上記1~5までの手順で設定、Connection画面のModeを「SQL query」を選択します。
    1. SQL query入力フォームに以下の図のように記入します。 入力の際はいくつか注意点がございます。
      1. STAGE上のテーブルのため、SELECT *で全カラムを設定することができません。csvのn列目のカラムのカラム名を一つずつ定義する必要があります。($n AS カラム名)
      1. FROM句の後は、STAGE/ファイル名のようにパスを指定する必要があります
  1. 右上のデータセット名を入力し、「CREATE」ボタンをクリックすることでデータを接続することができます。

まとめ

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

次回は、作成したモデルをUDFとしてSnowflakeに出力する方法について解説いたします。

ShtockData

お問い合わせフォーム

お問い合わせ項目を選択してください