2017-02-08 8 views
4

MySQLダンプ.sqlファイルからデータをインポートしようとしましたが、MongoDBにインポートされました。しかし、RDBMSからNoSQLへのデータ移行の仕組みはわかりませんでした。
私はJSON and CSVにデータを変換しようとしましたが、MongoDBにmの出力を与えていません。
私はApache Sqoopを試してみると思っていましたが、主にSQLまたはNoSQLからHadoopへのものです。
「MySQL」から「MongoDB」へデータを移行する方法を理解できませんでしたか?
私は今まで何を試していたかとは別に考えましたか?
このような移行のためのより迅速で優れたソリューションをお聞きします。SQLダンプからMongoDBにインポートするには?

答えて

2

MysqlデータをCSVファイルにダンプすることをお勧めします。他のファイル形式を試すこともできますが、MongoDBとMysqlの両方でCSVファイルを簡単にインポートできるように、フォーマットは非常にうまい。

mysqldumpまたはOUTFILEキーワードを使用してバックアップ用のMySQLデータベースをダンプすると、mysqldumpの処理に時間がかかりますので、How can I optimize a mysqldump of a large database?をご覧ください。

次に、mongoimportツールを使用してデータをインポートします。

は、私の知る限りでは、このインポートを最適化するための3つの方法があります:それはいくつかの挿入作業員を開始します

  • mongoimportの--numInsertionWorkers N、Nはコアの数とすることができます。

  • mongod --njournal連続的なディスク使用量のほとんどはジャーナルに由来しているため、ジャーナルを無効にすると最適化するのに適しています。

  • ファイルを分割して並列ジョブを開始します。

実は私の意見では、データをインポートし、データをエクスポートすることは困難ではありません、あなたのデータセットが大きいと思われるので、あなたが構造を文書化し、設計していない場合、それはまだあなたのコードが遅く作る、それはリレーショナルデータベースからMongoDBへの自動移行はお勧めしません。データベースのパフォーマンスは良くないかもしれません。

データ構造を設計する価値があるので、Data modelsをチェックアウトすることができます。

これが役に立ちます。

+0

解決策はありません。私のデータは複雑で、CSVにエクスポートすることはできません。私は何度もそれを試しました。 –

+0

@JafferWilson「CSVにエクスポートできません」とはどういう意味ですか?それを指摘してください。 – McGrady

+0

実際、データは次のようなものです。 'data:[app:[{key1:value、key2:value}]]'これで、csvの問題を理解できました。それは私が持っているような複雑なデータを処理しません。だから、jsonはMongoDBのほうが良かったのですが、受け入れられませんでした。 –

0

Mongifyを使用すると、SQLベースのシステムからMongoDBにデータを移動/移行するのに役立ちます。 MySQL、PostgreSQL、SQLite、Oracle、SQLServer、およびDB2をサポートします。

rubyrubygemsが必要です。 mongifyをインストールして設定するには、documentationを参照してください。

+0

ruby​​の場合実行が遅くなると思います。 GB単位のデータをインポートするのにどれくらい時間がかかりますか? –

関連する問題