技術共有

Hive とそのアーキテクチャの概要

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

ハイブとは何ですか?

  • Hadoop ベースのデータ ウェアハウスは、一部の高遅延アプリケーション (オフライン開発) に適しており、Hadoop ファイルに格納されている構造化データ ファイルと半構造化データ ファイルをデータベース テーブルにマッピングし、テーブル クエリに基づいて SQL のようなデータを提供できます。 Hive Query Language (HQL) と呼ばれる、Hadoop ファイルに保存されている大規模なデータ セットにアクセスして分析するためのモデル。
  • Hive の中核は、HQL を MapReduce プログラムに変換し、そのプログラムを Hadoop クラスターに送信して実行することです。
  • Hive 自体はデータを保存したり計算したりしません。Hive 内のテーブルは純粋に論理テーブルです。

データ ウェアハウスとは何ですか?

  • データ ウェアハウス自体はデータを「生成」せず、そのデータはさまざまな外部システムから取得されます。
  • 同時に、データ ウェアハウス自体はデータを「消費」する必要がなく、結果はさまざまな外部アプリケーションに公開されます。
  • これが、「工場」ではなく「倉庫」と呼ばれる理由です。

Hive のアーキテクチャとコンポーネント

ここに画像の説明を挿入します

  • メタストア: 通常、Mysql/derby などのリレーショナル データベースに保存されます。Hive のメタデータには、テーブルの名前、テーブルの列とパーティションとその属性、テーブルの属性 (外部テーブルかどうかなど) が含まれます。テーブルのデータが配置されているディレクトリなど。
  • 運転者 : 構文パーサー、プラン コンパイラー、オプティマイザー、エグゼキューターを含むドライバー。字句解析、構文解析、コンパイル、最適化、クエリ プランの生成に至るまでの完全な HQL クエリ ステートメント。生成されたクエリ プランは HDFS に保存され、その後実行エンジン呼び出しによって実行されます。
    • パーサー (SQL パーサー): SQL 文字列を抽象構文ツリー AST に変換し、SQL セマンティクスが正しいかどうか、テーブルが存在するかどうか、フィールドが存在するかどうかなど、AST に対して構文分析を実行します。
    • コンパイラ (物理プラン): AST をコンパイルして論理実行プラン (DAG) を生成します。
    • オプティマイザー (クエリオプティマイザー): 論理的な実行計画を最適化します。
    • 実行: 論理実行プランを、MapReduce/Spark プログラムである実行可能な物理プランに変換します。

HQL実行プロセス

ここに画像の説明を挿入します

  1. リクエストを行う: UI からドライバーへの実行リクエストを開始します。
  2. 実行計画を取得します。 ドライバーはユーザー要求をコンパイラーに送信して実行計画を取得します。
  3. メタデータを取得します。 コンパイラーは、SQL ステートメント内の関連するテーブルおよびパーティション情報に基づいて、メタ ストアから関連するメタデータを取得します。
  4. メタデータを返す: メタ ストアは、対応するメタデータをコンパイラに返します。
  5. 実行計画を返します: テーブルとパーティションのメタデータに基づいて SQL を解析および最適化し、論理的な実行プランを生成します。プランは DAG グラフであり、各ステージは MapReduce マップまたはリデュース操作に対応します。
  6. 実行計画を実行します。 実行計画を実行エンジンに送信します。実行エンジンは、論理実行計画を MapReduce の形式で実行するために Hadoop に送信します。
  7. 実行結果が得られます。 ドライバーは実行結果を収集し、UI に送信します。