- Dimensional Data Modeling が必要な理由とその実装方法
- データウェアハウス・モデリングの目的とは何ですか?
- なぜモデリングなのか
- アナリストに実行させたくないこと:
- アナリストに期待できること、期待すべきこと。
- トランザクション データベースから事実への移行
- メジャーとは何か、そしてなぜファクト テーブルをメジャーで埋める必要があるのか。
- なぜ一貫した粒度を維持する必要があるのでしょうか。 そこで、このギャップを埋めるために、2 つの方法があります。 Periodic Snapshot Fact Tables Periodic Snapshot Fact Tables
- Accumulating Snapshot Fact Tables
- ディメンジョンによるファクトの検索
- 参照および生のメタデータからのディメンジョンの作成
- ディメンジョンにおける階層
- ゆっくりと変化するディメンジョン
- ビッグデータをETLシステムに統合する
- 概要
- Footnotes
Dimensional Data Modeling が必要な理由とその実装方法
Dimensional Modeling (DM) は Ralph Kimball によって開発された Business Dimensional Lifecycle 方法論の一部で、データウェアハウス設計で使用する一連の方法、テクニック、コンセプトが含まれています。 このアプローチは、ビジネス内の主要なビジネスプロセスを特定し、ビジネスプロセスを追加する前にまずこれをモデル化し実装する、ボトムアップアプローチに重点を置いています。
データウェアハウス・モデリングの目的とは何ですか?
RossとKimballによって示された目的は簡単です。
- 情報に簡単にアクセスできるようにする
- 一貫した情報を提供する
- 変化に適応し受容する
- タイムリーに情報を提供する
- 情報資産を保護する
- 意思決定を改善するための権威ある信頼できる基盤として機能する(データエンジニアリング用語で「真実の単一ソース」)
- VIPはシステムを受け入れる必要がある
。
ETLシステムに携わった、または使用した場合、次のようなことが考えられます。 情報の一貫性は適合策によって、適時性はETLサイクルによって、適応性はETL設計によって大きく左右されることにお気づきでしょうか。
なぜモデリングなのか
データ エンジニアとして、あなたは SQL をよく知っていて、おそらく一日中 SQL クエリを書くことができるでしょう。 しかし、一般的なエンド ユーザーが SQL クエリを書く専門家であると仮定することはできません。 そこで、私たちの目的は、アナリストが分析クエリを迅速かつ効果的に書くことができる DW を構築することです。
アナリストに実行させたくないこと:
- ID に基づくクエリ
- Cascading outer joins (あなたもやりたくないでしょう)
- grouped or joined multiple subqueries
- recursive subqueries (Hackerrank SQL で、その難しさを理解していただけます)
- Subquery correlation.Isは、サブクエリの相関です。
- PK/FK なしでの結合: 私 (1.0mm)にとっても、PK/FK なしで複数の列のデータをフェッチできます。5 年の DE 経験がある私でも、可視化するのは難しいです。
アナリストに期待できること、期待すべきこと。
- 単純な結合
- 名前と包括的なテキストを含む列
- 単純な集約
- 分析ウィンドウ関数
- DISTINCT
注意:上記のポイントは簡単なものではなく、システムはこれらすべての種類のクエリのために十分にスケーラブルでなければならないということです。
OLTP データベースは、前述の目的により、事実と次元に変換されます。
トランザクション データベースから事実への移行
ほとんどの企業は、ある種のデータを測定することにより、成功と効率を測定しています。 このデータは、実際のビジネス活動や進捗状況を把握するものです。 このデータはファクトと呼ばれます。
OLTP指向のデータベースは、イベントストリーミングのようなものですが、トランザクションを中心に集中的に、一度にトランザクションを記録します。 DWは違います。 DWはトランザクション・レベルの詳細を記録する必要はない。 DWには、ビジネスのさまざまな基準にわたる事実が必要です。 DWはビジネスを改善するために必要な情報を集約する(あるいはアナリストに集約させる)必要があります。
メジャーとは何か、そしてなぜファクト テーブルをメジャーで埋める必要があるのか。
データ ウェアハウスでは、メジャーは計算を行うことができるプロパティです。 これらは、アナリストまたは分析を見る経営者が、ファクトの価値を理解するためのファクトの側面です。
なぜ一貫した粒度を維持する必要があるのでしょうか。 そこで、このギャップを埋めるために、2 つの方法があります。
- Periodic Snapshot Fact Tables
Periodic Snapshot Fact Tables
名前のとおり、一定の時間間隔で収集されます。 ガスの消費量、監査、および検査は、定期的なスナップショットが有効になっているデータ収集の例です。
Accumulating Snapshot Fact Tables
ビジネスパフォーマンス指標が複数ステップのビジネスプロセスの完了率の場合、プロセス全体の粒度で捕捉して、開始、完了、およびその間のステップを記録したいと考えるかもしれません。 これはトランザクションの粒度かもしれませんが、その間に多くの測定値があります。 つまり、ファクトとファクトの間に時間の経過があるビジネス・インテリジェンスでは、蓄積型スナップショット・ファクト・テーブルを使って、複雑な質問に答えるわけです。 6045>
ディメンジョンによるファクトの検索
ユーザーやアナリストは、ファクトからビジネス インテリジェンスを引き出すために、どのようにクエリおよびフィルタリングするかを知っておく必要があります。 この目的は、ディメンジョンによって果たされます。
参照および生のメタデータからのディメンジョンの作成
ディメンジョンは、ほとんどの場合、代理キーで作成されます。代理キーは当然、ファクト テーブルの外部キー (またはキー) で参照されます。 私たちは、関心のあるディメンジョンを検索することで、テーブルを検索します。 タイムスタンプ、顧客エージェント、店舗の場所、製品、顧客など、ファクトを記述する他のすべてのデータは、ディメンジョンに変わります。 これは Star Schema を生み出します。
次元に一意性を持たせることは非常に重要なポイントです。 ファクト間でクエリを実行する場合、ディメンジョンの組み合わせで重複があると大変なことになります。 6045>
ディメンジョンにおける階層
次の 2 つの画像を考えてみましょう。