converting database from mysql to mongoDb

por | 9 octubre, 2013

http://www.mongovue.com 

MongoVUE is an innovative MongoDB desktop application for Windows OS that gives you an elegant and highly usable GUI interface to work with MongoDB. Now there is one less worry in managing your web-scale data.

 

 

is there any easy way to change the database from mysql to mongoDB ?

Method #1: export from MySQL in a CSV format and then use the mongoimport tool. However, this does not always work well in terms of handling dates of binary data.

Method #2: script the transfer in your language of choice. Basically you write a program that reads everything from MySQL one element at a time and then inserts it into MongoDB.

Method #2 is better than #1, but it is still not adequate.

MongoDB uses collections instead of tables. MongoDB does not support joins. In every database I’ve seen, this means that your data structure in MongoDB is different from the structure in MySQL.

Because of this, there is no «universal tool» for porting SQL to MongoDB. Your data will need to be transformed before it reaches MongoDB.

 

If you’re using Ruby, you can also try: Mongify

It’s a super simple way to transform your data from a RDBS to MongoDB without losing anything.

Mongify will read your mysql database, build a translation file for you and all you have to do is map how you want your data transformed.

It supports:

  • Updating internal IDs (to BSON ObjectID)
  • Updating referencing IDs
  • Type Casting values
  • Embedding Tables into other documents
  • Before filters (to change data manually)
  • and much much more…

Read more about it at: http://mongify.com/getting_started.html

There is also a short 5 min video on the homepage that shows you how easy it is.

answered Jul 26 ’12 at 20:56
Anlek
37837

I am kind of partial to TalendOpenStudio for those kind of migration jobs. It is an eclipse based solution to create data migration «scripts» in a visual way. I do not like visual programming, but this is a problem domain I make an exception.

Adrien Mogenet has create a MongoDBConnection plugin for mongodb.

It is probably overkill for a «simple» migration but ut is a cool tool.

Mind however, that the suggestion of Nix will probably save you time if it is a one-of migration.

answered Jun 6 ’11 at 12:05
Peter Tillemans
17.8k3056

You can use QCubed (http://qcu.be) framework for that. The procedure would be something like this:

  1. Install QCubed (http://www.thetrozone.com/qcubed-installation)
  2. Do the codegen on your database. (http://www.thetrozone.com/php-code-generation-qcubed-eliminating-sql-hassle)
  3. Take your database offline from the rest of the world so that only one operation runs at a time.
  4. Now write a script which will read all rows from all tables of the database and use the getJson on all objects to get the json. You can then use the data to convert to array and push it into the mongoDB!
answered Jun 26 ’12 at 4:11

MongoVUE‘s free version can do this automatically for you.

It can connect to both databases and perform the import

answered Dec 12 ’12 at 13:38
umutm
15818

If you are looking for a tool to do it for you, good luck.

My suggestion is to just pick your language of choice, and read from one and write to another.

answered Jun 6 ’11 at 11:54
Nix
18.8k54491
i am using php as backend program. –  user737767 Jun 6 ’11 at 12:10

If I could quote Matt Briggs (it solved my roblem one time):

The driver way is by FAR the most straight forward. The import/export tools are fantastic, but only if you are using them as a pair. You are in for a wild ride if your table includes dates and you try to export from the db and import into mongo.

You are lucky too, being in c#. We are using ruby, and have a 32million row table we migrated to mongo. Our ending solution was to craft an insane sql statement in postgres that output json (including some pretty kludgy things to get dates going properly) and piped the output of that query on the command line into mongoimport. It took an incredibly frustrating day to write, and is not the sort of thing that can ever really be changed.

So if you can get away with it, use ado.net with the mongo driver. If not, I wish you well 🙂

(note that this is coming from a total mongo fanboi)

MySQL is very similar to other SQL databases, so I send You to the topić: Convert table from sql to mongoDB

answered Jun 6 ’11 at 11:55
Zozo
380114

You can use the following project.It requires solr like configuration file to be written.Its very simple and straight forward.

http://code.google.com/p/sql-to-mongo-importer/

answered Jul 23 ’11 at 6:10
sathis
3801315

Try this: Automated conversion of MySQL dump to Mongo updates using simple r2n mappings. https://github.com/virtimus/mysql2mongo