ビッグ データ オフライン フェーズ 05: データ ウェアハウス、Hive

HDFS書き込みデータプロセス

データ ウェアハウスの基本概念

データウェアハウス、英語名はData Warehouse、略してDWやDWHと呼ばれることもあります。データウェアハウスの目的は、分析指向の統合データ環境を構築し、企業に意思決定支援(Decision Support)を提供することです。これは、分析レポートと意思決定支援を目的として作成されました。

データ ウェアハウス自体はデータを「生成」せず、同時にデータを「消費」する必要もありません。データは外部から取得され、外部アプリケーションに対してオープンであるため、代わりに「ウェアハウス」と呼ばれます。 「工場」の。

データ ウェアハウスの主な機能

データ ウェアハウスは、経営上の意思決定をサポートする、主題指向(Subject-Oriented)、統合(Integrated)、不揮発性(Non-Volatile)、および時間変動(Time-Variant) データのコレクションです。

主題指向

従来のデータベースでは、アプリケーション指向のデータの編成が最大の特徴であり、さまざまな業務システムが互いに分離されている場合があります。一方、データ ウェアハウスは主題指向です。テーマは、企業情報システムにおけるデータの合成、分類、分析、活用をより高いレベルで抽象化した抽象的な概念です。論理的には、企業内の特定のマクロ分析分野に関わる分析オブジェクトに相当します。

統合

データ ウェアハウスのデータは、分散した独立した異種データベース データを抽出、クリーニング、変換、要約することによって取得され、企業全体に関するデータ ウェアハウス内のデータの一貫性が保証されます。

データ ウェアハウス内の包括的なデータは、元のデータベース システムから直接取得することはできません。したがって、データがデータ ウェアハウスに入る前に、統合と合成を行う必要があります。このステップは、データ ウェアハウスの構築において最も重要かつ複雑なステップです。完了するタスクは次のとおりです。

(1) ソースデータ内の同一フィールド名、同名の同一名、単位が統一されていない、語長が統一されていないなどの矛盾をすべて統一する必要がある。

(2) データの合成と計算を行います。データ ウェアハウスにおけるデータ合成作業は、元のデータベースからデータを抽出するときに生成されることもありますが、多くはデータ ウェアハウス内、つまりデータ ウェアハウスに入って総合的に生成された後に生成されます。


不揮発性(更新不可)

運用データベースは主に日常の業務に使用されるため、通常の業務に影響を与えることなく最新のデータを迅速に取得するには、データベースはリアルタイムで継続的にデータを更新する必要があります。過去の業務データがデータ ウェアハウスに保存されていれば、業務ごとにリアルタイムでデータ ウェアハウスを更新する必要はなく、ビジネス ニーズに応じた間隔で新しいデータをまとめてデータ ウェアハウスにインポートする必要があります。

時間とともに変化する

データ ウェアハウスには、さまざまな粒度の履歴データが含まれています。データ ウェアハウス内のデータは、特定の日付、週、月、四半期、または年に関連している場合があります。データ ウェアハウスの目的は、過去の期間における企業の業務運営状況を分析することで、隠れたパターンを掘り出すことです。データ ウェアハウスのユーザーはデータを変更できませんが、データ ウェアハウス内のデータが決して変更されないという意味ではありません。分析結果は過去の状況を反映するものであり、ビジネスが変化すると、発掘されたモデルは適時性を失います。したがって、意思決定のニーズを満たすためにデータ ウェアハウス内のデータを更新する必要があります。この観点から見ると、データ ウェアハウスの構築はプロジェクトであると同時にプロセスでもあります。

データウェアハウスとデータベースの違い

データベースとデータ ウェアハウスの違いは、実際には OLTP と OLAP の違いです。

OLTP (On-Line Transaction  Processing  ) と呼ばれる運用処理は、トランザクション指向処理システムとも呼ばれ、特定のビジネス向けのデータベースに対する日常的な操作であり、通常は少数のレコードのクエリと変更を行います。ユーザーは、操作の応答時間、データのセキュリティ、整合性、および同時にサポートされるユーザーの数をより重視しています。データ管理の主な手段として、従来のデータベースシステムは主に業務処理に使用されていました。

OLAP (On-Line Analytical Processing  )と呼ばれる分析処理は 、通常、特定の対象の履歴データを分析して、経営上の意思決定をサポートします。

ハイブの紹介

ハイブとは

Hive は、Hadoop に基づくデータ ウェアハウス ツールであり、構造化データ ファイルをデータベース テーブルにマップし、SQL のようなクエリ関数を提供できます。

本質は、SQL を MapReduceプログラムに変換することです。

主な目的: オフライン データ分析に使用され、MapReduce で直接開発するよりも効率的です。

ハイブを使用する理由

Hadoop MapReduce を直接使用してデータを処理する場合に直面する問題:

人材の学習コストが高すぎる

MapReduce は複雑なクエリ ロジック開発を実装するには難しすぎます

ハイブの使用:

操作インターフェースはSQLライクな構文を採用しており、迅速な開発が可能です。

MapReduce の作成を回避し、開発者の学習コストを削減します。

機能拡張がとても便利

ハイブのアーキテクチャ

ハイブのアーキテクチャ図

ハイブのコンポーネント

ユーザーインターフェイス: CLI、JDBC/ODBC、WebGUIを含む。このうち、CLI (コマンド ライン インターフェイス) はシェルのコマンド ライン、JDBC/ODBC は従来のデータベース JDBC に似た Hive の Java 実装、WebGUI はブラウザを通じて Hive にアクセスします。

メタデータ ストレージ: 通常、mysql/derby などのリレーショナル データベースに保存されます。Hive はメタデータをデータベースに保存します。Hive のメタデータには、テーブルの名前、テーブルの列とパーティションとその属性、テーブルの属性 (外部テーブルかどうかなど)、テーブルのデータが保存されているディレクトリ、等々。

インタプリタ、コンパイラ、オプティマイザ、およびエグゼキュータ: 字句解析、構文解析、コンパイル、最適化、クエリ プランの生成から HQL クエリ ステートメントを完成させます。生成されたクエリ プランは HDFS に保存され、その後 MapReduce 呼び出しによって実行されます。

Hive と Hadoop の関係

Hive は HDFS を使用してデータを保存し、MapReduce を使用してデータのクエリと分析を行います。

Hive と従来のデータベースの比較

Hive は、大量のデータのオフライン データ分析に使用されます。

hive は SQL データベースに似ていますが、アプリケーションのシナリオはまったく異なり、バッチ データの統計分析にのみ適しています。

より直感的な比較については、次の図を参照してください。

おすすめ

転載: blog.csdn.net/Blue92120/article/details/132467198