복붙노트

[MONGODB] MySQL의에서 MongoDB를에 데이터베이스를 변환

MONGODB

MySQL의에서 MongoDB를에 데이터베이스를 변환

MongoDB를 MySQL에서 데이터베이스를 변경할 수있는 쉬운 방법은 무엇입니까?

또는 더 나은 어떤 사람은 그것을 할 자습서 나에게 좋은 제안

해결법

  1. ==============================

    1.방법 # 1 : 다음 CSV 형식으로 MySQL의에서 수출은 mongoimport 도구를 사용합니다. 그러나이 항상 바이너리 데이터의 날짜를 처리하는 측면에서 잘 작동하지 않습니다.

    방법 # 1 : 다음 CSV 형식으로 MySQL의에서 수출은 mongoimport 도구를 사용합니다. 그러나이 항상 바이너리 데이터의 날짜를 처리하는 측면에서 잘 작동하지 않습니다.

    방법 # 2 : 스크립트 선택의 여지가 귀하의 언어로 전송. 기본적으로 한 번에 MySQL의 한 요소에 이르기까지 모든 것을 읽는 프로그램을 작성하고 MongoDB를 삽입합니다.

    방법 # 2 # 1보다 더 나은,하지만 여전히 충분하지 않다.

    MongoDB를 대신 테이블의 컬렉션을 사용합니다. 지원하지 않는 MongoDB를 조인. 내가 본 모든 데이터베이스에서 MongoDB를 귀하의 데이터 구조의 MySQL의 구조는 다른이 수단이다.

    이것 때문에, MongoDB를에 SQL 이식에 대한 "보편적 인 도구"가 없다. 귀하의 데이터는 MongoDB를 도달하기 전에 변환 할 필요가있을 것이다.

  2. ==============================

    2.루비를 사용하는 경우, 당신은 또한 시도 할 수 있습니다 : Mongify를

    루비를 사용하는 경우, 당신은 또한 시도 할 수 있습니다 : Mongify를

    그것은 아무것도 잃지 않고 MongoDB를에 RDBS에서 데이터를 변환 할 수있는 매우 간단한 방법입니다.

    Mongify는 MySQL 데이터베이스를 읽을 당신을위한 번역 파일을 구축하고 당신이 할 일은 당신이 당신의 데이터 변환 방법을지도입니다 것입니다.

    그것은 지원

    http://mongify.com/getting_started.html :에서 그것에 대해 더 읽기

    이 쇼 당신이 얼마나 쉽게하는 홈페이지에 짧은 5 분 비디오도 있습니다.

  3. ==============================

    3.MongoVUE의 무료 버전은 당신을 위해 자동으로이 작업을 수행 할 수 있습니다.

    MongoVUE의 무료 버전은 당신을 위해 자동으로이 작업을 수행 할 수 있습니다.

    이 두 데이터베이스에 연결하고 가져 오기를 수행 할 수 있습니다

  4. ==============================

    4.여기에 내가이 목적을 위해 Node.js를 함께 무슨 짓을했는지 :

    여기에 내가이 목적을 위해 Node.js를 함께 무슨 짓을했는지 :

    var mysql = require('mysql');
    var MongoClient = require('mongodb').MongoClient;
    
    function getMysqlTables(mysqlConnection, callback) {
        mysqlConnection.query("show full tables where Table_Type = 'BASE TABLE';", function(error, results, fields) {
            if (error) {
                callback(error);
            } else {
                var tables = [];
                results.forEach(function (row) {
                    for (var key in row) {
                        if (row.hasOwnProperty(key)) {
                            if(key.startsWith('Tables_in')) {
                                tables.push(row[key]);
                            }
                        }
                    }
                });
                callback(null, tables);
            }
        });
    
    }
    
    function tableToCollection(mysqlConnection, tableName, mongoCollection, callback) {
        var sql = 'SELECT * FROM ' + tableName + ';';
        mysqlConnection.query(sql, function (error, results, fields) {
            if (error) {
                callback(error);
            } else {
                if (results.length > 0) {
                    mongoCollection.insertMany(results, {}, function (error) {
                        if (error) {
                            callback(error);
                        } else {
                            callback(null);
                        }
                    });
                } else {
                    callback(null);
                }
            }
        });
    }
    
    MongoClient.connect("mongodb://localhost:27017/importedDb", function (error, db) {
        if (error) throw error;
    
        var MysqlCon = mysql.createConnection({
            host: 'localhost',
            user: 'root',
            password: 'root',
            port: 8889,
            database: 'dbToExport'
        });
    
        MysqlCon.connect();
    
        var jobs = 0;
    
        getMysqlTables(MysqlCon, function(error, tables) {
            tables.forEach(function(table) {
                var collection = db.collection(table);
                ++jobs;
                tableToCollection(MysqlCon, table, collection, function(error) {
                    if (error) throw error;
                    --jobs;
                });
            })
        });
    
        // Waiting for all jobs to complete before closing databases connections.
        var interval = setInterval(function() {
            if(jobs<=0) {
                clearInterval(interval);
                console.log('done!');
                db.close();
                MysqlCon.end();
            }
        }, 300);
    });
    
  5. ==============================

    5.나는 마이그레이션 작업의 이러한 종류의 종류 TalendOpenStudio에 대한 부분의입니다. 시각적으로 데이터 마이그레이션 "스크립트"만드는 이클립스 기반 솔루션이다. 나는 비주얼 프로그래밍 좋아하지 않는다, 그러나 이것은 내가 예외를 문제 도메인입니다.

    나는 마이그레이션 작업의 이러한 종류의 종류 TalendOpenStudio에 대한 부분의입니다. 시각적으로 데이터 마이그레이션 "스크립트"만드는 이클립스 기반 솔루션이다. 나는 비주얼 프로그래밍 좋아하지 않는다, 그러나 이것은 내가 예외를 문제 도메인입니다.

    아드 Mogenet는 MongoDB를위한 MongoDBConnection 플러그인을 만들 수 있습니다.

    그것은 "간단한"마이그레이션 아마도 과잉이다하지만 유타는 멋진 도구입니다.

    닉스의 제안은 마이그레이션 한의 아마 시간이 당신에게 저장입니다 않을 경우, 그러나 마음.

  6. ==============================

    6.당신은 그것을 위해 QCubed (http://qcu.be) 프레임 워크를 사용할 수 있습니다. 절차는 다음과 같이 될 것이다 :

    당신은 그것을 위해 QCubed (http://qcu.be) 프레임 워크를 사용할 수 있습니다. 절차는 다음과 같이 될 것이다 :

  7. ==============================

    7.사람이 여전히 해결책을 찾고, 내가 가장 쉬운 방법, 당신은 일반적인 선택 문을 사용하여 원하는 정보를 검색, 당신의 SQL DB에 연결하는 PHP JSON 인코딩 기능을 사용하여 JSON에 정보를 변환하고 PHP 스크립트를 작성하는 것을 발견 단순히 출력 결과는 MongoDB를 직접 제출하거나합니다. 그것은 실제로 매우 간단하고 정직하고, 할 수있는 유일한 방법은 JSON 검사기에 대한 귀하의 출력을 다시 한 번 확인하는 것입니다, 당신은 기능을 사용할 등이 유효하게 특정 문자와 기호를 대체 폭발 할 수 있습니다. 그러나 나는 내가 현재 손에하지만 난 말 그대로 코드의 반 페이지이었다 기억할 수있는 어떤에서 스크립트가없는 전에 이런 짓을했는지.

    사람이 여전히 해결책을 찾고, 내가 가장 쉬운 방법, 당신은 일반적인 선택 문을 사용하여 원하는 정보를 검색, 당신의 SQL DB에 연결하는 PHP JSON 인코딩 기능을 사용하여 JSON에 정보를 변환하고 PHP 스크립트를 작성하는 것을 발견 단순히 출력 결과는 MongoDB를 직접 제출하거나합니다. 그것은 실제로 매우 간단하고 정직하고, 할 수있는 유일한 방법은 JSON 검사기에 대한 귀하의 출력을 다시 한 번 확인하는 것입니다, 당신은 기능을 사용할 등이 유효하게 특정 문자와 기호를 대체 폭발 할 수 있습니다. 그러나 나는 내가 현재 손에하지만 난 말 그대로 코드의 반 페이지이었다 기억할 수있는 어떤에서 스크립트가없는 전에 이런 짓을했는지.

    오 또한 일부 데이터 매핑은 몽고와 허용 할 얻기 위해 필요하므로 몽고 문서 저장소 기억.

  8. ==============================

    8.같은 문제로이 오는 사람들을 위해,이 Github에서 프로젝트를 확인할 수 있습니다. 이것은 단순히 간단한 명령을 실행하여 당신에게 MongoDB를에 MySQL 데이터베이스에서 마이그레이션 데이터를 도움이 될 것입니다 지속적인 개발이다.

    같은 문제로이 오는 사람들을 위해,이 Github에서 프로젝트를 확인할 수 있습니다. 이것은 단순히 간단한 명령을 실행하여 당신에게 MongoDB를에 MySQL 데이터베이스에서 마이그레이션 데이터를 도움이 될 것입니다 지속적인 개발이다.

    프로젝트에서 나중에 사용할 수 있도록 그것은 타이프에서 MongoDB의 스키마를 생성합니다. 각 MySQL의 테이블은 MongoDB를 수집 될 것이며, 데이터 유형은 효율적으로 MongoDB를 호환 장치로 변환됩니다.

    같은위한 문서화는 프로젝트의 README.md에서 찾을 수 있습니다. 에 와서 기여 주시기 바랍니다. 필요가있을 경우 도움 싶습니다.

  9. ==============================

    9.당신은 당신을 위해 행운을 할 수있는 도구를 찾고 있다면.

    당신은 당신을 위해 행운을 할 수있는 도구를 찾고 있다면.

    나의 제안은 선택의 여지가 귀하의 언어를 선택하고, 다른 하나는 쓰기에서 읽기입니다.

  10. ==============================

    10.나는 매트 브릭스를 인용 수 있다면 (그것은 내 문제의 한 시간을 해결) :

    나는 매트 브릭스를 인용 수 있다면 (그것은 내 문제의 한 시간을 해결) :

    나는이 주제에 당신을 보낼 수 있도록 MySQL은 다른 SQL 데이터베이스와 매우 유사합니다 : MongoDB를 문서로 변환 SQL 테이블

  11. ==============================

    11.다음 project.It이 매우 간단하고 정직하고 written.Its로 SOLR 구성 파일과 같은 필요로 사용할 수 있습니다.

    다음 project.It이 매우 간단하고 정직하고 written.Its로 SOLR 구성 파일과 같은 필요로 사용할 수 있습니다.

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

  12. ==============================

    12.이 시도: 간단한 R2N 매핑을 사용하여 몽고 업데이트에 MySQL의 덤프의 자동 변환. https://github.com/virtimus/mysql2mongo

    이 시도: 간단한 R2N 매핑을 사용하여 몽고 업데이트에 MySQL의 덤프의 자동 변환. https://github.com/virtimus/mysql2mongo

  13. ==============================

    13.내가 가장 쉬운 방법 중 하나는 JSON에 MySQL 데이터베이스를 보낸 다음 MongoDB를 데이터베이스로 가져 mongorestore 사용하는 것입니다 생각합니다.

    내가 가장 쉬운 방법 중 하나는 JSON에 MySQL 데이터베이스를 보낸 다음 MongoDB를 데이터베이스로 가져 mongorestore 사용하는 것입니다 생각합니다.

    1 단계 : 수출 JSON에 MySQL 데이터베이스

    필요한 경우 MySQL 데이터베이스로 MySQL의 덤프 파일을로드

    열기 MySQL의 워크 벤치 및 MySQL 데이터베이스에 연결

    수출에 테이블의 이름을 스키마 뷰어> 데이터베이스 선택> 테이블>을 마우스 오른쪽 버튼으로 클릭 이동

    선택 '테이블 데이터 내보내기 마법사'

    같은 tablename.json 같은 파일 이름에 .json 및 유형에 파일 형식을 설정

    참고 : 모든 테이블을 개별적으로 내보낼 필요가있을 것이다

    2 단계 : 가져 오기 mongorestore 명령을 사용하여 MongoDB에 JSON 파일

    mongorestore 명령은 서버 명령 행 (안 몽고 쉘)에서 실행해야합니다

    더 많은 정보는 mongorestore의 문서를 참조하십시오 인증 세부 정보뿐만 아니라 --jsonArray 옵션을 제공해야 할 수도 있습니다

    mongoimport -d dbname -u ${MONGO_USERNAME} -p ${MONGO_PASSWORD} --authenticationDatabase admin -c collectionname --jsonArray --file tablename.json
    

    참고 :이 방법하지 않습니다 일 원래의 MySQL 데이터베이스에 BLOB / 이진 데이터가있는 경우.

  14. from https://stackoverflow.com/questions/6251548/converting-database-from-mysql-to-mongodb by cc-by-sa and MIT license