ビューのキャッシュの構成¶
特定のビューでキャッシュを有効にする前に、Virtual DataPort サーバーのキャッシュモジュールを有効にする必要があります (「 キャッシュの構成 」を参照)。
ビューのキャッシュを有効にするには、ビューを開いて [Options] をクリックし、以下のキャッシュモードのいずれかを選択します。
Partial: ビューに対してクエリを実行する際、Virtual DataPort サーバーによって、クエリに応答するために必要なデータがキャッシュに存在するかどうかが確認されます。存在しない場合、データソースに対して直接クエリが実行されます。
Full: Virtual DataPort サーバーでは、ビューのすべてのタプルがキャッシュに存在すると見なされます。したがって、このビューに対するクエリでは、キャッシュされたデータが必ず使用され、データソースがアクセスされることはありません。キャッシュデータを更新する場合にのみ、データソースへのアクセスが発生します。キャッシュへのデータのロードは必ず明示的なので、キャッシュにロードするにはクエリを実行する必要があります。
Full incremental: このモードでは、このビューに対するクエリは「増分クエリ」になります。つまり、このビューに対するクエリでは、キャッシュから取得した結果とソースから取得した最新データがマージされます。このモードの主な利点は、前回のキャッシュ更新以降に追加された行と変更された行を取得するだけで、完全に最新の結果が必ず得られることです。データソースから結果セット全体を取得する必要はありません。
このモードを使用できるようにするには、行が前回挿入または更新された日時を格納するフィールドがビューに必要です。たとえば、ビューに
last_modified_date
フィールドが存在する場合、last_modified_date > '@LAST_REFRESH_DATE'
のような条件を入力します。このクエリを実行すると、キャッシュをロードするクエリが最後に実行されて正常に完了した日時のタイムスタンプで
@LAST_REFRESH_DATE
変数が置き換えられます。このモードは Full モードの変形なので、Partial モードとは異なり、ビューのキャッシュには明示的にロードする必要があります (つまり、キャッシュをロードする適切なパラメータを指定したクエリを実行する必要があります)。
警告
増分モードには、考慮を必要とする要件と制限事項がいくつかあります。そのリストについては、「 増分モード 」を参照してください。
キャッシュモードの動作の詳細については、「 キャッシュモード 」を参照してください。
[Time to Live (seconds)] は、ビューのキャッシュに保存されているエントリの 有効時間 (秒単位) です。この時間が経過すると、エントリは期限切れになり、次のクエリでは、キャッシュからではなく、データソースからデータが取得されます。[Never expire] を選択すると、キャッシュに保存されているエントリは無効になりません。ただし、その場合でも [Invalidate cache] をクリックすることで、手動でキャッシュを無効にできます。
デフォルト の有効時間は、データベースの [Cache configuration] ダイアログ ([Administration] > [Database Management] ダイアログ) でデータベースに定義されている有効時間です。データベースに有効時間を設定してない場合、キャッシュモジュールではこのプロパティのグローバル値が使用されます。このグローバル値は [Server Configuration] ダイアログの [Cache] タブで定義します。
ソースから取得した行は、バッチ単位でキャッシュに挿入されます。[Batch insert size (rows)] には、バッチあたりの行数を指定します。 デフォルトt 値は、データベースの [Cache configuration] ダイアログ ([Administration] > [Database Management] ダイアログ) でデータベースに定義した [Batch size] の値です。データベースに [Batch size] を設定していない場合、キャッシュモジュールではこのプロパティのグローバル値が使用されます。このグローバル値は [Server Configuration] ダイアログの [Cache] タブで定義します。

