Kopiera data från SAP Business Warehouse via Open Hub med Hjälp av Azure Data Factory eller Synapse Analytics

GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics

Dricks

Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du startar en ny utvärderingsversion kostnadsfritt!

Den här artikeln beskriver hur du använder kopieringsaktiviteten i Azure Data Factory- och Synapse Analytics-pipelines för att kopiera data från ett SAP Business Warehouse (BW) via Open Hub. Den bygger på översiktsartikeln för kopieringsaktivitet som visar en allmän översikt över kopieringsaktiviteten.

Dricks

Mer information om övergripande stöd för SAP-dataintegreringsscenariot finns i white paper för SAP-dataintegrering med detaljerad introduktion till varje SAP-anslutningsapp, jämförelse och vägledning.

Funktioner som stöds

Den här SAP Business Warehouse Open Hub-anslutningsappen stöds för följande funktioner:

Funktioner som stöds IR
Kopieringsaktivitet (källa/-) (2)
Sökningsaktivitet (2)

(1) Azure Integration Runtime (2) Lokalt installerad integrationskörning

En lista över datalager som stöds som källor/mottagare av kopieringsaktiviteten finns i tabellen Datalager som stöds.

Mer specifikt stöder den här SAP Business Warehouse Open Hub-anslutningsappen:

  • SAP Business Warehouse version 7.01 eller senare (i en nyligen publicerad SAP Support Package Stack efter år 2015). SAP BW/4HANA stöds inte av den här anslutningsappen.
  • Kopiera data via den lokala tabellen Open Hub Destination, som under kan vara DSO, InfoCube, MultiProvider, DataSource osv.
  • Kopiera data med grundläggande autentisering.
  • Ansluta till en SAP-programserver eller SAP-meddelandeserver.
  • Hämtar data via RFC.

SAP BW Open Hub-integrering

SAP BW Open Hub Service är ett effektivt sätt att extrahera data från SAP BW. Följande diagram visar ett av de typiska flöden som kunder har i sitt SAP-system, i vilket fall dataflöden från SAP ECC –> PSA –> DSO –> Kub.

SAP BW Open Hub Destination (OHD) definierar det mål som SAP-data vidarebefordras till. Alla objekt som stöds av SAP Data Transfer Process (DTP) kan användas som öppna hubbdatakällor, till exempel DSO, InfoCube, DataSource osv. Open Hub-måltypen – där vidarebefordrade data lagras – kan vara databastabeller (lokala eller fjärranslutna) och flata filer. Den här SAP BW Open Hub-anslutningsappen stöder kopiering av data från en lokal OHD-tabell i BW. Om du använder andra typer kan du ansluta direkt till databasen eller filsystemet med hjälp av andra anslutningsappar.

SAP BW Open Hub

Deltaextraheringsflöde

SAP BW Open Hub Connector erbjuder två valfria egenskaper: excludeLastRequest och baseRequestId som kan användas för att hantera deltabelastning från Open Hub.

  • excludeLastRequestId: Om du vill exkludera posterna för den senaste begäran. Standardvärdet är sant.
  • baseRequestId: ID för begäran om deltainläsning. När den har angetts hämtas endast data med requestId som är större än värdet för den här egenskapen.

Sammantaget består extrahering från SAP InfoProviders av två steg:

  1. SAP BW Data Transfer Process (DTP) Det här steget kopierar data från en SAP BW InfoProvider till en SAP BW Open Hub-tabell

  2. Datakopiering I det här steget läss Open Hub-tabellen av anslutningsappen

Deltaextraheringsflöde

I det första steget körs en DTP. Varje körning skapar ett nytt SAP-begärande-ID. Begärande-ID:t lagras i tabellen Open Hub och används sedan av anslutningsappen för att identifiera deltat. De två stegen körs asynkront: DTP utlöses av SAP och datakopian utlöses via tjänsten.

Tjänsten läser som standard inte det senaste deltat från open hub-tabellen (alternativet "exkludera senaste begäran" är sant). Härmed är data i tjänsten inte 100 % uppdaterade med data i open hub-tabellen (det sista deltat saknas). I gengäld säkerställer den här proceduren att inga rader går förlorade på grund av den asynkrona extraheringen. Det fungerar bra även när tjänsten läser Open Hub-tabellen medan DTP fortfarande skriver till samma tabell.

