Semantica delle righe MySQL
01La correttezza si nasconde spesso nelle impostazioni di connessione.
Una rotta MySQL collega spesso tabelle operative a destinazioni analitiche o partner. Ambito della query, indici, charset, collation, tempi, batch e policy di scrittura determinano correttezza e carico accettabile sulla sorgente.
Interroga lungo un percorso indicizzato
Definisci database, tabelle o query, colonne, filtri indicizzati, ordinamento, chiavi, charset, collation, fuso orario e conversioni dei tipi. La selezione deve essere abbastanza stabile da poter essere riconciliata.
Riparti dopo un batch confermato
Dividi il lavoro grande in batch o checkpoint deterministici e scegli i confini transazionali. Una ripartenza deve distinguere le righe già confermate da un batch fallito prima del completamento.
Fissa il significato di testo e tempo
Concorda null, valori unsigned e precisione, semantica di date e orari, codifica del testo, chiavi, insert o update, violazioni dei vincoli, righe rifiutate e conteggi tra sorgente e destinazione.
Percorso Flower specifico per MySQL
02Trasforma tabelle operative in uno stream incrementale controllato.
L'adapter MySQL di Flower offre query, scritture e transazioni rispettando identificatori e placeholder MySQL. Il flusso definisce discovery, conversioni, qualità, checkpoint ed evidenze senza incorporarli in codice applicativo.
Costruisci una finestra deterministica
Usa un watermark indicizzato, un tie-breaker univoco e ordinamento esplicito. Sovrapponi le finestre con timestamp grossolani o clock diversi e riconcilia le chiavi per evitare duplicati business.
Normalizza i casi limite MySQL
Valida range unsigned, precisione DECIMAL, policy per date zero o invalide, BIT, binari, JSON e null. Converti con fuso e charset dichiarati prima che sistemi a valle reinterpretino i valori.
Scrivi in una transazione nota
Le scritture preparate operano in transazioni limitate. Conteggi, vincoli, scarti e chiavi confermate vengono riconciliati prima di avanzare il checkpoint, evitando duplicati dopo una perdita di connessione.
Playbook di produzione MySQL
03Controlla carico sorgente, drift e comportamento dei duplicati.
MySQL serve spesso applicazioni sensibili alla latenza: l'integrazione deve essere un client prevedibile. Polling rapido, offset grandi, conversioni implicite o scansioni ampie possono danneggiare il prodotto pur sembrando riusciti.
Policy di consistent read
Stabilisci se ogni batch vede una nuova view READ COMMITTED o l'esecuzione richiede uno snapshot REPEATABLE READ. Mantieni brevi le transazioni e definisci il comportamento su DDL o cambio schema.
Budget di indici e pool
Verifica l'access path con volumi realistici. Limita connessioni, durata, batch e flussi concorrenti; allerta quando cresce l'età dell'estrazione anche se ogni query riesce.
Contratto per chiavi duplicate e delete
Scegli intenzionalmente insert, update, upsert, append o sostituzione staged. Definisci significato dei duplicate key, rappresentazione dei delete, update fuori ordine e riconciliazione finale.