第2章 仮想データベース


仮想データベース(VDB)は、複数のデータソースからデータを統合するために使用されるコンポーネントのメタデータコンテナーであり、単一の統一された API を介して統合方法でアクセスできるようにします。

Virtual database

仮想データベースには、通常複数のスキーマコンポーネント(モデルとも呼ばれます)が含まれ、各スキーマにはメタデータ(テーブル、手順、関数)が含まれます。スキーマには、以下の 2 つのタイプがあります。

外部スキーマ
外部スキーマは ソース または 物理 スキーマとも呼ばれ、外部スキーマは Oracle、Db2、MySQL などのリレーショナルデータベース、CSV、Microsoft Excel、または SOAP や REST などの Web サービスなどの外部データソースまたはリモートデータソースを表します。
仮想スキーマ
外部スキーマのスキーマオブジェクトを使用して定義されるビュー層または論理 スキーマレイヤー。たとえば、複数のソースから複数の外部テーブルを集約するビューテーブルを作成すると、生成されるビューは、ビューを定義するデータソースの複雑度からユーザーになります。

留意すべき重要な点の 1 つは、仮想データベースにはメタデータだけが含まれていることです。Data Virtualization に関連するユースケースには、開始する仮想データベースモデルが必要です。そのため、VDB を設計および開発する方法を理解することが重要です。

以下の仮想データベースモデルの例は、PostgreSQL データベースへの接続を行う単一の外部スキーマコンポーネントを定義します。

この例の SQL DDL コマンドは、SQL/MED 仕様を実装します。

CREATE DATABASE my_example;
USE DATABASE my_example;
CREATE SERVER pgsql
    VERSION 'one' FOREIGN DATA WRAPPER postgresql
    OPTIONS (
        "resource-name" 'java:/postgres-ds'
    );
CREATE SCHEMA test SERVER pgsql;
IMPORT FOREIGN SCHEMA public FROM SERVER pgsql INTO test
    OPTIONS(
        importer.useFullSchemaName false,
        importer.tableTypes 'TABLE,VIEW'
);
Copy to Clipboard Toggle word wrap

以下のセクションでは、前述の例のステートメントを使用して仮想データベースを定義する方法を説明します。前は、ソーススキーマ コンポーネントのさまざまな要素について学ぶ必要があります。

外部データソース

仮想データベースの「ソーススキーマ」コンポーネントは、外部データソースのメタデータをローカルで表現するスキーマオブジェクト、テーブル、手順、および関数のコレクションです。この例では、スキーマオブジェクトは直接定義されていませんが、サーバーからインポートされます。外部データソースへの接続の詳細は、resource-name を介して提供されます。これは、外部データソースへの名前付きの接続参照です。

Data Virtualization の目的で、クエリーを接続および実行してこれらの外部データソースからメタデータを取得するため、Data Virtualization は 2 種類のリソースを定義/提供します。

トランスレーター

DATA WRAPPER とも呼ばれるトランスレーターは、Data Virtualization クエリーエンジンと物理データソース間の抽象化レイヤーを提供するコンポーネントです。トランスレーターは、クエリーコマンドを Data Virtualization からソース固有のコマンドに変換し、実行する方法を認識します。トランスレーターには、物理ソースが返すデータを Data Virtualization クエリーエンジンが処理できる形式に変換する情報もあります。たとえば、Web サービストランスレーターを使用すると、トランスレーターは Data Virtualization レイヤーからの SQL 手順を HTTP 呼び出しに変換し、JSON 応答は表形式で変換されます。

Data Virtualization は、システムの一部としてさまざまなトランスレーターを提供するか、提供された java ライブラリーを使用して開発することもできます。利用可能な翻訳者の詳細は、「 翻訳者」を参照して ください。

2.1. 仮想データベースのプロパティー

DATABASE プロパティー

  • domain-ddl
  • schema-ddl
  • query-timeout は、この VDB に対して実行されるクエリーのデフォルトクエリーのタイムアウトをミリ秒単位で設定します。0 は、サーバーのデフォルトクエリータイムアウトを使用する必要があることを示します。デフォルトは 0 です。サーバーのデフォルトクエリータイムアウトが小さい値に設定されている場合は有効ではありません。クライアントは引き続き、クライアント側で管理する独自のタイムアウトを設定できます。
  • connection.XXX: デフォルトの connection/execution プロパティーを設定するために ODBC トランスポートおよび OData で使用する場合。関連するプロパティーの詳細は、『 クライアント開発者ガイド』の「 ドライバー接続 」を参照し てください。これらは、確立後に接続に設定されることに注意してください。
