ファクトとディメンション テーブル
Azure Data Explorer データベース用のスキーマを設計するときは、テーブルを大きく 2 つのカテゴリのいずれかに属するものと考えます。
ファクト テーブル
ファクト テーブルは、サービス ログや測定情報など、レコードが変更できない "ファクト" であるテーブルです。 レコードは、ストリーミング形式または大きなチャンクでテーブルに徐々に追加されます。 レコードは、コストのため、または価値が失われたために削除されるまで、そこに残っています。 それ以外でレコードが更新されることはありません。
エンティティ データの変化がゆっくりしている場合、エンティティ データがファクト テーブルに保持されることがあります。 たとえば、場所があまり変更されないオフィス機器のような、一部の物理エンティティに関するデータです。 Kusto のデータは変更できないので、各テーブルに次の 2 つの列を保持するのが一般的な方法です。
- エンティティを識別する ID (
string
) 列 - 最終変更 (
datetime
) タイムスタンプ列
各エンティティ ID の最後のレコードだけが取得されます。
ディメンション テーブル
ディメンション テーブル:
- エンティティ識別子からそのプロパティへの参照テーブルのような、参照データを保持します
- 1 回のトランザクションで内容全体が変更されるテーブルのスナップショットのようなデータを保持します
ディメンション テーブルに定期的に新しいデータが取り込まれることはありません。 代わりに、.set-or-replace、.move extents、.rename tables などの操作を使用して、データ コンテンツ全体が一度に更新されます。
ファクト テーブルからディメンション テーブルが導出されることがあります。 このプロセスは、ファクト テーブルの 具体化されたビュー を使用して、各エンティティの最後のレコードを受け取るテーブルに対するクエリを使用して実行できます。
ファクト テーブルとディメンション テーブルを区別する
Kusto には、ファクト テーブルとディメンション テーブルを区別するプロセスがあります。 そのうちの 1 つは連続エクスポートです。
これらのメカニズムでは、ファクト テーブル内のデータが厳密に 1 回処理されることが保証されます。 それらは、データベース カーソル メカニズムに依存します。
たとえば、連続エクスポート ジョブを実行するたびに、データベース カーソルの最後の更新以降に取り込まれたすべてのレコードがエクスポートされます。 連続エクスポート ジョブでは、ファクト テーブルとディメンション テーブルを区別する必要があります。 ファクト テーブルでは新しく取り込まれたデータのみが処理され、ディメンション テーブルは参照として使用されます。 そのため、テーブル全体を考慮する必要があります。
テーブルを "ファクト テーブル" または "ディメンション テーブル" として "マーク" する方法はありません。 データがテーブルに取り込まれ方法と、テーブルが使用される方法により、その種類が識別されます。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示