ODBCドライバーとは? ODBCの仕組みからドライバーの使い方まで解説!
本記事はCDataが提供する「CData Software Blog」に掲載された「ODBC ドライバーとは? ODBC の仕組みからドライバーの使い方まで解説!」を再編集したものです。
企業が業務システムにMySQL、PostgreSQL、Oracle、SQL Server といったリレーショナルデータベースを使いはじめてから今に至るまで、データベースへのコネクティビティは重要な課題であり続けています。1992年にMicrosoft が発表したOpen Database Connectivity(ODBC)API は、この課題に対する画期的な解決策となりました。
ODBC は、アプリケーションと多様なデータベース間の接続を標準化する技術として、現在でも広く採用されています。本記事では、ODBC 技術の仕組みとODBC ドライバーの役割、その重要性について詳しく解説します。
ODBC の仕組み
ODBCとは
ODBC は、アプリケーションからデータベースへのアクセスを標準化するためのAPI です。ODBC 4.0 の仕様はこちらに定義されています。この技術により、アプリケーション開発者は特定のデータベース管理システム(DBMS)に依存することなく、統一されたインターフェースを通じてデータにアクセスすることが可能になりました。
ODBCドライバーの役割
ODBC ドライバーは、ODBC の仕様に基づいてアプリケーションからの要求を特定のデータベース向けのSQL に変換する、重要なミドルウェアコンポーネントです。ODBC ドライバーを使うことで、ODBC に準拠したアプリケーションであれば、多様なデータベースと効率的にデータをやりとりすることができます。また、CData ODBC Drivers を使えばDB と同様にSaaS からもデータを取得できます。
ODBC アーキテクチャ
ODBC アーキテクチャは、主に以下のコンポーネントから構成されています。
1.アプリケーション
2.ドライバーマネージャー
3.ODBCドライバー
4.データソース
図を元に、ODBC を使ってアプリケーションからデータを取得しようとする際どんなことが起こるのか、見てみましょう。
このプロセスにおいて、ODBCドライバーが果たす役割は極めて重要です。データソースへの接続の確立、SQL の変換、そしてデータの取得と返送という核心的な機能を担っているからです。
ODBC ドライバーは元々Windows OS 向けに開発されましたが、その後Linux やMac OS でもドライバーマネージャが利用可能になり、任意のプラットフォームのアプリケーションから各種データベースへの接続が可能になりました。
Access からODBC でのデータ取得を試してみる
Microsoft Access からSalesforce への接続を例に、実際にODBC での接続を試してみましょう。CData のODBC ドライバーを使えば、Salesforce などデータベースではないSaaS データソースであっても、仮想的にデータベースとして扱うことでODBC を介してデータを取得・編集できます。
1.DSN の作成
事前に、Salesforce 用のドライバーをインストールしてユーザー名・パスワードなどデータソースへの接続情報を含むDSN を作成しておきます。ちなみに、外部のDSN を呼び出すことなく直接接続情報を渡す必要があるODBC ドライバーも存在します。
それでは進めていきましょう。CData Salesforce Drivers は、こちらから30日間のトライアルがダウンロードできます。
ドライバーをインストールしたら、「ODBC データソース アドミニストレーター」を開いてみてください。アドミニストレーターは、Windows 上でDSN をGUI で管理するためのツールです。Mac / Linux などUNIX OS では、unixODBC を利用してDSN をファイルベースで管理できます。
ドライバーがインストールされていれば、「CData Salesforce Sys」という項目が追加されています。
接続情報を設定してみましょう。以下では、Salesforce への接続に必要なユーザー名・パスワード・セキュリティトークンを入力しています。OAuth 接続を使用することで、通常のウェブサービスへのログインと同じ感覚で接続情報を設定することもできます。
2. アプリケーションからドライバーを呼び出す
それでは、Access からODBC 経由でSalesforce のデータを取得してみましょう。Access で新しいデータベースを作成したら、「新しいデータソース」 → 「他のソースから」 → 「ODBC データベース」と進みます。
「コンピューター データソース」を選ぶと、先ほど設定した「CData Salesforce Sys」を含むDSN の一覧が表示されます。
OK をクリックすると、Salesforce ODBC Driver がDSN の接続情報を使って、データソースであるSalesforce への接続を試みます。
成功すると、以下のようにSalesforce のテーブル一覧が表示されます。
テーブル一覧から取得したいテーブルを選択してOKをクリックすると、Access 側で呼び出したコマンドをドライバーがSalesforce 用のSQL に変換して、Salesforce から指定したデータを取得、Access にデータを返します。今回はリードデータを取得してみました。
プログラミング言語でのODBC 接続
ここまでで、Access からGUI ベースでのODBC を使ったデータ取得の方法を見てみました。ODBC のユースケースとしては、NodeJS やPHP といったプログラミング言語からの利用も人気です。プログラミング言語からの利用については、以下の記事をご確認ください。
・ODBC を介してNode.js からSalesforce データをクエリ
・PHP からSalesforce データに接続する方法
Access のようなGUI アプリケーションから利用する場合でも、プログラミング言語から利用する場合でも、根っこで呼び出しているのはSQLConnect、SQLDisconnectなどのOBDC API であることは変わりません。
ODBC ドライバーを使う7つのメリット
ODBC ドライバーは以下のような多くの利点を持ち、多様なデータベース・SaaS のデータを活用したい企業には欠かせません。
1.データベースとアプリケーション間の相互運用性:ODBC ドライバーは、さまざまな種類のデータベースに対して統一されたインターフェイスを提供します。そのため、企業はデータベースの追加や切り替えを容易に行うことができ、BI(ビジネスインテリジェンス)、分析、レポート作成のニーズに対して最適なデータアプリケーションを柔軟に使用できます。
2.汎用性:ODBCは、幅広いアプリケーションやツールでサポートされています。BI ツール、スプレッドシート、データ分析ツールなど、多くのソフトウェアがODBC という汎用インターフェースを介してデータにアクセスできます。
3.疎結合:ODBC は、アプリケーションとデータベースの間に抽象化層を提供します。これにより、データベースの変更がアプリケーションに与える影響を最小限に抑えることができます。
4.高度な機能:ODBC ドライバーは多くの場合、次のような高度なデータベース機能をサポートしています。
・ストアドプロシージャ:データベースに対し複雑な操作を直接実行します。
・トランザクション:データベーストランザクションをサポートすることで、データの整合性を維持します。
・バッチ処理:1回の操作で複数のクエリや更新を実行することで、高いパフォーマンスを実現します。
5.テクニカルサポートとドキュメント:多くのODBC ドライバーは、充実したテクニカルサポートと包括的なドキュメントを提供することで、開発者やデータ管理者がアプリケーションへの連携や問題のトラブルシューティングを簡単に行えるようにします。
6.開発期間の短縮:データベース固有の詳細を抽象化し、セキュリティ機能の管理を容易にすることで、開発者・データエンジニア・データサイエンティストは、データ分析とアプリケーションの核となる機能に専念できます。
7.ノーコードでの簡単な設定:ODBC ドライバーには通常、DSN と ODBC 接続の設定と管理のプロセスを簡単にするツールやユーティリティが含まれており、企業におけるすべてのステークホルダーが必要なデータに容易にアクセスできるようになっています。
RDB だけじゃない!あらゆるデータとの連携を実現する
ODBC ドライバー
ここまで紹介してきたように、ODBC は元々データベースへの接続を標準化するために開発されてきた技術です。しかし、昨今の業務データはDB だけでなく各種SaaS やクラウドDWH に分散しています。こうしたサービスとの連携には、それぞれのサービスが提供するWeb API との連携を開発する必要があります。
とはいえ、Web API との連携をその都度開発する場合、相互運用性、汎用性、疎結合、ノーコードでの簡単な設定といったODBC のメリットを享受することはできません。
CData ODBC Drivers は、RDB だけでなく、以下に紹介するような各種SaaS データソースとの連携をODBC を使って実現します。CData ODBC Drivers を活用することで、ODBC のメリットを享受しつつ270種類以上のSaaS データとの連携を簡単に実装できるのです。
・CRM・ERP:Salesforce、SAP、HubSpot
・MA:Marketo、Account Engagement(旧Pardot)
・会計・EC:スマレジ、NetSuite、Shopify、B カート、Stripe、SAP Ariba
・クラウドDWH:Snowfake、BigQuery、Databricks、Redshift
・マーケティング:Google Analytics、Google 広告、Bing 広告、Facebook 広告
・クラウドストレージ:Box、Dropbox、Google Drive
おわりに
多くの企業がデータベース以外のアプリケーションにビジネスデータを格納するようになり、ユニバーサルなコネクティビティの需要が高まっています。CData は、ODBC ドライバーの利点をすべて提供し、300を超えるSaaS アプリケーション、ビッグデータストア、NoSQL データベースなど、データベースを超えてコネクティビティを拡張します。
参考資料
本記事の執筆に当たって、以下のページを参考にさせていただきました。
・Microsoft Open Database Connectivity (ODBC) 内のページ
・Open Database Connectivity - Wikipedia
・Data source name - Wikipedia
・What is a data source name (DSN)?
この記事の編集者は以下の記事もオススメしています
-
デジタル
“外部データ連携”を20分の1のコストでサービス実装、CData Connect CloudにOEM組み込み機能 -
デジタル
SQLはすごい ノーコードの裏にSQLあり -
デジタル
データ仮想化ソリューション「CData Virtuality」、大規模利用時のリソース管理を強化 -
デジタル
Google Analystics 4のデータをBIツールやMA・CRMと直接連携させる -
ITトピック
「20年来の友人に久しぶりに再会した」 SQLやODBCのありがたみ再認識 -
デジタル
kintoneへのゲストユーザー登録を自動化するには? -
デジタル
複数のExcelの売上ファイル、1つのテーブルに集約 元ファイルの場所までわかる -
デジタル
生成AIでアプリを作れる App StudioでAPI連携を試してみた -
デジタル
CData Virtuality の日本ローンチイベントをレポート