NimoFullCheck adalah alat yang dikembangkan oleh Alibaba Cloud untuk memeriksa konsistensi data antara database Amazon DynamoDB dan ApsaraDB for MongoDB. Topik ini menjelaskan cara menggunakan NimoFullCheck untuk memeriksa konsistensi data setelah Anda memigrasikan data dari database Amazon DynamoDB ke ApsaraDB for MongoDB.
Prasyarat
Data telah dimigrasikan dari database Amazon DynamoDB ke ApsaraDB for MongoDB dengan menggunakan NimoShake. Untuk informasi lebih lanjut, lihat Migrasikan Data dari Database Amazon DynamoDB ke ApsaraDB for MongoDB dengan Menggunakan NimoShake.
Informasi latar belakang
Setelah Anda memigrasikan data dari database Amazon DynamoDB ke ApsaraDB for MongoDB, Anda dapat menggunakan NimoFullCheck untuk memeriksa konsistensi data antara kedua database tersebut.
Pemeriksaan terdiri dari dua langkah berikut:
Pemeriksaan singkat: Memeriksa apakah jumlah item dalam tabel di database Amazon DynamoDB sama dengan jumlah dokumen dalam koleksi yang sesuai di database ApsaraDB for MongoDB. Jika jumlahnya berbeda, pemeriksaan menghentikan tugas dan pesan kesalahan dikembalikan. Anda dapat menemukan masalah berdasarkan pesan kesalahan yang dikembalikan.
Pemeriksaan presisi: Membandingkan data di kedua database secara tepat setelah pemeriksaan singkat berhasil dilewati. NimoFullCheck mengambil data dari database Amazon DynamoDB dan mengurai data tersebut. Jika data tersebut berisi indeks unik, NimoFullCheck membandingkan data tersebut dengan data di database tujuan ApsaraDB for MongoDB berdasarkan indeks unik. Jika data tidak berisi indeks unik, NimoFullCheck membandingkan semua entri data di kedua database satu per satu, yang mana proses ini lambat.
Catatan penggunaan
NimoFullCheck hanya mendukung pemeriksaan konsistensi untuk migrasi data penuh. Jika Anda memeriksa konsistensi data setelah sinkronisasi data tambahan, hasilnya tidak konsisten.
NimoFullCheck menggunakan data di database ApsaraDB for MongoDB sebagai dasar untuk pemeriksaan. Dengan kata lain, NimoFullCheck memeriksa apakah data di database Amazon DynamoDB konsisten dengan data di database ApsaraDB for MongoDB.
Prosedur
Prosedur berikut mengasumsikan bahwa Anda menjalankan NimoFullCheck di sistem operasi Ubuntu.
Jalankan perintah berikut untuk mengunduh paket NimoShake:
wget https://github.com/alibaba/NimoShake/releases/download/release-v1.0.0-20191015/nimo.tar.gzCatatanKami merekomendasikan agar Anda mengunduh paket NimoShake terbaru. Untuk informasi lebih lanjut, lihat NimoShake.
Jalankan perintah berikut untuk mengekstrak paket NimoShake:
tar zxvf nimo.tar.gzSetelah Anda mengekstrak paket, jalankan perintah
cd nimountuk masuk ke direktori nimo.Jalankan perintah berikut untuk memulai NimoFullCheck dengan parameter yang diperlukan:
./nimo-full-check.linux --<Parameter 1>=<Value 1> --<Parameter 2>=<Value 2>Tabel berikut menjelaskan parameter NimoFullCheck.

