全部产品
Search
文档中心

ApsaraDB for MongoDB:Gunakan NimoFullCheck untuk memeriksa konsistensi data setelah migrasi

更新时间:Jul 02, 2025

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.

  1. Jalankan perintah berikut untuk mengunduh paket NimoShake:

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

    Kami merekomendasikan agar Anda mengunduh paket NimoShake terbaru. Untuk informasi lebih lanjut, lihat NimoShake.

  2. Jalankan perintah berikut untuk mengekstrak paket NimoShake:

    tar zxvf nimo.tar.gz
  3. Setelah Anda mengekstrak paket, jalankan perintah cd nimo untuk masuk ke direktori nimo.

  4. 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.NimoFullCheck parameters

    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-shake

    logLevel

    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=info

    sourceAccessKeyID

    ID kunci akses yang digunakan untuk terhubung ke database sumber Amazon DynamoDB.

    --sourceAccessKeyID=xxxxxxxxxx

    sourceSecretAccessKey

    Kunci akses rahasia yang digunakan untuk terhubung ke database sumber Amazon DynamoDB.

    --sourceSecretAccessKey=xxxxxxxxxx

    sourceSessionToken

    Opsional. Token sesi yang digunakan untuk mengakses database sumber Amazon DynamoDB.

    --sourceSessionToken=xxxxxxxxxx

    sourceRegion

    Opsional. Wilayah tempat database sumber Amazon DynamoDB berada.

    --sourceRegion=us-east-2

    qpsFull

    Jumlah kali perintah Scan dijalankan pada tabel per detik. Nilai default: 10000.

    --qpsFull=10000

    qpsFullBatchNum

    Jumlah entri data yang diambil per detik. Nilai default: 128.

    --qpsFullBatchNum=128

    targetAddress

    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:3717

    diffOutputFile

    Nama file yang menyimpan informasi tentang data yang tidak konsisten. Jika Anda tidak menentukan parameter ini, nama file default nimo-full-check-diff digunakan.

    --diffOutputFile=nimo-full-check-diff

    parallel

    Jumlah utas yang digunakan untuk pemeriksaan konsistensi. Nilai default: 16.

    --parallel=16

    sample

    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=1000

    filterCollectionWhite

    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;c2

    filterCollectionBlack

    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;c2

    convertType

    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}.

    Catatan

    Nilai parameter ini harus sama dengan yang ditentukan untuk migrasi. Jika nilainya berbeda, pemeriksaan gagal.

    --convertType=change

    version

    Menampilkan nomor versi NimoFullCheck.

    Catatan

    Anda tidak perlu menentukan nilai untuk parameter ini. Jika Anda perlu menampilkan nomor versi, tambahkan parameter --version ke perintah.

    --version

    help

    Menampilkan semua parameter yang didukung oleh NimoFullCheck.

    --help

    Catatan

    Jika 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.