CData Query Federation Driver の設定方法



CData Query Federation Driver は、複数のデータソースにまたがるデータを単一のデータベース接続I/F としてクエリできる仮想データ統合ドライバーです。RDB、SaaS、NoSQL などの単一データソース向けであるCData Drivers (JDBC Drivers やADO.NET Data Providers)と組み合わせて利用することで、Query Federation Driver は分散して保管されているあらゆるデータを一つのデータベースのようにクエリすることが可能になります。Query Federation Driver で複数のデータソースに対するCRUD クエリを実行できるだけでなく、データソースにまたがるテーブルのJOIN や集計が標準SQL で実行できます。

すべてのデータにアクセスする仮想エンドポイントを作成するには、まずQuery Federation Driver および、使用するデータソースに対応するCData Drivers をインストールしてください。この記事では、JDBC Drivers を使用し、Excel、Salesforce、MySQL のデータソースを使います。Query Federation Driver はほかのどのCData Drivers のデータソースにも対応しています。

ほかの単一データソースのCData Drivers と同じように、Federation Driver は接続文字列を使ってデータソースに接続します。Query Federation Driver のキーとなる接続プロパティは2種類あります:

  • Database Configuration: どのCData Driver をQuery Federation Driver で使うかを定義したJSON ファイルの場所を設定します。通常はこちらに配置し、指定します%AppData%/Roaming/CData/Query Federation Data Provider/DatabaseConfiguration.json
  • Default Schema: データベース設定で定義された複数のデータベースからどのデータベーススキーマをデフォルトで使うかを設定します

Database Configuration ドキュメントは、JSON オブジェクトでQuery Federation Driver がアクセスできるデータ種類を含みます。JSON オブジェクトはそれぞれ一つのドライバーを指し、スキーマの名前をsalesforcedb もしくはmysqldb のように示します。オブジェクトのほかのフィールドおよび値は使っているFederation Driver がJava ベースかC# ベースかで異なります:

JDBC スキーマフィールド

  • driverClass: ドライバーのJDBC クラス名(e.g. cdata.jdbc.salesforce.SalesforceDriver
  • connectionUri: データに接続するJDBC URL (e.g. jdbc:cdata:salesforce:User=user@domain.com;Password=password;
  • driverPath: ドライバーファイルが置かれているロケーション (e.g. C:\Program Files\CData\CData JDBC Driver for Salesforce\lib\cdata.jdbc.salesforce.jar

DatabaseConfiguration.json File (JDBC) のサンプル

{
  "salesforcedb": {
    "driverClass": "cdata.jdbc.salesforce.SalesforceDriver",
    "connectionUri": "jdbc:cdata:salesforce:User=user@domain.com;Password=password;",
    "driverPath": "/PATH/TO/cdata.jdbc.salesforce.jar"
  },
  "exceldb": {
    "driverClass": "cdata.jdbc.excel.ExcelDriver",
    "connectionUri": "jdbc:cdata:excel:Excel File=/PATH/TO/MyExcelFile.xlsx;",
    "driverPath": "/PATH/TO/cdata.jdbc.excel.jar"
  },
  "mysqldb": {
    "driverClass": "cdata.jdbc.mysql.MySQLDriver",
    "connectionUri": "jdbc:mysql:Server=localhost;Database=test;User=root;Password=pwd",
    "driverPath": "/PATH/TO/cdata.jdbc.mysql.jar"
  }
}

ADO.NET スキーマフィールド

  • providerName: ADO.NET Provider クラス名 (e.g. System.Data.CData.Salesforce
  • connectionString: データに接続する接続文字 (e.g. User=user@domain.com;Password=password;)
  • providerPath: ドライバーファイルが置かれているロケーション (e.g. C:\Program Files\CData\CData ADO.NET Driver for Salesforce\lib\System.Data.CData.Salesforce.dll

DatabaseConfiguration.json File (ADO) のサンプル

{
  "salesforcedb": {
    "providerName": "System.Data.CData.Salesforce",
    "connectionString": "User=user@domain.com;Password=password;",
    "providerPath": "/PATH/TO/System.Data.CData.Salesforce.dll"
  },
  "exceldb": {
    "providerName": "System.Data.CData.Excel",
    "connectionString": "Excel File=/PATH/TO/MyExcelFile.xlsx;",
    "providerPath": "/PATH/TO/System.Data.CData.Excel.dll"
  },
  "mysqldb": {
    "providerName": "System.Data.CData.MySQL",
    "connectionString": "Server=localhost;Database=test;User=root;Password=pwd",
    "providerPath": "/PATH/TO/System.Data.CData.MySQL.dll"
  }
}

Query Federation Driver 接続方法のサンプル

JDBC 対応のツールやアプリケーションからQuery Federation Driver に接続するには、Query Federation Driver のJDBC URL を作成するだけです:

JDBC URL

jdbc:queryfederation:DatabaseConfiguration=/PATH/TO/DatabaseConfiguration.json;DefaultSchema=salesforcedb

ADO.NET対応のツールやアプリケーションからQuery Federation Driver に接続するには、Query Federation Driver の接続文字列を作成するだけです:

ADO.NET 接続文字列

DatabaseConfiguration=/PATH/TO/DatabaseConfiguration.json;DefaultSchema=salesforcedb

さあ、Query Federation Driver の接続設定ができたので、複数のデータソースに単一のデータベースのようにアクセスしてみましょう。ここでは、JDBC データソースへのクエリツールであるDBVisualizer で、Query Federation Driver のデータ接続およびデータ構造を見ることができます。

Query Federation Driver のスキーマレイアウト(DBVisualizer)

無償評価版 & 詳細製品情報

SaaS、RDB、ビッグデータソース、CSV ファイルに渡る複数のデータソースに自在に連携することは企業がデータドリブンな経営を行う上で必須です。高機能、ハイパフォーマンスなQuery Federation Driver を使えば、複数のデータソースを一つのデータベースのように扱いクエリを発行することが可能です。ぜひ、30日の無償試用版 をダウンロードしてお試しください。