インターフェイスビューの作成¶
インターフェイスビューは、フィールドの定義と別のビューへの参照のみで構成する特殊なタイプのビューです。インターフェイスビューは、ビューのコンシューマーをビューの実装から分離します。主なユースケースとして、以下の 2 つがあります。
コントラクトベースの開発:
クライアントアプリケーションと Denodo のプロジェクトマネージャーが、ビューのスキーマについて合意します。
その後、Denodo でビューを開発するチームが、このインターフェイスビューの実装ビューを構築します。
データモデルの抽象化:
基盤となるデータストアをクラウドに移行するプロジェクトで、ビューのスキーマが変更されないようにする必要がある場合に効果的です。
インターフェイスを使用するクエリを Virtual DataPort サーバーで実行すると、そのクエリは実装ビューに委任されます。したがって、インターフェイスビューに対して実行できる操作 (SELECT
、 INSERT
、 UPDATE
、または DELETE
) は、その実装ビューに対して実行できる操作と同一になります。
インターフェイスビューのステータスとして以下があります。
Ok: インターフェイスビューのすべてのフィールドに有効な「実装式」が設定された状態。このビューを指定したクエリは正常に動作します。
Without implementation: 実装ビューを伴わずにインターフェイスが作成されている状態、または実装ビューが削除された状態。このビューを指定したクエリは失敗します。
Invalid: インターフェイスに実装ビューが存在するものの、インターフェイスのフィールドの中に実装式を持たないものが存在する状態、または無効な実装式が設定されている状態。実装ビューが存在するインターフェイスを作成した後で実装を変更し、実装式が有効ではなくなると、このステータスになることが考えられます。このビューを指定したクエリは失敗します。
インターフェイスビューの各フィールドには、それぞれに固有の「ソース型プロパティ」は存在しません。Virtual DataPort によって、実行時に実装ビューからインターフェイスビューにそれらのプロパティが伝播します。したがって、実装ビューを変更すると、インターフェイスビューの各フィールドのプロパティも同様に変更されます。
たとえば、 I_1
インターフェイスビューに text
型の f_1
フィールドが存在し、その実装ビューの f_1
のソース型が VARCHAR
、長さが 15 だとします。 I_1
に対してクエリを実行すると、Denodo JDBC ドライバーから f_1
の型として VARCHAR(15)
が報告されます。
フィールドの「ソース型プロパティ」を変更するには、インターフェイスビューではなく、実装ビューの [Edit view] ダイアログを使用します。これらのプロパティの詳細およびそれが効果的である理由については、「 基本ビューのスキーマの表示 」を参照してください。
インターフェイスの実装によって使用されるビューか、インターフェイスの実装として直接使用されるビューを削除する際には、インターフェイスが [Without implementation] 状態に変化することを Administration Tool が警告します。
インターフェイスビューを作成するには、[File] > [New] メニューで [Interface] をクリックするか、[Server Explorer] で右クリックして [New] メニューで [Interface] をクリックします。選択したビューの各フィールドの値が、インターフェイスの定義に入力されます。

新しいインターフェイスビューの作成: [Definition] タブ¶
Interface View ウィザードには以下の 3 つのタブがあります。
Definition: 次のようにビューの各定義を構成できます。
インターフェイスビューの名前を変更する。
インターフェイスのフィールドの名前と型を管理する。
既存のビューのスキーマに基づいてインターフェイスを定義する場合は、そのビューをこのタブにドラッグします。既存のスキーマが、ドラッグしたビューのスキーマに置き換えられます。
新しいフィールドをインターフェイスに追加するには [New field] をクリックします。
フィールド名の隣にあるボックスで、フィールドの型を選択できます。デフォルトでは、このボックスには基本的なデータ型 (
int
、float
、text
など) のみが用意されています。複合フィールドを選択する場合は、[Enable compound types] チェックボックスをチェックします。インターフェイスからフィールドを削除するには、そのチェックボックスをチェックして [Remove selected] をクリックします。
誤って削除したフィールドを復元する場合は [Restore fields] をクリックします。[Restore Fields] ダイアログが開くので、ここでインターフェイスビューに再度追加するフィールドを選択する必要があります。

新しいインターフェイスビューの作成: [Implementation] タブ¶
Implementation: インターフェイスビューのフィールドから実装ビューのフィールドへのマッピングを定義します。
まず、[Server Explorer] から実装ビューをドラッグして追加する必要があります。この実装ビューは、インターフェイスビューとは異なるデータベースに属していてもかまいません。
ビューを追加すると、同じ名前のフィールドは自動的にリンクされます。それ以外のフィールドは、定義にあるフィールドを実装ビュー側のリンク先フィールドにドラッグすることによってリンクできます。または、その下の [Implementation Expression] 列にフィールド名または実装式を入力してリンクを定義することもできます。
図 Creating a new interface view: “Implementation” tab から以下のことがわかります。
実装 (ttime と taxid) または複雑な式 (summary) にフィールドをマッピングできます。
実装式は、定義の型と同じ型とするか、それと互換性がある型とする必要があります。たとえば、インターフェイスに
double
型のF_1
フィールドがある場合、実装式はdouble
型、またはそれと互換性があるint
型、long
型、float
型とする必要があります。フィールドが int 型である場合、実行時にそのフィールドの値はインターフェイスの型であるdouble
に変換されます。インターフェイスビューのフィールドのうち、複雑な式にマッピングされたフィールドは更新できません。つまり、それらのフィールドを指定した
INSERT
、UPDATE
、DELETE
の各操作は失敗します。実装ビューには、定義より多いフィールドを設定できます。余分なフィールドは無視されるにすぎません。図 Creating a new interface view: “Implementation” tab では、実装ビューの inc_type フィールドが、定義のどのフィールドにもマッピングされていません。
インターフェイスビューにエラーがある場合、このタブには
アイコンおよびエラーについて説明するヒントが表示されます。エラーの原因として以下が考えられます。
インターフェイスビューに実装ビューが存在しない。
定義のフィールドの中に、「実装式」が存在しないものがある。
Metadata: インターフェイスの格納先フォルダと説明を定義できます。