データモデル
概要
使用されている接続設定に応じて、connector はCouchbase エンティティとリレーショナルテーブルおよびビューとの間に、いくつかの異なるマッピングを提示できます。これらの各機能の詳細については、このドキュメントのNoSQL の部分を参照してください。
- N1QL クエリサービスに接続する場合、connector はCouchbase バケットをリレーショナルテーブルとしてモデル化します。さらに、TypeDetectionScheme がDocType またはInfer に設定されている場合は、connector は各バケット内のさまざまな種類のドキュメントを独自のテーブルとして表示します。
- Analytics サービスに接続する場合、connector はCouchbase データセットをリレーショナルビューとしてモデル化します。
- いずれかのサービスと接続する場合、connector はデータの配列を子テーブルまたはビューとして公開することができます。
Please see the 自動スキーマ検出 section for more details on how flavor and child tables are exposed. In addition, the NewChildJoinsMode connection property is recommended for workflows that make heavy use of child tables. The documentation for that connection property details the improvements it makes to the connector data model.
Dataverses, Scopes and Collections
Couchbase has different ways of grouping buckets and datasets depending on the CouchbaseService and version of Couchbase you are connecting to:
- Couchbase organizes Analytics datsets into groups called dataverses. By default the connector exposes datasets from all dataverses using compound names like Default.users as described in DataverseSeparator. It is important to remember that these compound names must be quoted when used in queries, for example SELECT * FROM [Default.users]
- You may also set the Dataverse property to limit the the connector to exposing a single dataverse. This disables compound names so view names will not include the dataset.
- When connecting to Couchbase 7 and above, the connector will use the scope, collection and bucket/dataset name to build table and view names. For example, a table with a name like crm.accounts.customers exposes the customers collection under the accounts scope of the crm bucket. These must be quoted the same as other compound names when used in queries, for example SELECT * FROM [crm.accounts.customers]
Live Metadata
All of the schemas provided by the connector are dynamically retrieved from Couchbase, so any changes in the buckets or fields within Couchbase will be reflected in the connector the next time you connect.
You may also issue a reset query to refresh schemas without having to close the connection:
RESET SCHEMA CACHE