CREATE DATABASE vdb OPTIONS ("connection.partialResultsMode" true);
Copy to Clipboard Toggle word wrap
  • authentication-type

設定されたセキュリティードメインの認証タイプ。現在使用できる値は(GSS、USERPASSWORD)です。デフォルトではトランスポート(通常は USERPASSWORD)に設定されます。

  • password-pattern

USERPASSWORD 認証が使用されるかどうかを判断する接続ユーザー名と照合される正規表現。password-patternauthentication-type よりも優先されます。デフォルトは authentication-type です。

  • gss-pattern

GSS 認証が使用されているかどうかを決定する接続ユーザー名と照合される正規表現。GSS-patternpassword-pattern よりも優先されます。デフォルトは password-pattern です。

  • max-sessions-per-user (11.2+)

この VDB のユーザー名で識別される各ユーザーに許可される最大セッション数。何も設定されず、負の値の場合には、ユーザーの最大値が表示されますが、セッションサービスの最大値は引き続き適用されます。これはクラスター内の各 Data Virtualization サーバーメンバーに対して実施され、クラスター全体のデータ仮想化サーバーメンバーには適用されません。既存のセッション下のタスク用に作成される派生セッションは、この最大値に対してカウントされません。

  • model.visible

インポートされた vdb モデルの可視性を上書きするのに使用します。

  • include-pg-metadata

デフォルトでは、org.teiid.addPGMetadata プロパティーを false に設定していない限り、PostgreSQL メタデータは常に VDB に追加されます。このプロパティーにより、VDB ごとに PG メタデータを追加できます。詳細は、『 管理者ガイド』の「 システムプロパティー 」を参照してください。ODBC を使用して VDB にアクセスする場合には、VDB には PG メタデータが含まれている必要があります。

  • lazy-invalidate

デフォルトでは、TTL の有効期限が無効になります。詳細は、『 キャッシュガイド』 の「 内部ドラフト 」を参照してください。lazy-invalidate を true に設定すると、TTL の更新は非検証になります。

  • deployment-name

実質的に予約されています。サーバーによるデプロイ時、サーバーデプロイメントの名前に設定されます。

スキーマおよびモデルのプロパティー

  • visible

値が true の場合にスキーマに表示済みとしてマークします(デフォルト設定)。表示される フラグが false に設定されている場合、スキーマのメタデータはメタデータ要求から非表示になります。プロパティーを false に設定しても、このスキーマに対してクエリーを発行することは禁止されません。データへのアクセスを制御する方法は、「データ ロール」を参照し てください。

  • multisource

スキーマをマルチソースモードに設定し、データを複数の異なるソースのパーティションに存在するように設定します。スキーマのメタデータがすべてのデータソースで同じであることを前提とします。

  • multisource.columnName

マルチソーススキーマでは、パーティションを指定する追加の列が暗黙的にすべてのテーブルに追加され、ソースを特定します。このプロパティーは列の名前を定義します。型は常に String になります。

  • multisource.addColumn

このフラグは、このスキーマのすべてのテーブルに暗黙的なパーティション列を追加するように指定します。true 値により列が追加されます。デフォルトは false です。

  • allowed-languages

VDB の任意の目的に使用できるプログラミング言語のコンマ区切りリストを指定します。名前は大文字と小文字を区別し、リストにはエントリー間の空白を含めることはできません。例: & lt;property name="allowed-languages" value="javascript"/>

  • allow- languages は、ロールに allowed-languages プロパティーに記載されている言語を使用するパーミッションがあることを指定します。たとえば、以下の抜粋の allow-language プロパティーは、RoleA ロールを持つユーザーに Javascript を使用するパーミッションがあることを指定します。
<data-role name="RoleA">
        <description>Read and javascript access.</description>

        <permission>
            <resource-name>modelName</resource-name>
            <allow-read>true</allow-read>
        </permission>

        <permission>
            <resource-name>javascript</resource-name>
            <allow-language>true</allow-language>
        </permission>

        <mapped-role-name>role1</mapped-role-name>

    </data-role>
Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat