Arm版のMacでSnowflakeのODBCドライバを設定する方法

Arm版のMacでSnowflakeに接続するために、SnowflakeのODBCドライバを設定する際には、Intel版のMacとは異なる設定が必要です。

unixODBCのインストール

MacでのODBCの設定方法(unixODBC)
に従ってunixODBCをインストールしてください。

ODBCドライバのインストール

Snowflake社のサイトからM1 Mac用のODBC Driverをダウンロードし、インストールします。

image

セットアップ

インストールが完了したら、ターミナルAppを起動し、odbcinst -jとタイプしてエンターキーを押します。すると以下のような結果が表示されます。

unixODBC 2.3.9
DRIVERS............: /opt/homebrew/etc/odbcinst.ini
SYSTEM DATA SOURCES: /opt/homebrew/etc/odbc.ini
FILE DATA SOURCES..: /opt/homebrew/etc/ODBCDataSources
USER DATA SOURCES..: /Users/administrator/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8

Snowflake ODBCドライバを設定ファイルに追加

この例では、/opt/homebrew/etc/odbcinst.ini という設定ファイルにodbcドライバの情報が保持されるので、このファイルをテキストエディタで開いて内容を確認します。

SnowflakeDSIIDriverというセクションがない場合は、下記のコードを設定ファイルに追加して保存して下さい。

[SnowflakeDSIIDriver]
APILevel=1
ConnectFunctions=YYY
Description=Snowflake DSII
Driver=/opt/snowflake/snowflakeodbc/lib/libSnowflake.dylib
DriverODBCVer=03.52
SQLLevel=1

もしくは、ターミナルで下記のコマンドを使用して直接設定ファイルの中身を確認、編集を行うこともできます。もしテキストエディタのアプリで編集をする際に、管理者権限が必要となる場合はsudoにて管理者権限で実行できるためおすすめです。

sudo nano /opt/homebrew/etc/odbcinst.ini

image

なお、nanoのエディタで編集後に保存を行う際には、下記の手順で操作ください。

  • ctrl + o (ファイルの保存)
  • Tab(保存アクションの完了)
  • ctrl + x(nanoエディタのExit)

また、Driverのところに記載されているドライバファイルへのパス(例:/opt/snowflake/snowflakeodbc/lib/libSnowflake.dylib)が存在しているかを確認してください。

ファイルが存在するかはターミナルにて下記のように確認できます。

cdでフォルダパスを指定をして、フォルダを移動します。

cd /opt/snowflake/snowflakeodbc/lib

lsコマンドを入力して、フォルダの中にあるファイルを確認できます。

ls

次にSnowflakeのドライバをインストールしたフォルダにある設定ファイル(例:/opt/snowflake/snowflakeodbc/lib/simba.snowflake.ini)を開きます。編集する際には管理者の権限が必要になることがございます。

そして、設定ファイルの最後に ODBCInstLib=/opt/homebrew/lib/libodbcinst.dylib を追加します。(このパスはhomebrewをどこにインストールしたかによって変わりますので、ご自分のMacにインストールしたhomebrewのパスをご確認ください。)

# unixODBC
ODBCInstLib=/opt/homebrew/lib/libodbcinst.dylib

またデフォルトで設定されているODBCInstLibは、先頭に#を付けて、以下の例のようにコメントアウトします。

# Generic ODBCInstLib
#   iODBC
# ODBCInstLib=libiodbcinst.so

もし管理者権限が必要となる場合、下記のコマンドをターミナルにて実行後、nanoのエディタにて上記で紹介した操作を行なってください。

sudo nano /opt/snowflake/snowflakeodbc/lib/simba.snowflake.ini

ドライバマネージャの文字エンコーディングの設定

同じ設定ファイル(例:/opt/snowflake/snowflakeodbc/lib/simba.snowflake.ini)の先頭の方にある、DriverManagerEncodingを探します。デフォルトではUTF-32になっている場合があるので、その場合は以下のようにUTF-16に変更して保存します。

DriverManagerEncoding=UTF-16

CABundleFileのファイルパスの設定

同じ設定ファイル(例:/opt/snowflake/snowflakeodbc/lib/simba.snowflake.ini)の中にCABundleFileが以下の例のように設定されていますが、このファイルパスが実際に存在するかをご確認ください。

CABundleFile=/opt/snowflake/snowflakeodbc/lib/cacert.pem

ご利用の環境によっては/opt/snowflake/snowflakeodbc/lib/universal/cacert.pem というパスがCABundleに指定されていて、こちらのファイルパスが存在しない場合、適切なファイルパスを指定する(例えば、universalという部分を削除する)必要がございます。

これでSnowflakeドライバがunixODBCで動作するようになります。

データの取得についてはExploratoryデスクトップからSnowflakeに接続してデータを取得する方法 を参照してください。

「いいね!」 1