Adatok másolása SAP-táblából Azure Data Factory vagy Azure Synapse Analytics

A KÖVETKEZŐKRE VONATKOZIK: Azure Data Factory Azure Synapse Analytics

Ez a cikk bemutatja, hogyan használhatja a másolási tevékenységet a Azure Data Factory és Azure Synapse Analytics egy SAP-táblából való adatmásoláshoz. További információkért lásd a Copy tevékenység áttekintését.

Tipp

Az SAP-adatintegrációs forgatókönyv általános támogatásával kapcsolatos további információkért tekintse meg az SAP-adatintegráció Azure Data Factory használatával tanulmányt, amely részletesen bevezető információkat tartalmaz az egyes SAP-összekötőkről, az összehasonlításról és az útmutatásról.

Támogatott képességek

Ez az SAP-tábla-összekötő a következő tevékenységekhez támogatott:

Az SAP-táblából bármely támogatott fogadóadattárba másolhat adatokat. A másolási tevékenység által forrásként vagy fogadóként támogatott adattárakat a Támogatott adattárak táblázatban láthatja.

Ez az SAP-tábla-összekötő a következőt támogatja:

  • Adatok másolása EGY SAP-táblából a következőben:

    • Sap ERP Central Component (SAP ECC) 7.01-es vagy újabb verzió (egy 2015 után kiadott sap támogatásicsomag-veremben).
    • SAP Business Warehouse (SAP BW) 7.01-es vagy újabb verzióját (egy 2015 után kiadott sap támogatási csomagcsomagban).
    • SAP S/4HANA.
    • Egyéb termékek az SAP Business Suite 7.01-es vagy újabb verziójában (egy 2015 után kiadott sap támogatási csomagcsomagban).
  • Adatok másolása sap transzparens táblából, készletbe csoportosított táblából, fürtözött táblából és nézetből.

  • Adatok másolása alapszintű hitelesítéssel vagy Biztonságos hálózati kommunikáció (SNC) használatával, ha az SNC konfigurálva van.

  • Csatlakozás SAP-alkalmazáskiszolgálóhoz vagy SAP üzenetkiszolgálóhoz.

  • Adatok lekérése alapértelmezett vagy egyéni RFC-n keresztül.

A 7.01-es vagy újabb verzió az SAP NETWeaver verzióra hivatkozik az SAP ECC-verzió helyett. Az SAP ECC 6.0 EHP 7-es verziója például általában NetWeaver >=7.4. Ha nem biztos a környezetében, a következő lépésekkel erősítse meg az SAP-rendszer verzióját:

  1. Az SAP GUI használata az SAP-rendszerhez való csatlakozáshoz.
  2. A Rendszer állapota -> stb.
  3. Ellenőrizze a kiadási SAP_BASIS, hogy a 701-es vagy nagyobb-e.
    Ellenőrizze a SAP_BASIS

Előfeltételek

Az SAP-tábla-összekötőhöz a következőt kell használnia:

  • Állítson be egy saját üzemeltetett integrációskörnyezetet (3.17-es vagy újabb verzió). További információ: Saját üzemeltetett integrációs környezet létrehozása és konfigurálása.

  • Töltse le a 64 bites SAP-összekötőt Microsoft .NET 3.0-hoz az SAP webhelyéről, és telepítse a saját üzemeltett integrációskörnyezeti gépen. A telepítés során válassza a Szerelvények telepítése a GAC-be lehetőséget a Választható telepítési lépések ablakban.

    A .NET-hez használható SAP-összekötő telepítése

  • Az SAP-tábla-összekötőben használt SAP-felhasználónak a következő engedélyekkel kell rendelkeznie:

    • Engedélyezés távoli függvényhívási (RFC) célhelyhez.
    • Engedélyek a S_SDSAUTH tevékenységéhez. A legtöbb engedélyezési objektumról az SAP Note 460089 is hivatkozhat. A mögöttes NCo-összekötőnek szüksége van bizonyos RFC-kre, például RFC_FUNCTION_SEARCH.

