各製品の資料を入手。
詳細はこちら →MongoDB のデータをPowerShell script でSQL Server にレプリケートする方法
ODBC Driver をつかって、MongoDB のデータをPowerShell script でSQL Server をはじめRDB に簡単レプリケート。
最終更新日:2022-06-01
こんにちは!ドライバー周りのヘルプドキュメントを担当している古川です。
MongoDB のデータをDB にバックアップしておくニーズがあります。
- データのバックアップ
- DB にデータを格納して、他のアプリやBI、帳票ツールからの利用
本記事では、MongoDB のデータをDB に入るようにスキーマ化を行うCData ODBC Driver for MongoDB のキャッシュ機能を使って、SQL Server にMongoDB の任意のアプリを同期する方法を説明します。
CData ODBC ドライバとは?
CData ODBC ドライバは、以下のような特徴を持ったリアルタイムデータ連携ソリューションです。
- MongoDB をはじめとする、CRM、MA、会計ツールなど多様なカテゴリの270種類以上のSaaS / オンプレミスデータソースに対応
- 多様なアプリケーション、ツールにMongoDB のデータを連携
- ノーコードでの手軽な接続設定
- 標準 SQL での柔軟なデータ読み込み・書き込み
CData ODBC ドライバでは、1.データソースとしてMongoDB の接続を設定、2.SQL Server 側でODBC Driver との接続を設定、という2つのステップだけでデータソースに接続できます。以下に具体的な設定手順を説明します。
CData ODBC ドライバのインストールとMongoDB への接続設定
まずは、本記事右側のサイドバーからMongoDB ODBC Driver の無償トライアルをダウンロード・インストールしてください。30日間無償で、製品版の全機能が使用できます。
ODBC 接続プロパティの指定がまだの場合は、DSN (データソース名)で接続設定を行います。Microsoft ODBC データソースアドミニストレーターを使ってODBC DSN を作成および設定できます。 ODBC ドライバーのインストール完了時にODBC DSN 設定画面が立ち上がります。Microsoft ODBC データソースアドミニストレーターを開いて設定を行うことも可能です。 必要なプロパティを設定する方法は、ヘルプドキュメントの「はじめに」をご参照ください。
Cache 設定
同じODBC DSN 画面で、Cache Connection とCache Provider のプロパティを設定します。Cache Provider は、キャッシュ先のDB の種類を指定します。Cache Connection は、Cache 先のDB のサーバー名、データベース名、ユーザー、パスワードを入力します。
- Cache Provider:SQL Server 用に System.Data.SqlClient
- Cache Connection:Server=server name;Database=database name;User ID=your id;Password=password;

PowerShell からスクリプトを実行してMongoDB のデータをSQL Server にレプリケーション
PowerShell から以下のスクリプトで明示的にCache クエリを実行します。
[void][System.Reflection.Assembly]::LoadWithPartialName("System.Data")
$connectionsString = "DSN=CData MongoDB Source"
$odbcCon = New-Object System.Data.Odbc.OdbcConnection($connectionsString)
$odbcCon.Open()
$odbcCmd = New-Object System.Data.Odbc.OdbcCommand
$odbcCmd.Connection = $odbcCon
## CACHE SELECT Accountテーブルは毎回全件取得。
$odbcCmd.CommandText = "CACHE SELECT * FROM TableName"
## 以下のようにCEHCKCACHEコマンドであれば、差分の削除も実施する
## $odbcCmd.CommandText = "CHECKCACHE * FROM TableName WITH REPAIR START '11/15/2022' END '2/2/2022'"
$odbcCmd.ExecuteNonQuery() | Out-Null
$odbcCmd.Dispose()
$odbcCon.Close()
$odbcCon.Dispose()
実際にSQL Server でデータが生成されていることが確認できます。あとは、SQL Server のデータをバックアップとして使うなり、BI やレポーティングに利用することが可能です。

まとめと無償評価版
このように、CData ODBC ドライバを使うことで、MongoDB のデータを簡単にSQL Server のようなDB にレプリケーションすることができます。是非、CData ODBC ドライバの30日の無償評価版 をお試しください。
MongoDB からSQL Server へのデータ連携には、ぜひCData ODBC ドライバをご利用ください
このようにCData ODBC ドライバと併用することで、270を超えるSaaS、NoSQL データをコーディングなしで扱うことができます。30日の無償評価版が利用できますので、ぜひ自社で使っているクラウドサービスやNoSQL と合わせて活用してみてください。
CData ODBC ドライバは日本のユーザー向けに、UI の日本語化、ドキュメントの日本語化、日本語でのテクニカルサポートを提供しています。
スクリプトもSQL も書かずにMongoDB のデータを複製したい場合には、CData Sync がおすすめです。是非、こちらもご覧ください。