メタデータの提供¶
OData サービスでは、Denodo データベースに関するメタデータを使用して、以下に示す 2 つのタイプのドキュメントが生成されます。
サービスドキュメント: データサービスで提供されるすべてのエンティティが一覧表記されています。情報の取得元であるデータベースの名前を指定した、サービスのルート URI (
/denodo-odata.svc/<database name>
) にあります。movies
データベースのアクセス可能なコレクションがactor
、address
、city
、country
、film
、およびfilm_actor
である場合の例を以下に示します。http://localhost:9090/denodo-odata4-service/denodo-odata.svc/movies
{ "@odata.context": "/denodo-odata.svc/movies/$metadata", "value": [ { "name": "actor", "url": "actor" }, { "name": "address", "url": "address" }, { "name": "city", "url": "city" }, { "name": "country", "url": "country" }, { "name": "film", "url": "film" }, { "name": "film_actor", "url": "film_actor" } ] }
サービスメタデータドキュメント: エンティティデータモデル (EDM) とも呼ばれます。サービスで公開されているデータモデルの XML 表現です。
.../$metadata
にあります。以下に例を示します。
http://localhost:9090/denodo-odata4-service/denodo-odata.svc/movies/$metadata
0 個以上の city エレメントとのリレーションシップを持つ country エンティティの例:
<EntityType Name="country"> <Key> <PropertyRef Name="country_id"/> </Key> <Property Name="country_id" Type="Edm.Int16" Nullable="false"/> <Property Name="country" Type="Edm.String" MaxLength="50"/> <Property Name="last_update" Type="Edm.DateTimeOffset" Precision="19"/> <NavigationProperty Name="cities" Type="Collection(com.denodo.odata4.city)" Partner="country"> <ReferentialConstraint Property="country_id" ReferencedProperty="country_id"/> </NavigationProperty> </EntityType>
このサービスでは、OData の構造が Virtual DataPort の概念に以下のように対応付けられます。
Denodo OData のサービス |
Virtual DataPort |
---|---|
エンティティタイプ |
ビューの定義 |
エンティティタイプ > プロパティ |
ビューの列 |
エンティティタイプ > ナビゲーションプロパティ |
アソシエーションのロール |
リレーションシップ |
アソシエーションの定義 |
エンティティセット |
ビューのデータ |
インポートした関数 |
- |