データウェアハウス_データウェアハウス_ゆっくりと段階的にディメンションを実装するためのいくつかのアイデア

データウェアハウスのゆっくりと段階的な変更のディメンションテーブルの設計

 

ゆっくりと変化する寸法:

  ディメンションデータは時間とともに変化し、変化の速度は比較的遅くなります。この種のディメンションデータは、通常、緩やかに漸進的なディメンションと呼ばれます。データウェアハウスは、履歴の変更、特に一部の重要なデータを追跡する必要があるため、履歴の状態も特定の方法を採用する必要があります。保存します。

 

 

次の実装のアイデアに大別されます

 

1)完全なスナップショット:

現在のデータのスナップショットデータの全量を毎日保存するこのソリューションは、履歴状態を保存する簡単な方法を使用して、小さなデータボリュームのディメンションに適しています。

 

2)履歴ステータスを保存するための追加のデータ列

1つ以上のステータス値を保持するための追加(1列/複数列)。

Id

名前

部署

最終部

1

ジャンタイ

DEP1

Dep3

 

 

3)ジッパー時計技術

       ディメンションデータが変更されると、古いデータは無効になり、変更されたデータは新しいレコードとしてディメンションテーブルに挿入されて有効になります。これにより、データ変更の履歴を特定の粒度で記録できます。

 

前述の代理キーと組み合わせると、Uid_orgは元のビジネスの主キーであり、Uid_agencyは代理キーです

Uid_agency

Uid_org

名前

部署

開始日

終了日

1

1

ジャンタイ

DEP1

20180501

20180509

2

1

ジャンタイ

Dep2

20180510

20991231

 

質問1:ジッパーテーブルから特定の日のデータステータスを取得する方法

SELECT *

FROM lalian_table

WHERE start_date <= ‘${bizdate}’ AND end_date >= ‘${bizdate}’

 

Ext:ゆっくりと段階的に変更

       代理キーは、ディメンションモデリングで強く推奨される方法です。そのアプリケーションは、ソースの変更によって引き起こされるデータウェアハウス構造の不安定な問題を効果的に特定し、データ取得のパフォーマンスを向上させることもできます。

       ただし、ご覧のとおり、サロゲートキーのメンテナンスコストは非常に高く、特にファクトテーブルへの影響が大きいデータのロードプロセスでは高くなります。HIVEベースのデータウェアハウスの構築における影響は、さらに深刻です。たとえば、代理キーの生成、ファクトテーブル内の関連付けられたキーのステータス、非等価関連付けはサポートされていないため、ETLプロセスがより複雑になります。

       したがって、ビッグデータシステムでは、代理キーを慎重に使用してください。同時に、緩やかに段階的なディメンションシーンの場合は、時間にスペースを使用することを検討し、ディメンションテーブルの完全なスナップショットを毎日保持できます。しかし、これは実際の状況に応じて測定されたストレージコストをもたらします。

发布了519 篇原创文章 · 获赞 1146 · 访问量 283万+

おすすめ

転載: blog.csdn.net/u010003835/article/details/104420843