Apache Hive
最新版 |
2.3.4
/ 2018年11月7日 |
---|---|
リポジトリ | |
プログラミング 言語 | Java |
対応OS | クロスプラットフォーム |
サポート状況 | 開発中 |
ライセンス | Apache License 2.0 |
公式サイト |
hive |
Apache Hive はHadoopの上に構築されたデータウェアハウス 構築環境であり、データの集約・問い合わせ・分析を行う[1]。Apache Hiveは当初はFacebookによって開発されたが、その後Netflixのようにさまざまな団体が開発に参加し、またユーザーとなった[2][3]。 Hive はAmazon Web ServicesのAmazon Elastic MapReduceにも含まれている[4]。
特徴と機能
[編集]Apache HiveはHadoop互換のファイルシステム(たとえばAmazon S3)に格納された大規模データセットの分析を行う。使用には、map/reduceを完全にサポートしたSQLライクな「HiveQL」という言語を用いる。クエリの高速化のため、ビットマップインデックスを含めたインデクス機能も実装している[5]。
標準設定では、Hiveはメタデータを組み込みApache Derbyデータベースに格納するが、オプションとしては別に用意したクライアント・サーバデータベース(たとえばMySQL)に格納させることもできる[6]。
現在、Hiveがサポートするファイルフォーマットは3種類あり、それらはTEXTFILE, SEQUENCEFILE および RCFILEである[7][8]。
Hiveが提供する機能には他には次のようなものがある[9]:
- 高速化のためのインデックス作成
- 別の種類のストレージタイプ。たとえばプレーンテキスト・RCFile・HBaseなど
- クエリ実行時のセマンティックチェック時間を大幅に短縮するため、メタデータを関係データベース管理システム (RDBMS) に格納する機能
- Hadoop環境に格納された圧縮データを扱う機能
- 日付型・文字列型を扱ったり他のデータ操作を可能とする組み込みユーザ定義関数(UDF)。組み込み関数で用意されていない機能もユーザが自作UDFを作成することで対応することが可能
- SQLライクなクエリ言語(Hive QL)。これは内部的にMap/Reduceジョブに変換される
HiveQL
[編集]HiveQLはSQLに基づいているものの、厳密にはSQL-92をフルサポートしてはいない。たとえばSQLにない複数テーブルインサートやcreate table as selectは可能だが、インデクスに関しては限定的なサポートに留まっている[10]。また、HiveQLはトランザクションやマテリアライズドビューの機能はもたず、副問い合わせのサポートも限定的である。[11][12]。
内部的には、コンパイラがHiveQL文をMap/Reduceジョブの有向非巡回グラフに変換し、それがHadoopに渡され実行される[13]。
関連項目
[編集]参照
[編集]- ^ Venner, Jason (2009). Pro Hadoop. Apress. ISBN 978-1-4302-1942-2
- ^ Use Case Study of Hive/Hadoop
- ^ OSCON Data 2011, Adrian Cockcroft, "Data Flow at Netflix" - YouTube
- ^ Amazon Elastic MapReduce Developer Guide
- ^ Working with Students to Improve Indexing in Apache Hive
- ^ Lam, Chuck (2010). Hadoop in Action. Manning Publications. ISBN 1-935182-19-6
- ^ Facebook's Petabyte Scale Data Warehouse using Hive and Hadoop
- ^ Yongqiang He, Rubao Lee, Yin Huai, Zheng Shao, Namit Jain, Xiaodong Zhang and Zhiwei Xu. “RCFile: A Fast and Space-efficient Data Placement Structure in MapReduce-based Warehouse Systems” (PDF). 4,Nov. 2012閲覧。
- ^ Hive – The next generation data warehouse
- ^ また、外部結合はLEFTしかできない・JOINのON節での不等式やBetweenの使用に制限がある・timestamp型はUNIX TIMEなので1970年以前や2037年以後の日付が使えない・CSVから文字列フィールドをLOAD DATAする場合、ENCLOSED指定が出来ないので二重引用符等は事前に削除する必要がある・その場合でも明示的にNULLを指定したい場合には「\N」という特殊な文字列を入れておく必要がある、などがあり使用には注意を要する(日本語訳者による追記。いずれもバージョン0.9.0の場合)
- ^ White, Tom (2010). Hadoop: The Definitive Guide. O'Reilly Media. ISBN 978-1-4493-8973-4
- ^ Hive Language Manual
- ^ Hive A Warehousing Solution Over a MapReduce Framework
外部リンク
[編集]- 公式ウェブサイト
- Hive A Warehousing Solution Over a MapReduce Framework - Original paper presented by Facebook at VLDB 2009
- Using Apache Hive With Amazon Elastic MapReduce (Part 1) and Part 2 - YouTube, presented by an AWS Engineer