製品をチェック

SQL Server ODBC Driver の30日間無償トライアルをダウンロード

 30日間の無償トライアルへ

製品の詳細

Microsoft SQL Server アイコン SQL Server ODBC Driver 相談したい

ODBC 接続をサポートする任意のアプリケーションからMicrosoft SQL Server 互換データベースに接続します。

ODBC ドライバーを使用すると、カレントおよびレガシーバージョンのMS SQL との広範な互換性により、標準のJava Database 接続経由でSQL Server にダイレクトモードでアクセスできます。SSL、Kerberos、Integrated Security などを介したセキュアなSQL 接続および認証をサポートします。

Linux/UNIX 上のPython からSQL Server データにデータ連携

CData ODBC Driver を使って、Linux/UNIX 上のPython アプリケーションからSQL Server データへのデータ連携を実現します。

古川えりか
コンテンツスペシャリスト

最終更新日:2022-11-27
sql ロゴ

CData

odbc ロゴ画像
Python ロゴ

こんにちは!ドライバー周りのヘルプドキュメントを担当している古川です。

CData ODBC Driver for SQL を使えば、豊富なPython のエコシステムを使ったデータ連携が簡単に行えます。CData Linux/UNIX ODBC Driver for SQL とpyodbc module を使って、簡単にSQL Server に連携するPython アプリケーションを構築したり、データ分析が手軽に行えます。本記事では、pyodbc のビルトイン関数を使って、SQL Server に接続し、クエリを実行、表示する方法を説明します。

CData ODBC ドライバとは?

CData ODBC ドライバは、以下のような特徴を持ったリアルタイムデータ連携ソリューションです。

  1. SQL Server をはじめとする、CRM、MA、会計ツールなど多様なカテゴリの270種類以上のSaaS / オンプレミスデータソースに対応
  2. 多様なアプリケーション、ツールにSQL Server データを連携
  3. ノーコードでの手軽な接続設定
  4. 標準 SQL での柔軟なデータ読み込み・書き込み

CData ODBC ドライバでは、1.データソースとしてSQL Server の接続を設定、2.Linux 側でODBC Driver との接続を設定、という2つのステップだけでデータソースに接続できます。以下に具体的な設定手順を説明します。

CData ODBC Drivers をUNIX/Linux マシンで利用

CData ODBC Drivers は、Ubuntu、Debian、RHEL、CentOS、Fedora などの様々なRed Hat ベースおよびDebian ベースのシステムでサポートされています。必要なライブラリとパッケージもいくつかあり、システムによってはそれらがデフォルトでインストールされる場合があります。Linux オペレーティングシステムのサポートされているバージョンと必要なライブラリの詳細については、ヘルプドキュメント(オンラインでインストールおよび検索)の[はじめに]セクションを参照してください。

Driver Manager のインストール

ドライバーをインストールする前に、システムにドライバーマネジャーがあることを確認してください。この記事では、広くサポートされている無料のオープンソースODBC ドライバーマネジャーであるunixODBC を使用します。

Ubuntu のようなDebian ベースのシステムの場合、APT パッケージマネジャーを使用してunixODBC をインストールできます。

$ sudo apt-get install unixODBC unixODBC-dev

Red Hat Linux に基づくシステムの場合、yum またはdnf を使用して、unixODBC をインストールできます。

$ sudo yum install unixODBC unixODBC-devel

unixODBC ドライバーマネジャーは、odbcinst.ini ファイルからドライバーに関する情報を読み取り、odbc.ini ファイルからデータソースに関する情報を読み取ります。 ターミナルに以下のコマンドを入力すると、システム上の構成ファイルの場所を特定できます。

$ odbcinst -j

コマンドの出力には、ODBC データソースと登録済みのODBC ドライバーの構成ファイルの場所が表示されます。 ユーザーデータソースには、odbc.ini が存在するホームフォルダを持つユーザーアカウントからのみアクセスできます。システムのデータソースには、すべてのユーザーがアクセスできます。 以下は、このコマンドの出力例です。

DRIVERS............: /etc/odbcinst.ini SYSTEM DATA SOURCES: /etc/odbc.ini FILE DATA SOURCES..: /etc/ODBCDataSources USER DATA SOURCES..: /home/myuser/.odbc.ini SQLULEN Size.......:8 SQLLEN Size........:8 SQLSETPOSIROW Size.:8

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

標準パッケージ形式(Debian .deb パッケージ形式または.rpm ファイル形式)でドライバーをダウンロードすることができます。フィルをダウンロードしたら、ターミナルからドライバーをインストールできます。

ドライバーインストーラーは、ドライバーをunixODBC に登録し、システムDSN を作成します。これは、後にODBC 接続をサポートするツールやアプリケーションで使用できます。

Ubuntu のようなDebian ベースのシステムの場合、sudo を付けるか、root として次のコマンドを実行します。 $ dpkg -i /path/to/package.deb

Red Hat システムおよび.rpms をサポートするその他のシステムの場合には、sudo またはroot として以下のコマンドを実行します。 $ rpm -i /path/to/package.rpm

ドライバーがインストールされると、unixODBC ドライバーマネジャーを使用して、登録されたドライバーと定義されたデータソースを一覧表示できます。

