すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB for MongoDB:NimoFullCheck を使用した移行後のデータ整合性検証

最終更新日:Mar 29, 2026

Amazon DynamoDB から ApsaraDB for MongoDB へのデータ移行が完了した後は、すべてのレコードが正しく転送されたことを検証する必要があります。NimoFullCheck は、Alibaba Cloud が提供するツールであり、2 つのデータベース間で 2 段階の整合性チェックを自動実行することで、この検証を支援します。

前提条件

開始する前に、以下の条件を満たしていることを確認してください。

制限事項

NimoFullCheck は、完全なデータ移行に対する整合性チェックのみをサポートしています。増分同期後にチェックを実行すると、不正確な結果が得られる場合があります。

NimoFullCheck の仕組み

NimoFullCheck では、ApsaraDB for MongoDB をベースラインとして使用し、Amazon DynamoDB のデータがこれと一致しているかを検証します。チェックは、以下の 2 つの順次実行されるフェーズで実行されます。

  1. 簡易チェック:各 DynamoDB テーブル内のアイテム数と、対応する ApsaraDB for MongoDB コレクション内のドキュメント数を比較します。件数が一致しない場合、チェックは中止され、エラーが返されます。

  2. 精密チェック:簡易チェックが正常に完了した後に実行されます。NimoFullCheck は Amazon DynamoDB からデータをフェッチ・解析し、ApsaraDB for MongoDB と比較します。

    • データに一意なインデックスが存在する場合、NimoFullCheck はそのインデックスに基づいてレコードを比較します。

    • データに一意なインデックスが存在しない場合、NimoFullCheck はすべてのエントリを 1 件ずつ比較します。この方法は処理速度が遅くなります。

NimoFullCheck の実行

説明 以下の手順は、Ubuntu 上で NimoFullCheck を実行することを前提としています。
  1. NimoShake パッケージをダウンロードします。

    説明 NimoShake のリリースページから最新版の NimoShake パッケージをダウンロードしてください。
    wget https://github.com/alibaba/NimoShake/releases/download/release-v1.0.0-20191015/nimo.tar.gz
  2. パッケージを展開します。

    tar zxvf nimo.tar.gz
  3. nimo ディレクトリに移動します。

    cd nimo
  4. 必要なパラメーターを指定して NimoFullCheck を実行します。

    ./nimo-full-check.linux --<パラメーター 1>=<値 1> --<パラメーター 2>=<値 2>

    以下の表に、各パラメーターの説明を示します。

    NimoFullCheck parameters

    パラメーター説明
    id移行タスクの ID。NimoShake 実行時に指定したタスク ID と同じ値を設定してください。詳細については、「NimoShake を使用した Amazon DynamoDB データベースから ApsaraDB for MongoDB への移行」をご参照ください。--id=nimo-shake
    logLevelログレベル。有効な値: noneerrorwarninfodebug。デフォルト値:info--logLevel=info
    sourceAccessKeyIDソース Amazon DynamoDB データベースへの接続に使用する AccessKey ID。--sourceAccessKeyID=xxxxxxxxxx
    sourceSecretAccessKeyソース Amazon DynamoDB データベースへの接続に使用するシークレットアクセスキー。--sourceSecretAccessKey=xxxxxxxxxx
    sourceSessionToken(任意)ソース Amazon DynamoDB データベースへのアクセスに使用するセッショントークン。--sourceSessionToken=xxxxxxxxxx
    sourceRegion(任意)ソース Amazon DynamoDB データベースが配置されているリージョン。--sourceRegion=us-east-2
    qpsFullScan コマンドをテーブルに対して 1 秒間に実行する回数。デフォルト値:10000--qpsFull=10000
    qpsFullBatchNum1 秒間にフェッチするデータエントリ数。デフォルト値:128--qpsFullBatchNum=128
    targetAddress送信先 ApsaraDB for MongoDB データベースのエンドポイント。エンドポイントの確認方法については、「レプリカセットインスタンスへの接続」または「シャードクラスターインスタンスへの接続」をご参照ください。--targetAddress=mongodb://username:password@s-*****-pub.mongodb.rds.aliyuncs.com:3717
    diffOutputFile不整合データを保存するファイル名。デフォルト値:nimo-full-check-diff--diffOutputFile=nimo-full-check-diff
    parallel整合性チェックに使用するスレッド数。デフォルト値:16--parallel=16
    sampleコレクションごとにチェックするドキュメントの最大数。すべてのドキュメントをチェックする場合は 0 を指定します。デフォルト値:1000--sample=1000
    filterCollectionWhiteチェック対象のコレクション名のセミコロン区切りの許可リスト。リストに記載されたコレクションのみがチェックされます。--filterCollectionWhite=ci;c2
    filterCollectionBlackチェック対象から除外するコレクション名のセミコロン区切りの拒否リスト。リストに記載されていないコレクションがすべてチェックされます。--filterCollectionBlack=ci;c2
    convertType移行中にソースデータが変換されたかどうかを指定します。有効な値:raw(変換なし)、change(変換あり — 例:{"hello":"1"}{"hello": 1})。この値は、移行時に設定した値と一致させる必要があります。一致しない場合、チェックは失敗します。--convertType=change
    versionNimoFullCheck のバージョン番号を表示します。値は不要です。--version
    helpサポートされるすべてのパラメーターを表示します。--help

結果の解釈

  • 成功:チェックがエラーなく完了すると、NimoFullCheck は full check done! を出力します。

  • 失敗:NimoFullCheck は終了し、エラーメッセージを返します。エラーメッセージを確認して、問題の原因を特定してください。