paint-brush
Kunjamas CDC (Change Data Capture) Sincronización Principio ukax mä qillqatanx amuyasispaukata@Apache
Machaq sarnaqäwi

Kunjamas CDC (Change Data Capture) Sincronización Principio ukax mä qillqatanx amuyasispa

ukata SeaTunnel10m2025/02/23
Read on Terminal Reader

Sinti jaya pachanakawa; Uñxatt’añataki

Mayjt’awi Datos Captura (CDC) ukaxa mä técnica apnaqatawa mayjt’awinaka nivel de fila ukanxa base de datos ukana lurawinakapana (inserciones, actualizaciones, borrados) ukhamaraki yaqha sistemas ukanakaru yatiyañataki kunaymana lurawinakata.
featured image - Kunjamas CDC (Change Data Capture) Sincronización Principio ukax mä qillqatanx amuyasispa
SeaTunnel HackerNoon profile picture

CDC (Mayjt’awi Datos Captura) ukar uñt’ayaña .

Mayjt’awi Datos Captura (CDC) ukaxa mä técnica apnaqatawa mayjt’awinaka nivel de fila ukanxa base de datos ukana lurawinakapa (inserciones, actualizaciones, borrados) ukhamaraki yaqha sistemas ukanakaru yatiyañataki kunaymana lurawinakata. Escenarios de recuperación de desastres ukanx CDC ukax nayraqatax mä primaria ukat mä base de datos de respaldo ukanakamp chikaw datos ukarux sincroniza, ukax chiqpach pachan datos sincronización ukarux primaria ukanx secundario base de datos ukarux yanapt’iwa.

 source ----------> CDC ----------> sink

Apache SeaTunnel ukax CDC ukan uñt’ayatawa

SeaTunnel CDC ukax pä kasta yatiyawinak sincronización uñacht’ayi:

  • Instantánea Uñakipt’aña : Mä tabla ukan sarnaqäwipat yatiyawinak uñakipt’aña.
  • Incremental Tracking : Mä tabla ukanx registro incremental mayjt’awinak uñakipi.

Bloqueo-Free Instantánea Sincronización ukax mä jach’a uñacht’äwiwa

Sincronización de instantáneas sin bloqueo ukax ch’amanchatawa kunatix walja utjki uka plataformas CDC, kunjamakitix Debezium, ukax tablas ukanakax sincronización de datos históricos ukanx bloqueaspawa. Instantánea uñakipañax mä base de datos ukan nayra yatiyawinakap sincronización ukan lurawipawa. Aka lurawixa flujo básico ukaxa akhamawa:

 storage -------------> splitEnumerator ---------- split ----------> reader ^ | | | \----------------- report -----------/

Jaljaña Jaljaña

splitEnumerator (distribuidor split) ukax tabla ukan yatiyawinakap walja jaljanakaruw jaljayi, ukax uñt’ayat yapunakarjamaw (kunjamakitix ID de tabla jan ukax sapa llaves) ukat qhanañchat thakhi tamaparjama.


Procesamiento Paralelo ukaxa mä juk’a pachanakwa lurasi

Sapa jaljawixa yaqha ullart’iriruw churataraki paralelo uñakipañataki. Mä sapa ullart’irix mä conexión ukankaniwa.


Ukax mä juk’a pachanakanwa

Mä jaljawitakix ullart’añ lurawi tukuyatatxa, sapa ullart’irix nayrar sartawip yatiyaraki splitEnumerator ukar kutt’ayañataki. Jaljawitak metadatos ukax akham uñacht’ayatawa:

 String splitId # Routing ID TableId tableId # Table ID SeatunnelRowType splitKeyType # The type of field used for partitioning Object splitStart # Start point of the partition Object splitEnd # End point of the partition