Bevezetés

A Copy tevékenység folyamatokkal való végrehajtásához a következő eszközök vagy AZDK-k egyikét használhatja:

SAP-táblához csatolt szolgáltatás létrehozása felhasználói felület használatával

Az alábbi lépésekkel hozhat létre egy SAP-táblához csatolt szolgáltatást a felhasználói Azure Portal felületén.

  1. Nyissa meg a Kezelés lapot a Azure Data Factory Synapse-munkaterületen, és válassza a Csatolt szolgáltatások lehetőséget, majd kattintson az Új elemre:

  2. Keressen rá az SAP kifejezésre, és válassza ki az SAP-tábla-összekötőt.

    Képernyőkép az SAP-tábla-összekötőről.

  3. Konfigurálja a szolgáltatás részleteit, tesztelje a kapcsolatot, és hozza létre az új csatolt szolgáltatást.

    Képernyőkép egy SAP Table-hez kapcsolódó szolgáltatás konfigurálásról.

Az összekötő konfigurációjának részletei

A következő szakaszok részletesen ismertetik az SAP-tábla-összekötőre jellemző entitások meghatározásához használt tulajdonságokat.

Csatolt szolgáltatás tulajdonságai

A következő tulajdonságok támogatottak az Open Hub SAP BW szolgáltatáshoz:

Tulajdonság Leírás Kötelező
type A type tulajdonságot a következőre kell beállítani: SapTable . Yes
server Annak a kiszolgálónak a neve, amelyen az SAP-példány található.
SAP-alkalmazáskiszolgálóhoz való csatlakozáshoz használható.
No
systemNumber Az SAP-rendszer rendszerszáma.
SAP-alkalmazáskiszolgálóhoz való csatlakozáshoz használható.
Megengedett érték: Sztringként megadott kétjegyű decimális szám.
No
messageServer Az SAP üzenetkiszolgáló állomásneve.
Sap üzenetkiszolgálóhoz való csatlakozáshoz használja a következőt: .
No
messageServerService Az üzenetkiszolgáló szolgáltatásneve vagy portszáma.
Sap üzenetkiszolgálóhoz való csatlakozáshoz használja a következőt: .
No
systemId Annak az SAP-rendszernek az azonosítója, ahol a tábla található.
Sap üzenetkiszolgálóhoz való csatlakozáshoz használja a következőt: .
No
logonGroup Az SAP-rendszer bejelentkezési csoportja.
Sap üzenetkiszolgálóhoz való csatlakozáshoz használja a következőt: .
No
clientId Az ÜGYFÉL azonosítója az SAP-rendszerben.
Megengedett érték: Sztringként megadott háromjegyű decimális szám.
Yes
language Az SAP-rendszer által használt nyelv.
Az alapértelmezett érték EN.
No
userName Annak a felhasználónak a neve, aki hozzáféréssel rendelkezik az SAP-kiszolgálóhoz. Yes
password A felhasználó jelszava. Jelölje meg ezt a mezőt a típussal a biztonságos tároláshoz, vagy hivatkozhat SecureString egy, azAzure Key Vault. Yes
sncMode Az SNC aktiválási jelzője az SAP-kiszolgáló eléréséhez, ahol a tábla található.
Ha SNC-t szeretne használni az SAP-kiszolgálóhoz való csatlakozáshoz, használja a következőt: .
Az engedélyezett értékek 0 a következőek: (ki, az alapértelmezett) 1 vagy (be).
No
sncMyName A kezdeményező SNC-neve a táblát tároló SAP-kiszolgáló eléréséhez.
Akkor sncMode érvényes, ha be van rajta.
No
sncPartnerName A kommunikációs partner SNC-neve az SAP-kiszolgáló eléréséhez, ahol a tábla található.
Akkor sncMode érvényes, ha be van rajta.
No
sncLibraryPath A külső biztonsági termék kódtára a táblát tároló SAP-kiszolgáló eléréséhez.
Akkor sncMode érvényes, ha be van rajta.
No
sncQop Az alkalmazandó SNC-védelmi minőségi szint.
Akkor sncMode érvényes, ha Be van va.
Megengedett értékek: 1 (Hitelesítés), 2 (Integrity), 3 (Adatvédelem), 8 (Alapértelmezett), 9 (Maximum).
No
connectVia Az adattárhoz való csatlakozáshoz használt integrációs futtatás. Szükség van egy saját futtatású integrációs környezetre, ahogyan azt a Prerequisites (Előfeltételek) korábban említettük. Yes

