sqoop について
■--query オプション
Options Files で指定する場合、クォーテーションマークは要らない。例えば、
--query
SELECT * FROM hoge WHERE $CONDITIONS
でよい。
クォーテーションマークつけてもエラーにはならない。
クエリ前後のクォーテーションマークは無視される。
クエリ途中のクォーテーションマークは、クエリの一部として解釈される。
例えば、
--query
SELECT * FROM hoge WHERE hoge.a = 'fuga' AND $CONDITIONS
は字義通り実行される。
なお、コマンドラインで --query オプションを使う場合にクォーテーションをエスケープする方法は不明。
■Hiveにインポート
動的パーティションはサポートしていない?
--hive-partition-value を省略すると、デフォルトパーティションに投入される。
SequenceFile や RCFile への投入はサポートされていないらしい。おそらく裏で load コマンドを使っていて、load コマンドが単純にファイルをそのままHiveのデータファイルとして登録するだけのようなので、通常のテキストファイルを SequenceFile や RCFile のテーブルにLoadしようとしてもエラーになるものと思われる。
また、テーブルファイルの区切り文字はデフォルト(ハットA)でなければならない(sqoopがHDFSファイルを作成する際、ハットA区切りファイルを作成するので)。区切り文字が違うと、正常終了するが全てのカラムがNULLで入ってしまう。(CREATE TABLE の際、ROW FORMAT・・・を指定しなければよい。)