Parameter
Deskripsi
Contoh
id
ID tugas migrasi. Atur nilai ini menjadi ID tugas migrasi yang ditentukan saat Anda menggunakan NimoShake untuk memigrasikan data. Untuk informasi lebih lanjut, lihat Migrasikan data dari database Amazon DynamoDB ke ApsaraDB for MongoDB dengan menggunakan NimoShake.
--id=nimo-shakelogLevel
Tingkat log yang akan dihasilkan. Nilai valid:
none: tidak menghasilkan log.
error: menghasilkan log yang berisi pesan kesalahan.
warn: menghasilkan log yang berisi peringatan.
info: menghasilkan log yang menunjukkan status sistem.
debug: menghasilkan log yang berisi informasi debugging.
Nilai default: info.
--logLevel=infosourceAccessKeyID
ID kunci akses yang digunakan untuk terhubung ke database sumber Amazon DynamoDB.
--sourceAccessKeyID=xxxxxxxxxxsourceSecretAccessKey
Kunci akses rahasia yang digunakan untuk terhubung ke database sumber Amazon DynamoDB.
--sourceSecretAccessKey=xxxxxxxxxxsourceSessionToken
Opsional. Token sesi yang digunakan untuk mengakses database sumber Amazon DynamoDB.
--sourceSessionToken=xxxxxxxxxxsourceRegion
Opsional. Wilayah tempat database sumber Amazon DynamoDB berada.
--sourceRegion=us-east-2qpsFull
Jumlah kali perintah
Scandijalankan pada tabel per detik. Nilai default: 10000.--qpsFull=10000qpsFullBatchNum
Jumlah entri data yang diambil per detik. Nilai default: 128.
--qpsFullBatchNum=128targetAddress
Titik akhir database tujuan ApsaraDB for MongoDB. Untuk informasi lebih lanjut tentang cara melihat titik akhir, lihat Hubungkan ke instance set replika atau Hubungkan ke instance kluster sharded.
Contoh: mongodb://username:password@s-*****-pub.mongodb.rds.aliyuncs.com:3717.
--targetAddress=mongodb://username:password@s-*****-pub.mongodb.rds.aliyuncs.com:3717diffOutputFile
Nama file yang menyimpan informasi tentang data yang tidak konsisten. Jika Anda tidak menentukan parameter ini, nama file default
nimo-full-check-diffdigunakan.--diffOutputFile=nimo-full-check-diffparallel
Jumlah utas yang digunakan untuk pemeriksaan konsistensi. Nilai default: 16.
--parallel=16sample
Jumlah maksimum dokumen yang akan diperiksa di setiap koleksi. Nilai 0 menunjukkan bahwa semua dokumen dalam koleksi diperiksa. Nilai default: 1000. Nilai 1000 menunjukkan bahwa maksimum 1.000 dokumen dapat diperiksa dalam sebuah koleksi.
--sample=1000filterCollectionWhite
Daftar putih koleksi untuk pemeriksaan konsistensi. Atur nilainya menjadi nama koleksi yang harus diperiksa. Contoh:
--filterCollectionWhite = c1;c2, menunjukkan bahwa hanya koleksi c1 dan c2 yang diperiksa.--filterCollectionWhite=ci;c2filterCollectionBlack
Daftar hitam koleksi untuk pemeriksaan konsistensi. Atur nilainya menjadi nama koleksi yang tidak perlu diperiksa. Contoh:
--filterCollectionBlack = c1;c2, menunjukkan bahwa semua koleksi selain c1 dan c2 diperiksa.--filterCollectionBlack=ci;c2convertType
Menentukan apakah data sumber, yang menggunakan protokol Dynamo, dikonversi selama migrasi. Nilai valid:
raw: Data ditulis ke database tujuan tanpa konversi.
change: Data dikonversi sebelum ditulis ke database tujuan. Misalnya,
{"hello":"1"}dikonversi menjadi{"hello": 1}.
CatatanNilai parameter ini harus sama dengan yang ditentukan untuk migrasi. Jika nilainya berbeda, pemeriksaan gagal.
--convertType=changeversion
Menampilkan nomor versi NimoFullCheck.
CatatanAnda tidak perlu menentukan nilai untuk parameter ini. Jika Anda perlu menampilkan nomor versi, tambahkan parameter
--versionke perintah.--versionhelp
Menampilkan semua parameter yang didukung oleh NimoFullCheck.
--helpCatatanJika pemeriksaan berhasil, pesan
full check done!dikembalikan. Jika pemeriksaan menghentikan tugas karena kesalahan, NimoFullCheck keluar dan pesan kesalahan dikembalikan. Anda dapat menemukan masalah berdasarkan pesan kesalahan yang dikembalikan.