เราเพิ่งเริ่มดู CDC ด้วย ฉันไม่ใช่ผู้เชี่ยวชาญในเรื่องนี้ แต่ฉันคิดว่าฉันมีคำตอบสำหรับคำถามของคุณ
ส่วนใหญ่ CDC จะช่วยให้คุณบรรลุเป้าหมายของการติดตามย้อนหลังได้อย่างสมบูรณ์ แต่ฉันไม่คิดว่ามันจะพาคุณไปถึงที่นั่น
ก่อนปิด:
เราทำการเปลี่ยนแปลงสกีมาฐานข้อมูลบ่อยครั้ง ... มีกลไกในการอัพเดตตาราง CDC เป็นสคีมาใหม่หรือไม่
และนี่คือที่ฉันคิดว่า CDC จะล้มเหลวคุณ MSDN เอกสารภายใต้หัวข้อ "การทำความเข้าใจการเปลี่ยนแปลงที่ติดตามค่าใช้จ่าย" สวยชัดเจนว่ามันจะไม่ติดตามการเปลี่ยนแปลงสคีสำหรับคุณ ตัวอย่างเช่นกับAlter Table Add Column
:
หากมีการเพิ่มคอลัมน์ใหม่ในตารางการติดตามการเปลี่ยนแปลงการเพิ่มคอลัมน์จะไม่ถูกติดตาม เฉพาะการอัปเดตและการเปลี่ยนแปลงที่เกิดขึ้นกับคอลัมน์ใหม่เท่านั้นที่จะถูกติดตาม
Drop Column
ค่อนข้างซับซ้อนกว่าเล็กน้อย
อย่างไรก็ตามคุณควรใช้สคริปต์ DB เพื่อเปลี่ยนสคีมาของคุณดังนั้นคุณไม่จำเป็นต้องพึ่งพา CDC ที่นี่ ที่ช่วยให้คุณมีความสอดคล้องระหว่าง QA และแผนการผลิตของคุณ และการเปลี่ยนเป็น QA ควรดำเนินการโดยสคริปต์ดังนั้นการเปลี่ยนแปลงเดียวกันนี้สามารถนำไปใช้กับ Prod ได้ ไม่ควรยากเกินกว่าที่จะแยกการเปลี่ยนแปลงสคีมาออกจากสคริปต์เหล่านั้น นี่อาจหมายความว่ามิติ "เวลา" ของประวัติของคุณถูกขับเคลื่อนด้วยเวอร์ชันแทนที่จะเป็นเวลาจริง แต่ผลลัพธ์สุดท้ายจะเหมือนกัน
หากคุณยังไม่มีให้สร้างตารางเพื่อติดตามเวอร์ชันของสคีมาฐานข้อมูลของคุณ จากนั้นวางตารางเวอร์ชันสกีมาของฐานข้อมูลภายใต้ CDC เพื่อให้คุณสามารถจัดแนวการเปลี่ยนแปลงของสคีมาให้เข้ากับการเปลี่ยนแปลงด้วยกล้องจุลทรรศน์ภายในตารางเฉพาะ
เพื่อความเข้าใจของฉันคุณควรเห็นข้อมูลที่เพิ่มในคอลัมน์ใหม่โดยไม่คำนึงว่า CDC ไม่แสดงการเปลี่ยนแปลงสคีมา และการย้ายข้อมูลจากตารางหนึ่งไปอีกตารางหนึ่งก็ควรได้รับจาก CDC ด้วย
มีวิธีปฏิบัติที่ดีที่สุดสำหรับวิธีที่คุณจัดการกับข้อมูลที่ถูกจับเมื่อทำการย้ายสกีมาฐานข้อมูลหรือไม่
ปฏิบัติเช่นเดียวกับที่คุณจะปฏิบัติต่อการตรวจสอบบัญชี คุณต้องเข้าใจสิ่งที่คุณกำลังตรวจสอบสาเหตุที่คุณตรวจสอบและระยะเวลาที่คุณต้องเก็บข้อมูลนั้นไว้ ขอบเขตและการเก็บรักษาเป็นสองแมลงที่ใหญ่ที่สุดเมื่อมันมาถึงงานเช่นนี้
เครื่องมือการรายงานของ CDC นั้นเข้มงวดมากดังนั้นคุณต้องรู้บริบทของการเปลี่ยนแปลง มันง่ายเกินไปที่จะพูดว่า "ติดตามทุกอย่าง !" และจบลงด้วยสิ่งที่ใช้งานได้เป็นผล ในทำนองเดียวกันคุณสามารถเพิ่มขนาดของฐานข้อมูลของคุณเป็นสองเท่าโดยเก็บสำเนาของการเปลี่ยนแปลงทุกครั้ง บนโต๊ะปั่นสูงที่มีเม็ดมีดและจำนวนลบมากมายคุณจะพบกับการเติบโตทางดาราศาสตร์ นั่นไม่ใช่สิ่งเลวร้ายในตัวของมันเอง แต่คุณต้องใช้งบประมาณสำหรับการเติบโตนั้นและมีวิธีการตรวจสอบข้อมูลทั้งหมดที่สร้างขึ้น
ดังนั้นสิ่งนี้จะทำให้คุณกลับไปสู่ความเข้าใจว่าทำไมคุณถึงถูกผลักดันให้มีการตรวจสอบย้อนกลับอย่างสมบูรณ์ มีเหตุผลที่ถูกต้องสำหรับข้อกำหนดดังกล่าว แต่คุณจะไม่สามารถจัดโครงสร้างการตรวจสอบที่มีประสิทธิภาพของฐานข้อมูลจนกว่าคุณจะรู้ว่าทำไมคุณต้องปฏิบัติตามข้อกำหนดนั้น