Modello di modifica SQL Server
01Rowversion è un indizio di ordinamento, non il tempo business.
Una rotta Microsoft SQL Server può attraversare ambienti on-premise, database cloud, reporting store e destinazioni partner. Schema, viste, conversioni, carico delle query, transazioni e scrittura devono essere espliciti per un flusso ripetibile.
Server, database, schema, vista
Definisci server e database, schema, tabelle o viste, query, colonne, filtri, ordinamento, chiavi, fusi orari e tipi specifici SQL Server. Verifica che la selezione sia ripetibile e riconciliabile.
Riparti con token e chiave
Usa batch o checkpoint deterministici per extract e load grandi. Definisci transazioni che consentano al retry di identificare il lavoro confermato ed evitare duplicazioni di identity, chiavi o update.
Mappa i tipi SQL Server consapevolmente
Specifica null, precisione decimale, tipi data e ora, testo Unicode, binari, identity e chiavi, insert o update, vincoli, righe rifiutate e conteggi di riconciliazione.
Rotta Flower per SQL Server
02Mantieni visibilità della query e atomicità di scrittura nello stesso piano.
L'adapter SQL Server di Flower supporta letture, scritture e transazioni con le regole di parametri e identificatori SQL Server. La rotta aggiunge selezione deterministica, elaborazione, validazione, lineage e recovery.
Estrai con un cursore stabile
Abbina il watermark rowversion a una chiave univoca e a un ordine esplicito. Conserva upper bound e ultima tupla del batch; non convertire il token binario in data né usarlo come durata.
Normalizza prima di cambiare motore
Valida scala decimale, precisione datetime2, datetimeoffset, Unicode nvarchar, uniqueidentifier, bit, varbinary e null. Colonne identity e calcolate richiedono una policy esplicita.
Conferma con evidenze sulle righe
Le scritture preparate usano transazioni limitate. Flower riconcilia chiavi confermate, righe modificate, scarti e vincoli prima di avanzare; una connessione interrotta attiva verifica, non replay automatico.
Policy operativa SQL Server
03Scegli l'isolamento con il database owner, non per caso.
READ COMMITTED può attendere lock; READ_COMMITTED_SNAPSHOT e SNAPSHOT usano versioni e consumano risorse del version store. L'extract deve adattarsi a configurazione, workload e obiettivo di recovery.
Budget di lock o version store
Conferma le opzioni del database prima dell'isolamento. Imposta timeout, durata batch, pool e monitoraggio di blocking, crescita version store in tempdb, pressione sul log e backlog.
Copertura di modifiche e delete
Rowversion individua righe toccate dopo un token, ma non spiega la modifica e non mostra una riga cancellata fisicamente. Abbinalo a chiavi business, soft delete o tombstone e riconciliazione periodica.
Topologia e target di lettura
Documenta se l'endpoint è primary, replica leggibile, Azure SQL o altra forma gestita; definisci lag e failover. Una connessione riuscita dopo failover richiede comunque riconciliazione di cursore e snapshot.