登録済みドライバーを一覧表示

$ odbcinst -q -d CData ODBC Driver for SQL ...

定義されたデータソースを一覧表示

$ odbcinst -q -s CData SQL Source ...

CData ODBC Driver for SQL をunixODBC で使用するには、ドライバーがUTF-16 を使用するように構成されていることを確認してください。これを行うには、以下のように、インストール場所のlib フォルダ(通常は、/opt/cdata/cdata-odbc-driver-for-sql) にあるドライバーのINI ファイル(cdata.odbc.sql.ini) を編集します。

cdata.odbc.sql.ini

... [Driver] DriverManagerEncoding = UTF-16

DSN の変更

ドライバーのインストールにより、システムDSN が事前定義されます。システムデータソースファイル(/etc/odbc.ini)を編集し、必要な接続プロパティを定義することで、DSN を変更できます。さらに、$HOME/.odbc.ini で変更するためにroot アクセスを必要としない、ユーザー固有のDSN を作成できます。

SQL Server 接続プロパティの取得・設定方法

Microsoft SQL Server への接続には以下を入力します。

  • Server: SQL Server が稼働するサーバー名。
  • User: SQL Server に接続するユーザー名。
  • Password: 接続するユーザーのパスワード。
  • Database: SQL Server データベース名。

Azure SQL Server およびAzure Data Warehouse への接続

Azure SQL Server およびAzure Data Warehouse には以下の接続プロパティを入力して接続します:

  • Server: Azure 上のサーバー。Azure ポータルの「SQL databases」(もしくは「SQL data warehouses」)-> データベースを選択 -> 「Overview」-> 「Server name」で確認が可能です。
  • User: Azure に認証するユーザー名。
  • Password: 認証するユーザーのパスワード。
  • Database: Azure ポータルでSQL databases (or SQL warehouses) ページに表示されるデータベース名。

/etc/odbc.ini または$HOME/.odbc.ini

[CData SQL Source] Driver = CData ODBC Driver for SQL Description = My Description User = myUser Password = myPassword Database = NorthWind Server = myServer Port = 1433

これらの構成ファイルの使用に関する具体的な情報については、、ヘルプドキュメントを参照してください。

以下のステップに従ってpyodbc をインストールし、Python オブジェクトを介してSQL Server へのアクセスを開始できます。

pyodbc のインストール

pip ユーティリティを使用してモジュールをインストールできます。

pip install pyodbc

必ず以下のコードでモジュールをインポートしてください。

import pyodbc

Python でのSQL Server データへの接続

これで、ODBC 接続文字列またはDSN で接続できます。以下は、接続文字列の構文です。

cnxn = pyodbc.connect('DRIVER={CData ODBC Driver for SQL};User=myUser;Password=myPassword;Database=NorthWind;Server=myServer;Port=1433;')

以下は、DSN の構文です。

cnxn = pyodbc.connect('DSN=CData SQL Sys;')

SQL Server へのSQL の実行

Cursor をインスタンス化し、Cursor クラスのexecute メソッドを使用してSQL ステートメントを実行します。

cursor = cnxn.cursor()

選択

fetchallfetchone、およびfetchmany を使用し、SELECT ステートメントから返されたRows を取得できます。

import pyodbc cursor = cnxn.cursor() cnxn = pyodbc.connect('DSN=CData SQL Source;User=MyUser;Password=MyPassword') cursor.execute("SELECT ShipName, Freight FROM Orders WHERE ShipCountry = 'USA'") rows = cursor.fetchall() for row in rows: print(row.ShipName, row.Freight)

パラメータ化されたクエリをシーケンスまたは因数リストで提供できます。

cursor.execute( "SELECT ShipName, Freight FROM Orders WHERE ShipCountry = ?", 'USA',1)

挿入

INSERT コマンドもexecute メソッドを使用します。ただし、挿入後に変更が失われないためにcommit メソッドを呼び出す必要があります。

cursor.execute("INSERT INTO Orders (ShipCountry) VALUES ('USA')") cnxn.commit()

更新と削除

挿入の場合と同様に、更新または削除の場合でも、execute を呼び出した後、commit を呼び出す必要があります。

cursor.execute("UPDATE Orders SET ShipCountry = 'USA'") cnxn.commit()

メタデータの発見

getinfo メソッドを使用してデータソースやドライバーの機能に関する情報などのデータを取得できます。getinfo メソッドは、入力をODBC SQLGetInfo メソッドに渡します。

cnxn.getinfo(pyodbc.SQL_DATA_SOURCE_NAME)

CData ODBC Driver for SQL を使用してSQL Server に接続できるLinux/UNIX 環境で、Python アプリを構築することができるようになりました。

SQL Server からLinux へのデータ連携には、ぜひCData ODBC ドライバをご利用ください

このようにCData ODBC ドライバと併用することで、270を超えるSaaS、NoSQL データをコーディングなしで扱うことができます。30日の無償評価版が利用できますので、ぜひ自社で使っているクラウドサービスやNoSQL と合わせて活用してみてください。

CData ODBC ドライバは日本のユーザー向けに、UI の日本語化、ドキュメントの日本語化、日本語でのテクニカルサポートを提供しています。

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。