CData Software Blog

クラウド連携のCData Software の技術ブログです。

CData ODBC Driver for Linuxの使い方

はじめに

CData技術ディレクター桑島です。CData社では、各プラットフォーム(Windows / macOS / Linux)毎のODBC Driver製品を提供しております。本記事では、LinuxODBC DriverであるCData ODBC Driver for Linuxの使い方をご紹介します。

f:id:kuwazzy:20200323182918p:plain

前提

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、および、UnixLinuxの場合は、下記のODBC Managerソフトウェアが必要となります。

OS ODBC Manager URL
Windows OSバンドル
macOS iODBC http://www.iodbc.org/
UnixLinux 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/

f:id:kuwazzy:20200324135629p:plain

標準のパッケージ管理システムを使用してドライバーをインストールできます。次のコマンドを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
$ 

まとめ

本記事では、LinuxODBC DriverであるCData ODBC Driver for Linuxの使い方をSalesforceを例にご紹介しましたが、どのデータソース でも同様の手順でご利用いただけます。全データソース 、30日間の評価版もございますので是非ご利用ください。

www.cdata.com