9.10. OData V4 translator


タイプ名 「odata4」 によって認識される OData V4 トランスレーターは OData Version 4 データソースを公開し、Data Virtualization Web サービスリソースアダプターを使用して Web サービス呼び出しを作成します。このトランスレーターは Web Services Translator の拡張機能です。OData V4 translator は、古い OData V1-3 ソースとは使用しないでください。古い OData ソースには OData トランスレーター("odata")を使用します。

OData とは

Open Data Protocol(OData) Web プロトコルは、データのロックを解除し、現在のアプリケーションに存在する silo から解放する方法を提供するデータのクエリーおよび更新用です。OData は、HTTP、Atom Publishing Protocol(AtomPub)、JSON などの Web テクノロジーに基づいて適用および構築することで、さまざまなアプリケーション、サービス、ストアからの情報へのアクセスを提供します。OData は、リレーショナルデータベース、ファイルシステム、コンテンツ管理システム、従来の Web サイトなど、さまざまなソースから情報を公開およびアクセスするために使用されます。

Olingo フレームワークからこの仕様を使用し、Data Virtualization は提供された OData エンドポイントから OData V4 CSDL(Conceptual Schema Definition Language)ドキュメントをマッピングし、OData メタデータを Data Virtualization のリレーショナルデータベースに変換します。以下の表は、CSDL ドキュメントの OData V4 translator マッピングの選択を示しています。

OData をサーバーとして使用

Data Virtualization は OData ベースのデータソースのみを使用できますが、すべてのデータソースを OData ベースの Web サービスとして公開できます。詳細は、『 クライアント開発者ガイド』の「 OData サポート 」を参照してください。

Expand
ODataリレーショナルデータベースにマッピング

EntitySet

テーブル

EntityType

表はこちらを参照してください [1]

ComplexType

表は [2]

FunctionImport

手順 2:

ActionImport

手順 2:

NavigationProperties

table [4]

[1] EntityType が EntitySet で EntitySet として公開される場合のみです。[2] 公開された EntitySet で複雑なタイプがプロパティーとして使用される場合のみです。この表は、外部キー [1-to-1] または [1-to-many] の関係のある子テーブルとして設計されています。
return type が EntityType または ComplexType の場合は、手順がテーブルを返すように設計されています。[4] ナビゲーションプロパティーはテーブルとして公開されます。この表は、親と外部キーの関係で作成されます。

すべての CRUD 操作は、OData トランスレーターに送信された SQL に基づいて生成されるエンティティーに適切にマッピングされます。

用途

OData ソースの使用は JDBC トランスレーターに似ています。メタデータのインポートはトランスレーターによってサポートされ、メタデータがソースシステムからインポートされ、リレーショナルデータベース用語で公開されると、EntitySets、Feature Imports、および Action Imports および Action Imports が Data Virtualization システムにローカルにあるかのようにこのソースをクエリーできます。

複雑なサービス用に Data Virtualization DDL を使用して独自のメタデータを定義することは推奨されません。適切な機能を有効にするには、いくつかのエクステンションメタデータプロパティーが必要です。文字列以外のプロパティーでは NATIVE_TYPE プロパティーが想定されており、完全な EDM タイプ名( Edm.xxx )を指定する必要があります。

以下は、http://odata.org サイトの TripPin サービスからメタデータサービスを読み取ることができる VDB のサンプルです。

<vdb name="trippin" version="1">
    <model name="trippin">
         <source name="odata4" translator-name="odata4" connection-jndi-name="java:/tripDS"/>
    </model>
</vdb>
Copy to Clipboard Toggle word wrap

Data Virtualization JDBC ドライバーを使用してデプロイした VDB に接続し、以下のように SQL ステートメントを発行します。

SELECT * FROM trippin.People;
SELECT * FROM trippin.People WHERE UserName = 'russelwhyte';
SELECT * FROM trippin.People p INNER JOIN trippin.People_Friends pf ON p.UserName = pf.People_UserName; (note that People_UserName is implicitly added by Data Virtualization metadata)
EXEC GetNearestAirport(lat, lon) ;
Copy to Clipboard Toggle word wrap

実行プロパティー

デフォルトのプロパティーは、トランスレーターの適切な実行のために調整する必要があります。以下の実行プロパティーは、物理ソース機能に基づいてトランスレーターの機能を拡張するか、制限します。

Expand
名前説明デフォルト

SupportsOdataCount

$count に対応

true

SupportsOdataFilter

$filter に対応

true

SupportsOdataOrderBy

$orderby に対応

true

SupportsOdataSkip

$skip に対応

true

SupportsOdataTop

$top に対応

true

SupportsUpdates

INSERT/UPDATE/DELETE のサポート

true

接続する OData サーバーは OData 仕様全体を完全に実装しない可能性があります。サーバーの OData 実装が機能をサポートしていない場合は、「execution properties」を設定して対応する機能をオフにし、Data Virtualization が無効なクエリーをトランスレーターにプッシュしないようにします。

<translator name="odata-override" type="odata">
     <property name="SupportsOdataFilter" value="false"/>
</translator>
Copy to Clipboard Toggle word wrap

次に、ソースモデルでトランスレーター名として「odata-override」を使用します。

インポーターのプロパティー

以下の表は、物理ソースからのメタデータのインポート時にトランスレーターの動作を定義するインポータープロパティーを示しています。

Expand
名前説明デフォルト

schemaNamespace

インポートするスキーマの namespace

null

odata.org で公開される Trippin サービスからテーブルおよびビューのみをインポートするインポーターの設定例

<property name="importer.schemaNamespace" value="Microsoft.OData.SampleService.Models.TripPin"/>
Copy to Clipboard Toggle word wrap

このプロパティーは未定義のままにすることができます。トランスレーターがプロパティーに設定されたインスタンスを検出しない場合は、EntityContainer のデフォルト名を指定します。

ヒント

ネイティブクエリー: ネイティブまたは直接クエリーの実行は、OData トランスレーターを介してはサポートされません。ただし、Web サービストランスレーターの invokehttp メソッドを使用して REST ベースの呼び出しを実行し、SQLXML を使用して結果を解析できます。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat