Hive
HadoopのサブプロジェクトのHiveについて記載します。
概要
HiveはApacheのトッププロジェクトであるHadoopのサブプロジェクトとなります。
HiveはHiveQLというSQLライクな言語でHadoop処理を実行することができます。
http://hive.apache.org/
実行方法は他のRDBと似通っており、大まかに以下のような形になります。
- 入力用・出力用のテーブルをクリエイト
- SelectInsert文で処理を実行
ユーザーが利用する時に行うことは、この入力用・出力用のテーブル文作成、SelectInsert文の作成といったところです。 また通常のSelectInsert文だけでは対応できない場合に、UDF(UserDefinedFunction)というユーザー定義関数の作成が可能ですので、そちらを作成して対応することになります。
UDFはjavaで記載することになります。
SelectInsert以外でデータを投入する場合は、LOAD DATAが利用できる(MySQLの"LOAD DATA LOCAL INFILE ~"とほぼ同様)ので、こちらでデータ投入することも可能です。
注意点
- HiveQLはSQLライクなだけで完全にSQLと同様の関数や記載方法ができるわけではありません。
- 文字列を連結して出力したい場合にも、演算子ではなく関数を利用して連結することになります。
- ソート処理も複数の指定方法があり、それぞれ挙動が大きく異なるので注意して下さい。
- 作成したテーブルからSelectでデータ参照が可能ですが、レコード単位での削除や更新はできないので、再度SelectInsertでデータの入れ替えとなります。
- カウントを取得する時は"select count(1) from mytable;"のようにします。アスタリスクは指定できません。
トラックバック
この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/224308/54716355
この記事へのトラックバック一覧です: Hive:
コメント