はじめに
CData技術ディレクター桑島です。CData社では、各プラットフォーム(Windows / macOS / Linux)毎のODBC Driver製品を提供しております。本記事では、Linux版ODBC DriverであるCData ODBC Driver for Linuxの使い方をご紹介します。
前提
Linuxのディストリビューション、および、バージョン
CData ODBC Driver for LinuxがサポートしているLinuxディストリビューション、および、最小バージョンは以下の通りです。こちらの一覧にないディストリビューションをご利用の場合はCData社サポートまでお問い合わせください。
OS | Min.Version |
---|---|
Ubuntu | 11.04 |
Debian | 7 |
RHEL | 6.9 |
CentOS | 6.9 |
Fedora | 13 |
ドライバー依存モジュール
CData ODBC Driver for Linux製品が必要とするライブラリは以下の通りです。
Debian/Ubuntu Package | RHEL/CentOS/Fedora Package | File |
---|---|---|
libc6 | glibc | linux-vdso.1 |
libc6 | glibc | libm.so.6 |
libc6 | glibc | librt.so.1 |
libc6 | glibc | libdl.so.2 |
libc6 | glibc | libpthread.so.0 |
libc6 | glibc | libc.so.6 |
libc6 | glibc | ld-linux-x86-64.so.2 |
libstdc++6 | libstdc++ | libstdc++.so.6 |
zlib1g | zlib | libz.so.1 |
libgcc1 | libgcc | libgcc_s.so.1 |
これらのライブラリは、ルートまたはsudoで以下のコマンドを実行することでインストールできます。
apt-get install libc6 libstdc++6 zlib1g libgcc1
yum install glibc libstdc++ zlib libgcc
ODBC Manager
ODBC Driver動作の前提にはODBC Managerソフトウェアが必要となります。Windowsの場合は、OSに標準でバンドルされているため意識する必要はありません。macOS、および、Unix・Linuxの場合は、下記のODBC Managerソフトウェアが必要となります。
OS | ODBC Manager | URL |
---|---|---|
Windows | OSバンドル | |
macOS | iODBC | http://www.iodbc.org/ |
Unix・Linux | unixODBC | http://www.unixodbc.org/ |
unixODBCドライバーマネージャは、ルートまたはsudoで以下のコマンドを実行することでインストールできます。バイナリがお使いのオペレーティングシステムで利用できない場合は、unixODBC を自分でコンパイルする必要があります。 バイナリを取得する方法や、お使いのオペレーティングシステムにunixODBC をコンパイルする方法については、unixODBC のWeb サイトを参照してください。
apt-get install unixodbc unixodbc-dev
yum install unixODBC unixODBC-devel
インストール
CData社のWebサイトからODBC Driverをダウンロードします。以下、Salesforce ODBC Driverを例に説明します。必要なデータソース に読み替えてご覧ください。
ダウンロードサイト(Salesforce ODBC Driver)
https://www.cdata.com/jp/drivers/salesforce/download/odbc/
標準のパッケージ管理システムを使用してドライバーをインストールできます。次のコマンドをroot またはsudo で実行します。
dpkg -i /path/to/driver/setup/SalesforceODBCDriverforUnix.deb
rpm -ivh /path/to/driver/SalesforceODBCDriverforUnix.rpm
ドライバーが登録されたかどうかを確認するには、次のコマンドを使ってシステムにインストールされたドライバーをリストします。
odbcinst -q -d
$ odbcinst -q -d [CData ODBC Driver for Salesforce] $
ライセンスのアクティベーション
次のコマンドを実行して本製品 のライセンスを取得します。評価版をアクティベートするには、
cd /opt/cdata/cdata-odbc-driver-for-salesforce/bin/ sudo ./install-license.x64 <key>
DSNの作成
以下のコマンドでDSNファイルのパスを確認できます。
odbcinst -j
以下は、上記コマンドの出力例です。システムDSNは「/etc/odbc.ini」にあることを確認できます。
unixODBC 2.3.7 DRIVERS............: /etc/odbcinst.ini SYSTEM DATA SOURCES: /etc/odbc.ini FILE DATA SOURCES..: /etc/ODBCDataSources USER DATA SOURCES..: /home/ec2-user/.odbc.ini SQLULEN Size.......: 8 SQLLEN Size........: 8 SQLSETPOSIROW Size.: 8
エディタなどでシステムDSN(上位例だと /etc/odbc.ini)を書き込み権限付きで開き、データソース接続のための任意の値をセットして保存します。
$ vi /etc/odbc.ini [CData Salesforce Sys] Driver=CData ODBC Driver for Salesforce Password=xxxxxx Security Token=xxxxxxx User=xxxxxx Use Sandbox=false
ドライバーエンコーディングの設定
ODBC ドライバーは、ODBC ドライバーマネージャーで使用するエンコーディングを指定する必要があります。デフォルトでは、Unix 用のCData ODBC ドライバーはunixODBC と互換性のあるUTF-16 を使用するように設定されていますが、他のドライバーマネージャーでは代替エンコーディングが必要な場合があります。
また、ANSI ODBC API を使用するアプリケーションからODBC ドライバーを使用している場合は、ANSI コードページを設定する必要があります。例えば、ANSI アプリケーションに日本語の文字をインポートするには、設定ファイル'/opt/cdata/cdata-odbc-driver-for-salesforce/lib/cdata.odbc.salesforce.ini' でコードページを指定できます。
[Driver] AnsiCodePage = 932
isqlからの接続確認
unixODBC テストツールisql を使って、コマンドラインからSQL クエリを実行できます。接続をテストする際は、-v フラグを使ってドライバーマネージャーおよびドライバーからのメッセージを出力します。DSN名は上記のodbc.iniの値とあわせてください。
isql -v "CData Salesforce Sys"
以下、コマンドラインからの実行結果です。今回は確認用に「select Id,Name from Account limit 1;」というSQLを実行してみました。
$ isql -v "CData Salesforce Sys" +---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | quit | | | +---------------------------------------+ SQL> select Id,Name from Account limit 1; +-------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Id | Name | +-------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | xxxxxxxxx | Thornton502 Inc | +-------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ SQLRowCount returns -1 1 rows fetched SQL> quit $
まとめ
本記事では、Linux版ODBC DriverであるCData ODBC Driver for Linuxの使い方をSalesforceを例にご紹介しましたが、どのデータソース でも同様の手順でご利用いただけます。全データソース 、30日間の評価版もございますので是非ご利用ください。