SPSS ModelerからSnowflakeに接続する （SDAPドライバー）

SPSS Modeler18.4からSnowflakeにSDAP ODBCドライバーで接続します。

* テスト環境
    * Windows 11 64bit
    * Modeler 18.4
    * SDAP 8.1.1
    * IBM SPSS OEM Snowflake ODBC ドライバー 8.00.00.63

# サポートされるODBCドライバーの確認

以下で確認します。Modeler 18.4ではSnowflake native driver 2.25.2とSDAP8.1.1のドライバーがサポートされています。ここではSDAP ODBCドライバーで接続してみます。（Modeler18.3ではNativeドライバーのみのサポートで、SDAPドライバーのサポートはありませんでした）

https://www.ibm.com/software/reports/compatibility/clarity-reports/report/html/softwareReqsForProduct?deliverableId=0E1C00D07E5C11EC93C02AA4DE91E682&osPlatforms=Linux|Mac%20OS|Windows&duComponentIds=D001|S002&mandatoryCapIds=13&optionalCapIds=7|47|22|72|186|223

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/6e7cc714-4ffb-d1ed-ac2a-0cd4d6bba699.png)

なお、Nativeドライバーで接続する方法は以下の記事で書いています。

SPSS ModelerからSnowflakeに接続する（Nativeドライバー） - Qiita 

https://qiita.com/kawada2017/items/74d1e6772cb2435bc179

特にどちらのドライバーが方が優れているかという情報はありません。

# ODBCドライバー導入
SDAPのODBCのドライバー導入は以下の手順で行います。

SPSS Data Acess Pack（SDAP） 8.1.1の導入(Windows) - Qiita 

https://qiita.com/kawada2017/items/7f3054b7a19189640334

導入するのはSDAP8.1.1ですが、IBM SPSS OEM Snowflake ODBC ドライバー 8.00.00.63が導入されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/f03f43a3-af2d-d5ed-c649-2dbf43144fc8.png)

# ODBCの設定
ODBCデータソースアドミニストレーター(64bit)を起動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/9fd133d2-fecd-52f7-e490-ebba03cd56d8.png)

ユーザーDSNかシステムDSNで「追加」をします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/393d34e7-6856-3958-7fbb-ef402bbea93d.png)


「IBM SPSS OEM 8.0 Snowflake」を選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/49124f03-d84c-f348-a816-871a6a587151.png)


WebブラウザでSnowflakeのコンソールに入り、「管理者」＿「アカウント」を開き、をクリックします。アカウントのURLを取得します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/81ba4e71-765a-ef7b-cbd6-a15cf9bb2dce.png)

利用するウェアハウスも確認しておきます。ここではSFTESTを使います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/02141ad6-eade-b023-75ab-22b337a18956.png)

接続したいデータベースも確認しておきます。ここではSNOWFLAKE_SAMPLE_DATAにつなぎます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/4ed3b247-b3be-2e11-eed4-6188c81df5d9.png)


ODBCデータソースアドミニストレーターに戻ります。
「Data Source　Name」には任意の名前を選びます。
「Account Name」には上で得たURLの「https://xxxxxx.snowflakecomputing.com 」の「xxxxxx」の部分のアカウント名のみを貼り付けます。「https://」と「.snowflakecomputing.com」は除きます。
「Warehouse」と「Database Name」はコンソールで確認したものを入力します。この例ではSFTESTとSNOWFLAKE_SAMPLE_DATAです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/52017980-ec98-5e27-53ad-5036d5bdc359.png)


「Test」ボタンで接続確認をします。ユーザー名とパスワードを入力し、テストが成功したらOKで保存します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/f9729c52-0f76-b638-daac-e5e07032426f.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/de0bc6e0-8ed3-76e9-cbde-9a8f7022789a.png)


# Modelerからの接続
データベースインポートノードで「新規データベース接続の追加」を選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/eae6fe66-0b01-de6a-3e98-4275d77f273a.png)


データソースで設定したデータソースを選び、ユーザーとパスワードを入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/a94cebf3-6055-ce3c-aac5-f0ee46eb0025.png)




接続ができたら、OKで閉じます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/9e9e6faa-4db1-fe38-a863-634c5437c24a.png)




テーブル名を指定し、「プレビュー」します。ここでは「TPCH_SF1.REGION」を選んでいます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/75badcdd-4b65-a9af-45fe-0a5ea27d4ec5.png)


参照できました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/a10ee45c-a6a3-ddce-23bc-4f1c5d31a9e5.png)


また、日本語データも読めました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/b0dd1735-86cc-fd3a-5150-6a6e53f803c0.png)

なお、SDAPはODBCドライバーですが、SnowflakeのODBCドライバーについては内部的にJDBCを使っているようです。ク

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/5d526b79-173f-6567-527c-c4b46b11541e.png)