クエリのためのグローバル キャッシュの使用

大きなディメンション テーブルが存在する場合は、ディメンション テーブルのデータをキャッシュにロードし、そのキャッシュを使用してサロゲート キーを検索できます。キャッシュを使用すると、Query DB によってディメンション テーブルの検索を直接実行する場合よりもパフォーマンスが向上します。

キャッシュを使用するには、2 つのデータフローを作成する必要があります。キャッシュにディメンション テーブルのデータを設定するデータフローと、ファクト テーブルの更新時にキャッシュを使用するデータフローです。次の図は、この 2 つのデータフローがどのように連携するかを示しています。

  1. 大きなディメンション テーブルのディメンション テーブル データをキャッシュに設定するデータフローを作成します。

    このデータフローは、次の 2 つのステージで構成する必要があります。

    • キャッシュにロードするディメンション テーブルのデータを読み込む Read from DB ステージ。
    • ディメンション テーブルのデータをキャッシュに設定する Write to Cache ステージ。
  2. キャッシュを設定するには、このデータフローを実行します。
  3. ファクト テーブルを設定するデータフローに、Query Cache を追加します。
  4. この Query Cache ステージで、Write to Cache ステージによって作成されたキャッシュに対してクエリを実行するためのステージを設定します。
  5. ファクト テーブルを設定するには、このデータフローを実行します。

ファクト テーブルの更新のたびにキャッシュにディメンション テーブルの最新のデータが設定されているようにしたい場合は、ディメンション テーブルを設定するジョブをまず実行してからファクト テーブルを更新するジョブを実行する、プロセス フローを作成できます。そうすれば、双方のデータフローを続けて実行するために、このプロセス フローを実行できます。プロセス フローの詳細については、『Dataflow Designer ガイド』を参照してください。