Argomenti avanzati di SAP CDC
SI APPLICA A: Azure Data Factory Azure Synapse Analytics
Suggerimento
Provare Data Factory in Microsoft Fabric, una soluzione di analisi all-in-one per le aziende. Microsoft Fabric copre tutto, dallo spostamento dati al data science, all'analisi in tempo reale, alla business intelligence e alla creazione di report. Vedere le informazioni su come iniziare una nuova prova gratuita!
Informazioni sugli argomenti avanzati per il connettore SAP CDC, ad esempio l'integrazione dei dati basata sui metadati, il debug e altro ancora.
Parametrizzazione di un flusso di dati di mapping di SAP CDC
Uno dei principali punti di forza delle pipeline e dei flussi di dati di mapping in Azure Data Factory e Azure Synapse Analytics è il supporto per l'integrazione dei dati basata sui metadati. Con questa funzionalità, è possibile progettare una singola pipeline parametrizzata (o poche) che può essere usata per gestire l'integrazione di centinaia o persino migliaia di origini. Il connettore SAP CDC è stato progettato tenendo presente questo principio: tutte le proprietà rilevanti, indipendentemente dal fatto che si tratti dell'oggetto di origine, della modalità di esecuzione, delle colonne chiave e così via, possono essere fornite tramite parametri per ottimizzare la flessibilità e riutilizzare il potenziale dei flussi di dati di mapping di SAP CDC.
Per comprendere i concetti di base della parametrizzazione dei flussi di dati di mapping, vedere Parametrizzazione dei flussi di dati di mapping.
Nella raccolta di modelli di Azure Data Factory e Azure Synapse Analytics è disponibile una pipeline di modelli e un flusso di dati che illustra come parametrizzare l'inserimento dati SAP CDC.
Parametrizzazione dell'origine e della modalità di esecuzione
I flussi di dati di mapping non richiedono necessariamente un artefatto del set di dati: le trasformazioni di origine e sink offrono un tipo di origine (o tipo sink) inline. In questo caso, tutte le proprietà di origine altrimenti definite in un set di dati di Azure Data Factory possono essere configurate nelle opzioni Origine della trasformazione origine (o scheda Impostazioni della trasformazione sink). L'uso di un set di dati inline offre una panoramica migliore e semplifica la parametrizzazione di un flusso di dati di mapping perché la configurazione di origine (o sink) completa viene mantenuta in un'unica posizione.
Per SAP CDC, le proprietà più comunemente impostate tramite i parametri sono disponibili nelle schede Opzioni origine e Ottimizza. Quando il tipo di origine è Inline, le proprietà seguenti possono essere parametrizzate in Opzioni di origine.
- Contesto ODP: i valori dei parametri validi sono
- ABAP_CDS per le viste di ABAP Core Data Services
- BW per SAP BW o SAP BW/4HANA InfoProviders
- Viste informazioni su HANA per SAP HANA
- SAPI per SAP DataSources/Extractors
- quando il server di replica SLT (Sap Landscape Transformation Replication Server) viene usato come origine, il nome del contesto ODP è SLT~<Queue Alias>. Il valore alias della coda è reperibile in Dati di amministrazione nella configurazione SLT nel cockpit SLT (SAP transaction LTRC).
- ODP_SELF e RANDOM sono contesti ODP usati per la convalida tecnica e i test e in genere non sono rilevanti.
- Nome ODP: specificare il nome ODP da cui estrarre i dati.
- Modalità di esecuzione: i valori dei parametri validi sono
- fullAndIncrementalLoad per Full alla prima esecuzione, quindi incrementale, che avvia un processo change data capture ed estrae uno snapshot completo dei dati corrente.
- fullLoad per Full in ogni esecuzione, che estrae uno snapshot completo dei dati corrente senza avviare un processo di change data capture.
- incrementalLoad solo per le modifiche incrementali, che avvia un processo change data capture senza estrarre uno snapshot completo corrente.
- Colonne chiave: le colonne chiave vengono fornite come matrice di stringhe (tra virgolette doppie). Ad esempio, quando si usa la tabella SAP VBAP (articoli degli ordini di vendita), la definizione della chiave deve essere ["VBELN", "POSNR"] (o ["MANDT","VBELN","POSNR"] nel caso in cui venga preso in considerazione anche il campo client.
Parametrizzazione delle condizioni di filtro per il partizionamento di origine
Nella scheda Ottimizza è possibile definire uno schema di partizionamento di origine (vedere Ottimizzazione delle prestazioni per carichi completi o iniziali) tramite parametri. In genere, sono necessari due passaggi:
- Definire lo schema di partizionamento di origine.
- Inserire il parametro di partizionamento nel flusso di dati di mapping.
Definire uno schema di partizionamento di origine
Il formato nel passaggio 1 segue lo standard JSON, costituito da una matrice di definizioni di partizione, ognuna delle quali è una matrice di singole condizioni di filtro. Queste condizioni sono oggetti JSON con una struttura allineata alle cosiddette opzioni di selezione in SAP. In effetti, il formato richiesto dal framework SAP ODP è fondamentalmente uguale ai filtri DTP dinamici in SAP BW:
{ "fieldName": <>, "sign": <>, "option": <>, "low": <>, "high": <> }
Ad esempio:
{ "fieldName": "VBELN", "sign": "I", "option": "EQ", "low": "0000001000" }
corrisponde a una clausola SQL WHERE ... WHERE "VBELN" = '0000001000', o
{ "fieldName": "VBELN", "sign": "I", "option": "BT", "low": "0000000000", "high": "0000001000" }
corrisponde a una clausola SQL WHERE ... WHERE "VBELN" BETWEEN '000000000' AND '0000001000'
Una definizione JSON di uno schema di partizionamento contenente due partizioni ha un aspetto simile al seguente
[
[
{ "fieldName": "GJAHR", "sign": "I", "option": "BT", "low": "2011", "high": "2015" }
],
[
{ "fieldName": "GJAHR", "sign": "I", "option": "BT", "low": "2016", "high": "2020" }
]
]
dove la prima partizione contiene gli anni fiscali (GJAHR) dal 2011 al 2015 e la seconda partizione contiene gli anni fiscali dal 2016 al 2020.
Nota
Azure Data Factory non esegue alcun controllo su queste condizioni. Ad esempio, è responsabilità dell'utente assicurarsi che le condizioni di partizione non si sovrappongano.
Le condizioni di partizione possono essere più complesse, costituite da più condizioni di filtro elementari stesse. Non esistono congiunzioni logiche che definiscono in modo esplicito come combinare più condizioni elementari all'interno di una partizione. La definizione implicita in SAP è la seguente:
- incluse le condizioni ("segno": "I") per lo stesso nome di campo vengono combinate con OR (mentalmente, inserire parentesi quadre intorno alla condizione risultante)
- escludendo le condizioni ("segno": "E") per lo stesso nome di campo vengono combinate con OR (ancora una volta, mentalmente, mettere parentesi quadre intorno alla condizione risultante)
- le condizioni risultanti dei passaggi 1 e 2 sono
- combinato con AND per l'inclusione di condizioni,
- in combinazione con AND NOT per escludere le condizioni.
Ad esempio, la condizione della partizione
[
{ "fieldName": "BUKRS", "sign": "I", "option": "EQ", "low": "1000" },
{ "fieldName": "BUKRS", "sign": "I", "option": "EQ", "low": "1010" },
{ "fieldName": "GJAHR", "sign": "I", "option": "BT", "low": "2010", "high": "2025" },
{ "fieldName": "GJAHR", "sign": "E", "option": "EQ", "low": "2023" },
{ "fieldName": "GJAHR", "sign": "E", "option": "EQ", "low": "2021" }
]
corrisponde a una clausola SQL WHERE ... WHERE ("BUKRS" = '1000' OR "BUKRS" = '1010') AND ("GJAHR" BETWEEN '2010' AND '2025') AND NOT ("GJAHR" = '2021' o "GJARH" = '2023')
Nota
Assicurarsi di usare il formato interno SAP per i valori bassi e alti, includere zere iniziali ed esprimere le date del calendario come stringa di otto caratteri con il formato "AAAAMMGG".
Inserimento del parametro di partizionamento nel flusso di dati di mapping
Per inserire lo schema di partizionamento in un flusso di dati di mapping, creare un parametro del flusso di dati, ad esempio "sapPartitions". Per passare il formato JSON a questo parametro, deve essere convertito in una stringa usando la funzione @string():
Infine, nella scheda Ottimizza della trasformazione origine nel flusso di dati di mapping selezionare Tipo di partizione "Origine" e immettere il parametro flusso di dati nella proprietà Condizioni di partizione .
Parametrizzazione della chiave del checkpoint
Quando si usa un flusso di dati con parametri per estrarre dati da più origini SAP CDC, è importante parametrizzare la chiave del checkpoint nell'attività del flusso di dati della pipeline. La chiave del checkpoint viene usata da Azure Data Factory per gestire lo stato di un processo di Change Data Capture. Per evitare che lo stato di un processo CDC sovrascriva lo stato di un altro processo, assicurarsi che i valori della chiave del checkpoint siano univoci per ogni set di parametri usato in un flusso di dati.
Nota
Una procedura consigliata per garantire l'univocità della chiave del checkpoint consiste nell'aggiungere il valore della chiave del checkpoint al set di parametri per il flusso di dati.
Per altre informazioni sulla chiave del checkpoint, vedere Trasformare i dati con il connettore SAP CDC.
Debug
Le pipeline di Azure Data Factory possono essere eseguite tramite esecuzioni attivate o di debug. Una differenza fondamentale tra queste due opzioni consiste nel fatto che il debug esegue il flusso di dati e la pipeline in base alla versione corrente modellata nell'interfaccia utente, mentre le esecuzioni attivate eseguono l'ultima versione pubblicata di un flusso di dati e di una pipeline.
Per SAP CDC, è necessario comprendere un altro aspetto: per evitare un impatto sulle esecuzioni di debug in un processo di change data capture esistente, le esecuzioni di debug usano un valore diverso di "processo sottoscrittore" (vedere Monitorare i flussi di dati SAP CDC) rispetto alle esecuzioni attivate. Di conseguenza, creano sottoscrizioni separate , ovvero processi change data capture, all'interno del sistema SAP. Inoltre, il valore "processo sottoscrittore" per le esecuzioni di debug ha un tempo di vita limitato alla sessione dell'interfaccia utente del browser.
Nota
Per testare la stabilità di un processo di change data capture con SAP CDC in un periodo di tempo più lungo (ad esempio, più giorni), è necessario pubblicare il flusso di dati e la pipeline e le esecuzioni attivate devono essere eseguite.