También hemos comenzado recientemente a buscar en los CDC. No soy un experto en el tema, pero creo que tengo algunas respuestas para sus preguntas.
En su mayor parte, los CDC lo ayudarán a lograr su objetivo de una historia completamente rastreable, pero no creo que lo lleve hasta allí.
Antes que nada:
con frecuencia hacemos cambios en el esquema de la base de datos ... ¿Existe un mecanismo para actualizar la tabla CDC al nuevo esquema?
Y aquí es donde creo que los CDC te fallarán. La documentación de MSDN en la sección "Descripción de los gastos generales de seguimiento de cambios" es bastante clara de que no hará un seguimiento de los cambios de esquema por usted. Por ejemplo, con Alter Table Add Column
:
Si se agrega una nueva columna a la tabla de seguimiento de cambios, no se realiza un seguimiento de la adición de la columna. Solo se rastrean las actualizaciones y los cambios que se realizan en la nueva columna.
Drop Column
Es un poco más complejo.
Sin embargo, debe usar scripts de base de datos para alterar su esquema, por lo que no necesariamente tiene que depender de los CDC aquí. Eso le permite tener consistencia entre sus esquemas de control de calidad y producción. Y el cambio al control de calidad debe realizarse mediante un script para que los mismos cambios exactos se puedan aplicar a Prod. No debería ser demasiado difícil extraer los cambios de esquema de esos scripts. Esto puede significar que la dimensión "tiempo" de su historial dependerá de la versión en lugar del tiempo real, pero el resultado final será el mismo.
Si aún no tiene una, cree una tabla para rastrear la versión del esquema de su base de datos. Y luego coloque esa tabla de versión del esquema de la base de datos en CDC para que pueda alinear los cambios macroscópicos al esquema con los cambios microscópicos dentro de una tabla en particular.
Según tengo entendido, aún debería ver los datos agregados a las nuevas columnas, independientemente de que CDC no muestre el cambio de esquema. Y los CDC también deberían recoger la migración de datos de una tabla a otra.
¿Existen algunas prácticas recomendadas para tratar los datos capturados al migrar el esquema de la base de datos?
Trátelo como trataría una auditoría. Debe comprender qué es lo que está examinando, por qué lo está examinando y cuánto tiempo debe mantener esa información. El alcance y la retención son los dos mayores problemas cuando se trata de una tarea como esta.
Las herramientas de informes de los CDC son comprensiblemente austeras, por lo que debe conocer el contexto de los cambios. Es muy fácil decir "¡rastrea todo !" y terminan con nada que sea utilizable como resultado. Del mismo modo, podría duplicar el tamaño de su base de datos manteniendo una copia de cada cambio. En una mesa de alta rotación con muchas inserciones y eliminaciones, terminará con un crecimiento astronómico. Eso no es malo en sí mismo, pero debe presupuestar ese crecimiento y tener un medio para examinar todos los datos que se generan.
Entonces, esto lo lleva a comprender por qué lo empujan a tener una trazabilidad completa. Ciertamente hay razones válidas para ese requisito. Pero no podrá estructurar su auditoría efectiva de la base de datos hasta que sepa por qué debe cumplir ese requisito.