Alteryx DesignerでSnowflakeにバルク接続でデータを書き込む方法をご紹介します
今回は、Alteryx Designer Desktopを使って、Snowflakeにバルク接続でデータを保存していきたいと思います。バルク接続は高速でデータの保存ができるため、データ量が多い場合は有効な手段です。
なお、今回の手順はDCMオンで設定を行っています。また、ODBCドライバとして、Alteryx社の配布しているSimba ODBCドライバを使用しています。
事前準備
前提条件として、ODBCドライバまたはSimba ODBCドライバを使うため、ODBCの設定は事前に行っておいてください。
※Alteryx社にて検証済みのSimba ODBCドライバを推奨します。
実際の手順
まず、データ出力ツールを配置し、接続を設定していきます。
データ接続画面で、「データソース」をクリックします。その中のSnowflakeの「バルク」を選択します。
以下のように「バルク接続」のダイアログが出てきます。
ここで「ステージングメソッド」を選択する必要があります。選択できる項目としては、
- Amazon S3
- ローカル
となります。今回は、「ローカル」を使っていきたいと思います。ステージングメソッドを「ローカル」に変更すると、Snowflakeバルクという項目だけが残るため、ここで「接続を設定します」をクリックします。
これにより、「接続マネージャー」ダイアログが立ち上がります。
ここで、「+新規」をクリックします。
デフォルトでは以下の通りになっています。
ここで、「テクノロジー」は選択可能となっており、以下のものから選択が可能です。
- Snowflakeバルク(ローカルテーブルステージング)
- Snowflakeバルク(ローカルユーザーステージング)
- Snowflakeバルク(ローカル名前付きステージング)
- SnowflakeバルクDNSレスwith Simba(ローカルステージングテーブル)
- SnowflakeバルクDNSレスwith Simba(ローカルステージングユーザー)
- SnowflakeバルクDNSレスwith Simba(名前付きローカルステージング)
この中で、1,2の設定項目は同じ、4,5の設定項目は同じです。また、1~3はODBCドライバの設定を使う形なので事前にODBCドライバの設定が必要で、4~6はクイック接続に似た設定項目となります。それぞれの設定項目は、ODBCもしくはクイック接続の設定を参考にしてください。また、4~6はSimbaのドライバとドライバへの事前設定が必要になるので気をつけてください。
今回は、1の「Snowflakeバルク(ローカルテーブルステージング)」で進めていきましょう。この場合以下の通り設定します。
次に、資格情報の接続を行います。「資格情報の接続」ボタンをクリックします。
資格情報の認証方式はいくつかのものから選択可能です。「ユーザー名とパスワード」を選択した場合は、資格情報を作成していきます。
なお、選択可能な資格情報は以下のとおりです。Snowflakeの認証方式の中から選ぶイメージです。
- Azure AD
- Azure AD-プライベート
- OAuth
- Okta
- ユーザー名とパスワード
今回は、ユーザー名とパスワードで進めていきましょう。新規作成の場合は、資格情報にて「新しい資格情報の作成」を選択します。これにより、詳細設定の項目が開きます。
ここで、必要項目である「資格情報名」「ユーザー名」「パスワード」を入力し、「接続テスト」ボタンを押すとテストができます。問題なければ「作成/リンク」ボタンを押しましょう。
これにより設定が作成されるため、あとは「接続」ボタンを押すことで、設定が反映されます。
次の画面で、「OK」で実際のSnowflakeへの接続が始まります。
次に、出力先のテーブル名を入力します。
これでバルク保存が可能となります。
データ出力ツールでは以下のような設定になります。
出力オプションなどは、いくつかから選択可能です。シチュエーションに応じて選択してください。「新しいテーブルを作成する」の場合は、テーブルがない1回目は良いですが、すでにテーブルができてしまうとエラーになってしまうため、適切なオプションに変更する必要があります。
なお、今回は「SQLステートメント事前作成」オプションは指定していませんが、ODBCドライバ側にROLEやWAREHOUSE設定を入れているためです。ドライバ側で設定していない場合はこちらで設定が必要になりますのでご注意ください(ODBC設定で触れています)。