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

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

最終更新日:Jun 22, 2026

NimoFullCheck は、Alibaba Cloud が開発した、ソースの Amazon DynamoDB と送信先の ApsaraDB for MongoDB との間のデータ整合性を検証するためのツールです。このトピックでは、NimoFullCheck を使用してデータ整合性を検証する方法について説明します。

前提条件

NimoShake を使用して、Amazon DynamoDB から ApsaraDB for MongoDB にデータを移行済みであること。詳細については、「NimoShake を使用した Amazon DynamoDB から Alibaba Cloud への移行」をご参照ください。

背景情報

NimoFullCheck は、NimoShake による移行後に、ソースの Amazon DynamoDB と送信先の ApsaraDB for MongoDB との間のデータ整合性を検証するために使用されます。

検証プロセスは、次の 2 つの部分で構成されます。

  • 簡易チェック:Amazon DynamoDB テーブルのアイテム数と ApsaraDB for MongoDB コレクションのドキュメント数を比較します。数が一致しない場合、プロセスは終了し、エラーを報告します。

  • 詳細チェック:簡易チェックに合格すると、詳細チェックが開始されます。ツールはソースからデータをフェッチして解析します。一意なインデックスが存在する場合、ツールはそれを使用して ApsaraDB for MongoDB とのデータ整合性を検証します。一意なインデックスが見つからない場合、ツールはソースと送信先のすべてのデータアイテムを 1 つずつ比較するため、処理が遅くなる可能性があります。

注意事項

  • NimoFullCheck は、完全なデータ移行の整合性検証のみをサポートします。増分データ同期のフェーズで検証を実行すると、ツールはデータが不整合であると報告します。

  • NimoFullCheck は一方向の検証を実行します。送信先の ApsaraDB for MongoDB のデータをベースラインとして使用し、ソースの Amazon DynamoDB のデータを検証します。

操作手順

以下の手順では、Ubuntu 上で NimoFullCheck を使用して Amazon DynamoDB と ApsaraDB for MongoDB 間のデータ整合性を検証する方法を示します。

  1. 次のコマンドを実行して、NimoShake パッケージをダウンロードします。

    wget https://github.com/alibaba/NimoShake/releases/download/release-v1.0.0-20191015/nimo.tar.gz
    説明

    最新バージョンの NimoShake パッケージをダウンロードすることを推奨します。ダウンロードリンクについては、「NimoShake」をご参照ください。

  2. 次のコマンドを実行して、NimoShake パッケージを解凍します。

    tar zxvf nimo.tar.gz
  3. パッケージを解凍した後、cd nimo コマンドを実行して nimo ディレクトリに移動します。

  4. 次のコマンドに必要なパラメーターを指定して実行し、検証を開始します。

    ./nimo-full-check.linux --<parameter>=<value> --<parameter>=<value>

    次の表にパラメーターを示します。

    パラメーター

    説明

    id

    移行タスクの ID です。この ID は、NimoShake の移行タスクで指定された ID と一致する必要があります。詳細については、「NimoShake を使用した Amazon DynamoDB から Alibaba Cloud への移行」をご参照ください。

    --id=nimo-shake

    logLevel

    ログレベルです。有効な値:

    • none:ログは出力されません。

    • error:エラーレベルの情報を含むログ。

    • warn:警告レベルの情報を含むログ。

    • info:現在のシステムステータスを反映するログ。

    • debug:デバッグ情報を含むログ。

    デフォルト値:info。

    --logLevel=info

    sourceAccessKeyID

    ソース Amazon DynamoDB のアクセスキー ID です。

    --sourceAccessKeyID=xxxxxxxxxx

    sourceSecretAccessKey

    ソース Amazon DynamoDB のシークレットアクセスキーです。

    --sourceSecretAccessKey=xxxxxxxxxx

    sourceSessionToken

    ソース Amazon DynamoDB のセッショントークンです。このパラメーターはオプションです。

    --sourceSessionToken=xxxxxxxxxx

    sourceRegion

    ソース Amazon DynamoDB インスタンスのリージョンです。このパラメーターはオプションです。

    --sourceRegion=us-east-2

    qpsFull

    テーブルに対する Scan コマンドの頻度です。1 秒あたりに Scan を呼び出すことができる最大回数を指定します。デフォルト値:10000。

    --qpsFull=10000

    qpsFullBatchNum

    各 Scan 操作でフェッチするデータエントリの数です。デフォルト:128。

    --qpsFullBatchNum=128

    targetAddress

    送信先 ApsaraDB for MongoDB インスタンスのエンドポイントです。エンドポイントを確認するには、「レプリカセットインスタンスへの接続」または「シャードクラスターインスタンスへの接続」をご参照ください。

    例:mongodb://username:password@s-*****-pub.mongodb.rds.aliyuncs.com:3717

    --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 で、比較のためにテーブルから最大 1,000 ドキュメントがサンプリングされることを意味します。

    --sample=1000

    filterCollectionWhite

    検証するコレクションのホワイトリストです。指定されたコレクションのみが検証されます。たとえば、--filterCollectionWhite=c1;c2 はコレクション c1 と c2 のみを検証します。

    --filterCollectionWhite=c1;c2

    filterCollectionBlack

    検証から除外するコレクションのブラックリストです。たとえば、--filterCollectionBlack=c1;c2 は、c1 と c2 を除くすべてのコレクションが検証されることを示します。

    --filterCollectionBlack=c1;c2

    convertType

    移行フェーズで DynamoDB のデータ型が変換されたかどうかを指定します。有効な値:

    • raw:データは変換されずに直接書き込まれます。

    • change:データは変換されます。たとえば、{"hello":"1"}{"hello": 1} に変換されます。

    説明

    この値は、移行中に使用された convertType の設定と一致する必要があります。不一致の場合、検証は失敗します。

    --convertType=change

    version

    NimoFullCheck の現在のバージョン番号を出力します。

    説明

    このパラメーターは値を取らないフラグです。--version フラグを含めると、ツールはバージョン番号を出力して終了します。

    --version

    help

    NimoFullCheck でサポートされているすべてのパラメーターを表示します。

    --help

    説明

    検証が成功すると、full check done! というメッセージが表示されます。致命的なエラーが発生した場合、プログラムは終了し、エラーメッセージを出力します。