【MySQL】データ連携用にmysqldumpして、テーブルの一部を別DBに連携する
DB_AからBD_Bに同じテーブルを移すのですが、ラージカラムは連携しない仕様となりまして。
一部カラムを除いて連携するという面倒なことになりました。
普通に連携する場合は、mysqldumpしてそのまま別DBに投入すればOKなのですが、mysqldumpのカラム指定はできないっぽいです。
一度dumpし、cutコマンドで必要なカラムだけを取得
概要としては、一度全てをDumpした上で、コマンドで必要な値だけを取得して再度投入するみたいですね。
この方法だと、サーバーに充分な空き容量がないと厳しいです。
今回全カラム入れていると20GB程になってしまい、サーバー容量を結構圧迫してしまうのでこれではパンクしてしまいます(泣)
とはいえ、そうでもないカラムを使うときは結構良いかも。
CREATE VIEWしたテーブルをDumpし、投入先でSelect Insertする
これも少し小技になりますが、不要なカラムを除いたViewを作ってしまう方法です。
イメージとしては、
のようなSQLを叩いて参照用のVIEWを作成。
一度そのまま移行先に投入し、SELECT INSERTを使って実際に入れたかったテーブルに再投入します。
mysqldumpしたテーブル名と、投入先にテーブル名を変更できれば良かったのですが・・・・。
ま、設計の時点でこの方法を思いついて入れば連携先にテーブル名を指定できたのでこれは設計の問題ですね・・・。
他に方法はないだろうか?
上記2つ以外の方法で、特定のカラムを除いてDumpし、そのまま投入する方法ってないかなー?
基本的にはシェル叩いて実行してます。
他のテーブルもdumpしてるのでできれば同じプログラムでやりたいですけど、最悪PHPとか使って必要なデータだけ引っこ抜いて投入かなぁ。
もし妙案があれば是非!!笑
その他の情報はこちら!
詳解MySQL 5.7 止まらぬ進化に乗り遅れないためのテクニカルガイド (NEXT ONE)
- 作者: 奥野幹也
- 出版社/メーカー: 翔泳社
- 発売日: 2016/08/26
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る