{"id":6569,"date":"2022-03-03T11:33:22","date_gmt":"2022-03-03T11:33:22","guid":{"rendered":"http:\/\/itdconsulting.com\/tecnologia-cdc\/"},"modified":"2022-06-13T12:23:52","modified_gmt":"2022-06-13T17:23:52","slug":"tecnologia-cdc","status":"publish","type":"page","link":"https:\/\/itdconsulting.com\/en\/base-de-datos\/mongo-db\/tecnologia-cdc\/","title":{"rendered":"Tecnolog\u00eda CDC"},"content":{"rendered":"<p><img fetchpriority=\"high\" decoding=\"async\" class=\"size-full wp-image-6572 aligncenter\" src=\"https:\/\/itdconsulting.com\/wp-content\/uploads\/2022\/03\/dibujo-de-una-Tecnologia-CDC-con-mapeo-y-redication.jpg\" alt=\"\" width=\"602\" height=\"395\" \/><\/p>\n<p>En las bases de datos, la captura de datos modificados (CDC) es un conjunto de patrones de dise\u00f1o de software que se utilizan para determinar y rastrear los datos que han cambiado para que se puedan tomar medidas utilizando los datos modificados.<\/p>\n<p>CDC es un enfoque para la integraci\u00f3n de datos que se basa en la identificaci\u00f3n, captura y entrega de los cambios realizados en las fuentes de datos empresariales.<\/p>\n<p>CDC ocurre a menudo en entornos de almacenamiento de datos, ya que capturar y preservar el estado de los datos a lo largo del tiempo es una de las funciones principales de un almacenamiento de datos, pero CDC se puede utilizar en cualquier base de datos o sistema de dep\u00f3sito de datos.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>\u00bfQu\u00e9 es la captura de datos modificados?<\/strong><\/p>\n<p>La captura de cambios de datos (CDC) es el proceso de reconocer cu\u00e1ndo se han cambiado los datos en un sistema de origen para que un proceso o sistema posterior pueda realizar ese cambio. Un caso de uso com\u00fan es reflejar el cambio en un sistema de destino diferente para que los datos en los sistemas permanezcan sincronizados.<\/p>\n<p>&nbsp;<\/p>\n<p>Hay muchas formas de implementar un sistema de captura de datos modificados, cada una de las cuales tiene sus beneficios. Esta publicaci\u00f3n explicar\u00e1 algunas implementaciones comunes de CDC y discutir\u00e1 los beneficios y las desventajas de usar cada una. Esta publicaci\u00f3n es \u00fatil para cualquier persona que desee implementar un sistema de captura de datos modificados, especialmente en el contexto de mantener los datos sincronizados entre dos sistemas.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>\u00bfC\u00f3mo se ejecutan?<\/strong><\/p>\n<p>Hay dos formas principales de operar los sistemas de captura de datos modificados. O bien el sistema de origen env\u00eda los cambios al destino, o bien el destino sondea peri\u00f3dicamente el origen y extrae los datos modificados.<\/p>\n<p>Los sistemas basados \u200b\u200ben push a menudo requieren m\u00e1s trabajo para el sistema de origen, ya que necesitan implementar una soluci\u00f3n que comprenda cu\u00e1ndo se realizan los cambios y enviar esos cambios de manera que el destino pueda recibirlos y actuar sobre ellos. El sistema de destino simplemente necesita escuchar los cambios y aplicarlos en lugar de sondear constantemente la fuente y realizar un seguimiento de lo que ya ha capturado. Este enfoque a menudo conduce a una latencia m\u00e1s baja entre el origen y el destino porque tan pronto como se realiza el cambio, se notifica al destino y puede actuar de inmediato, en lugar de sondear los cambios.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>La desventaja<\/strong><\/p>\n<p>La desventaja del enfoque basado en push es que, si el sistema de destino est\u00e1 inactivo o no escucha los cambios por cualquier motivo, los perder\u00e1. Para mitigar esto, se implementan sistemas basados \u200b\u200ben colas entre el origen y el destino para que el origen pueda publicar cambios en la cola y el destino lea de la cola a su propio ritmo. Si el objetivo necesita dejar de escuchar la cola, siempre que recuerde d\u00f3nde estaba en la cola, puede detenerse y reiniciarse donde lo dej\u00f3 sin perder ning\u00fan cambio.<\/p>\n<p>Los sistemas basados \u200b\u200ben extracci\u00f3n a menudo son mucho m\u00e1s simples para el sistema de origen, ya que a menudo requieren que se registre que se ha producido un cambio, generalmente mediante la actualizaci\u00f3n de una columna en la tabla. El sistema de destino es entonces responsable de extraer los datos modificados solicitando cualquier cosa que crea que ha cambiado.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>El beneficio<\/strong><\/p>\n<p>El beneficio de esto es el mismo que el enfoque basado en la cola mencionado anteriormente, en el sentido de que, si el objetivo alguna vez encuentra un problema, debido a que est\u00e1 realizando un seguimiento de lo que ya extrajo, puede reiniciar y continuar donde lo dej\u00f3 sin ning\u00fan problema.<\/p>\n<p>La desventaja del enfoque de extracci\u00f3n es que a menudo aumenta la latencia. Esto se debe a que el objetivo tiene que sondear el sistema de origen en busca de actualizaciones en lugar de que se le informe cuando algo ha cambiado. Esto a menudo conduce a que los datos se extraigan en lotes, desde grandes lotes extra\u00eddos una vez al d\u00eda hasta muchos lotes peque\u00f1os extra\u00eddos con frecuencia.<\/p>\n<p>La regla general es que, si est\u00e1 buscando construir un sistema de procesamiento de datos en tiempo real, entonces se debe usar el enfoque de inserci\u00f3n. Si la latencia no es un gran problema y necesita transferir un gran volumen de actualizaciones masivas, entonces se deben considerar los sistemas basados \u200b\u200ben extracci\u00f3n.<\/p>\n<p>La siguiente secci\u00f3n cubrir\u00e1 los aspectos positivos y negativos de una serie de diferentes mecanismos de CDC que utilizan el enfoque de empujar o tirar.<\/p>\n<p><strong>\u00bfC\u00f3mo implementar el CDC?<\/strong><\/p>\n<p>Hay muchas maneras de implementar un sistema de captura de datos modificados. La mayor\u00eda de los patrones requieren que el sistema de origen indique que se ha producido un cambio en algunos datos, por ejemplo, actualizando una columna espec\u00edfica en una tabla de la base de datos o colocando el registro modificado en una cola. Luego, el sistema de destino tiene que buscar la actualizaci\u00f3n en la columna y buscar el registro modificado o suscribirse a la cola.<\/p>\n<p>Una vez que el sistema de destino tiene los datos modificados, debe reflejarlos en su sistema. Esto podr\u00eda ser tan simple como aplicar una actualizaci\u00f3n a un registro en la base de datos de destino. Esta secci\u00f3n desglosar\u00e1 algunos de los patrones m\u00e1s utilizados. Todos los mecanismos funcionan de manera similar; sin embargo, es c\u00f3mo se implementa lo que cambia.<\/p>\n<p>&nbsp;<\/p>\n<ol>\n<li><strong><em> Versionado de filas<\/em><\/strong><\/li>\n<\/ol>\n<p>El control de versiones de filas es un patr\u00f3n com\u00fan de CDC. Funciona incrementando un n\u00famero de versi\u00f3n en la fila de una base de datos cuando se modifica. Supongamos que tiene una base de datos que almacena datos de clientes. Cada vez que se crea o actualiza un registro para un cliente en la tabla de clientes, se incrementa una columna de versi\u00f3n. La columna de versi\u00f3n solo almacena el n\u00famero de versi\u00f3n de ese registro y le indica cu\u00e1ntas veces ha cambiado.<\/p>\n<p>&nbsp;<\/p>\n<ol start=\"2\">\n<li><strong><em> Actualizar marcas de tiempo<\/em><\/strong><\/li>\n<\/ol>\n<p>En mi experiencia, las marcas de tiempo de actualizaci\u00f3n son los mecanismos CDC m\u00e1s comunes y simples de implementar. Similar a la soluci\u00f3n de control de versiones de filas, cada vez que cambia un registro en la base de datos, actualiza una columna. En lugar de que esta columna almacene el n\u00famero de versi\u00f3n del registro, almacena una marca de tiempo de cu\u00e1ndo se modific\u00f3 el registro.<\/p>\n<p>Con esta soluci\u00f3n, pierde un poco de datos adicionales, ya que ya no sabe cu\u00e1ntas veces se ha cambiado el registro, pero si esto no es importante, los beneficios posteriores valen la pena.<\/p>\n<p>&nbsp;<\/p>\n<ol start=\"3\">\n<li><strong><em> Colas de publicaci\u00f3n y suscripci\u00f3n<\/em><\/strong><\/li>\n<\/ol>\n<p>El patr\u00f3n de publicaci\u00f3n y suscripci\u00f3n (pub\/sub) es el primer patr\u00f3n que utiliza un enfoque de inserci\u00f3n en lugar de extracci\u00f3n. Las soluciones de control de versiones de filas y de marca de tiempo de actualizaci\u00f3n requieren que el sistema de destino \u00abextraiga\u00bb los datos que han cambiado, en un modelo de publicaci\u00f3n\/suscripci\u00f3n, el sistema de origen empuja los datos modificados.<\/p>\n<p>&nbsp;<\/p>\n<ol start=\"4\">\n<li><strong><em> Esc\u00e1neres de registros de bases de datos<\/em><\/strong><\/li>\n<\/ol>\n<p>Este m\u00e9todo implica configurar el sistema de base de datos de origen para que registre cualquier modificaci\u00f3n realizada en los datos dentro de la base de datos. La mayor\u00eda de las tecnolog\u00edas de bases de datos modernas tienen algo como esto incorporado. Es una pr\u00e1ctica bastante com\u00fan tener bases de datos de r\u00e9plica por varias razones, incluidas las copias de seguridad o la descarga de un gran procesamiento de la base de datos principal. Estas bases de datos de r\u00e9plica se mantienen sincronizadas mediante el uso de estos registros. Cuando se realiza una modificaci\u00f3n en el maestro, registra la declaraci\u00f3n en el registro y la r\u00e9plica ejecuta el mismo comando y los dos permanecen sincronizados.<\/p>","protected":false},"excerpt":{"rendered":"<p>En las bases de datos, la captura de datos modificados (CDC) es un conjunto de patrones de dise\u00f1o de software que se utilizan para determinar y rastrear los datos que han cambiado para que se puedan tomar medidas utilizando los datos modificados. CDC es un enfoque para la integraci\u00f3n de datos que se basa en [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":453,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_theme","meta":{"footnotes":""},"class_list":["post-6569","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/itdconsulting.com\/en\/wp-json\/wp\/v2\/pages\/6569","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/itdconsulting.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/itdconsulting.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/itdconsulting.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/itdconsulting.com\/en\/wp-json\/wp\/v2\/comments?post=6569"}],"version-history":[{"count":1,"href":"https:\/\/itdconsulting.com\/en\/wp-json\/wp\/v2\/pages\/6569\/revisions"}],"predecessor-version":[{"id":7268,"href":"https:\/\/itdconsulting.com\/en\/wp-json\/wp\/v2\/pages\/6569\/revisions\/7268"}],"up":[{"embeddable":true,"href":"https:\/\/itdconsulting.com\/en\/wp-json\/wp\/v2\/pages\/453"}],"wp:attachment":[{"href":"https:\/\/itdconsulting.com\/en\/wp-json\/wp\/v2\/media?parent=6569"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}