web-dev-qa-db-ja.com

MongoDBからSQL-Serverにデータを移行することは可能ですか?

周りを検索したところ、sql-serverからmongodbにデータを転送/同期する方法があることがわかりました。 Mongodbにはテーブルではなくコレクションが含まれており、データの格納方法が異なることも知っています。 mongodbからsql-serverにデータを移動できるかどうか知りたいのですが。はいの場合、どのツール/トピックを調べる必要がありますか。

9

もちろん可能ですが、MongoDBのようなドキュメントデータベースの柔軟性をSQL ServerのようなRDBMSに強制する方法を見つける必要があります。

これは、欠落しているフィールド(db列のNULLか、デフォルト値か?)や、通常はリレーショナルデータベースに適合しないその他のフィールドを処理する方法を定義する必要があることを意味します。

つまり、両方のデータベースに接続できるETLツールを使用できます。Microsoftの世界に留まりたい場合は、SSISがその例になります(これを確認できます SSIS 2012を使用したMongoDBデータのインポート または) Talend Big Data Integration のようなオープンソースツールを使用できます。これには、MongoDB(およびもちろんSQL Server)へのコネクタがあります。

10
mucio

MongoDBからSQL Serverにデータを直接移動する方法はありません。 MongoDBデータは非リレーショナルであるため、そのような移動では、SQL Serverでターゲットリレーショナルデータモデルを定義し、MongoDBのデータを取得してターゲットデータモデルに変換できる変換を開発する必要があります。

KettleやTalendなどのほとんどのETLツールは、このプロセスを支援します。または、あなたが罰の大食いなら、コードの塊を書くことができます。

この変換プロセスをオンラインにしたり、複数回適用したりする必要がある場合は、MongoDBに格納されているデータの構造またはタイプに小さな変更がある場合は、微調整が必​​要になる場合があることに注意してください。例として、開発者がコレクション内のドキュメントに新しいフィールドを追加した場合、ETLプロセスを再考する必要があります(おそらく新しいデータモデル、新しい変換プロセスなど)。

SQL Serverで販売されていない場合は、Postgresを検討することをお勧めします。Postgresデータベースとの同期を目的として明示的に開発された MoSQL と呼ばれる広く使用されているオープンソースツールがあるためです。 MongoDBデータベース。これは主にレポート目的で使用されます(MongoDBからデータをRDBMSに取得して、分析ツールやレポートツールを上に重ねることができます)。

MoSQLは広く採用されており、十分にサポートされています。ひどく拷問されたデータについては、Postgres JSONデータ型を使用するオプションが常にあります。これは、分析ツールやレポートツールではサポートされていませんが、少なくともデータを直接クエリできます。 Postgres。また、私自身の個人的な偏見が露呈しています。Postgresは100%オープンソースですが、SQL Serverは100%クローズドソースです。 :-)

最後に、分析またはレポート作成を簡単にするためにMongoDBからデータを抽出するのみである場合、オープンな SlamData を検討する必要があります昨年開始した、100%データベース内実行を使用してMongoDBでANSI SQLを実行できるソースプロジェクト(基本的には、SQLからMongoDBへのAPIコンパイラーです)。プロジェクトを使用するほとんどの人々は、分析またはレポートのユースケースにそれを使用しているようです。利点は、データをそのまま処理するため、ETLを実行する必要がないことです。もちろん、MongoDBで直接実行されるため、常に最新の状態です。短所は、ODBC/JDBCドライバをまだ作成していないため、BIツールをSlamDataに直接接続できないことです。

幸運を!

6
John A. De Goes

MongoDBが提供する mongoexport というツールがあり、csvファイルをエクスポートできます。これらのcsvファイルは、MySQLに簡単にインポートできます。幸運を!

3
marijnz0r