キャッシュ設定: ビューのキャッシュの無効化¶
ビューのキャッシュのエントリは、その有効時間が経過すると期限切れになります。ただし、手動でこれらのエントリを無効にすることができます。そのためには、[Invalidate cache] をクリックして、以下のオプションのいずれかを選択します。
Invalidate all: ビューのキャッシュの内容がすべて削除されます。
Invalidate partially: [Edit condition] ダイアログの条件に一致するエントリのみが削除されます。
Invalidate on cascade: 選択している場合は、このビューのサブビューのキャッシュもキャッシュモジュールによって無効化されます。[Full] キャッシュモードを指定したビューでは、このオプションは無効です。また、ビューをカスケード方式で無効にする場合、キャッシュモードが [Full] のサブビューのキャッシュは無効化されません。
複数のビューのキャッシュの内容を一度に無効にする手順の詳細については、「 キャッシュの無効化 」を参照してください。
キャッシュインデックス¶
ビューのキャッシュを有効にすると、そのビューのキャッシュデータを保存するテーブルがキャッシュのデータベースに作成されます。このビューに「キャッシュインデックス」を定義すると、ビューのキャッシュからデータを迅速に取得できるようになります。
キャッシュインデックスと [Indexes] タブで定義されているインデックスとの相違は、[Indexes] タブのインデックスは、ソースで定義されているインデックスを表しているという点にあります。このタブでキャッシュインデックスを定義していれば、キャッシュモジュールによって、実際にキャッシュのデータベースに「キャッシュインデックス」が作成されます。
ビューのキャッシュが有効で、そのキャッシュモードが [Full] であれば、ビューの派生ビューおよび ODBC クライアントと JDBC クライアントに伝播するインデックスは、[Indexes] タブで定義されているインデックスではなく、「キャッシュインデックス」です。このビューに対するクエリでは、ソースからではなく、必ずキャッシュからデータが取得されるからです。
キャッシュインデックスを作成するには、以下の手順に従います。
ビューにインデックスが存在する場合 ([Indexes] タブを参照)、[Import indexes from view] をクリックすることによって、ビューのキャッシュ済みデータを保存するテーブルにインデックスを複製できます。
[Ok] をクリックしてダイアログを閉じないかぎり、インデックスが作成されない点に注意してください。
キャッシュテーブルに別のインデックスを定義するには、[Create index] をクリックして以下の手順に従います。
インデックスの名前を入力します。
注釈
キャッシュを保存するデータベースによっては、インデックスの名前を、編集中のビューの範囲でのみ一意にするのではなく、Virtual DataPort データベース全体で一意にすることが必要な場合もあります。データベースの中には、別々のテーブルに定義したインデックスであっても、2 つのインデックスを同じ名前で定義できないものがあるからです。
一意なインデックスとする場合は [Is unique] をチェックします。
ダイアログの左側には、ビューのフィールドのリストが表示されています。このインデックスに属するフィールドを選択して [Add >>] をクリックします。複数のフィールドを一度に選択するには、Ctrl キーまたは Shift キーを押したままで目的のフィールドをクリックします。
インデックスでフィールドが占める順序を変更するには、そのフィールドの横にあるチェックボックスをチェックして
または
をクリックします。
インデックスからフィールドを削除するには、右側のリストでそのフィールドの横にあるチェックボックスをチェックして [<< Remove] をクリックします。
[Ok] をクリックするとインデックスが作成されます。
キャッシュインデックスを編集するには、そのチェックボックスをチェックして [Edit selected index] をクリックします。
キャッシュインデックスを削除するには、そのチェックボックスをチェックして [Remove selected index] をクリックします。

