
Alteryx Designer DesktopのIn-DBツールを用いてSnowflakeのデータを処理してみた
さがらです。
Alteryx Designer DesktopのIn-DBツールを用いてSnowflakeのデータを処理してみたので、その内容についてまとめてみます。
検証環境
- OS:Windows 11 64bit
- Alteryx Designer Desktop:2025.1
Snowflake用のODBCドライバのインストール・セットアップ
まず、Snowflake用のODBCドライバのインストールとセットアップを行います。
ODBCドライバのインストール
Alteryx Designer Desktopから接続するために、Snowflake用のODBCドライバをインストールします。今回はSnowflake公式から提供されているODBCドライバを用いて接続してみます。
以下のリンク先から、最新のドライバを選択しダウンロードします。
ダウンロードしたmsiファイルを起動してインストール完了後、下図のように表示されればOKです。
ODBCドライバのセットアップ
ODBCデータソースアドミニストレーター(64bit)を起動します。
システムDSN
で追加
を押します。
SnowflakeDSIIDriver
を選択し、完了
を押します。
Snowflakeの接続に必要な情報を入力し、Test
を押して下図のように表示されれば無事に接続されている状態となります。最後にOK
を押して、セットアップ完了です。
Snowflakeとの接続設定
Snowflakeとの接続設定を行います。左上のファイル
から接続を管理
を押します。
右上の+新規
を押します。
Snowflakeを選択します。
テクノロジーでSnowflake ODBC
を選択し、ODBC DSN
の欄をクリックして、先程作成したシステムDSN名を選択し、右上の保存
を押します。
保存後、同じ画面で下にスクロールして、+ 資格情報の接続
を押します。
その後、接続に使う認証情報を入れる画面となるので、入力して、右上の接続テスト
を押します。問題なければ、右上の作成/リンク
を押します。
In-DBツールの表示
デフォルトではIn-DBツールが非表示となっているため、ツールパレットの設定からインデータベース
にチェックを入れて表示させます。
「接続In-DB」を用いてSnowflakeに接続
インデータベース
から、接続In-DB
ツールを選択してドロップします。
接続In-DB
ツールを選択した状態で、接続名
の横の▼
から接続を管理
を押します。
データソース
をSnowflake
に変更し、新規
を押します。
接続名
に任意の名称を入力し、接続セットアップ
を押します。
先ほど作成したSnowflakeへの接続を選択し、作成した資格情報の横の接続
を押します。
次に、書き込み
タブの設定に移ります。読み込みドライバーと同じ
を選択します。
最後に、適用
を押してOK
を押します。
その後、下図のようにテーブルを選択したりクエリを記述する画面が表示されます。
今回は、テーブル
タブから使いたいテーブルを選択して、OK
を押します。
この後、下図のように選択したテーブルが表示されたら、使いたいテーブルの選択は完了です。
「集計In-DB」や「結合In-DB」などの各ツールを用いてワークフローを作成
この後、実際に作成したい処理を行います。
説明は割愛しますが、もう一つテーブルを追加して下図のようにワークフローを作成しました。
集計In-DB
結合In-DB
「閲覧In-DB」を用いて中間成果物となるデータを確認
Alteryx Designer DesktopのIn-DBツールには閲覧In-DB
というツールがあり、これを使うことでワークフローの中間成果物となるデータを確認できるだけでなく、Snowflake上でどのようなクエリが実行されているか確認も可能です。
閲覧In-DB
ツールを下図のようにドロップし、集計In-DB
ツールとつなげて、選択したツールまで実行
を押します。
すると、下図のように出力されるレコード一覧だけでなく、各カラムのデータの分布も確認が可能です。
Snowflake上でQUERY_HISTORYを見ると、各ツールごとにWITH句で切り分けたSELECT文が実行されていることがわかります。
WITH "Tool1_91c6" AS (SELECT * FROM "RAW"."JAFFLE_SHOP"."ORDERS"), "Tool2_6eda" AS (SELECT "USER_ID", MAX("ORDER_DATE") AS "LAST_ORDER_DATE", COUNT(*) AS "TOTAL_ORDER_COUNT" FROM "Tool1_91c6" GROUP BY "USER_ID") SELECT * FROM "Tool2_6eda" LIMIT 100
「データ書込In-DB」を用いてデータをSnowflakeのテーブルとして出力
最後に、データ書込In-DB
ツールを用いてワークフローを通して変換されたデータをSnowflakeにテーブルとして出力します。
データ書込In-DB
ツールをドロップし、左側の設定から出力先のテーブル名を入力します。ALTERYX.PUBLIC.CUSTOMERS_SUMMARY
のように入力すると、別のデータベース・スキーマに対して出力可能です。
ここまで設定を行ったら、右上の実行
を押してワークフロー全体を実行します。
無事に実行が成功すると、Snowflake上にテーブルが作られていることがわかります。
Snowflake上でQUERY_HISTORYを見ると、各ツールごとにWITH句で切り分けたSELECT文をベースにした、CTAS文が実行されていました。
最後に
Alteryx Designer DesktopのIn-DBツールを用いてSnowflakeのデータを処理して、テーブルの作成まで行ってみました。
各ツールごとにWITH句が切られた形でSnowflake用のクエリが生成されているのは、SQLの可読性が高くなって良いなと感じました!