Copiare dati da SAP Business Warehouse tramite Open Hub usando Azure Data Factory o Synapse Analytics

SI APPLICA A: Azure Data Factory Azure Synapse Analytics

Suggerimento

Provare Data Factory in Microsoft Fabric, una soluzione di analisi completa per le aziende. Microsoft Fabric copre tutti gli elementi, dallo spostamento dei dati all'analisi scientifica dei dati, all'analisi in tempo reale, alla business intelligence e alla creazione di report. Scopri come avviare gratuitamente una nuova versione di valutazione .

Questo articolo illustra come usare l'attività di copia nelle pipeline di Azure Data Factory e Synapse Analytics per copiare dati da un SAP Business Warehouse (BW) tramite Open Hub. Si basa sull'articolo di panoramica dell'attività di copia che presenta una panoramica generale sull'attività di copia.

Suggerimento

Per informazioni sul supporto generale per lo scenario di integrazione dei dati SAP, vedere white paper sull'integrazione dei dati SAP con introduzione dettagliata su ogni connettore SAP, confronto e materiale sussidiario.

Funzionalità supportate

Questo connettore SAP Business Warehouse Open Hub è supportato per le funzionalità seguenti:

Funzionalità supportate IR
attività Copy (source/-)
Attività Lookup

(1) Runtime di integrazione di Azure (2) Runtime di integrazione self-hosted

Per un elenco degli archivi dati supportati come origini/sink dall'attività di copia, vedere la tabella relativa agli archivi dati supportati.

