M1 Mac (Apple silicon）のTableauからSnowflakeへ接続に使うODBCドライバーは"mac64"版を選択する！

# はじめに

最近（もう結構前から？）、データウェアハウスのSnowflakeがかなり注目されていますよね！

そこで、今回はTableauからSnowflakeへの接続をテストしてみました！
その際にハマった点と解決策について紹介したいと思います。

今回の作業環境は以下のとおりです。
【作業環境】
- チップ Apple M1
- macOS Ventura 13.3
- Tableau Desktop 2023.1.0

# ODBCドライバーをダウンロードする
TableauからSnowflakeに接続するにはODBCドライバーが必要です。
Snowflakeの[こちらの公式ドキュメント](https://docs.snowflake.com/ja/user-guide/odbc-mac)を参考に作業を進めます。

公式ドキュメントに従って、まずはiODBCをインストールします。
> Mac用Snowflake ODBC ドライバーには iODBCが必要です。これは次からダウンロードできます。
> http://www.iodbc.org/dataspace/doc/iodbc/wiki/iodbcWiki/Downloads

続いて、ODBCドライバーのインストールに移ります。
SnowflakeのMac用のODBCドライバーはintel mac用（mac64）とApple silicon用（macaarch64）２種類用意されています。
ダウンロードページ→https://developers.snowflake.com/odbc/

画面サイズにもよると思いますが、ダウンロードページにアクセスすると下記の画面になっています。
トップページにダウンロード用のアイコンがありますが、ここからのダウンロードはオススメしません。ここからダウンロードすると、自身のMacのチップにあったドライバーが選択されているのか分かりにくいです。
![ODBC_-_Snowflake_Developers.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2930990/3b3f7d49-c0ef-95bc-50c2-30f584257045.png)

画面を下にスクロールすると下記の画面が出てくるので、こちらから自身のPCに合わせたドライバーをダウンロードします。
`arm64`とある方がM1チップ以降のドライバー、`無印版`の方がintel Macのドライバーです。

:::note alert
しかし、さらにここで注意点です！！！！
通常であればM1 Macだからarm64のドライバーをインストールすれば良いと思うのですが、今回目的としているTableauからSnowflakeへアクセスするためには**M1 Macだとしてもintel版の方のドライバーをインストール**する必要があります！
そのため、今回はArchitectureがmac64のドライバーをダウンロードしてください。

ここに気づかずにハマってしまいました…。
:::

![ODBC_-_Snowflake_Developers-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2930990/48a643f3-5faa-cf1e-3e2d-0b24d8a5c1aa.png)


なぜ、mac64のドライバーを使用するかと言うと、M1でのTableauはまだエミュレートで動作しているため、ドライバとアプリのアーキテクチャを揃える必要があるためです。
[こちら](https://kb.tableau.com/articles/Issue/unable-to-connect-to-snowflake-with-tableau-desktop-on-macos-with-m1-processor)がTableauの公式Q&Aです。

インストールしたpkgのダイアログに従ってインストールを進めます。

# Tableauから接続する
ドライバーのインストールが完了したら、次はTableauからの接続設定です。

Tableauを立ち上げて、`サーバーへ`の`その他`に進み、`Snowflake`を選択します。
![Tableau_-_ブック1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2930990/86e595ca-41c8-58f1-5a09-4fc75482d482.png)

続いて、接続のダイアログが出てくるので、必要な情報を入力します。
![Snowflake_と_Tableau_-_ブック1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2930990/f89eaedb-958e-a213-8a2b-34755df1a338.png)

ユーザー名とパスワードは名前の通りで、ご自身のユーザー名とパスワードを入力します。
サーバーには、Snowsightへブラウザでログインし、左下のメニューを展開していくと、画像の場所に`アカウントURLコピー`があるので、これをクリックし、サーバーのURLをコピーします。
それを`サーバー`部分にペーストします。（※ `https://`以降の部分だけをペーストすればOK）
![Snowflakeを始めましょう-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2930990/426bdfbb-d48b-5310-99dd-64a8a8e066a9.png)

これで`サインイン`をクリックするとSnowflakeに接続されます。

# 接続できなかったら
先程の[TableauのQ&Aページ](https://kb.tableau.com/articles/Issue/unable-to-connect-to-snowflake-with-tableau-desktop-on-macos-with-m1-processor)にあるように、"To use this connector, you need to download and install the driver first." メッセージが表示された場合には、このページで紹介されているように、iODBCでドライバーを登録します。

- iODBC Administrator64 アプリを立ち上げます。
![スクリーンショット 2023-04-12 17.10.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2930990/98d193b4-77bd-3c8b-7be5-f27547f5064c.png)
- ドライバータブを選択して、Addをクリックします。（※画面では既に追加されています。）
![iODBC_Data_Source_Administrator__Intel_64bit_.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2930990/23d713ae-68a7-1b5b-be7f-ed8a9cefd461.png)
- Description of the driver と Driver file nameをそれぞれ下記の通り設定します。
    - Snowflake
    - /opt/snowflake/snowflakeodbc/lib/universal/libSnowflake.dylib
※KeywordとValueの設定は不要です。
![ODBC_Driver_Add_Setup.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2930990/4ca779d3-17b9-c9be-24ae-82884b82b719.png)
- OKを押して登録完了です。

上記が完了したら再度Tableauで試してみてください。