異なるSCD2技術の意味論
美容とファッションのエキスパートが語る、異なるSCD2技術の魅力と意義
小さな違いが大きな影響を与える方法
最近、私は次元モデリングについて、特にデータウェアハウス/データレイク内で異なる種類の履歴をどのように表現するかについて考えています。多くの記事で、さまざまな言語やプラットフォームでSCD2テーブルを作成する方法が説明されています。しかし、私はより微妙であまり一般的に議論されないことに焦点を当てたいと思います:SCD2の意味論と、さまざまな設計の選択肢がユースケースに意味のある影響を与える方法です。
私がカバーしたい2つの主要なトピックは次のとおりです:
- ディメンションを行バージョンする際に選ぶ日付は非常に重要です。選択は恣意的ではなく、デザインでは最も一般的なユースケースを重視する必要があります。
- レコードの行バージョン方法によって、テーブルに対するアクセスパターンが決まります。ある程度は厳密にエルゴノミクスの問題ですが、データ品質の重要な側面だと私は主張します。ユーザーが適切な操作を簡単に行えるようにすることが、データモデラーの目標であるべきです。
参照日を選ぶ
SCD2テーブルを作成する一般的なパターンは、データ内のある日付またはタイムスタンプを使用することです。行が意味的に変更されたことを確認した後、列の直接比較またはハッシュ値の比較によって、既存のレコードを「廃止」し、新しいレコードを挿入する必要があります。
しかし、どの日付を使用するのでしょうか?さまざまなタイプのデータについては、次の3つの選択肢から選ぶことができます:
- タイムスタンプの抽出
- ソースシステムのタイムスタンプ
- ビジネス(エンティティ/イベント)のタイムスタンプ
詳しく見ていきましょう。
タイムスタンプの抽出
この方法は、「データを取得したときの生データの姿」を重視しています。真実の情報源はデータウェアハウスとそれをロードするプロセスであり、データ自体の本質的な属性ではありません。
次の例を考えてみましょう:
このレコードから、次のようなSCD2レコードを生成します(可読性のために一部のメタデータフィールド(代理キー、ハッシュ、ディメンション挿入タイムスタンプなど)は省略しています):
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- 「音で見る:GPT-4V(イジョン)とテキスト読み上げ技術による視覚障がい者のサポート」
- 「Google Cloud Platformの探求:サービスと能力の包括的な概要」
- テキストデータの創造的で時折乱雑な世界’ (Tekisuto dēta no sōzōteki de tokiori ranzatsu na sekai)
- スキット-ラーンのカスタムスコアリング関数
- カスタムデータセット(医療画像セグメンテーション)におけるYOLOv8セグメンテーション
- 「Pandasを使用した7つのデータ品質チェックの必須事項」
- データ分析の最適化:DatabricksにGitHub Copilotを統合する