In particolare, il connettore SAP Business Warehouse Open Hub supporta:

  • SAP Business Warehouse versione 7.01 o successiva (in un recente sap Support Package Stack rilasciato dopo l'anno 2015). SAP BW/4HANA non è supportato da questo connettore.
  • Copia dei dati tramite la tabella locale Open Hub Destination, che può essere DSO, InfoCube, MultiProvider, DataSource e così via.
  • La copia di dati usando l'autenticazione di base.
  • Connessione a un server applicazioni SAP o a un server messaggi SAP.
  • Recupero di dati tramite RFC.

Integrazione SAP BW Open Hub

Il servizio SAP BW Open Hub consente di estrarre in modo efficiente dati da SAP BW. Il diagramma seguente illustra uno dei flussi tipici che i clienti hanno nel sistema SAP, nel qual caso i dati vengono trasmessi da SAP ECC - PSA ->> DSO -> Cube.

SAP BW Open Hub Destination (OHD) definisce la destinazione di inoltro dei dati SAP. Tutti gli oggetti supportati da SAP Data Transfer Process (DTP) possono essere usati come origini dati hub aperte, ad esempio DSO, InfoCube, DataSource e così via. Tipo di destinazione dell'hub aperto, in cui vengono archiviati i dati inoltrati, possono essere tabelle di database (locale o remoto) e file flat. Questo connettore SAP BW Open Hub supporta la copia dei dati dalla tabella locale OHD in BW. Se si usano altri tipi, è possibile connettersi direttamente al database o al file system usando altri connettori.

SAP BW Open Hub

Flusso di estrazione differenziale

SAP BW Open Hub Connessione or offre due proprietà facoltative: excludeLastRequest e baseRequestId che possono essere usate per gestire il caricamento differenziale da Open Hub.

  • excludeLastRequestId: indica se escludere i record dell'ultima richiesta. Il valore predefinito è true.
  • baseRequestId: ID della richiesta per il caricamento differenziale. Una volta impostata questa proprietà, verranno recuperati solo i dati con requestId maggiore del valore di questa proprietà.

In generale, l'estrazione da SAP InfoProviders è costituita da due passaggi:

  1. Sap BW Data Transfer Process (DTP) Questo passaggio copia i dati da sap BW InfoProvider in una tabella SAP BW Open Hub

  2. Copia dei dati In questo passaggio la tabella Open Hub viene letta dal connettore

Delta extraction flow

Nel primo passaggio viene eseguito un DTP. Ogni esecuzione crea un nuovo ID richiesta SAP. L'ID richiesta viene archiviato nella tabella Open Hub e quindi viene usato dal connettore per identificare il delta. I due passaggi vengono eseguiti in modo asincrono: il DTP viene attivato da SAP e la copia dei dati viene attivata tramite il servizio.

Per impostazione predefinita, il servizio non legge il delta più recente dalla tabella Open Hub (l'opzione "escludi ultima richiesta" è true). Di seguito, i dati nel servizio non sono aggiornati al 100% con i dati nella tabella Open Hub (l'ultimo delta è mancante). In cambio, questa procedura garantisce che non vengano perse righe causate dall'estrazione asincrona. Funziona correttamente anche quando il servizio legge la tabella Open Hub mentre il DTP sta ancora scrivendo nella stessa tabella.

In genere si archivia l'ID richiesta massima copiato nell'ultima esecuzione dal servizio in un archivio dati di staging, ad esempio BLOB di Azure nel diagramma precedente. Pertanto, la stessa richiesta non viene letta una seconda volta dal servizio nell'esecuzione successiva. Nel frattempo, si noti che i dati non vengono eliminati automaticamente dalla tabella Open Hub.

Per una corretta gestione differenziale, non è consentito avere ID richiesta da DTP diversi nella stessa tabella dell'hub aperto. Pertanto, non è necessario creare più DTP per ogni destinazione dell'hub aperto (OHD). Quando è necessaria l'estrazione completa e differenziale dallo stesso InfoProvider, è necessario creare due OHD per lo stesso InfoProvider.

Prerequisiti

Per usare il connettore SAP Business Warehouse Open Hub, è necessario:

  • Configurare un runtime di integrazione self-hosted con la versione 3.13 o successive. Per i dettagli, vedere l'articolo Runtime di integrazione self-hosted.

  • Scaricare il connettore SAP .NET 3.0 a 64 bit dal sito Web di SAP e installarlo nel computer di runtime di integrazione self-hosted. Durante l'installazione, nella finestra della procedura di configurazione facoltativa verificare che sia selezionata l'opzione Install Assemblies to GAC (Installa assembly nella Global Assembly Cache) come illustrato nell'immagine seguente.

    Install SAP .NET Connector

  • L'utente SAP usato nel connettore BW deve avere le autorizzazioni seguenti:

    • Autorizzazione per RFC e SAP BW.
    • Autorizzazioni per l'attività "Execute" dell'oggetto di autorizzazione "S_SDSAUTH".
  • Creare il tipo SAP Open Hub Destination come Database Table (Tabella di database) con l'opzione "Technical Key" (Chiave tecnica) selezionata. È inoltre consigliabile lasciare deselezionata l'opzione di eliminazione dei dati dalla tabella, anche se questa impostazione non è obbligatoria. Usare DTP (eseguire o integrare direttamente nella catena di processi esistente) per trasferire i dati dall'oggetto di origine (ad esempio il cubo) scelto per la tabella di destinazione dell'hub aperto.

Introduzione

Suggerimento

Per una procedura dettagliata sull'uso del connettore SAP BW Open Hub, vedere Caricare dati da SAP Business Warehouse (BW).

Per eseguire l'attività di copia con una pipeline, è possibile usare uno degli strumenti o SDK seguenti:

Nelle sezioni seguenti vengono fornite informazioni dettagliate sulle proprietà usate per definire entità specifiche del connettore SAP Business Warehouse Open Hub.

Proprietà del servizio collegato

Per il servizio collegato di SAP Business Warehouse Open Hub sono supportate le proprietà seguenti:

Proprietà Descrizione Richiesto
Tipo La proprietà type deve essere impostata su: SapOpenHub
server Nome del server in cui si trova l'istanza di SAP BW.
systemNumber Numero del sistema SAP BW.
Valore consentito: numero decimale a due cifre rappresentato come stringa.
messageServer Nome host del server di messaggi SAP.
Usare per connettersi a un server di messaggi SAP.
No
messageServerService Nome del servizio o numero di porta del server messaggi.
Usare per connettersi a un server di messaggi SAP.
No
systemId ID del sistema SAP in cui si trova la tabella.
Usare per connettersi a un server di messaggi SAP.
No
logonGroup Gruppo di accesso per il sistema SAP.
Usare per connettersi a un server di messaggi SAP.
No
clientId ID del client nel sistema SAP BW.
Valore consentito: numero decimale a tre cifre rappresentato come stringa.
language Lingua usata dal sistema SAP. No (valore predefinito: EN)
userName Nome dell'utente che ha accesso al server SAP.
password Password per l'utente. Contrassegnare questo campo come SecureString per archiviarlo in modo sicuro o fare riferimento a un segreto archiviato in Azure Key Vault.
connectVia Il runtime di integrazione da usare per la connessione all'archivio dati. È necessario un runtime di integrazione self-hosted come indicato in Prerequisiti.

Esempio:

{
    "name": "SapBwOpenHubLinkedService",
    "properties": {
        "type": "SapOpenHub",
        "typeProperties": {
            "server": "<server name>",
            "systemNumber": "<system number>",
            "clientId": "<client id>",
            "userName": "<SAP user>",
            "password": {
                "type": "SecureString",
                "value": "<Password for SAP user>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Proprietà del set di dati

Per un elenco completo delle sezioni e delle proprietà disponibili per la definizione dei set di dati, vedere l'articolo Set di dati. Questa sezione fornisce un elenco delle proprietà supportate dal set di dati SAP BW Open Hub.

Per copiare dati da e in SAP BW Open Hub, impostare la proprietà type del set di dati su SapOpenHubTable. Sono supportate le proprietà seguenti.

Proprietà Descrizione Richiesto
Tipo La proprietà type deve essere impostata su SapOpenHubTable.
openHubDestinationName Il nome di Open Hub Destination da cui copiare i dati.

Se si imposta excludeLastRequest e baseRequestId nel set di dati, è ancora supportato così come è, mentre si consiglia di usare il nuovo modello nell'origine attività in futuro.

Esempio:

{
    "name": "SAPBWOpenHubDataset",
    "properties": {
        "type": "SapOpenHubTable",
        "typeProperties": {
            "openHubDestinationName": "<open hub destination name>"
        },
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<SAP BW Open Hub linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

Proprietà dell'attività di copia

Per un elenco completo delle sezioni e delle proprietà disponibili per la definizione delle attività, vedere l'articolo sulle pipeline. Questa sezione presenta un elenco delle proprietà supportate dall'origine SAP BW Open Hub.

SAP BW Open Hub come origine

Per copiare dati da SAP BW Open Hub, nella sezione origine dell'attività di copia sono supportate le proprietà seguenti:

Proprietà Descrizione Richiesto
Tipo La proprietà type dell'origine dell'attività di copia deve essere impostata su SapOpenHubSource.
excludeLastRequest Se escludere i record dell'ultima richiesta. No (il valore predefinito è true)
baseRequestId L'ID della richiesta per il caricamento differenziale. Una volta impostata questa proprietà, verranno recuperati solo i dati con requestId maggiore del valore di questa proprietà. No
customRfcReadTableFunctionModule Modulo di funzione RFC personalizzato che può essere usato per leggere i dati da una tabella SAP.
È possibile usare un modulo di funzione RFC personalizzato per definire il modo in cui i dati vengono recuperati dal sistema SAP e restituiti al servizio. Il modulo della funzione personalizzata deve avere un'interfaccia implementata (importazione, esportazione, tabelle) simile a /SAPDS/RFC_READ_TABLE2, che è l'interfaccia predefinita usata dal servizio.
No
sapDataColumnDelimiter Carattere singolo usato come delimitatore passato a SAP RFC per suddividere i dati di output. No

Suggerimento

Se ad esempio la tabella Open Hub contiene solo dati generati in base a ID di richiesta singola, si esegue sempre il caricamento completo e si sovrascrivono i dati esistenti nella tabella oppure si esegue DTP una sola volta per il test, ricordarsi di deselezionare l'opzione "excludeLastRequest" per la copia dei dati.

Per velocizzare il caricamento dei dati, è possibile impostare parallelCopies sull'attività di copia per caricare i dati da SAP BW Open Hub in parallelo. Ad esempio, se si imposta su parallelCopies quattro, il servizio esegue simultaneamente quattro chiamate RFC e ogni chiamata RFC recupera una parte di dati dalla tabella dell'hub open SAP BW partizionata dall'ID richiesta DTP e dall'ID pacchetto. Questo vale quando il numero di ID richiesta DTP univoco + ID pacchetto è maggiore del valore di parallelCopies. Quando si copiano dati in un archivio dati basato su file, è anche consigliabile scrivere in una cartella come più file (specificare solo il nome della cartella), nel qual caso le prestazioni sono migliori rispetto alla scrittura in un singolo file.

Esempio:

"activities":[
    {
        "name": "CopyFromSAPBWOpenHub",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<SAP BW Open Hub input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "SapOpenHubSource",
                "excludeLastRequest": true
            },
            "sink": {
                "type": "<sink type>"
            },
            "parallelCopies": 4
        }
    }
]

Mapping dei tipi di dati per SAP BW Open Hub

Quando si copiano dati da SAP BW Open Hub, i mapping seguenti vengono usati dai tipi di dati SAP BW ai tipi di dati provvisori usati internamente all'interno del servizio. Vedere Mapping dello schema e del tipo di dati per informazioni su come l'attività di copia esegue il mapping dello schema di origine e del tipo di dati al sink.

Tipo SAP ABAP Tipo di dati del servizio provvisorio
C (String) Stringa
I (integer) Int32
F (Float) Double
D (Date) Stringa
T (Time) Stringa
P (BCD Packed, Currency, Decimal, Qty) Decimale
N (Numc) Stringa
X (Binary e Raw) Stringa

Proprietà dell'attività Lookup

Per altre informazioni sulle proprietà, vedere Attività Lookup.

Suggerimenti per la risoluzione dei problemi

Sintomi: se si esegue SAP BW in HANA e si osserva solo il sottoinsieme di dati viene copiato tramite l'attività di copia (1 milione di righe), la causa possibile è che si abilita l'opzione "Esecuzione SAP HANA" nel DTP, nel qual caso il servizio può recuperare solo il primo batch di dati.

Soluzione: disabilitare l'opzione "Esecuzione SAP HANA" in DTP, rielaborare i dati e quindi provare a eseguire nuovamente l'attività di copia.

Per un elenco degli archivi dati supportati come origini e sink dall'attività di copia, vedere archivi dati supportati.