Mä kutix ullart’irix jaljat yatiyawinak katuqxi ukhax SQL uka arsuwinakaw wakiskir uñstayi. Janïr qalltañkamaxa, jichha jaljawixa correspondiente posición ukarux base de datos ukan qillqt’atawa. Jichha jaljawi tukuyatatxa, ullart’irixa yatiyarakiw nayrar sartawi splitEnumerator ukaru aka yatiyawinakampi:

 String splitId # Split ID Offset highWatermark # Log position corresponding to the split, for future validation

Sincronización Incremental ukaxa mä juk’a pachanakwa lurasi

Sincronización incremental ukax mä jamuqaw uñakipañ phaxsi tukuyatat qalltawayi. Aka pachanxa, kuna mayjt’awinakaxa phuqhata yatiyawi taypina utjki ukaxa katjatarakiwa ukatxa chiqapa pachana lurawimpi chikachasiñataki. Aka phaxsinx base de datos ukan registro ukar ist’i (jan ukax, MySQL binlog). Incremental tracking ukax mä rosca ukampiw lurasi, jan binlog ukan pä kuti jaqukipañapataki ukhamarak base de datos ukan cargap jisk’achañataki. Ukatwa, mä ullart’irikiw apnaqasi, ukax mä sapa conexión ukankiwa.

 data log -------------> splitEnumerator ---------- split ----------> reader ^ | | | \----------------- report -----------/


Sincronización incremental uksanxa, taqi jaljawinaka ukhamaraki tablas ukanakaxa instantánea uksatxa mä sapa jaljawiruwa mayachataraki. Aka phaxsinx metadatos jaljatanakax akhamawa:

 String splitId Offset startingOffset # The lowest log start position among all splits Offset endingOffset # Log end position, or "continuous" if ongoing, eg, in the incremental phase List<TableId> tableIds Map<TableId, Offset> tableWatermarks # Watermark for all splits List<CompletedSnapshotSplitInfo> completedSnapshotSplitInfos # Snapshot phase split details


CompletedSnapshotSplitInfo ukax akhamawa:

 String splitId TableId tableId SeatunnelRowType splitKeyType Object splitStart Object splitEnd Offset watermark # Corresponds to the highWatermark in the report

Incremental fase ukan jaljawipax taqi jaljawinakatakix uma chimpuniwa, ukax instantánea phaxsinkiwa. Uka jisk’a uma markaxa ajllitawa qalltañataki sincronización incremental ukataki.

Chiqpachansa-Mä kuti Semántica

Instantánea uñakipaña jan ukax incremental uñakipaña phaxsinx, base de datos ukax sincronización ukatakix mayjt’arakispawa. ¿Kunjamsa mä entrega chiqpachan garantizañäni?

Instantánea Uñakipt’añataki Fase

Instantánea uñakipaña phaxsinxa, sañäni, mä jaljawixa mayjt’awinakaxa utjki ukjaxa sincronizado ukhamawa, kunjamatixa mä fila k3 uñstayaña, mä machaqar tukuyaña k2 , ukhamaraki mä chhaqtayaña k1 . Uñakipt’aña pachanxa jani lurawi uñt’ayawixa apnaqatäkaspa ukhaxa, machaq lurawinakaxa chhaqt’aspawa. SeaTunnel ukax aka tuqitw apnaqi:


  • Nayraqatxa, binlog ukan posición (marca de agua baja) uñakipaña janïr jaljtañ uñxatkasa.
  • Uñakipt’añatakix datos ukax rango split{start, end} .
  • Uñakipt’aña tukuyatatxa jach’a uma marka qillqt’aña.


high = low , jaljawitakix datos ukax janiw ullart’añ pachanx mayjt’kiti. Ukaxa (high - low) > 0 , mayjt’awinakaxa lurawi pachana utjiwa. Ukhamächi ukhaxa, SeaTunnel ukax:


  • Uka jaljata yatiyawinakax amuyupanx mä tabla de memoria ukham uñt’ayatawa.
  • Mayjt’awinakax low watermark high watermark ordenan apnaqañapawa, nayrïr teclas ukanakamp apnaqasa, memoria ukan tabla ukan lurawinakap wasitat anatañataki.
  • Jach’a uma marka yatiyaña.


 insert k3 update k2 delete k1 | | | vvv bin log --|---------------------------------------------------|-- log offset low watermark high watermark CDC reads: k1 k3 k4 | Replays v Real data: k2 k3' k4

