Kami juga baru-baru ini mulai melihat CDC. Saya bukan ahli dalam hal ini, tetapi saya pikir saya punya beberapa jawaban untuk pertanyaan Anda.
Untuk sebagian besar, CDC akan membantu Anda mencapai tujuan Anda dari sejarah yang benar-benar dapat dilacak, tetapi saya tidak berpikir itu akan membawa Anda semua jalan ke sana.
Pertama:
kami sering membuat perubahan pada skema database ... Apakah ada mekanisme untuk memperbarui tabel CDC ke skema baru
Dan di sinilah saya pikir CDC akan mengecewakan Anda. The MSDN dokumentasi di bawah bagian "Memahami Perubahan Pelacakan Overhead" cukup jelas bahwa itu tidak akan melacak perubahan skema untuk Anda. Misalnya, dengan Alter Table Add Column
:
Jika kolom baru ditambahkan ke tabel perubahan dilacak, penambahan kolom tidak dilacak. Hanya pembaruan dan perubahan yang dilakukan pada kolom baru dilacak.
Drop Column
sedikit lebih kompleks.
Namun, Anda harus menggunakan skrip DB untuk mengubah skema Anda sehingga Anda tidak harus bergantung pada CDC di sini. Itu memungkinkan Anda untuk memiliki konsistensi antara QA dan skema Produksi Anda. Dan perubahan ke QA harus dilakukan oleh skrip sehingga perubahan yang sama persis dapat diterapkan ke Prod. Seharusnya tidak terlalu sulit untuk mengekstrak perubahan skema dari skrip tersebut. Ini mungkin berarti bahwa dimensi "waktu" dari riwayat Anda digerakkan oleh versi alih-alih waktu yang sebenarnya, tetapi hasil akhirnya akan sama.
Jika Anda belum memilikinya, buat tabel untuk melacak versi skema basis data Anda. Dan kemudian letakkan tabel versi skema database di bawah CDC sehingga Anda dapat menyelaraskan perubahan makroskopis ke skema terhadap perubahan mikroskopis dalam tabel tertentu.
Menurut pemahaman saya, Anda masih harus melihat data ditambahkan ke kolom baru terlepas dari CDC tidak menunjukkan perubahan skema. Dan migrasi data dari tabel ke tabel juga harus diambil oleh CDC.
Adakah praktik terbaik untuk cara Anda menangani data yang diambil saat memigrasi skema database?
Perlakukan itu seperti Anda akan memperlakukan audit. Anda perlu memahami apa yang Anda periksa, mengapa Anda memeriksanya, dan berapa lama Anda perlu menyimpan informasi itu. Lingkup dan retensi adalah dua bugaboo terbesar dalam hal tugas seperti ini.
Alat pelaporan CDC dapat dipahami dengan mudah, jadi Anda harus tahu konteks perubahannya. Terlalu mudah untuk mengatakan "lacak semuanya !" dan berakhir dengan tidak ada yang dapat digunakan sebagai hasilnya. Demikian juga, Anda bisa menggandakan ukuran database Anda dengan menyimpan salinan setiap perubahan. Di atas meja churn tinggi dengan banyak sisipan dan penghapusan, Anda akan berakhir dengan pertumbuhan astronomi. Itu tidak buruk dalam dirinya sendiri, tetapi Anda perlu menganggarkan untuk pertumbuhan itu dan memiliki sarana untuk memeriksa semua data yang dihasilkan.
Jadi ini membuat Anda kembali untuk memahami mengapa Anda didorong untuk memiliki keterlacakan yang lengkap. Tentu ada alasan yang sah untuk persyaratan itu. Tetapi Anda tidak akan dapat menyusun audit efektif dari basis data Anda sampai Anda tahu mengapa Anda harus memenuhi persyaratan itu.