Oracle用Sqoopについて『HADOOP HACKS』に載っていた通り、テーブル名が小文字だと落ちるし(苦笑)
テーブル名とユーザー名を大文字にしたら一応動いたけど、作られるディレクトリーやJavaクラス名が全部大文字なのは、ちと違和感があるな^^;
exportのデフォルトモードでは、MySQLやPostgreSQLは複数VALUES INSERTを使うが、Oracleにはそのような構文は無い。バッチモードと同じになるのかな?と思ったが、どうやらSELECT~INSERTを使っているらしい。意外と頑張ってるなw
更新モード(--update-key)では、--update-modeにallowinsertが指定できる。
SQLとしてはMERGE文を使っているようだ。なるほど、MERGEはまさにこういう目的に使うものだな。
(MySQLやPostgreSQLがallowinsertに対応していなかったのは、MERGE文が無い為か。納得)
OraOopも一応インストールしてみた。
確かにテーブル名やユーザー名に小文字が使える。
一緒にダウンロードできるpdfのドキュメントをちらっと見た感じでは、importの範囲分割に関してはROWIDを使っているらしい。Oracleでは最速の方法ですな。
ただ、『HADOOP HACKS』では触れられていなかったが、ユーザーにDBAロール(管理者権限)を付けていないとdba_tab_columns等のテーブルにアクセスできなくてエラーになる。なんでuser系のビュー(uesr_tab_columns)を使わないんだろう…?
※コメント投稿者のブログIDはブログ作成者のみに通知されます