Du lagrar vanligtvis det maximala kopierade begärande-ID:t i den senaste körningen av tjänsten i ett mellanlagringsdatalager (till exempel Azure Blob i diagrammet ovan). Därför läss inte samma begäran en andra gång av tjänsten i den efterföljande körningen. Observera samtidigt att data inte tas bort automatiskt från tabellen Open Hub.

För korrekt deltahantering är det inte tillåtet att ha begärande-ID:t från olika DTP:er i samma Open Hub-tabell. Därför får du inte skapa mer än en DTP för varje Open Hub-mål (OHD). När du behöver fullständig och Delta-extrahering från samma InfoProvider bör du skapa två OHD:er för samma InfoProvider.

Förutsättningar

Om du vill använda den här SAP Business Warehouse Open Hub-anslutningsappen måste du:

  • Konfigurera en lokalt installerad integrationskörning med version 3.13 eller senare. Mer information finns i artikeln Om lokalt installerad integrationskörning .

  • Ladda ned 64-bitars SAP .NET Connector 3.0 från SAP:s webbplats och installera den på den lokalt installerade IR-datorn. När du installerar i fönstret valfria installationssteg kontrollerar du att du väljer alternativet Installera sammansättningar till GAC enligt följande bild.

    Installera SAP .NET Connector

  • SAP-användare som används i BW-anslutningsappen måste ha följande behörigheter:

    • Auktorisering för RFC och SAP BW.
    • Behörigheter till aktiviteten "Kör" för auktoriseringsobjektet "S_SDSAUTH".
  • Skapa SAP Open Hub-måltypen som databastabell med alternativet "Teknisk nyckel" markerat. Vi rekommenderar också att du lämnar borttagningsdata från tabellen avmarkerade även om det inte krävs. Använd DTP (direkt köra eller integrera i den befintliga processkedjan) för att landa data från källobjekt (till exempel kub) som du har valt till måltabellen för den öppna hubben.

Komma igång

Dricks

En genomgång av hur du använder SAP BW Open Hub-anslutningsprogrammet finns i Läsa in data från SAP Business Warehouse (BW).

Om du vill utföra kopieringsaktiviteten med en pipeline kan du använda något av följande verktyg eller SDK:er:

Följande avsnitt innehåller information om egenskaper som används för att definiera entiteter som är specifika för SAP Business Warehouse Open Hub-anslutningsappen.

Länkade tjänstegenskaper

Följande egenskaper stöds för den länkade SAP Business Warehouse Open Hub-tjänsten:

Property Beskrivning Obligatoriskt
type Typegenskapen måste anges till: SapOpenHub Ja
server Namnet på servern där SAP BW-instansen finns. Ja
systemNumber Systemnummer för SAP BW-systemet.
Tillåtet värde: tvåsiffrigt decimaltal representerat som en sträng.
Ja
messageServer Värdnamnet för SAP-meddelandeservern.
Använd för att ansluta till en SAP-meddelandeserver.
Nej
messageServerService Meddelandeserverns tjänstnamn eller portnummer.
Använd för att ansluta till en SAP-meddelandeserver.
Nej
systemId ID:t för SAP-systemet där tabellen finns.
Använd för att ansluta till en SAP-meddelandeserver.
Nej
logonGroup Inloggningsgruppen för SAP-systemet.
Använd för att ansluta till en SAP-meddelandeserver.
Nej
clientId Klient-ID för klienten i SAP W-systemet.
Tillåtet värde: tresiffrigt decimaltal representerat som en sträng.
Ja
språk Språk som SAP-systemet använder. Nej (standardvärdet är EN)
userName Namnet på den användare som har åtkomst till SAP-servern. Ja
password Lösenordet för användaren. Markera det här fältet som en SecureString för att lagra det på ett säkert sätt eller referera till en hemlighet som lagras i Azure Key Vault. Ja
connectVia Integration Runtime som ska användas för att ansluta till datalagret. En lokalt installerad integrationskörning krävs enligt vad som anges i Krav. Ja

Exempel:

{
    "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"
        }
    }
}

Egenskaper för datauppsättning

En fullständig lista över avsnitt och egenskaper som är tillgängliga för att definiera datauppsättningar finns i artikeln Datauppsättningar . Det här avsnittet innehåller en lista över egenskaper som stöds av SAP BW Open Hub-datauppsättningen.

