Federated Database の定義
ドライバーによって公開される連合データベースは、JSON ファイルを使用して構成されます。このファイルには、データベースで利用可能なすべてのカタログと、クエリフェデレーションがADO.NET プロバイダーを使用して各カタログにクエリを実行する方法がリストされています。
データベースコンフィギュレーションファイルの設定
連合データベース内の各データソースへの接続は、JSON 形式のコンフィギュレーションファイルで定義されています。
コンフィギュレーションファイルの各ルート要素には、単一データソース接続用のユーザー定義のカタログ名が含まれ、以下の子要素が含まれます。
- providerName: データソースに関連付けられたADO.NET アセンブリの名前に設定。これは、関連するADO.NET プロバイダーのインストールディレクトリのlib サブディレクトリで確認できます。
Query Federation 本製品 は、アプリケーションレベルのWeb.config/App.config またはシステムレベルのmachine.config のいずれかに登録済みのプロバイダーを認識します。 - connectionString: データソースに紐づいている接続文字列に設定。
次に例を示します。
{
"CSVCatalog": {
"providerName": "System.Data.CData.CSV",
"connectionString": "GenerateSchemaFiles=OnStart;URI=https://MyAPI;Location=C:\\MyCatalogFolder;"
},
"MySQLCatalog": {
"providerName": "System.Data.CData.MySQL",
"connectionString": "User=myUser;Password=myPassword;Database=NorthWind;Server=myServer;Port=3306;"
},
"SalesforceCatalog": {
"providerName": "System.Data.CData.Salesforce",
"connectionString": "User=myUser;Password=myPassword;Security Token=myToken;"
},
"PostgreSQLCatalog": {
"providerName": "System.Data.CData.PostgreSQL",
"connectionString": "User=postgres;Password=admin;Database=postgres;Server=127.0.0.1;Port=5432;"
}
}
上記の例のようにコンフィギュレーションファイルを定義し、ファイルのパスをDatabaseConfiguration プロパティに追加すると、"CSVCatalog" や"MySQLCatalog" などのカタログ名がメタデータ検出時に本製品 によって読み込まれ、それらのテーブルはCatalogName.TableName という形式でクエリされるようになります。
複数のカタログのクエリについては、複数データソースとの連携 を参照してください。
コンフィギュレーションファイルへの接続
コンフィギュレーションファイルに接続するには、次の接続プロパティを設定します。
- DatabaseConfiguration:JSON カタログ定義ファイルを指すファイルパスに設定。
- DefaultCatalog:完全修飾名をサポートしていないツールやアプリケーションでは、これを、指定されたクエリでカタログが提供されていない場合に使われるカタログ(カタログ定義ファイルから)に設定することができます。
例えば、クエリでMyCatalog.SchemaName.TableName の代わりにTableName を使用したい場合は、このプロパティをMyCatalog に設定します。これは、ドライバーの使用を単一ソースに限定するためあまり有用ではありませんが、状況によってはそれで十分な場合もあります。
Note: OAuth を活用してデータソースの複数インスタンスに接続する場合、各接続に固有のOAuthSettingsLocation が指定されていることが重要です。
これは、同じOAuthSettingsLocation を持つ2つの接続が互いのOAuth 設定を上書きしてしまうからです。