キャッシュ設定: 新しい「キャッシュインデックス」の定義¶
キャッシュ更新ジョブ¶
ビューでキャッシュデータベースのテーブルにデータを保存するようにキャッシュが構成されている場合、データを手動で読み込むか、Scheduler で VDPCache ジョブを作成して読み込むことができます。このセクションでは、ビューに構成されるキャッシュ更新ジョブと、最も関連性の高い情報の概要を示します。また、ジョブの詳細情報の取得、ジョブの管理、ジョブの新規作成を行うための Scheduler Web 管理ツールへのリンクもあります。
注釈
キャッシュ更新ジョブ 機能は、Solution Manager の Design Studio でのみ使用できます。
VDPCache ジョブのあるテーブルでは、折りたたみ可能なセクションを初めて展開したときにキャッシュジョブを読み込みます。その後、テーブルを更新するには、[Reload jobs] ボタンを使用します。テーブルには、ビューのキャッシュ更新ジョブに関する以下の情報が含まれます。
Job: VDPCache ジョブの名前。Scheduler Web 管理ツールのジョブの詳細の新しいタブを開くリンクです。
State: ジョブの現在の状態。特に、ジョブの実行中、未実行、待機中、または無効化の状態を確認できます。
Last execution: ジョブが最後に実行された時間を示します。一度も実行されていない場合は空白になります。
Next execution: ジョブが次に実行される時間を示します。無効になっている場合、または時間ベースのスケジュールに従って再実行されない場合は、空白になります。
Result of the last execution: 最後に実行されたジョブの完了状態を示します。ジョブが正常に完了、エラー状態が検出されて終了、警告により終了、またはユーザーによって停止、失敗 (スケジュールされた実行が行われなかった) のいずれかになります。ジョブが実行され、正しく終了しなかった場合、このフィールドは Scheduler Web 管理ツールの実行詳細セクションへのリンクとなり、最後の実行結果に関する詳細情報が取得されます。
Cached tuples: ジョブの最後の実行で抽出されたタプル/ドキュメントの数。
新しい VDPCache ジョブを作成するには、[Add refresh job in Scheduler] ボタンをクリックします。ダイアログで Scheduler Web 管理ツールを新しいタブで開き、一部のフィールドに情報がすでに入力されている状態で新しい VDPCache ジョブを作成します。
キャッシュ更新ジョブの機能¶
Virtual DataPort サーバーが Solution Manager にライセンスを要求すると、Solution Manager は特に、この Virtual DataPort サーバーが属する Solution Manager の環境 ID とクラスタ ID を返します。
ユーザーが Design Studio で Virtual DataPort サーバーにログインすると、Virtual DataPort は環境 ID とクラスタ ID を返します。
キャッシュが有効になっているビューをユーザーが開き、[Cache refresh jobs] セクションを展開すると、Design Studio では以下の動作を行います。
この Virtual DataPort と同じ環境およびクラスタに登録されている Scheduler サーバーのホスト名を取得するために、Solution Manager の API にリクエストを送信します。
同じクラスタに複数の Scheduler サーバーがある場合、有効なサーバーが最初に選択されます。有効なサーバーがない場合は、無効なサーバーが選択されます。
ビューのキャッシュを更新するジョブの情報を取得するために、Scheduler API にリクエストを送信します。
Design Studio は、Solution Manager のインストールと同じ Tomcat にデプロイされている Scheduler Web 管理ツールに接続します。
この機能を使用するための前提条件¶
Denodo Express* のユーザーの場合、この機能は利用 **できません 。
この機能は、Denodo のサブスクリプションに Solution Manager が含まれない場合、利用 できません 。つまり、 スタンドアロンライセンス を所有している場合、この機能は動作しません (この内容についてご存じなければ、 スタンドアロンライセンス を所有している可能性は低いと考えられます)。
Solution Manager の Design Studio を使用します。この機能は、Denodo Platform のインストールの Design Studio では使用できません。
Denodo Platform のインストール環境で Denodo Security Token の認証 を有効にして構成します。
Solution Manager:
接続する Virtual DataPort のビューのキャッシュを読み込む Scheduler サーバーは、同じ環境とクラスタに登録されている必要があります。
クラスタに複数の Virtual DataPort サーバーがある場合は、すべてのサーバーで同じメタデータ (共有メタデータデータベースまたは同じエレメントを所有) が必要です。
クラスタに複数の Scheduler サーバーがある場合、すべてのサーバーで同じメタデータデータベースを共有する必要があります。
構成手順¶
Solution Manager のライセンスサーバーからライセンスを取得するように Virtual DataPort サーバーを構成します。この機能は、Virtual DataPort サーバーがスタンドアロンライセンスを使用している場合は機能しません 。
<SOLUTION_MANAGER_HOME>/conf/design-studio/DesignStudioBackend.properties
を編集して、プロパティの値を変更します。scheduler.api.host
: Solution Manager の Scheduler Web 管理ツールのホスト名。Scheduler Web 管理ツールが SSL を使用するように構成されている場合、マシンのホスト名が SSL 証明書の Common Name (CN) または Subject Alternative Name (SAN) と一致していることを確認します。 デフォルトは127.0.0.1
です。scheduler.api.port
: Scheduler Web 管理ツールのポート。デフォルトは19090
です。scheduler.api.ssl
: Scheduler Web 管理ツールが SSL を使用するように構成されているかどうかを示します。scheduler.api.context-path
: (オプション) Scheduler Web 管理ツールのコンテキストパス。デフォルトは/webadmin/denodo-scheduler-admin/
です。
Solution Manager が SSL を使用するように構成されている場合、
<SOLUTION_MANAGER_HOME>/conf/solution-manager-web-tool/SMAdminConfiguration.properties
ファイルを編集して、プロパティの値を変更します。com.denodo.solutionmanager.security.ssl.enabled
:true
に設定します。com.denodo.solutionmanager.host
: マシンのホスト名が SSL 証明書の Common Name (CN) または SubjectAlternativeName (SAN) と一致するように更新します。
Design Studio を再起動します。