ディレクトリ
データウェアハウス(DWまたはDWH)は、サブジェクト指向で統合された、時変ですが、比較的安定した情報のコレクションです。
データウェアハウスの3つの特徴:(複数選択の質問)
- 主題指向
- 時間とともに変化する
- 比較的安定している
データベースとデータウェアハウスの主な違い:
- データベースには現在の値のみが保存され、データウェアハウスには履歴値が保存されます。
- データベース内のデータは動的に変化し、データはビジネスが発生するたびに更新されます。データウェアハウスは静的な履歴データであり、定期的にのみ追加および更新できます。
- データベースのデータ構造は比較的複雑で、ビジネス処理システムのニーズに合わせてさまざまな構造があり、データウェアハウスのデータ構造は比較的単純です。
- データベース内のデータアクセスの頻度は高いが、アクセスの量は少なく、データウェアハウス内のアクセスの頻度は低いが、アクセス量は多い。
- データベース内のデータの目標はビジネス処理担当者向けであり、ビジネス処理担当者に情報処理サポートを提供し、データウェアハウスは上級管理職向けであり、意思決定支援を提供します。
- データベースはデータにアクセスするときに高速な応答を必要とし、その応答時間は通常数秒以内ですが、データウェアハウスの応答時間は最大数時間になる場合があります。
2種類のデータ処理:
- オンライントランザクション処理(OLTP):トランザクション処理に焦点を当てた、従来のリレーショナルデータベースの主なアプリケーション
- オンライン分析処理(OLAP):意思決定支援に重点を置いた、データウェアハウスシステムの主なアプリケーション、複雑な分析操作
データウェアハウスの構造:
- データソース:データウェアハウス、つまりシステムのデータソースの基盤であり、通常、企業の内部および外部のさまざまな情報が含まれています。
- データベースを操作する
- ドキュメンテーション
- その他の外部ソース
- データの保存と管理:データウェアハウス全体のコアであり、外部データの表現を決定し、システムの既存のデータを抽出、クリーンアップ、および効果的に統合し、テーマに従って編成します。
- 抽出する
- 変換
- ロード
- データウェアハウス->データマート
- OLAPサーバー:多次元データモデルに従って分析するデータを再構成し、ユーザーがいつでもマルチアングルおよびマルチレベルの分析を実行し、データの法則と傾向を発見できるようにします
- サーバー
- フロントエンドツール:主に、さまざまなデータ分析ツール、レポートツール、クエリツール、データマイニングツール、およびデータウェアハウスまたはデータマートに基づいて開発されたさまざまなアプリケーションが含まれます。
- データクエリ
- データレポート
- データ分析
- さまざまな用途
データウェアハウスのデータモデル:
- スターモデル(一般的に使用されます):これは、ファクトテーブルを中心とした、ファクトテーブルと一連のディメンションテーブルの組み合わせです。すべてのディメンションテーブルはファクトテーブルに直接接続されていますが、ディメンションテーブルは関連していません。
- ファクトテーブル:テーブルに関連付けられた外部キーのみを含む分析トピックの測定値であり、レコードは増加し続けます
- ディメンションテーブル:ファクトデータまたは要約データを記録します(ディメンションはデータを分析するための角度です)
- スノーフレークモデル:1つ以上のディメンションテーブルがファクトテーブルに直接接続されておらず、他のディメンションテーブルを介してファクトテーブルに接続されている場合。
ハイブ:
- Facebookから発信されました。
- これは、hadoopファイルシステム上に構築されたデータウェアハウスプラットフォームであり、HDFSに格納されているデータ(ETL)を抽出、変換、およびロードできる一連のツールを提供します。 Hiveの大規模データツールは、SQLステートメントをMapReduceジョブに変換し、hadoopで実行するSQL解析エンジンです。(HiveQLは大文字と小文字を区別しません)
- HiveはSQLクエリ言語HQLを使用します
HiveとMySQLの違い:
コントラスト | ハイブ | MySQL |
---|---|---|
クエリ言語 | Hive QL | SQL |
データ保管場所 | HDFS | ブロックデバイス、ローカルファイルシステム |
データフォーマット | ユーザー定義 | システム決定 |
データ更新 | サポートされていません | 応援 |
事業 | サポートされていません | 応援 |
実行遅延 | 高い | 低 |
スケーラビリティ | 高い | 低 |
データ規模 | 大きい | 小さい |
Hiveシステムフレームワークは以下で構成されます。
- ユーザーインターフェイス(CLI、JDBC / ODBC、WebUI)
- 言語間サービス(Thriftサーバー)(さまざまなプログラミング言語からの呼び出し)
- 低レベルのドライブエンジン(コンパイラ、オプティマイザ、エグゼキュータ)
- メタストア(メタストア)(DerbyまたはMySqlに保存されているテーブル名、列、パーティション、その他の関連情報)
ハイブの操作メカニズム:
- ユーザーはユーザーインターフェースを介してHiveに接続し、Hive SQLを公開します
- hiveはクエリを解析し、クエリプランを作成します
- hiveはクエリをMapReduceジョブに変換します
- hiveは、hadoopでMapReduceジョブを実行します(データ分析にhadoopを使用するアナリストの難易度を下げるため)
ハイブのしくみ
1:UIがクエリ操作をドライバーに送信する;
2:ドライバーがコンパイラーの助けを借りてクエリを分析し、クエリプランを取得することを期待する;
3:コンパイラーがメタストアリクエストを
メタストアに送信する; 4:メタストアが応答としてコンパイラーにメタデータを送信する;
5:コンパイラーは要件をチェックしてプランをドライバーに再送信します;
6:ドライバー(ドライブエンジン)は実行エンジンに実行プランを送信してタスクを実行します;
7:実行エンジンはDataNodeから結果を取得してUIに送信しますドライバー;
ハイブデータモデル
ハイブ内のすべてのデータは、4つのデータ型を含むHDFSに保存されます(粒度は大から小に分けられます)。
- データベース(データベース):リレーショナルデータベースの名前空間に相当し、その役割はユーザーとデータベースアプリケーションを異なるデータベースまたはモードに分離することです。
- テーブル:Hiveテーブルは、保存されたデータと、テーブルデータの形式を説明する関連メタデータで論理的に構成されます。テーブルに格納されたデータは、分散ファイルシステムに格納されます。Hiveには2種類のテーブルがあります。1つは内部テーブルと呼ばれ、このテーブルのデータはHiveデータウェアハウスに保存され、もう1つは外部テーブルと呼ばれ、このテーブルのデータはHiveデータウェアハウスの外部の分散ファイルに保存できますシステムでは、ハイブデータウェアハウスに保存することもできます。。ハイブデータウェアハウスもHDFSのディレクトリです。このディレクトリは、ハイブデータストレージのデフォルトパスです。ハイブ構成ファイルで構成し、最終的にメタベースに保存できます。
- パーティションテーブル(Partition):Hiveストレージに反映されるのは、テーブルのメインディレクトリの下のサブディレクトリです(Hiveテーブルの実際の表示はフォルダーです)。このサブディレクトリの名前は、定義したパーティション列の名前です。その目的は、データクエリの速度を上げることです。
- バケットテーブル(バケット):大きなテーブルを小さなテーブルに分割することです。テーブルまたはパーティションをバケットテーブルに編成する目的は、主にクエリ効率を高めることです。特に、クエリのサンプリングがより便利です。バケットテーブルはHiveデータモデルの最小単位です。データがバケットテーブルに読み込まれると、フィールドの値がハッシュされ、バケット数で除算されて残りが取得されます。物理的には、各バケットテーブルはテーブルまたはパーティションのファイルです。