[前][次][番号順一覧][スレッド一覧]

mysql:16388

From: Yuji Fujihara <Yuji Fujihara <yflab73@xxxxxxxxxx>>
Date: Fri, 24 Feb 2017 14:57:16 +0000
Subject: [mysql 16388] Re: [mysql 16387] Re: [mysql 16385] Re: [mysql 16384] Re: mysqlのデータベースの移行

藤原と申します。

はじめてMLに返信させていただきます。
よろしくお願い致します。

最近、似たような案件を手掛けている関係で少し詳しくなりましたので回答させていただきます。

ただ、要件がよくわかりませんので、何とも言えない部分はあるのですが、みなさんがおっしゃられていることも踏まえてまとめてみると以下のようではないかと思われます。

①番のお勧め
無償で、ある程度自分たちで手を動かせる場合

fluentd、embulkがおすすめです。
DB to DBの場合は、embulkの方が合うと思います。

短い間隔でバッチのように起動してデータ転送できるため、ある程度、リアルタイムにすることも可能であり、ダウンタイムも少なくすることができます。

プラグインについては、林さんがおっしゃられた通りです。情報量も多いので取り掛かりやすいと思います。

一回限りのマイグレーションなのか、継続的なデータ転送が必要なのかわかりませんが、embulkはそのどちらにも使えると思うので恐らく要件に合うと思います。

②番
MySQLだけでやる場合、ある程度の作り込みが必要です。

sumiyaさんなどがおっしゃられている方法もありますが、mysqldumpはデータ量が多い場合、エクスポート、インポートに時間がかかるため、ある程度のダウンタイムが発生する可能性があるかと思います。

要件として、ダウンタイムが許容できるならば、最も基本的なやり方かと思います。

Workbenchでもマイグレーション機能がありますが、こちらは使用したことがないのでよくわかりません。もしすると中々使えるのかもしれません。

また、別の方法として、ソース側DBでターゲット側DBのスキーマと同様のビューテーブルを作成しておき、それをプログラムで抽出し、ターゲット側DBに差分でインサートする、という方法もあるかもしれません。

または、ソース側DBでトリガーを使用するという方法や、LOAD DATA INFILE構文を使う方法も考えられます。

このビューテーブル、トリガー、LOAD DATA INFILEのいずれ方法も作り込みすれば、ダウンタイムの発生を少なくして対応できる可能性があります。

③番
ある程度のお金をかけられる場合、ETLツールを使用する方法があります。

ETLツールは中々高価なため、一回限りのマイグレーション用途というよりは、業務でビッグデータなどを扱うような業務システム、データウェアハウスなどの継続的なデータ転送を必要とする場合に適しています。

代表的なものとしては、無償版ではTalend、Pentaho、SymmetricDSあたりが有名です。

また、有償製品で比較的安価なものは、Asteria
Warp、DataSpider、DMExpress、Qanatなどがあります。安価といっても、数百万くらいかかります。

さらに高価なものでは、Oracle Goldengate、Oracle Data Integrator、Attunity、DBMoToなどがあります。

最近はクラウドでも、ETLのサービスをやっているところもありますし、短期間の使用ならば、FlyDataなどが要件に合うかもしれません。

以上、よろしくお願い致します。

藤原
twitter @yflab

2017年2月24日(金) 14:02 林如弥 <yukiya.hayashi@xxxxxxxxxx>:

> 林と申します。

>

> 私もOSSのETLツールのご紹介になりますが、トレジャーデータ社のEmbulkをオススメします。

> input,filter,outputの3段階でデータを処理するのですが、豊富なプラグインで柔軟な処理ができます。

> ※例えばinputをMYSQLに、outputをpostgresに、といった使い方も可能

>

> 山田さんのケースでは、inputとoutputでmysqlプラグインを使うだけで要件を満たせそうです。

> ※embulk-output-mysqlのcolumn_optionsのvalue_typeを参照ください

>

> 参考1:MySQLのoutputプラグイン

> _

> https://github.com/embulk/embulk-output-jdbc/tree/master/embulk-output-mysql

>

> 参考2:Embulkのプラグイン一覧

> _http://www.embulk.org/plugins/

>

>

>

> 2017年2月24日 11:13 HIRATSUKA Sadao <sh2@xxxxxxxxxx>:

>

> 平塚です。

>

> いわゆるETLツールで対応可能と思います。

> 安価に済ませるならTalendというOSSがあります。

> https://jp.talend.com/products/talend-open-studio

>

> ただ文面を拝見する限り、ETLツールを持ってくるのは

> 牛刀をもって鶏を割く感じを受けます。

>

> sumiyaさんからご提案いただいた手順を基本としつつ

> それではどうしてもやりたいことができない場合に

> ETLツールを検討するのがよいと思います。

>

> 2017年2月24日 11:00 Etsuo SUMIYA <sumiya-e@xxxxxxxxxx>:

>

> sumiyaといいます。

>

> From: Yamada Shinya <yamada_shinya@xxxxxxxxxx>

> Subject: [mysql 16383] mysqlのデータベースの移行

> Date: Fri, 24 Feb 2017 10:41:26 +0900

> Message-ID: <53e44762-94f8-71c6-7d2f-17aac7f1b40c@xxxxxxxxxx>

>

> > MySQLのデータベースの移行を検討しています。

> > 移行元も移行先もMySQLのデータベースです。

> > 只、構造が違っていて、テーブルのフィールド単位に設定先を決定する必要が

> > あります。

>

> どのような変更が必要なのかわかりませんが、

>

> 1)古いmysqlでmysqldump

> 2)新しいmysqlでインポート

> 3)必要な変更をALTER tableなどで、行える限り行う。

> 4)それ以上複雑な変更はプログラムを作る

>

> 以外にないと思います。

>

>

>

>

> --

> 平塚貞夫 <sh2@xxxxxxxxxx>

>

>


添付ファイル

[前][次][番号順一覧][スレッド一覧]

     16383 2017-02-24 10:41 [Yamada Shinya <yamad] mysqlのデータベースの移行               
     16384 2017-02-24 11:00 ┗[Etsuo SUMIYA <sumiya]                                       
   @ 16385 2017-02-24 11:13  ┗[HIRATSUKA Sadao <sh2] Re: [mysql 16384] Re: mysqlのデータベースの移行
     16386 2017-02-24 11:19   ┣["KAJIYAMA, Ryusuke" ] Re: [mysql 16385] Re: [mysql 16384] Re: mysql=e3aeデータベースの移行
   @ 16387 2017-02-24 14:00   ┗[林如弥 <yukiya.hayas] Re: [mysql 16385] Re: [mysql 16384] Re: mysqlのデータベースの移行
-> @ 16388 2017-02-24 23:57    ┗[Yuji Fujihara <yflab] Re: [mysql 16387] Re: [mysql 16385] Re: [mysql 16384] Re: mysqlのデータベースの移行