S-JIS[2012-05-03/2012-07-07] 変更履歴

Apache Sqoop

Apache Sqoop(スクープ)は、RDBHDFS間でデータ転送を行うツール。


概要

Sqoopは、RDBとHDFS間でデータ転送を行うツール。
2012/4/2にApacheのincubatorプロジェクトからトップレベルプロジェクトに昇格した

データ転送はMapタスクのみのMapReduceで並列して分散実行される。
RDBへのアクセスはJDBC経由。
テーブル定義もRDBから読み込んでくれる。

import
RDBのテーブルを読み込んでHDFS上のファイルに出力する。
差分だけ取り込む事も出来る(merge)。ただし削除は出来ない。
export
HDFS上のファイルを読み込んでRDBのテーブルを更新する。
insertの他にupdateも利用可能。deleteは出来ないので、削除したい場合はテーブルを消してからinsertする。

SqoopがHDFS上で扱えるファイルは、テキストファイルとバイナリーファイル(AvroまたはSequenceFile)。

テキストファイル
CSVやTSV。区切り文字や値を囲む文字(ダブルクォーテーション)やエスケープ文字を指定する事が出来る。
SequenceFile
キーはLongWritable、値はテーブル定義に応じて生成されるクラス(null値も考慮されている)。
バイナリーデータも扱えるし、CSV等のパースの必要が無いからテキストファイルより速いらしい。

技術メモへ戻る / Hadoopへ行く / Javaへ行く
メールの送信先:ひしだま