Om du vill kopiera data från och till SAP BW Open Hub anger du datauppsättningens typegenskap till SapOpenHubTable. Följande egenskaper stöds.

Property Beskrivning Obligatoriskt
type Typegenskapen måste vara inställd på SapOpenHubTable. Ja
openHubDestinationName Namnet på open hub-målet som du vill kopiera data från. Ja

Om du ställer in excludeLastRequest och baseRequestId i datauppsättningen stöds den fortfarande som den är, medan du rekommenderas att använda den nya modellen i aktivitetskällan framöver.

Exempel:

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

Kopiera egenskaper för aktivitet

En fullständig lista över avsnitt och egenskaper som är tillgängliga för att definiera aktiviteter finns i artikeln Pipelines . Det här avsnittet innehåller en lista över egenskaper som stöds av SAP BW Open Hub-källan.

SAP BW Open Hub som källa

Om du vill kopiera data från SAP BW Open Hub stöds följande egenskaper i avsnittet kopieringsaktivitetskälla:

Property Beskrivning Obligatoriskt
type Typegenskapen för kopieringsaktivitetskällan måste anges till SapOpenHubSource. Ja
excludeLastRequest Om du vill exkludera posterna för den senaste begäran. Nej (standardvärdet är sant)
baseRequestId ID för begäran om deltainläsning. När den har angetts hämtas endast data med requestId som är större än värdet för den här egenskapen. Nej
customRfcReadTableFunctionModule En anpassad RFC-funktionsmodul som kan användas för att läsa data från en SAP-tabell.
Du kan använda en anpassad RFC-funktionsmodul för att definiera hur data hämtas från DITT SAP-system och returneras till tjänsten. Den anpassade funktionsmodulen måste ha ett gränssnitt implementerat (import, export, tabeller) som liknar /SAPDS/RFC_READ_TABLE2, vilket är standardgränssnittet som används av tjänsten.
Nej
sapDataColumnDelimiter Det enda tecken som används som avgränsare som skickas till SAP RFC för att dela upp utdata. Nej

Dricks

Om din Open Hub-tabell endast innehåller data som genererats av ett enda begärande-ID, till exempel om du alltid utför full belastning och skriver över befintliga data i tabellen, eller om du bara kör DTP en gång för test, kom ihåg att avmarkera alternativet "excludeLastRequest" för att kopiera ut data.

För att påskynda datainläsningen kan du ange parallelCopies att kopieringsaktiviteten ska läsa in data från SAP BW Open Hub parallellt. Om du till exempel anger parallelCopies till fyra kör tjänsten samtidigt fyra RFC-anrop och varje RFC-anrop hämtar en del data från din SAP BW Open Hub-tabell som partitionerats av DTP-begärande-ID och paket-ID. Detta gäller när antalet unika DTP-begärande-ID + paket-ID är större än värdet parallelCopiesför . När du kopierar data till ett filbaserat datalager rekommenderas det också att skriva till en mapp som flera filer (ange endast mappnamn), vilket innebär att prestandan är bättre än att skriva till en enda fil.

Exempel:

"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
        }
    }
]

Datatypsmappning för SAP BW Open Hub

När du kopierar data från SAP BW Open Hub används följande mappningar från SAP BW-datatyper till mellanliggande datatyper som används internt i tjänsten. Se Schema- och datatypmappningar för att lära dig mer om hur kopieringsaktivitet mappar källschemat och datatypen till mottagaren.

SAP ABAP-typ Datatyp för interimstjänst
C (sträng) String
I (heltal) Int32
F (flyttal) Dubbel
D (datum) String
T (tid) String
P (BCD Packed, Currency, Decimal, Qty) Decimal
N (Numc) String
X (binär och rå) String

Egenskaper för uppslagsaktivitet

Mer information om egenskaperna finns i Sökningsaktivitet.

Felsökningstips

Symptom: Om du kör SAP BW på HANA och observerar att endast delmängd av data kopieras över med kopieringsaktivitet (1 miljon rader) är den möjliga orsaken att du aktiverar alternativet "SAP HANA-körning" i din DTP, i vilket fall tjänsten bara kan hämta den första databatchen.

Lösning: Inaktivera alternativet "SAP HANA-körning" i DTP, bearbeta data igen och försök sedan köra kopieringsaktiviteten igen.

En lista över datalager som stöds som källor och mottagare av kopieringsaktiviteten finns i datalager som stöds.