時間ディメンションの設計

Oracle Analyticsでは、ファクト表には多くの場合、多くの日付が含まれるため、多くの潜在的な時間ディメンションが含まれます。ここで説明するように、セマンティック・モデルの時間ディメンションを処理および構成する最も効率的な方法に従うことをお薦めします。

ベスト・プラクティス

  • ファクト表ごとに1つの汎用時間ディメンションを作成します

    ファクト表ごとに、ファクトで最も使用される日付を1つ特定します。最適な日付を特定するには、「6月にこの金額を選択する場合、'6月'は何を意味しますか?」のような質問を自分にしてみてください。

    ファクト表ごとに特定の日付を特定したら、その日付を使用して各ファクトを汎用時間ディメンションに結合します。汎用時間ディメンションは、複数のファクトを含むレポートに必要であり、エンド・ユーザーにとっては、ファクト表ごとに個別の時間ディメンションを作成するよりもはるかに簡単です。



  • 必要に応じて、セカンダリ時間ディメンションのみを作成します

    時間ディメンションは、日付レベル(年や四半期など)でのユーザー選択を簡略化する場合、または実行時に日付階層をドリルダウンする必要がある場合にのみ、日付に役立ちます。どちらの場合も、特定のファクト表にのみ結合するセカンダリ時間ディメンションを作成することをお薦めします。それ以外の場合は、日付自体をプレゼンテーション・レイヤーで単一の属性として表示すれば十分です。

  • 時系列に対する時間ディメンションを構成します

    AgoToDateなどの時系列関数は、多くの場合、Year-AgoやYearToDateなどのメトリックを簡単に計算するために使用されます。これらの時系列関数は、対応する時間ディメンションに時系列キーを構成する場合にのみ使用できます。これらの時系列キーは、ディメンション階層の各レベルで一意である必要があります。



    時系列関数は、時系列キーを定義した後に使用できます。ただし、これらの時系列関数は、パフォーマンスに影響を与える可能性があります。パフォーマンスへの影響を最小限に抑える1つの方法は、時間ディメンションに順序番号を定義することです。順序番号はオプションであり、パフォーマンス上の理由でのみ使用されます。

    順序のタイプは2つあります:

    • 絶対: 1ずつ増分し、NからMの範囲の値を持つ整数時系列キー。たとえば、4桁の年です。

    • 相対: 1ずつ増分し、1からNの範囲の値を持つ整数値。これらの値は、上位レベル内の時系列順序を表します。たとえば、月番号(1から12)です。

      絶対順序と相対順序は対象となるユース・ケースが異なるため、両方のタイプの順序を定義できます。論理列を順序定義で使用できるようにするには、論理列が階層内の適切なレベルにある必要があります。

  • プレゼンテーション・レイヤーでは、常に汎用時間ディメンションを最初のフォルダとして表示します

    セカンダリ時間ディメンションは、対応するディメンション属性の横にフォルダまたはサブフォルダとして配置できます。