Yige

Yige

Build

数仓シリーズ - データウェアハウスの階層実装

データウェアハウスシリーズ - データウェアハウスの階層実装#

内容整理自:

  1. 《大データに基づくデータウェアハウスの階層実装》

データウェアハウスの階層の意義#

  • 明確なデータ構造:各データ階層にはそれぞれの作用域があり、表を使用する際により便利に位置付けや理解ができる。

  • データの血縁追跡:簡単に言えば、最終的にビジネスに提示するのは直接使用できる業務表ですが、その出所は多岐にわたります。もし出所の表に問題が発生した場合、迅速かつ正確に問題を特定し、その影響範囲を明確にしたいと考えています。

  • 重複開発の削減:データ階層を規範化し、汎用的な中間層データを開発することで、非常に大きな重複計算を削減できます。

  • 複雑な問題を単純化する。複雑なタスクを複数のステップに分解して実行し、各階層は単一のステップのみを処理するため、比較的単純で理解しやすい。また、データの正確性を維持しやすく、データに問題が発生した場合、すべてのデータを修復する必要はなく、問題のあるステップから修復を開始すればよい。

  • 原始データの異常を隠蔽する。

  • ビジネスの影響を隠蔽し、一度ビジネスを変更するだけでデータを再接続する必要がない。

四層モデル#

image.png

ODS 層#

ODS(Operational Data Store)操作データストア

データソースのデータに最も近い層であり、データソースのデータは抽出、洗浄、転送を経て、つまり ETL を経てこの層に装入されます。一般的に ODS 層のデータはソースシステムのデータと同構造であり、主な目的はその後のデータ加工処理の作業を簡素化することです。データ粒度の観点から見ると、ODS 層のデータ粒度は最も細かいです。

ODS 層の表は通常、2 種類を含みます。

  • 現在読み込む必要のあるデータを保存するためのもの
  • 処理が完了した後の履歴データを保存するためのもの

履歴データは通常 3〜6 ヶ月後に削除され、スペースを節約します。ただし、異なるプロジェクトは異なる扱いを受けるべきであり、ソースシステムのデータ量が少ない場合は、より長い期間保持することができ、さらには全量保存することも可能です。

データがこの層に装入される前に以下の作業を行う必要があります:

  • ノイズ除去(例えば、明らかに正常レベルから逸脱した銀行カード情報を削除)

  • 重複除去(例えば、銀行口座情報や公安局の人口情報に含まれる人の名前は一つだけ保持)

  • データクリーニング(例えば、ある人の銀行カードが不正使用され、10 分以内に中国と日本でそれぞれのカード情報がある場合、これは汚れたデータです)

  • 業務抽出

  • 単位統一

  • フィールド削除(例えば、フロントエンドシステムの作業を支えるために必要ですが、データマイニングには不要なフィールド)

  • 業務判別

DW#

データウェアハウス層(DW)は、データウェアハウスの主体です。

通常、テーマに基づいてさまざまなデータモデルを構築します。例えば、星型または雪片構造など;

次のリンクを参照して、次元モデリングの方法や星型、雪片モデルなどについて学んでください: データウェアハウス構築におけるデータモデリング手法について

DM 層#

データマート層(DM)、または DWS(データウェアハウスサービス)またはテーマ層であり、軽度に集約されたデータを保存します。

通常、ビジネスニーズに基づいて、トラフィック、注文、ユーザーなどに分けられ、フィールドが比較的多いワイドテーブルが生成され、後続のビジネスクエリ、OLAP 分析、データ配布などに使用されます。

データ粒度の観点から見ると、この層のデータは軽度に集約されたデータであり、詳細データは存在しません。データの時間的な広がりの観点から見ると、通常は DW 層の一部であり、主な目的はユーザーの分析ニーズを満たすことです。分析の観点から見ると、ユーザーは通常、最近数年(例えば、過去 3 年のデータ)の分析を必要とします。データの広がりの観点から見ると、すべてのビジネスデータをカバーしています。

APP 層#

データプロダクト層(APP)は、この層がデータプロダクト用の結果データを提供します。

データ粒度の観点から見ると、高度に集約されたデータです。データの広がりの観点から見ると、必ずしもすべてのビジネスデータをカバーするわけではありません。極端な場合、各レポートのために APP 層にモデルを構築して、空間を時間に換える目的を達成することができます。

アプリケーション層は、ビジネスニーズに基づいて、前の 3 層のデータから統計された結果であり、直接クエリ表示を提供するか、Mysql にインポートして使用します。私たちがよく言うレポートデータ、またはそのような大きなワイドテーブルは、一般的にここに置かれます。

メタデータ情報を管理するシステムが必要で、便利なメタデータの操作とクエリ操作を提供できる必要があります。主にデータプロダクトとデータ分析に使用されるデータを提供し、一般的には es、mysql などのシステムに保存され、オンラインシステムで使用されることが多く、Hive や Druid に存在してデータ分析やデータマイニングに使用されることもあります。

三層モデル#

image.png

四層モデルと似ていますが、より多くの論理が DW 層に配置されています。

バッファデータキャッシュ層#

インターフェース側が提供する原始データを保存するためのデータベース層であり、この層の表構造はソースデータと基本的に一致しており、データの保存期間はデータ量とプロジェクトの状況に応じて異なります。データ量が大きい場合は、最近のデータのみを保存し、履歴データをバックアップすることができます。この層の目的はデータの中継とバックアップです。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。