Apache Hive とは
Apache Hive は、大規模な分析を可能にする分散型のフォールトトレラントなデータウェアハウスシステムです。データウェアハウスは、情報を簡単に分析して、情報に基づいたデータ駆動型の意思決定を行えるようにするための中央ストアを提供します。Hive を使用すると、ユーザーは SQL を使用してペタバイト単位のデータの読み取り、書き込み、および管理を行うことができます。
Hive は、大規模なデータセットの効率的な保存と処理に使用されるオープンソースのフレームワークである Apache Hadoop をベースに構築されています。その結果、Hive は Hadoop と緊密に統合され、ペタバイト単位のデータをすばやく処理できるように設計されています。Hive のユニークな点は、SQL に似たインターフェイスで Apache Tez や MapReduce を利用して大規模なデータセットをクエリできることです。
Hive のしくみ
Hive は、プログラマー以外で SQL に慣れているユーザーが SQL に似たインターフェイス (HiveQL) を使用して、ペタバイト単位のデータを処理できるようにするために作成されました。従来のリレーショナルデータベースは、小規模から中規模のデータセットに対するインタラクティブなクエリ用に設計されており、巨大なデータセットをうまく処理することができません。一方、Hive はバッチ処理を使用するため、非常に大規模な分散データベースでも高速に動作します。Hive は HiveQL クエリを MapReduce または Tez ジョブに変換します。これらのジョブは、Apache Hadoop の分散型ジョブスケジューリングフレームワークである YET Another Resource (YARN) 上で実行されます。これは、Hadoop 分散ファイルシステム (HDFS) や Amazon S3 のような分散型ストレージソリューションに格納されているデータをクエリします。Hive は、データベースとテーブルのメタデータをメタストアに保存します。メタストアは、データの抽象化と検出を容易にするデータベースまたはファイルベースストアです。
Hive には HCatalog が含まれています。これは Hive メタストアからデータを読み取り、Hive、Apache Pig、および MapReduce 間のシームレスな統合を促進するテーブルおよびストレージ管理レイヤーです。メタストアを使用することで、HCatalog では Pig と MapReduce が Hive と同じデータ構造を使用できるようになり、エンジンごとにメタデータを再定義する必要がなくなります。カスタムアプリケーションまたはサードパーティの統合では、HCatalog の RESTful API である WebHCat を使用して Hive メタデータにアクセスして再利用することができます。
Hive のメリット
高速
Hive は、バッチ処理を使用してペタバイト単位のデータをすばやく処理するように設計されています。
使いやすさ
Hive は、プログラマーでなくてもアクセスできる使い慣れた SQL のようなインターフェイスを提供します。
スケーラブル
Hive は、ニーズに合わせて簡単に配布およびスケールできます。
Apache Hive とApache HBase の違い
Apache HBase は NoSQL 分散データベースで、PB 規模のデータへのランダムで厳密に一貫したリアルタイムアクセスを行うことを可能にします。Apache Hive は、SQL のようなクエリ機能を提供する分散型データウェアハウスシステムです。
特徴 |
Apache Hive |
Apache HBase |
関数 |
大量のデータストア向けに設計された SQL に似たクエリエンジン。複数のファイル形式がサポートされています。 |
カスタムクエリ機能を備えた低レイテンシの分散型 Key-Value ストア。データは列指向形式で格納されます。 |
処理タイプ |
Apache Tez または MapReduce コンピューティングフレームワークを使用したバッチ処理。 |
リアルタイム処理。 |
レイテンシー |
中~高 (コンピューティングエンジンの応答性に依存)分散実行モデルは、RDBMS などのモノリシッククエリシステムと比較して、同じデータ量で優れたパフォーマンスを提供します。 |
低 (一貫性がないことががあります)。HBase アーキテクチャの構造上の制限により、書き込み負荷が高い場合にレイテンシーが急増する可能性があります。 |
Hadoop 統合 |
Hadoop 上で実行し、処理には Apache Tez または MapReduce を使用し、ストレージには HDFS または Amazon S3 を使用します。 |
HDFS または Amazon S3 上で実行します。 |
SQL のサポート |
HiveQL で SQL のようなクエリ機能が提供されます。 |
それ自身での SQL のサポートはありません。SQL 機能には Apache Phoenix を使用できます。 |
スキーマ |
すべてのテーブルのスキーマが定義されています。 |
スキーマなし。 |
データ型 |
構造化データと非構造化データをサポートします。INT、FLOAT、VARCHAR などの一般的な SQL データ型をネイティブにサポートします。 |
非構造化データのみをサポートします。ユーザーは、データフィールドのマッピングを Java がサポートするデータ型に定義します。 |
Hive のユースケース
Guardian は、保険と資産管理の商品とサービスを通して 2,700 万人の加入者に充実したセキュリティを提供しています。Guardian は Amazon EMR を使用して S3 データレイクで Apache Hive を実行しています。Apache Hive はバッチ処理に使用されます。S3 データレイクは、消費者が保険業界で Guardian の商品とサードパーティの商品の両方を調べて購入できるデジタルプラットフォーム Guardian Direct の基盤として機能しています。
FINRA (Financial Industry Regulatory Authority) は米国の、最大の独立系証券取引規制機関で、金融取引の監視と規制を行っています。FINRA は Amazon EMR を使用して S3 データレイクで Apache Hive を実行しています。EMR クラスターで Hive を実行することにより、FINRA は SQL を使用して最大 900 億件のイベントの取引データを処理および分析しています。クラウドデータレイクは、FINRA のオンプレミスソリューションと比較して最大 2,000 万 USD のコスト削減をもたらし、リカバリとアップグレードに必要な時間を大幅に短縮しました。
アメリカの登録投資顧問会社である Vanguard は、投資信託の最大手プロバイダーであり、上場投資信託でも第 2 位の大手プロバイダーです。ヴァンガードは Amazon EMR を使用して S3 データレイクで Apache Hive を実行しています。データは S3 に保存され、EMR はそのデータ上に Hive メタストアを構築します。Hive メタストアには、EMR クラスターのデータとテーブルに関するすべてのメタデータが含まれているため、データ分析が容易になります。また、Hive を使用すると、アナリストは S3 データレイクに保存されているデータに対してアドホック SQL クエリを実行できます。Amazon EMR を使用して S3 データレイクに移行した結果、150 人以上のデータアナリストが運用効率を実現できるようになり、EC2 と EMR のコストを 60 万 USD 削減できました。
AWS での Hive のサポート
Amazon EMR は、最も簡単、高速、そしてコスト効果の高いマネージド Hadoop フレームワークを提供するので、お客様は、動的にスケーラブルなすべての EC2 インスタンスにわたって大量のデータを処理することができます。お客様は、Apache Hive、Spark、HBase、Presto、Flink などのその他の一般的な分散型フレームワークを EMR で実行することもできます。
Amazon EMR の詳細
今すぐ無料の AWS アカウントを作成して、AWS で Apache Hive の使用を開始してください。