1. példa: Csatlakozás SAP-alkalmazáskiszolgálóhoz való 3. példa

{
    "name": "SapTableLinkedService",
    "properties": {
        "type": "SapTable",
        "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"
        }
    }
}

2. példa: Csatlakozás SAP-üzenetkiszolgálóhoz való Csatlakozás

{
    "name": "SapTableLinkedService",
    "properties": {
        "type": "SapTable",
        "typeProperties": {
            "messageServer": "<message server name>",
            "messageServerService": "<service name or port>",
            "systemId": "<system ID>",
            "logonGroup": "<logon group>",
            "clientId": "<client ID>",
            "userName": "<SAP user>",
            "password": {
                "type": "SecureString",
                "value": "<Password for SAP user>"
            }
        },
        "connectVia": {
            "referenceName": "<name of integration runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

3. példa: Csatlakozás SNC használatával

{
    "name": "SapTableLinkedService",
    "properties": {
        "type": "SapTable",
        "typeProperties": {
            "server": "<server name>",
            "systemNumber": "<system number>",
            "clientId": "<client ID>",
            "userName": "<SAP user>",
            "password": {
                "type": "SecureString",
                "value": "<Password for SAP user>"
            },
            "sncMode": 1,
            "sncMyName": "<SNC myname>",
            "sncPartnerName": "<SNC partner name>",
            "sncLibraryPath": "<SNC library path>",
            "sncQop": "8"
        },
        "connectVia": {
            "referenceName": "<name of integration runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Adatkészlet tulajdonságai

Az adatkészletek meghatározásához szükséges szakaszok és tulajdonságok teljes listáját lásd: Adatkészletek. A következő szakasz az SAP-táblaadatkészlet által támogatott tulajdonságok listáját tartalmazza.

Az Open Hub-hez SAP BW szolgáltatásokból és szolgáltatásokba való adatmásolódás esetén a következő tulajdonságok támogatottak:

Tulajdonság Leírás Kötelező
type A type tulajdonságot a következőre kell beállítani: SapTableResource . Yes
tableName Annak az SAP-táblának a neve, amelyből adatokat másol. Yes

Példa

{
    "name": "SAPTableDataset",
    "properties": {
        "type": "SapTableResource",
        "typeProperties": {
            "tableName": "<SAP table name>"
        },
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<SAP table linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

Másolási tevékenység tulajdonságai

A tevékenységek meghatározására vonatkozó szakaszok és tulajdonságok teljes listájáért lásd: Folyamatok. A következő szakasz az SAP-táblaforrás által támogatott tulajdonságok listáját tartalmazza.

SAP-tábla mint forrás

Az adatok SAP-táblából való másolásához a következő tulajdonságok támogatottak:

Tulajdonság Leírás Kötelező
type A type tulajdonságot a következőre kell beállítani: SapTableSource . Yes
rowCount A lekérni kívánt sorok száma. No
rfcTableFields Az SAP-táblából másolt mezők (oszlopok). Például: column0, column1. No
rfcTableOptions Az SAP-tábla sorait szűrő beállítások. Például: COLUMN0 EQ 'SOMEVALUE'. Lásd még a cikk későbbi, SAP lekérdezési operátorok táblázatát. No
customRfcReadTableFunctionModule Egy egyéni RFC-függvénymodul, amely adatok olvasására használható egy SAP-táblából.
Egy egyéni RFC-függvénymodul használatával meghatározhatja, hogy a rendszer hogyan olvassa be az adatokat az SAP-rendszerből, és hogyan adja vissza a szolgáltatásnak. Az egyéni függvénymodulnak a szolgáltatás által használt alapértelmezett felülethez hasonló interfészt kell használnia (importálás, exportálás, /SAPDS/RFC_READ_TABLE2 táblák).
No
partitionOption Az SAP-táblából olvasható partíciós mechanizmus. A támogatott lehetőségek a következők:
  • None
  • PartitionOnInt (normál egész szám vagy egész szám, bal oldalon nulla kitöltéssel, 0000012345 például: )
  • PartitionOnCalendarYear (4 számjegy az "YYYYY" formátumban)
  • PartitionOnCalendarMonth (6 számjegy az "YYYYMM" formátumban)
  • PartitionOnCalendarDate (8 számjegy az "YYYYMMDD" formátumban)
  • PartitionOntime (6 számjegy "HHMMSS" formátumban, például 235959 )
No
partitionColumnName Az adatok particionálására használt oszlop neve. No
partitionUpperBound A által megadott oszlop maximális értéke, amely a particionálás folytatásához partitionColumnName lesz használva. No
partitionLowerBound A által megadott oszlop minimális értéke, amely a particionálás folytatásához partitionColumnName lesz használva. (Megjegyzés: partitionLowerBound nem lehet "0", ha a partíciós beállítás PartitionOnInt ) No
maxPartitionsNumber Az adatokat felosztó partíciók maximális száma. Az alapértelmezett érték az 1. No
sapDataColumnDelimiter Az SAP RFC-nek a kimeneti adatok felosztásához elválasztó karakterként használt karakter. No

Tipp

Ha az SAP-tábla nagy mennyiségű adatot, például több milliárd sort tartalmaz, a és a használatával ossza fel az adatokat kisebb partitionOption partitionSetting partíciókra. Ebben az esetben a rendszer partíciónként olvassa be az adatokat, és minden adatpartíciót egyetlen RFC-hívással olvas be az SAP-kiszolgálóról.

Példaként az egyes partíciókban lévő sorok számát a következő képlettel számítjuk ki: (a és a közötti sorok partitionOption partitionOnInt teljes száma partitionUpperBound partitionLowerBound )/ maxPartitionsNumber .

Az adatpartíciók párhuzamos betöltéséhez a másolás felgyorsítása érdekében a párhuzamos fokot a másolási tevékenység parallelCopies beállítása vezérli. Ha például négyre van állítva, a szolgáltatás egyidejűleg generál és futtat négy lekérdezést a megadott partíciós beállítás és beállítások alapján, és minden lekérdezés lekéri az adatok egy részét az parallelCopies SAP-táblából. Erősen ajánlott maxPartitionsNumber a tulajdonság értékének többszörösét parallelCopies kihozni. Amikor fájlalapú adattárba másol adatokat, a rendszer arra is parancsot ad, hogy több fájlként írjon egy mappába (csak mappanevet adjon meg), amely esetben a teljesítmény jobb, mint egyetlen fájlba írni.

Tipp

A BASXML alapértelmezés szerint engedélyezve van ehhez az SAP Table-összekötőhöz a szolgáltatáson belül.

rfcTableOptionsA-ban a következő gyakori SAP-lekérdezési operátorok használatával szűrheti a sorokat:

Operátor Leírás
EQ Egyenlő
NE Nem egyenlő
LT Kisebb, mint
LE Kisebb vagy egyenlő
GT Nagyobb, mint
GE Nagyobb vagy egyenlő
IN Mint itt: TABCLASS IN ('TRANSP', 'INTTAB')
LIKE Mint itt: LIKE 'Emma%'

Példa

"activities":[
    {
        "name": "CopyFromSAPTable",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<SAP table input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "SapTableSource",
                "partitionOption": "PartitionOnInt",
                "partitionSettings": {
                     "partitionColumnName": "<partition column name>",
                     "partitionUpperBound": "2000",
                     "partitionLowerBound": "1",
                     "maxPartitionsNumber": 500
                 }
            },
            "sink": {
                "type": "<sink type>"
            },
            "parallelCopies": 4
        }
    }
]

SAP-táblák illesztés

Jelenleg az SAP Table-összekötő csak egyetlen táblát támogat az alapértelmezett függvénymodullal. Több tábla összekapcsolt adatainak leolvasásához használhatja az SAP Table-összekötő customRfcReadTableFunctionModule tulajdonságát az alábbi lépésekben:

  • Írjon egy egyéni függvénymodult,amely egy lekérdezést OPTIONS-ként is felhasználhatja, és saját logikát alkalmazhat az adatok lekéréséhez.
  • Az "Egyéni függvény modul" mezőben adja meg az egyéni függvénymodul nevét.
  • Az "RFC table options" (RFC-táblabeállítások) beállításnál adja meg a függvénymodulba betáplni kívánt tábla-illesztés utasítást OPTIONS (BEÁLLÍTÁSOK) értékként, például: " <TABLE1> INNER JOIN <TABLE2> ON COLUMN0".

Az alábbiakban egy példát mutatunk be:

Sap Table Join

Tipp

Emellett az SAP Table-összekötő által támogatott VIEW nézetben is összesítheti az összekapcsolt adatokat. Megpróbálhat kapcsolódó táblákat kinyerni az Azure-ba való beléptetéshez (pl. Azure Storage, Azure SQL Database), majd a Data Flow használatával folytathatja a további illesztéseket vagy szűrést.

Egyéni függvénymodul létrehozása

Az SAP-tábla jelenleg a customRfcReadTableFunctionModule tulajdonságot támogatja a másolási forrásban, amely lehetővé teszi a saját logika és az adatok feldolgozását.

Rövid útmutatóként íme néhány követelmény az "Egyéni függvény modul" első lépésekhez:

  • Definíció:

    Definíció

  • Exportálja az adatokat az alábbi táblázatok egyikében:

    1. tábla exportálása

    2. exportálási táblázat

Az alábbiakban az SAP Table Connector egyéni függvénymodulokkal való működését szemléltetjük:

  1. Kapcsolat létrehozása az SAP-kiszolgálóval az SAP NCO-n keresztül.

  2. Hívja meg az "Egyéni függvénymodul" metódust az alábbi módon beállított paraméterekkel:

    • QUERY_TABLE: az SAP-tábla adatkészletében beállított táblanév;
    • Elválasztó: az SAP-táblaforrásban beállított elválasztójel;
    • ROWCOUNT/Option/Fields: a táblaforrásban beállított Rowcount/Aggregated Option/Fields.
  3. Szerezze be az eredményt, és elemezze az adatokat az alábbi módokon:

    1. Elemezze a Mezők táblában található értéket a sémák lekért értékéhez.

      Értékek elemezve a Mezőkben

    2. A kimeneti tábla értékeinek lekért értékeivel láthatja, hogy melyik tábla tartalmazza ezeket az értékeket.

      Értékek lekérte a kimeneti táblában

    3. Szerezze be a OUT_TABLE értékeit, elemezze az adatokat, majd írja őket a fogadóba.

Sap-tábla adattípus-leképezései

Amikor adatokat másol egy SAP-táblából, a következő leképezéseket használja a rendszer az SAP-tábla adattípusaiból a szolgáltatásban használt köztes adattípusok között. A másolási tevékenység a forrássémát és az adattípust a fogadóhoz való leképezésével kapcsolatos további információkért lásd: Séma- és adattípus-leképezések.

SAP ABAP típusa Szolgáltatás köztes adattípusa
C (Sztring) String
I (Egész szám) Int32
F (Lebegő pont) Double
D (Dátum) String
T (Idő) String
P (BCD Packed, Currency, Decimal, Qty) Decimal
N (Numerikus) String
X (Bináris és nyers) String

Keresési tevékenység tulajdonságai

A tulajdonságokkal kapcsolatos részletekért tekintse meg a keresési tevékenységet.

Következő lépések

A másolási tevékenység által forrásként és fogadóként támogatott adattárak listáját lásd: Támogatott adattárak.