はじめに
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ソフトウェアが必要となります。
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日間の評価版もございますので是非ご利用ください。
www.cdata.com
関連コンテンツ