Fase Incremental ukaxa mä juk’a pachanakwa lurasi

Janïr jilxatañ phaxsi qalltañkamax SeaTunnel ukax nayraqat taqi jaljawinak nayrïr thakhit chiqanchawayi. Jaljawi taypinxa, yatiyawinakaxa machaqar tukuyatarakispawa, sañäni, machaq qillqatanakaxa jaljawi1 ukatxa jaljawi2 taypina uchatäspa ukhaxa, instantánea phaxsina jani walt’ayatarakispawa. Aka yatiyawinak jaljawi taypin kutt’ayañatakix SeaTunnel ukax aka amtaruw arkta:


  • Taqi jaljat yatiyawinakatxa, jisk’a uma chimpu jikxatañamawa qallta uma chimpu ukhama registro uñakipañ qalltañataki.
  • Sapa registro qillqt’aña uñakipañataki, completedSnapshotSplitInfos uñakipt’aña, ukhamata uñjañataki kunatixa yatiyawixa kuna jaljawinsa luratarakiti janicha. Jan ukhamäkchi ukhaxa, jaljawi taypin datos ukham uñjatawa ukatx chiqañchañawa.
  • Mä kutix taqi jaljawinakax chiqapar uñjatäxi ukhax lurawix taqpach jilxatañ phaxsiruw sarawayxi.


 |------------filter split2-----------------| |----filter split1------| data log -|-----------------------|------------------|----------------------------------|- log offset min watermark split1 watermark split2 watermark max watermark

Punto de Checkpoint ukat Resumen ukanak luraña

¿CDC ukar pausañasa ukat wasitat qalltañasa kunjamasa? SeaTunnel ukax mä algoritmo de instantánea distribuida (Chandy-Lamport) ukampiw apnaqasi:

Sistema ukaxa pä proceso ukaniwa sasina amuyt’añäni, p1 ukatxa p2 , kawkhantixa p1 ukaxa kimsa variables X1 Y1 Z1 ukatxa p2 ukaxa kimsa variables X2 Y2 Z2 ukaniwa. Qallta estados ukanakax akhamawa:

 p1 p2 X1:0 X2:4 Y1:0 Y2:2 Z1:0 Z2:3


Aka chiqanx p1 mä uraqpachan uñacht’äwip qalltawayi. p1 nayraqatax estado de proceso ukaruw qillqt’i, ukatx mä marcador p2 ukaruw khitharaki.


Janïra markachirixa p2 uksaru purinkipana, p2 M uksa p1 uksaruwa apayani.

 p1 p2 X1:0 -------marker-------> X2:4 Y1:0 <---------M---------- Y2:2 Z1:0 Z2:3


Markachiri katuqasaxa, p2 estado ukanaka qillqt’i, ukatxa p1 ukaxa M yatiyawi katuqaraki. Niyakixay p1 ukax nayratpach mä local instantánea lurawaychixa, ukax M yatiyaw qillqt’añakiw wakisi. Qhipa uñacht’awix akham uñt’ayatawa:

 p1 M p2 X1:0 X2:4 Y1:0 Y2:2 Z1:0 Z2:3


SeaTunnel CDC ukanxa, markachirinakaxa taqi ullart’irinakaru, jaljata jakhthapirinakaru, qillqirinakaru, ukhamaraki yaqha nodos ukanakaru apayapxi, sapa mayniwa estado de memoria ukanaka uñjapxi.

L O A D I N G
. . . comments & more!

About Author

SeaTunnel HackerNoon profile picture
SeaTunnel@Apache
Next-generation high-performance, distributed, massive data integration tool.

HANG TAGS ukax mä juk’a pachanakanwa

AKA ARTÍCULO UKHAMARAKI UKHAMARAKI...