MongoDB JSONファイルからOracle NoSQL Database Cloud Serviceへの移行

この例では、Oracle NoSQL Database Migratorを使用してMongo-DB形式のデータをOracle NoSQL Database (NDCS)にコピーする方法を示します。

ユースケース

複数のオプションを評価した後、組織はOracle NoSQL DatabaseをNoSQL Databaseプラットフォームとして最終決定します。NoSQLの表およびデータはMongoDBにあるため、これらの表およびデータをOracle NDCSに移行する方法を探しています。

ソース構成テンプレートでファイルまたはディレクトリを指定することで、MongoDBがエクスポートした移行用のJSONデータを含むファイルまたはディレクトリをコピーできます。

MongoDB形式のJSONファイルの例を次に示します。
{"_id":0,"name":"Aimee Zank","scores":[{"score":1.463179736705023,"type":"exam"},{"score":11.78273309957772,"type":"quiz"},{"score":35.8740349954354,"type":"homework"}]}
{"_id":1,"name":"Aurelia Menendez","scores":[{"score":60.06045071030959,"type":"exam"},{"score":52.79790691903873,"type":"quiz"},{"score":71.76133439165544,"type":"homework"}]}
{"_id":2,"name":"Corliss Zuk","scores":[{"score":67.03077096065002,"type":"exam"},{"score":6.301851677835235,"type":"quiz"},{"score":66.28344683278382,"type":"homework"}]}
{"_id":3,"name":"Bao Ziglar","scores":[{"score":71.64343899778332,"type":"exam"},{"score":24.80221293650313,"type":"quiz"},{"score":42.26147058804812,"type":"homework"}]}
{"_id":4,"name":"Zachary Langlais","scores":[{"score":78.68385091304332,"type":"exam"},{"score":90.2963101368042,"type":"quiz"},{"score":34.41620148042529,"type":"homework"}]}

MongoDBは、標準モードおよび緩和モードの2種類のファイルのJSON形式に対する拡張をサポートしています。mongoexportツールを使用して正規モードまたは緩和モードで生成されるMongoDB形式のJSONファイルを指定できます。どちらのモードも、移行のためにNoSQL Database Migratorでサポートされています。

MongoDB Extended JSON (v2)ファイルの詳細は、mongoexport_formatsを参照してください。

MongoDB形式のJSONファイルの生成の詳細は、mongoexportを参照してください。

デモでは、MongoDB形式のJSONファイルをNDCSに移行する方法について説明します。この例では、手動で作成した構成ファイルを使用します。
前提条件
  • 移行するソースとシンクを指定します。
    • ソース: MongoDB形式のJSONファイル
    • シンク: Oracle NoSQL Database
  • mongoexportユーティリティを使用してMongo DBからデータを抽出します。詳細は、mongoexportを参照してください。
  • Mongo-DB形式のJSONファイルのデータと一致する表スキーマを使用して、シンクにNoSQL表を作成します。かわりに、defaultSchema属性をtrueに設定することで、デフォルトのスキーマ構造で表を作成するようにNoSQL Database Migratorに指示することもできます。

    ノート:

    MongoDB形式のJSONソースの場合、表のデフォルト・スキーマは次のようになります。
    CREATE TABLE IF NOT EXISTS <tablename>(ID STRING, DOCUMENT JSON,PRIMARY KEY(SHARD(ID))
    
    説明:
    • tablename = 表構成の値。
    • ID = mongoDBでエクスポートされたJSONソース・ファイルからの_id値。
    • DOCUMENT = mongoDBでエクスポートされたJSONソース・ファイルの内容全体が、_idフィールドを除くDOCUMENT列に集計されます。
  • OCIクラウド資格証明を指定し、OCI構成ファイルで取得します。構成ファイルを/home/.oci/configに保存します。Oracle NoSQL Database Cloud Serviceの使用資格証明の取得を参照してください。
    [DEFAULT]
    tenancy=ocid1.tenancy.oc1....
    user=ocid1.user.oc1....
    fingerprint= 43:d1:....
    key_file=</fully/qualified/path/to/the/private/key/>
    pass_phrase=<passphrase>
  • Oracle NoSQL Databaseのリージョン・エンドポイントおよびコンパートメント名を指定します。
    • endpoint: us-phoenix-1
    • compartment: developers
手順

MongoDB形式のJSONデータをOracle NoSQL Databaseに移行するには:

  1. 識別されたソースおよびシンクの詳細を含む構成ファイル(JSON形式)を準備します。ソース構成テンプレート およびシンク構成テンプレート を参照してください。
    {
      "source" : {
        "type" : "file",
        "format" : "mongodb_json",
        "dataPath" : "<complete/path/to/the/MongoDB/Formatted/JSON/file>"
      },
      "sink" : {
        "type" : "nosqldb_cloud",
        "endpoint" : "us-phoenix-1",
        "table" : "mongoImport",
        "compartment" : "developers",
        "schemaInfo" : {
          "defaultSchema" : true,
          "readUnits" : 100,
          "writeUnits" : 60,
          "storageSize" : 1
        },
        "credentials" : "<complete/path/to/the/oci/config/file>",
        "credentialsProfile" : "DEFAULT",
        "writeUnitsPercent" : 90,
        "requestTimeoutMs" : 5000
      },
      "abortOnError" : true,
      "migratorVersion" : "1.0.0"
    }
  2. コマンド・プロンプトを開き、NoSQL Database Migratorユーティリティを抽出したディレクトリに移動します。
  3. --configまたは-cオプションを使用して構成ファイルを渡し、runMigratorコマンドを実行します。
    [~/nosqlMigrator/nosql-migrator-1.0.0]$./runMigrator --config <complete/path/to/the/JSON/config/file>
    
  4. 次に示すように、ユーティリティはデータの移行に進みます。
    Records provided by source=29,353, Records written to sink=29,353, Records failed=0.
    Elapsed time: 9min 9sec 630ms
    Migration completed.
検証

移行を検証するには、NDCSコンソールにログインし、ソース・データを使用してmyTableが作成されていることを確認します。