論理レイヤー¶
論理レイヤーは、さまざまなラッパー (基本リレーションまたは基本ビュー) によってエクスポートされたリレーションを統合および組み合わせて、システムのグローバルスキーマを構成するビューを作成します。
システムソースを表す 基本リレーション を作成した管理者は、必要に応じ、それらを組み合わせてビューを作成することで グローバルスキーマビュー (派生ビュー) を作成できます。このプロセスはさまざまな手順で再帰的に実行できる点に注目することが重要です。つまり、 派生ビュー を基にして新しい ビュー を作成できるので、任意の複雑さを持つ組み合わせが可能です。ビューは、Denodo VQL 言語を使用して定義します。この言語については、「 Virtual DataPort VQL ガイド 」を参照してください。なお、後述するように、管理ツールを使用すれば、グラフィカルにビューを作成できるので、VQL ステートメントを手動で記述する必要がありません。
ソースデータを組み合わせて グローバルスキーマのビュー を作成すると、 派生ビュー と 基本リレーション の両方を対象として VQL で記述されたクエリに論理レイヤーから応答できるようになります。
VQL クエリ言語は SQL に基づいていますが、異種混合の分散データを処理するためにさまざまな拡張機能が組み込まれています。たとえば、VQL には、非構造化データにクエリを実行して構造化データと組み合わせるコマンドがいくつか用意されています。また、array や register などの複合型のデータもサポートしています。
システムは、クエリを受信すると、データソースでサポートされているクエリ機能に応じて、それを解決できるかどうかを確認します。つづいて、考えられる実行プランをいくつか作成します。そこから最適なプランを選択してクエリを実行し、取得した結果を上位レイヤーに返します。
Virtual DataPort の論理レイヤーでは、データソースでトランザクションがサポートされていれば、INSERT、UPDATE、DELETE の各操作を使用してデータソースに書き込むことができます。
論理レイヤーでは、以下のモジュールを区別できます。
Query Plan Generator: まず、データソースでサポートされているクエリ機能に応じて、受信したクエリに応答できるかどうかがプランジェネレーターで判断されます。応答できる場合は、そのクエリに対して考えられる実行プランが生成されます。
Optimizer: 次に、Query Plan Generator で取得されたすべてのオプションの中から最適な実行プランを選択することを目指します。ソースのクエリ機能も考慮され、可能であれば一部の操作がデータソースに委任されます。これにより、実行効率が向上し、ネットワーク経由のデータ交換を低減できます。そのほかに、結合操作の最適な実行方法が考慮されます。
Query Execution Engine: 最適なプランが選択されると、実行エンジンでそのプランが実行されます。ソースに対して必要なサブクエリを実行し、得られた結果を統合して、グローバル応答が生成されます。つづいて、ソースからキャッシュモジュールにすでにプリロードされている情報が実行エンジンで考慮されます。これによって、データソースへの不要なアクセスを回避し、大幅な効率向上を実現します。