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.
| Decisione | Approccio di integrazione |
|---|---|
| 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. |
| Autenticazione e accesso | Configura driver SQL e stringa di connessione. Valida autenticazione, TLS e privilegi minimi sulla versione esatta del database; tieni le credenziali fuori dall’esempio. |
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 gestite. 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
Calibra accesso ai dati, pool di connessioni, tempi delle query, dimensione dei batch e flussi concorrenti su volumi rappresentativi. Monitora insieme età dell’estrazione e throughput per favorire aggiornamento prevedibile ed uso efficiente del database sorgente.
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.