Trasformazione di DeltaFlow output (anteprima)

DeltaFlow è una funzionalità all'interno di Eventstream di Fabric che trasforma gli eventi Change Data Capture (CDC) non elaborati in un formato flat e pronto per l'analisi. Invece di lavorare con payload JSON Debezium annidati in modo approfondito, si ottengono righe tabulari che rispecchiano attentamente la struttura delle tabelle del database di origine, arricchite con colonne di metadati che descrivono ogni modifica.

Questo articolo descrive il processo di trasformazione, le colonne di metadati aggiunte da DeltaFlow e il modo in cui diversi tipi di operazione (inserimenti, aggiornamenti ed eliminazioni) vengono rappresentati nell'output.

Struttura di eventi Raw Debezium CDC

I connettori CDC basati su Debezium generano eventi di modifica come buste JSON. Un evento non elaborato tipico contiene strutture annidate, inclusi i dati di riga prima e dopo la modifica, i metadati di origine e il tipo di operazione:

{
  "before": null,
  "after": {
    "OrderID": 1001,
    "CustomerName": "Contoso Ltd",
    "OrderTotal": 249.99,
    "OrderDate": "2026-03-01"
  },
  "source": {
    "version": "2.x",
    "connector": "sqlserver",
    "name": "fabsql",
    "ts_ms": 1741305600000,
    "db": "SalesDB",
    "schema": "dbo",
    "table": "Orders"
  },
  "op": "c",
  "ts_ms": 1741305600123
}

Questo formato annidato richiede l'analisi e l'estrazione prima di poter eseguire query di analisi: ad esempio, per accedere a OrderTotal, è necessario navigare nell'oggetto after ed estrarlo. L'esecuzione di query su questo formato direttamente con KQL o SQL è complessa e soggetta a errori.

Output trasformato di DeltaFlow

DeltaFlow appiattisce la busta Debezium annidata in una singola riga tabulare. Le colonne della tabella di origine vengono visualizzate come colonne di primo livello e DeltaFlow aggiunge colonne di metadati che descrivono la modifica:

OrderID NomeCliente Totale dell'ordine Data Ordine __dbz_operation __dbz_timestamp __dbz_server __dbz_schema __dbz_table
1001 Contoso Ltd 249.99 2026-03-01 Inserire 2026-03-07T00:00:00Z fabsql dbo Ordini

È possibile eseguire query su questo output direttamente con KQL o altri strumenti di analisi, senza necessità di ulteriori elaborazioni.

Colonne di metadati

DeltaFlow aggiunge le colonne di metadati seguenti a ogni riga di output:

colonna Descrizione
__dbz_operation Tipo di operazione di modifica. Valori validi: Insert, Delete, Pre_Update, Post_Update.
__dbz_timestamp Timestamp di quando è stato acquisito l'evento di modifica.
__dbz_server Nome logico del server di database di origine come configurato nel connettore CDC.
__dbz_schema Nome dello schema della tabella di origine, ad esempio dbo, public.
__dbz_table Nome della tabella di origine in cui ha avuto origine la modifica.

Tipi di operazione

DeltaFlow rappresenta ogni tipo di modifica del database come operazione distinta. La tabella seguente descrive quando si verifica ogni operazione:

Operation Valore della proprietà __dbz_operation Quando si verifica
Inserisci Insert Quando viene inserita una nuova riga nella tabella di origine o durante la fase iniziale dello snapshot quando il connettore acquisisce le righe esistenti.
Aggiornamento Pre_Update e Post_Update Durante la fase di streaming, quando viene modificata una riga esistente. DeltaFlow genera due righe per ogni aggiornamento, una che rappresenta lo stato della riga prima della modifica e una dopo.
Elimina Delete Durante la fase di streaming, quando una riga viene eliminata dalla tabella di origine.

Snapshot iniziale

Quando un connettore CDC viene avviato per la prima volta, esegue uno snapshot iniziale della tabella di origine per acquisire tutte le righe esistenti. Ogni riga nello snapshot viene visualizzata come un'operazione Insert nell'output DeltaFlow:

OrderID NomeCliente Totale dell'ordine Data Ordine __dbz_operation __dbz_timestamp
1001 Contoso Ltd 249.99 2026-03-01 Inserire 2026-03-07T00:00:00Z
1002 Fabrikam Inc 150,00 02/03/2026 Inserire 2026-03-07T00:00:00Z

Al termine dello snapshot, il connettore passa alla modalità di streaming e acquisisce le modifiche in corso.

Inserire

Quando viene aggiunta una nuova riga alla tabella di origine, DeltaFlow genera una singola riga con l'operazione Insert:

OrderID NomeCliente Totale dell'ordine Data Ordine __dbz_operation __dbz_timestamp
1003 Adventure Works 75.50 08-03-2026 Inserire 2026-03-08T14:30:00Z

Update

Quando viene modificata una riga esistente, DeltaFlow genera due righe con lo stesso timestamp, una per lo stato prima della modifica (Pre_Update) e una per lo stato dopo (Post_Update). Questo schema è simile ai feed di dati delle variazioni Delta:

OrderID NomeCliente Totale dell'ordine Data Ordine __dbz_operation __dbz_timestamp
1001 Contoso Ltd 249.99 2026-03-01 Pre_Aggiornamento 2026-03-09T09:15:00Z
1001 Contoso Ltd 299.99 2026-03-01 Aggiornamento Post 2026-03-09T09:15:00Z

In questo esempio, l'oggetto OrderTotal è stato modificato da 249.99 a 299.99. Gli stati prima e dopo vengono mantenuti, che consente di calcolare le differenze, tenere traccia delle modifiche a livello di campo o creare audit trail.

Elimina

Quando una riga viene eliminata dalla tabella di origine, DeltaFlow genera una singola riga con l'operazione Delete, contenente gli ultimi valori noti della riga:

OrderID NomeCliente Totale dell'ordine Data Ordine __dbz_operation __dbz_timestamp
1002 Fabrikam Inc 150,00 02/03/2026 Elimina 2026-03-09T10:00:00Z

Mapping delle tabelle dello schema e di destinazione

Quando si instrada un flusso abilitato per DeltaFlow ad una destinazione supportata, ad esempio un Eventhouse, DeltaFlow automaticamente:

  1. Crea tabelle di destinazione che corrispondono alla struttura della tabella di origine, con colonne per ogni colonna di origine più le cinque colonne di metadati.
  2. Gestisce l'evoluzione dello schema : quando le tabelle di origine cambiano (ad esempio, vengono aggiunte colonne o vengono create nuove tabelle), DeltaFlow rileva le modifiche, aggiorna gli schemi registrati e modifica le tabelle di destinazione di conseguenza.

Per altre informazioni sulla gestione delle tabelle di destinazione, vedere la sezione Funzionalità DeltaFlow in ogni pagina del connettore CDC.