Setelah menyelesaikan migrasi data dari Amazon DynamoDB ke ApsaraDB for MongoDB, Anda perlu memverifikasi bahwa seluruh record telah ditransfer dengan benar. NimoFullCheck adalah alat Alibaba Cloud yang mengotomatiskan proses verifikasi ini melalui pemeriksaan konsistensi dua fase antara kedua database tersebut.
Prasyarat
Sebelum memulai, pastikan Anda telah:
Menyelesaikan migrasi data penuh dari Amazon DynamoDB ke ApsaraDB for MongoDB menggunakan NimoShake. Untuk detailnya, lihat Migrasikan database Amazon DynamoDB ke ApsaraDB for MongoDB menggunakan NimoShake.
Batasan
NimoFullCheck hanya mendukung pemeriksaan konsistensi untuk migrasi data penuh. Menjalankan pemeriksaan setelah sinkronisasi data inkremental akan menghasilkan hasil yang tidak konsisten.
Cara kerja NimoFullCheck
NimoFullCheck menggunakan ApsaraDB for MongoDB sebagai garis dasar dan memverifikasi apakah data di Amazon DynamoDB sesuai dengannya. Pemeriksaan ini dilakukan dalam dua fase berurutan:
Pemeriksaan singkat: Membandingkan jumlah item di setiap tabel DynamoDB dengan jumlah dokumen di koleksi ApsaraDB for MongoDB yang sesuai. Jika jumlahnya berbeda, pemeriksaan akan dihentikan dan mengembalikan error.
Pemeriksaan presisi: Dijalankan setelah pemeriksaan singkat berhasil. NimoFullCheck mengambil dan mengurai data dari Amazon DynamoDB, lalu membandingkannya dengan ApsaraDB for MongoDB:
Jika data berisi unique indexes, NimoFullCheck membandingkan record berdasarkan indeks tersebut.
Jika data tidak memiliki unique indexes, NimoFullCheck membandingkan semua entri satu per satu. Proses ini lebih lambat.
Jalankan NimoFullCheck
Unduh paket NimoShake.
Catatan Unduh paket NimoShake terbaru dari NimoShake releases.wget https://github.com/alibaba/NimoShake/releases/download/release-v1.0.0-20191015/nimo.tar.gzEkstrak paket tersebut.
tar zxvf nimo.tar.gzMasuk ke direktori
nimo.cd nimoJalankan NimoFullCheck dengan parameter yang diperlukan.
./nimo-full-check.linux --<Parameter 1>=<Value 1> --<Parameter 2>=<Value 2>Tabel berikut menjelaskan parameter-parameter tersebut.

Parameter Deskripsi Contoh idID task migrasi. Atur nilai ini sama dengan ID task yang Anda tentukan saat menjalankan NimoShake. Untuk detailnya, lihat Migrasikan database Amazon DynamoDB ke ApsaraDB for MongoDB menggunakan NimoShake. --id=nimo-shakelogLevelTingkat log. Nilai yang valid: none,error,warn,info,debug. Default:info.--logLevel=infosourceAccessKeyIDAccess key ID untuk menghubungkan ke database Amazon DynamoDB sumber. --sourceAccessKeyID=xxxxxxxxxxsourceSecretAccessKeySecret access key untuk menghubungkan ke database Amazon DynamoDB sumber. --sourceSecretAccessKey=xxxxxxxxxxsourceSessionToken(Opsional) Token session untuk mengakses database Amazon DynamoDB sumber. --sourceSessionToken=xxxxxxxxxxsourceRegion(Opsional) Wilayah tempat database Amazon DynamoDB sumber berada. --sourceRegion=us-east-2qpsFullJumlah eksekusi perintah Scanpada tabel per detik. Default:10000.--qpsFull=10000qpsFullBatchNumJumlah entri data yang diambil per detik. Default: 128.--qpsFullBatchNum=128targetAddressTitik akhir database ApsaraDB for MongoDB tujuan. Untuk detail cara melihat titik akhir, lihat Hubungkan ke instans set replika atau Hubungkan ke instansi kluster sharded. --targetAddress=mongodb://username:password@s-*****-pub.mongodb.rds.aliyuncs.com:3717diffOutputFileNama file yang menyimpan data yang tidak konsisten. Default: nimo-full-check-diff.--diffOutputFile=nimo-full-check-diffparallelJumlah thread yang digunakan untuk pemeriksaan konsistensi. Default: 16.--parallel=16sampleJumlah maksimum dokumen yang diperiksa per koleksi. Atur ke 0untuk memeriksa semua dokumen. Default:1000.--sample=1000filterCollectionWhiteDaftar izin nama koleksi yang dipisahkan dengan titik koma untuk diperiksa. Hanya koleksi yang tercantum yang akan diperiksa. --filterCollectionWhite=ci;c2filterCollectionBlackDaftar larangan nama koleksi yang dipisahkan dengan titik koma untuk dikecualikan. Semua koleksi kecuali yang tercantum akan diperiksa. --filterCollectionBlack=ci;c2convertTypeApakah data sumber dikonversi selama migrasi. Nilai yang valid: raw(tidak dikonversi),change(dikonversi — misalnya,{"hello":"1"}menjadi{"hello": 1}). Nilai ini harus sesuai dengan nilai yang Anda atur selama migrasi; jika tidak, pemeriksaan akan gagal.--convertType=changeversionMenampilkan nomor versi NimoFullCheck. Tidak memerlukan nilai. --versionhelpMenampilkan semua parameter yang didukung. --help
Interpretasi hasil
Berhasil: NimoFullCheck mencetak
full check done!ketika pemeriksaan selesai tanpa error.Gagal: NimoFullCheck keluar dan mengembalikan pesan error. Tinjau pesan error tersebut untuk mengidentifikasi masalahnya.