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

ApsaraDB for MongoDB:NimoFullCheckを使用して移行後のデータの整合性を確認する

最終更新日:Jun 13, 2024

NimoFullCheckは、Amazon DynamoDBデータベースとApsaraDB for MongoDBデータベース間のデータの整合性をチェックするためにAlibaba Cloudによって開発されたツールです。 このトピックでは、Amazon DynamoDBデータベースからApsaraDB for MongoDBデータベースにデータを移行した後、NimoFullCheckを使用してデータの整合性を確認する方法について説明します。

前提条件

データは、NimoShakeを使用して、Amazon DynamoDBデータベースからApsaraDB for MongoDBデータベースに移行されます。 詳細については、「NimoShakeを使用したAmazon DynamoDBデータベースからApsaraDB For MongoDBへのデータの移行」をご参照ください。

背景情報

Amazon DynamoDBデータベースからApsaraDB for MongoDBデータベースにデータを移行した後、NimoFullCheckを使用して2つのデータベース間のデータの整合性を確認できます。

チェックは次の2つのステップで構成されます。

  • 簡単なチェック: Amazon Dynamoデータベースのテーブルのアイテム数が、ApsaraDB for MongoDBデータベースの対応するコレクションのドキュメント数と等しいかどうかを確認します。 番号が異なる場合、チェックは終了し、エラーメッセージが返されます。 返されたエラーメッセージに基づいて問題を特定できます。

  • 正確なチェック: 簡単なチェックに合格した後、2つのデータベースのデータを正確に比較します。 NimoFullCheckは、Amazon Dynamoデータベースからデータをフェッチし、データを解析します。 データに一意のインデックスが含まれている場合、NimoFullCheckは、一意のインデックスに基づいて、データをターゲットApsaraDB for MongoDBデータベースのデータと比較します。 データに一意のインデックスが含まれていない場合、NimoFullCheckは2つのデータベースのすべてのデータエントリを1つずつ比較します。

使用上の注意

  • NimoFullCheckは、完全データ移行の整合性チェックのみをサポートします。 増分データ同期後にデータの整合性をチェックすると、結果に一貫性がありません。

  • NimoFullCheckは、ApsaraDB for MongoDBデータベースのデータをチェックのベースラインとして使用します。 つまり、NimoFullCheckは、Amazon DynamoDBデータベースのデータがApsaraDB for MongoDBデータベースのデータと一致しているかどうかを確認します。

手順

次の手順では、UbuntuオペレーティングシステムでNimoFullCheckを実行することを前提としています。

  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ディレクトリに移動します。

  4. 次のコマンドを実行して、必要なパラメーターでNimoFullCheckを起動します。

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

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

    パラメーター

    説明

    id

    移行タスクのID。 NimoShakeを使用してデータを移行するときに指定された移行タスクのIDに値を設定します。 詳細については、「NimoShakeを使用したAmazon DynamoDBデータベースからApsaraDB For MongoDBへのデータの移行」をご参照ください。

    -- 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秒あたりに実行された回数。 デフォルト値: 10000。

    -- qpsFull=10000

    qpsFullBatchNum

    1秒あたりにフェッチするデータエントリの数。 デフォルト値: 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

    サンプル

    各コレクションでチェックするドキュメントの最大数。 値0は、コレクション内のすべてのドキュメントがチェックされていることを示します。 デフォルト値は 1000 です。 値1000は、コレクション内で最大1,000のドキュメントをチェックできることを示します。

    -- sample=1000

    filterCollectionWhite

    整合性チェック用のコレクションホワイトリスト。 チェックする必要があるコレクションの名前に値を設定します。 例: -- filterCollectionWhite = c1;c2。コレクションc1とc2のみがチェックされていることを示します。

    -- filterCollectionWhite=ci;c2

    filterCollectionBlack

    整合性チェック用のコレクションブラックリスト。 チェックする必要のないコレクションの名前に値を設定します。 例: -- filterCollectionBlack = c1;c2。c1とc2以外のすべてのコレクションがチェックされていることを示します。

    -- filterCollectionBlack=ci;c2

    convertType

    Dynamoプロトコルを使用するソースデータが移行中に変換されたかどうかを指定します。 有効な値:

    • raw: データは変換されずに宛先データベースに書き込まれました。

    • change: データは、ターゲットデータベースに書き込まれる前に変換されました。 たとえば、{"hello":"1"}{"hello": 1} に変換されました。

    説明

    パラメーターの値は、移行用に指定された値と同じである必要があります。 値が異なる場合、チェックは失敗します。

    -- convertType=change

    version

    NimoFullCheckのバージョン番号を表示します。

    説明

    パラメーターの値を指定する必要はありません。 バージョン番号を表示する必要がある場合は、コマンドに -- versionパラメーターを追加します。

    -- version

    help

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

    -- ヘルプ

    説明

    チェックが成功した場合、メッセージの完全なチェックが完了しました! が返されます。 エラーによりチェックが終了した場合、NimoFullCheckは終了し、エラーメッセージが返されます。 返されたエラーメッセージに基づいて問題を見つけることができます。