データウェアハウスシリーズ - データウェアハウスの階層実装#
内容整理自:
データウェアハウスの階層の意義#
-
明確なデータ構造:各データ階層にはそれぞれの作用域があり、表を使用する際により便利に位置付けや理解ができる。
-
データの血縁追跡:簡単に言えば、最終的にビジネスに提示するのは直接使用できる業務表ですが、その出所は多岐にわたります。もし出所の表に問題が発生した場合、迅速かつ正確に問題を特定し、その影響範囲を明確にすることが望まれます。
-
重複開発の削減:データ階層を標準化し、汎用的な中間層データを開発することで、重複計算を大幅に削減できます。
-
複雑な問題を単純化する。複雑なタスクを複数のステップに分解して実行し、各層は単一のステップのみを処理するため、比較的単純で理解しやすい。また、データの正確性を維持しやすく、データに問題が発生した場合、すべてのデータを修復する必要はなく、問題のあるステップから修復を開始できます。
-
原始データの異常を隠蔽する。
-
ビジネスの影響を隠蔽し、一度ビジネスを変更するだけでデータを再接続する必要がない。
四層モデル#
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 に存在してデータ分析やデータマイニングに使用されることもあります。
三層モデル#
四層モデルに似ていますが、より多くの論理が DW 層に配置されています。
バッファデータキャッシュ層#
インターフェース側が提供する原始データを保存するためのデータベース層であり、この層の表構造はソースデータと基本的に一致し、データの保存期間はデータ量やプロジェクトの状況に応じて異なります。データ量が大きい場合、最近のデータのみを保存し、履歴データをバックアップすることができます。この層の目的はデータの中継とバックアップです。