コンセプトの上書き

Insight データ ウェアハウス (Data DB とも呼ばれます) には、次のドキュメントのデータが保存されます。レコード、指標、および変換テーブル。

データは、データ ロード プロセス中に Data DB に表示されます。このデータについては、オペレーティング システムからアップロードするか、外部ソースからコピーします。通常、データ ロード プロセスは次の手順で構成されます。

  1. データの新しいバッチを Data DB の中間テーブルにロードします (複数のデータ ソースの場合は、すべてのソースからロードします)。

  2. 上書きルールに従って、Data DB のメイン テーブルからデータを削除します。

  3. 中間テーブルからメイン テーブルにデータをコピーします。

場合によってはプロセスが最適化されていることもあるため、中間テーブルなしでこのプロセスを実行します。このような場合は、データをメイン テーブルに直接アップロードします。たとえば、この最適化は、メイン テーブルが空の場合、または時間範囲が 1900 年 1 月 1 日から設定されている場合の初期データ ロードに使用されます。

以下の情報を確認して、データ上書きの概念のロジックをよく理解し、この知識をプロジェクトの管理に役立ててください。

次のような 3 種類の上書きルールを使用できます。

  • 時間フィールドによる上書き (時間フィールドが設定範囲内にある場合、データは削除されます)。

  • 上書きフィールドによる上書き (リストに上書きフィールドがある場合、データは削除されます)。

  • 時間フィールドまたは上書きフィールドが存在しない場合は、すべてが上書きされます。

時間フィールドによる上書き

この上書きルールは最も一般的なルールです。これは、時間フィールドが設定されていて、ドキュメントに上書きフィールドが存在しない場合にのみ使用されます。デフォルトでは、レコードと指標に使用されます。指定された時間フィールドに基づいて、FromDate:ToDate データの読み込み間隔のデータが削除されます。[プロパティ パネル][ベース] セクションで [日時のみで上書き] を選択して、この間隔を絞り込むこともできます。この場合、間隔は Min(TimeField)、Max(TimeField) によって設定されます。

デフォルトの間隔を変更すると、適切な時間の境界が削除の間隔に含まれます。

時間フィールドと上書きフィールドは組み合わせることができます。[上書きディメンションごとの個別の日付範囲] オプションが上書きフィールドに選択されています。これは、時間フィールドによる削除が、中間テーブルからの上書きフィールドの一意の値ごとに個別に行われることを意味します。

上書きフィールドによる上書き

この手順では、上書きフィールドの一意の値が中間テーブルで識別されます。これらの値を持つ行はメイン テーブルから削除されます。このようなフィールドが複数存在する場合は、1 回の要求で AND 演算子を使用して各フィールドを個別に削除します。この論理は、DateTime を含むすべてのフィールド タイプに関連しています。

このルールは通常、現在の状態を含むテーブルのデータを更新するために使用されます。たとえば、サンプル プロジェクトの [注文] レコードでは、ディメンション識別子は [SalesOrderID] であり、上書きフィールドとしてマークされています。時間フィルタの式は次のとおりです。

FromDate <= ModifiedDate AND ModifiedDate < ToDate

データのロード プロセスは、次の手順に従います。

  1. 変更されたすべての行を中間テーブルにロードします。

  2. [SalesOrderID] を上書きフィールドとして使用して、これらの行をメイン テーブルから削除します。

  3. 行を中間テーブルからメイン テーブルにコピーします。

上書きフィールドによる上書きは、変換テーブルで使用できる唯一のルールです。

すべて上書き

ドキュメントに時間フィールドまたは上書きフィールドが存在しない場合、古いデータはすべて削除され、新しいデータがその場所にアップロードされます。この上書きルールは、変換テーブルの更新に使用されます。ただし、データの一部のみを更新する必要がある場合は、[ItemID] を上書きフィールドとして設定できます。