ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

Sqoop export update/staging

2012-06-01 23:52:33 | PG(分散処理)

Sqoopのexport(HDFS→RDB)に関して、--update-keyステージングテーブルについてメモ。


ステージングテーブルは、対象テーブルに直接インサートせず、中間テーブル(ステージングテーブル)に一旦書き込み、対象テーブルへはそこから移送するもの。

Sqoopは複数のデータノードから並列でインサートするので、コミットタイミングがばらばらになり、中途半端な状態が出来てしまう。
これを解消する為にステージングテーブルを使う。


通常のexportでは、INSERT文を使ってテーブルにデータを登録する。
テーブルにデータが存在しているときの為に、UPDATE文で更新する指定が--update-key。--update-keyでWHERE条件となるカラムを指定する。
対象テーブルにデータが有ればUPDATE、無ければINSERT…としたい場合は「--update-mode allowinsert」を指定する。とドキュメントにはあるのだが、MySQLとPostgreSQLはまだ対応していないらしい(苦笑)

それどころか、PostgreSQL版はUPDATE前にテーブルをトランケートするので、常に対象データ無しで何も更新されない!
さすがにこれはバグじゃね?(苦笑) (試したバージョンはSqoop 1.3.0-cdh3u4)


コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« AsakusaFW0.2.6の見どころ | トップ | pg_bulkload »
最新の画像もっと見る

コメントを投稿

PG(分散処理)」カテゴリの最新記事