Gegevens kopiëren vanuit SAP Business Warehouse via Open Hub met behulp van Azure Data Factory of Synapse Analytics
VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics
Tip
Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .
In dit artikel wordt beschreven hoe u de kopieeractiviteit in Azure Data Factory- en Synapse Analytics-pijplijnen gebruikt om gegevens te kopiëren van een SAP Business Warehouse (BW) via Open Hub. Het is gebaseerd op het artikel over het overzicht van kopieeractiviteiten met een algemeen overzicht van de kopieeractiviteit.
Tip
Zie het technisch document over SAP-gegevensintegratie met gedetailleerde inleiding over elke SAP-connector, vergelijking en richtlijnen voor algemene ondersteuning voor het scenario voor SAP-gegevensintegratie.
Ondersteunde mogelijkheden
Deze SAP Business Warehouse Open Hub-connector wordt ondersteund voor de volgende mogelijkheden:
Ondersteunde mogelijkheden | IR |
---|---|
Copy-activiteit (bron/-) | (2) |
Activiteit Lookup | (2) |
(1) Azure Integration Runtime (2) Zelf-hostende Integration Runtime
Zie de tabel Ondersteunde gegevensarchieven voor een lijst met gegevensarchieven die worden ondersteund als bronnen/sinks door de kopieeractiviteit.
Deze OPEN Hub-connector voor SAP Business Warehouse ondersteunt met name:
- SAP Business Warehouse versie 7.01 of hoger (in een recente SAP-ondersteuningspakketstack uitgebracht na het jaar 2015). SAP BW/4HANA wordt niet ondersteund door deze connector.
- Gegevens kopiëren via de lokale open hub-doeltabel, die daaronder DSO, InfoCube, MultiProvider, DataSource, enzovoort kan zijn.
- Gegevens kopiëren met basisverificatie.
- Verbinding maken met een SAP-toepassingsserver of SAP-berichtserver.
- Gegevens ophalen via RFC.
Integratie van SAP BW Open Hub
SAP BW Open Hub Service is een efficiënte manier om gegevens uit SAP BW te extraheren. In het volgende diagram ziet u een van de typische stromen die klanten hebben in hun SAP-systeem. In dat geval stromen gegevens uit SAP ECC -> PSA -> DSO -> Kubus.
SAP BW Open Hub Destination (OHD) definieert het doel waarnaar de SAP-gegevens worden doorgestuurd. Alle objecten die door SAP Data Transfer Process (DTP) worden ondersteund, kunnen worden gebruikt als open hubgegevensbronnen, bijvoorbeeld DSO, InfoCube, DataSource, enzovoort. Open Hub Destination type - waar de relay-gegevens worden opgeslagen - kunnen databasetabellen (lokaal of extern) en platte bestanden zijn. Deze SAP BW Open Hub-connector biedt ondersteuning voor het kopiëren van gegevens uit de lokale OHD-tabel in BW. Als u andere typen gebruikt, kunt u rechtstreeks verbinding maken met de database of het bestandssysteem met behulp van andere connectors.
Deltaextractiestroom
De SAP BW Open Hub Connector biedt twee optionele eigenschappen: excludeLastRequest
en baseRequestId
die kunnen worden gebruikt voor het afhandelen van deltabelastingen vanuit Open Hub.
- excludeLastRequestId: of de records van de laatste aanvraag moeten worden uitgesloten. De standaardwaarde is true.
- baseRequestId: de id van de aanvraag voor het laden van delta's. Zodra deze is ingesteld, worden alleen gegevens met requestId groter dan de waarde van deze eigenschap opgehaald.
Over het algemeen bestaat de extractie uit SAP InfoProviders uit twee stappen:
SAP BW Data Transfer Process (DTP) Met deze stap worden de gegevens van een SAP BW InfoProvider gekopieerd naar een SAP BW Open Hub-tabel
Gegevens kopiëren In deze stap wordt de Open Hub-tabel gelezen door de connector
In de eerste stap wordt een DTP uitgevoerd. Elke uitvoering maakt een nieuwe SAP-aanvraag-id. De aanvraag-id wordt opgeslagen in de Open Hub-tabel en wordt vervolgens door de connector gebruikt om de delta te identificeren. De twee stappen worden asynchroon uitgevoerd: de DTP wordt geactiveerd door SAP en de gegevenskopie wordt geactiveerd via de service.
De service leest standaard niet de meest recente delta uit de Open Hub-tabel (optie Laatste aanvraag uitsluiten is waar). Hierbij zijn de gegevens in de service niet 100% up-to-date met de gegevens in de Open Hub-tabel (de laatste delta ontbreekt). Als resultaat zorgt deze procedure ervoor dat er geen rijen verloren gaan die worden veroorzaakt door de asynchrone extractie. Het werkt prima, zelfs wanneer de service de Open Hub-tabel leest terwijl de DTP nog steeds in dezelfde tabel schrijft.
Normaal gesproken slaat u de maximaal gekopieerde aanvraag-id op in de laatste uitvoering door de service in een faseringsgegevensarchief (zoals Azure Blob in het bovenstaande diagram). Daarom wordt dezelfde aanvraag niet een tweede keer gelezen door de service in de volgende uitvoering. In de tussentijd worden de gegevens niet automatisch verwijderd uit de Open Hub-tabel.
Voor de juiste deltaafhandeling is het niet toegestaan om aanvraag-id's van verschillende DTP's in dezelfde Open Hub-tabel te hebben. Daarom moet u niet meer dan één DTP maken voor elke Open Hub Destination (OHD). Wanneer u volledige en Delta-extractie van dezelfde InfoProvider nodig hebt, moet u twee OHD's maken voor dezelfde InfoProvider.
Vereisten
Als u deze OPEN Hub-connector voor SAP Business Warehouse wilt gebruiken, moet u het volgende doen:
Stel een zelf-hostende Integration Runtime in met versie 3.13 of hoger. Zie het artikel over zelf-hostende Integration Runtime voor meer informatie.
Download de 64-bits SAP .NET Connector 3.0 van de website van SAP en installeer deze op de zelf-hostende IR-computer. Zorg er tijdens de installatie in het optionele installatiestappenvenster voor dat u de optie Assembly's installeren naar GAC selecteert, zoals wordt weergegeven in de volgende afbeelding.
SAP-gebruiker die in de BW-connector wordt gebruikt, moet over de volgende machtigingen beschikken:
- Autorisatie voor RFC en SAP BW.
- Machtigingen voor de activiteit Uitvoeren van autorisatieobject 'S_SDSAUTH'.
Maak het doeltype SAP Open Hub als databasetabel met de optie 'Technische sleutel' ingeschakeld. Het wordt ook aanbevolen om de gegevens uit de tabel te verwijderen als uitgeschakeld, hoewel dit niet vereist is. Gebruik de DTP (rechtstreeks uitvoeren of integreren in bestaande procesketen) om gegevens van bronobject (zoals kubus) te landen die u hebt gekozen voor de open hub-doeltabel.
Aan de slag
Tip
Zie Gegevens laden uit SAP Business Warehouse (BW) voor een overzicht van het gebruik van de SAP BW Open Hub-connector.
Als u de kopieeractiviteit wilt uitvoeren met een pijplijn, kunt u een van de volgende hulpprogramma's of SDK's gebruiken:
- Het hulpprogramma voor het kopiëren van gegevens
- Azure Portal
- De .NET-SDK
- De Python-SDK
- Azure PowerShell
- De REST API
- Een Azure Resource Manager-sjabloon
De volgende secties bevatten details over eigenschappen die worden gebruikt om entiteiten te definiëren die specifiek zijn voor SAP Business Warehouse Open Hub-connector.
Eigenschappen van gekoppelde service
De volgende eigenschappen worden ondersteund voor gekoppelde SAP Business Warehouse Open Hub-service:
Eigenschappen | Beschrijving | Vereist |
---|---|---|
type | De eigenschap type moet worden ingesteld op: SapOpenHub | Ja |
server | Naam van de server waarop het SAP BW-exemplaar zich bevindt. | Ja |
systemNumber | Systeemnummer van het SAP BW-systeem. Toegestane waarde: een decimaal getal van twee cijfers dat wordt weergegeven als een tekenreeks. |
Ja |
messageServer | De hostnaam van de SAP-berichtserver. Gebruik dit om verbinding te maken met een SAP-berichtserver. |
Nee |
messageServerService | De servicenaam of het poortnummer van de berichtserver. Gebruik dit om verbinding te maken met een SAP-berichtserver. |
Nee |
systemId | De id van het SAP-systeem waar de tabel zich bevindt. Gebruik dit om verbinding te maken met een SAP-berichtserver. |
Nee |
logonGroup | De aanmeldingsgroep voor het SAP-systeem. Gebruik dit om verbinding te maken met een SAP-berichtserver. |
Nee |
clientId | Client-id van de client in het SAP W-systeem. Toegestane waarde: een decimaal getal van drie cijfers dat wordt weergegeven als een tekenreeks. |
Ja |
language | Taal die het SAP-systeem gebruikt. | Nee (standaardwaarde is EN) |
gebruikersnaam | Naam van de gebruiker die toegang heeft tot de SAP-server. | Ja |
password | Het wachtwoord voor de gebruiker. Markeer dit veld als SecureString om het veilig op te slaan of verwijs naar een geheim dat is opgeslagen in Azure Key Vault. | Ja |
connectVia | De Integration Runtime die moet worden gebruikt om verbinding te maken met het gegevensarchief. Een zelf-hostende Integration Runtime is vereist, zoals vermeld in vereisten. | Ja |
Voorbeeld:
{
"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"
}
}
}
Eigenschappen van gegevensset
Zie het artikel Gegevenssets voor een volledige lijst met secties en eigenschappen die beschikbaar zijn voor het definiëren van gegevenssets . Deze sectie bevat een lijst met eigenschappen die worden ondersteund door de SAP BW Open Hub-gegevensset.
Als u gegevens wilt kopiëren van en naar SAP BW Open Hub, stelt u de typeeigenschap van de gegevensset in op SapOpenHubTable. De volgende eigenschappen worden ondersteund.
Eigenschappen | Beschrijving | Vereist |
---|---|---|
type | De typeeigenschap moet worden ingesteld op SapOpenHubTable. | Ja |
openHubDestinationName | De naam van de Open Hub-bestemming waaruit u gegevens wilt kopiëren. | Ja |
Als u de instelling excludeLastRequest
en baseRequestId
in de gegevensset hebt gebruikt, wordt deze nog steeds ondersteund, terwijl u wordt aangeraden het nieuwe model in de activiteitsbron in de toekomst te gebruiken.
Voorbeeld:
{
"name": "SAPBWOpenHubDataset",
"properties": {
"type": "SapOpenHubTable",
"typeProperties": {
"openHubDestinationName": "<open hub destination name>"
},
"schema": [],
"linkedServiceName": {
"referenceName": "<SAP BW Open Hub linked service name>",
"type": "LinkedServiceReference"
}
}
}
Eigenschappen van de kopieeractiviteit
Zie het artikel Pijplijnen voor een volledige lijst met secties en eigenschappen die beschikbaar zijn voor het definiëren van activiteiten. Deze sectie bevat een lijst met eigenschappen die worden ondersteund door SAP BW Open Hub source.
SAP BW Open Hub als bron
Als u gegevens wilt kopiëren vanuit SAP BW Open Hub, worden de volgende eigenschappen ondersteund in de sectie kopieeractiviteitsbron:
Eigenschappen | Beschrijving | Vereist |
---|---|---|
type | De typeeigenschap van de bron van de kopieeractiviteit moet worden ingesteld op SapOpenHubSource. | Ja |
excludeLastRequest | Of de records van de laatste aanvraag moeten worden uitgesloten. | Nee (standaard is waar) |
baseRequestId | De id van de aanvraag voor het laden van delta's. Zodra deze is ingesteld, worden alleen gegevens met requestId groter dan de waarde van deze eigenschap opgehaald. | Nee |
customRfcReadTableFunctionModule | Een aangepaste RFC-functiemodule die kan worden gebruikt om gegevens uit een SAP-tabel te lezen. U kunt een aangepaste RFC-functiemodule gebruiken om te definiëren hoe de gegevens worden opgehaald uit uw SAP-systeem en worden geretourneerd naar de service. De aangepaste functiemodule moet een interface hebben geïmplementeerd (importeren, exporteren, tabellen) die vergelijkbaar is met /SAPDS/RFC_READ_TABLE2 , wat de standaardinterface is die door de service wordt gebruikt. |
Nee |
sapDataColumnDelimiter | Het enkele teken dat wordt gebruikt als scheidingsteken dat wordt doorgegeven aan SAP RFC om de uitvoergegevens te splitsen. | Nee |
Tip
Als uw Open Hub-tabel alleen de gegevens bevat die zijn gegenereerd door één aanvraag-id, bijvoorbeeld, voert u altijd de volledige belasting uit en overschrijft u de bestaande gegevens in de tabel of voert u de DTP slechts één keer uit voor de test, vergeet dan niet om de optie excludeLastRequest uit te schakelen om de gegevens te kopiëren.
Als u het laden van gegevens wilt versnellen, kunt u instellen parallelCopies
dat de kopieeractiviteit gegevens van SAP BW Open Hub parallel laadt. Als u bijvoorbeeld instelt op parallelCopies
vier, voert de service gelijktijdig vier RFC-aanroepen uit en haalt elke RFC-aanroep een deel van de gegevens op uit uw SAP BW Open Hub-tabel die is gepartitioneerd door de DTP-aanvraag-id en pakket-id. Dit geldt wanneer het aantal unieke DTP-aanvraag-id en pakket-id groter is dan de waarde van parallelCopies
. Wanneer u gegevens kopieert naar een bestandsgegevensarchief, wordt u ook gevraagd om naar een map te schrijven als meerdere bestanden (alleen mapnaam opgeven), in welk geval de prestaties beter zijn dan schrijven naar één bestand.
Voorbeeld:
"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
}
}
]
Toewijzing van gegevenstypen voor SAP BW Open Hub
Bij het kopiëren van gegevens uit SAP BW Open Hub worden de volgende toewijzingen gebruikt van SAP BW-gegevenstypen tot tussentijdse gegevenstypen die intern in de service worden gebruikt. Zie Schema- en gegevenstypetoewijzingen voor meer informatie over hoe kopieeractiviteit het bronschema en het gegevenstype toewijst aan de sink.
SAP ABAP-type | Tussentijdse servicegegevenstype |
---|---|
C (tekenreeks) | String |
I (geheel getal) | Int32 |
F (float) | Dubbel |
D (datum) | String |
T (tijd) | String |
P (BCD Packed, Currency, Decimal, Qty) | Decimal |
N (Numc) | String |
X (binair en onbewerkt) | String |
Eigenschappen van opzoekactiviteit
Als u meer wilt weten over de eigenschappen, controleert u de lookup-activiteit.
Tips voor probleemoplossing
Symptomen: Als u SAP BW uitvoert op HANA en alleen een subset van gegevens bekijkt, wordt gekopieerd via kopieeractiviteit (1 miljoen rijen), is de mogelijke oorzaak dat u de optie SAP HANA-uitvoering inschakelt in uw DTP. In dat geval kan de service alleen de eerste batch met gegevens ophalen.
Oplossing: Schakel de optie SAP HANA-uitvoering in DTP uit, verwerkt de gegevens opnieuw en probeer de kopieeractiviteit opnieuw uit te voeren.
Gerelateerde inhoud
Zie ondersteunde gegevensarchieven voor een lijst met gegevensarchieven die worden ondersteund als bronnen en sinks door de kopieeractiviteit.