page_adsence

2015年1月23日金曜日

MySQLからMongoDBへのデータ移行 その3

前回MySQLの標準をファイルに出力する方法を採っていたが、
これより更に楽になるというか、処理が終わったかどうか分かるようになるやり方があったので紹介する。

mysql --quick -u root --password=password -h localhost mysql_databasename -e "SET NAMES utf8;" > "output.tsv"

このような記述で処理を実行すると、前回同様のメリットを得られる上に、デメリットだった処理の終わりが分かりづらいということも解消される。

ちなみに、「--quick」というオプションは出力結果をメモリ上に溜めずに、どんどんファイルに書き出す様にするためのオプション。
でかいデータを抽出する場合は、メモリ不足で処理が途中で終わってしまうことがあるので、このオプションをつけた。

「-e」オプションはMySQLにログイン後に実行するSQLを書くことが出来る。
ここに必要なSQLを書いておき、実行結果をファイルに出力することが可能になる。
セミコロン区切りで何個もSQLを記述することも可能なので、下記のような方法も可能。

mysql --quick -u root --password=password -h localhost mysql_databasename -e "SET NAMES utf8;
SELECT * FROM table_name_A;
SELECT * FROM table_name_B;" > "output.tsv"