Kopírování dat z tabulky SAP pomocí Azure Data Factory nebo Azure Synapse Analytics

PLATÍ PRO: Azure Data Factory Azure Synapse Analytics

Tip

Vyzkoušejte si službu Data Factory v Microsoft Fabric, řešení pro analýzy typu all-in-one pro podniky. Microsoft Fabric zahrnuje všechno od přesunu dat až po datové vědy, analýzy v reálném čase, business intelligence a vytváření sestav. Přečtěte si, jak začít používat novou zkušební verzi zdarma.

Tento článek popisuje, jak pomocí aktivity kopírování v kanálech Azure Data Factory a Azure Synapse Analytics kopírovat data z tabulky SAP. Další informace najdete v aktivita Copy přehledu.

Tip

Pokud se chcete dozvědět o celkové podpoře scénáře integrace dat SAP, přečtěte si článek o integraci dat SAP pomocí dokumentu white paper o službě Azure Data Factory s podrobným úvodem ke každému konektoru SAP, porovnání a doprovodným materiálům.

Podporované funkce

Tento konektor tabulky SAP je podporovaný pro následující funkce:

Podporované funkce IR
aktivita Copy (zdroj/-)
Aktivita Lookup

(1) Prostředí Azure Integration Runtime (2) Místní prostředí Integration Runtime

Seznam úložišť dat podporovaných jako zdroje nebo jímky aktivitou kopírování najdete v tabulce Podporované úložiště dat.

Konkrétně tento konektor tabulky SAP podporuje:

  • Kopírování dat z tabulky SAP v:

    • SAP ERP Central Component (SAP ECC) verze 7.01 nebo novější (v nedávném zásobníku balíčků podpory SAP vydaném po roce 2015).
    • SAP Business Warehouse (SAP BW) verze 7.01 nebo novější (v nedávném zásobníku balíčků podpory SAP vydaném po roce 2015).
    • SAP S/4HANA.
    • Další produkty v SAP Business Suite verze 7.01 nebo novější (v nedávném balíčku podpory SAP vydaném po roce 2015).
  • Kopírování dat z průhledné tabulky SAP, tabulky ve fondu, skupinové tabulky a zobrazení

  • Kopírování dat pomocí základního ověřování nebo zabezpečené síťové komunikace (SNC), pokud je nakonfigurované SNC.

  • Připojení na aplikační server SAP nebo na server zpráv SAP.

  • Načítání dat pomocí výchozího nebo vlastního dokumentu RFC

Verze 7.01 nebo novější odkazuje na verzi SAP NetWeaver místo verze SAP ECC. Například SAP ECC 6.0 EHP 7 má obecně NetWeaver verze >=7.4. V případě, že si nejste jistí svým prostředím, tady jsou kroky k potvrzení verze ze systému SAP:

  1. Pomocí grafického uživatelského rozhraní SAP se připojte k systému SAP.
  2. Přejděte na Stav systému>.
  3. Zkontrolujte verzi SAP_BASIS, ujistěte se, že je rovna nebo větší než 701.
    Check SAP_BASIS

Požadavky

Pokud chcete použít tento konektor tabulky SAP, musíte:

  • Nastavení místního prostředí Integration Runtime (verze 3.17 nebo novější) Další informace najdete v tématu Vytvoření a konfigurace místního prostředí Integration Runtime.

  • Stáhněte si 64bitovou verzi sap Připojení or pro Microsoft .NET 3.0 z webu SAP a nainstalujte ho na počítač s místním prostředím Integration Runtime. Během instalace nezapomeňte v okně Volitelné kroky instalace vybrat možnost Instalovat sestavení do GAC.

    Install SAP Connector for .NET

  • Uživatel SAP, který se používá v konektoru tabulky SAP, musí mít následující oprávnění:

    • Autorizace pro použití cílů vzdáleného volání funkce (RFC).
    • Oprávnění ke spuštění aktivity S_SDSAUTH objektu autorizace. Na objektech autorizace většiny najdete 460089 SAP Note. Některé rfcs vyžadují základní konektor NCo, například RFC_FUNCTION_SEARCH.

Začínáme

K provedení aktivita Copy s kanálem můžete použít jeden z následujících nástrojů nebo sad SDK:

Vytvoření propojené služby s tabulkou SAP pomocí uživatelského rozhraní

Pomocí následujícího postupu vytvořte propojenou službu s tabulkou SAP v uživatelském rozhraní webu Azure Portal.

  1. Přejděte na kartu Správa v pracovním prostoru Azure Data Factory nebo Synapse a vyberte Propojené služby a pak klikněte na Nový:

  2. Vyhledejte SAP a vyberte konektor tabulky SAP.

    Screenshot of the SAP table connector.

  3. Nakonfigurujte podrobnosti o službě, otestujte připojení a vytvořte novou propojenou službu.

    Screenshot of configuration for an SAP table linked service.

podrobnosti o konfiguraci Připojení oru

Následující části obsahují podrobnosti o vlastnostech, které slouží k definování entit specifických pro konektor tabulky SAP.

Vlastnosti propojené služby

Propojená služba SAP BW Open Hub podporuje následující vlastnosti:

Vlastnost Popis Povinní účastníci
type Vlastnost musí být nastavena type na SapTablehodnotu . Ano
server Název serveru, na kterém se nachází instance SAP.
Slouží k připojení k aplikačnímu serveru SAP.
No
systemNumber Systémové číslo systému SAP.
Slouží k připojení k aplikačnímu serveru SAP.
Povolená hodnota: Dvouciferné desetinné číslo reprezentované jako řetězec.
No
messageServer Název hostitele serveru zpráv SAP.
Slouží k připojení k serveru zpráv SAP.
No
messageServerService Název služby nebo číslo portu serveru zpráv.
Slouží k připojení k serveru zpráv SAP.
No
systemId ID systému SAP, ve kterém se tabulka nachází.
Slouží k připojení k serveru zpráv SAP.
No
logonGroup Přihlašovací skupina pro systém SAP.
Slouží k připojení k serveru zpráv SAP.
No
clientId ID klienta v systému SAP.
Povolená hodnota: Tříciferné desetinné číslo reprezentované jako řetězec.
Ano
language Jazyk, který systém SAP používá.
Výchozí hodnota je EN.
No
userName Jméno uživatele, který má přístup k serveru SAP. Ano
password Heslo pro tohoto uživatele. Označte toto pole typem SecureString , aby bylo možné ho bezpečně uložit, nebo odkazovat na tajný kód uložený ve službě Azure Key Vault. Ano
sncMode Indikátor aktivace SNC pro přístup k serveru SAP, kde se tabulka nachází.
Použijte, pokud chcete použít SNC pro připojení k serveru SAP.
Povolené hodnoty jsou 0 (vypnuté, výchozí) nebo 1 (zapnuté).
No
sncMyName Název SNC iniciátora pro přístup k serveru SAP, kde se tabulka nachází.
Platí, když sncMode je zapnutý.
No
sncPartnerName Název SNC komunikačního partnera pro přístup k serveru SAP, kde se tabulka nachází.
Platí, když sncMode je zapnutý.
No
sncLibraryPath Knihovna externího produktu zabezpečení pro přístup k serveru SAP, kde se tabulka nachází.
Platí, když sncMode je zapnutý.
No
sncQop Úroveň kvality ochrany SNC, která se má použít.
Platí, když sncMode je zapnuto.
Povolené hodnoty jsou 1 (Ověřování), 2 (Integrita), 3 (Soukromí), 8 (Výchozí), 9 (Maximum).
No
connectVia Prostředí Integration Runtime , které se má použít pro připojení k úložišti dat. Vyžaduje se místní prostředí Integration Runtime, jak je uvedeno výše v části Požadavky. Ano

Příklad 1: Připojení k aplikačnímu serveru SAP

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

Příklad 2: Připojení na server zpráv SAP

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

Příklad 3: Připojení pomocí SNC

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

Vlastnosti datové sady

Úplný seznam oddílů a vlastností pro definování datových sad najdete v tématu Datové sady. Následující část obsahuje seznam vlastností podporovaných datovou sadou tabulky SAP.

Pokud chcete kopírovat data z propojené služby SAP BW Open Hub a do této propojené služby, podporují se následující vlastnosti:

Vlastnost Popis Povinní účastníci
type Vlastnost musí být nastavena type na SapTableResourcehodnotu . Ano
tableName Název tabulky SAP pro kopírování dat. Ano

Příklad

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

Vlastnosti aktivity kopírování

Úplný seznam oddílů a vlastností pro definování aktivit najdete v tématu Kanály. Následující část obsahuje seznam vlastností podporovaných zdrojem tabulky SAP.

Tabulka SAP jako zdroj

Pokud chcete kopírovat data z tabulky SAP, podporují se následující vlastnosti:

Vlastnost Popis Povinní účastníci
type Vlastnost musí být nastavena type na SapTableSourcehodnotu . Ano
rowCount Počet řádků, které se mají načíst. No
rfcTableFields Pole (sloupce) pro kopírování z tabulky SAP. Například column0, column1. No
rfcTableOptions Možnosti filtrování řádků v tabulce SAP. Například COLUMN0 EQ 'SOMEVALUE'. Viz také tabulka operátoru dotazu SAP dále v tomto článku. No
customRfcReadTableFunctionModule Vlastní modul funkcí RFC, který lze použít ke čtení dat z tabulky SAP.
Pomocí vlastního modulu funkce RFC můžete definovat, jak se data načítají z vašeho systému SAP a vrací se do služby. Modul vlastních funkcí musí mít implementované rozhraní (import, export, tabulky), které je podobné /SAPDS/RFC_READ_TABLE2, což je výchozí rozhraní používané službou.
No
partitionOption Mechanismus oddílu pro čtení z tabulky SAP. Mezi podporované možnosti patří:
  • None
  • PartitionOnInt (normální celočíselné nebo celočíselné hodnoty s nulovým odsazením vlevo, například 0000012345)
  • PartitionOnCalendarYear (4 číslice ve formátu "RRRR")
  • PartitionOnCalendarMonth (6 číslic ve formátu "RRRRMM")
  • PartitionOnCalendarDate (8 číslic ve formátu "RRRRMMDD")
  • PartitionOntime (6 číslic ve formátu "HHMMSS", například 235959)
No
partitionColumnName Název sloupce použitého k rozdělení dat. No
partitionUpperBound Maximální hodnota sloupce zadaného v partitionColumnName tomto sloupci bude použita k pokračování v dělení. No
partitionLowerBound Minimální hodnota sloupce zadaného v partitionColumnName tomto sloupci bude použita k pokračování v dělení. (Poznámka: partitionLowerBound Pokud je PartitionOnIntmožnost oddílu 0, nesmí být 0. No
maxPartitionsNumber Maximální počet oddílů, na které se mají data rozdělit. Výchozí hodnota je 1. No
sapDataColumnDelimiter Jeden znak, který se používá jako oddělovač předaný SAP RFC k rozdělení výstupních dat. No

Tip

Pokud tabulka SAP obsahuje velký objem dat, například několik miliard řádků, použijte partitionOption a partitionSetting rozdělte data do menších oddílů. V tomto případě se data čtou na oddíl a každý datový oddíl se načte ze serveru SAP prostřednictvím jednoho volání RFC.

Jako příklad se partitionOption počítá počet řádků v jednotlivých oddílech pomocí tohoto vzorce: (celkový počet řádků, které spadají mezi partitionUpperBound a partitionLowerBound)/maxPartitionsNumber.partitionOnInt

Pokud chcete načíst oddíly dat paralelně, aby se urychlila kopírování, řídí se parallelCopies paralelní stupeň nastavením aktivity kopírování. Pokud například nastavíte parallelCopies hodnotu čtyři, služba souběžně vygeneruje a spouští čtyři dotazy na základě zadané možnosti a nastavení oddílu a každý dotaz načte část dat z tabulky SAP. Důrazně doporučujeme vytvořit maxPartitionsNumber násobek hodnoty parallelCopies vlastnosti. Při kopírování dat do souborového úložiště dat se také doporučuje zapisovat do složky jako více souborů (zadat pouze název složky), v takovém případě je výkon lepší než zápis do jednoho souboru.

Tip

Tato BASXML možnost je ve výchozím nastavení povolená pro tento konektor tabulky SAP v rámci služby.

V rfcTableOptionsaplikaci můžete k filtrování řádků použít následující běžné operátory dotazu SAP:

Operátor Popis
EQ Rovno
NE Nikoli rovno
LT Je menší než
LE Menší než nebo rovno
GT Je větší než
GE Větší než nebo rovno
IN Jako v TABCLASS IN ('TRANSP', 'INTTAB')
LIKE Jako v LIKE 'Emma%'

Příklad

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

Spojení tabulek SAP

Konektor TABULKY SAP v současné době podporuje pouze jednu tabulku s výchozím modulem funkcí. Pokud chcete získat propojená data více tabulek, můžete využít vlastnost customRfcReadTableFunctionModule v konektoru tabulky SAP následujícím postupem:

  • Napište vlastní modul funkcí, který může použít dotaz jako MOŽNOSTI a použít vlastní logiku pro načtení dat.
  • Jako modul vlastní funkce zadejte název vlastního modulu funkce.
  • V části "Možnosti tabulky RFC" zadejte příkaz join tabulky, který se má vložit do modulu funkcí, například "<TABLE1> INNER JOIN <TABLE2> ON COLUMN0".

Níže je uveden příklad:

Sap Table Join

Tip

Můžete také zvážit agregaci připojených dat v zobrazení, která jsou podporována konektorem tabulky SAP. Můžete se také pokusit extrahovat související tabulky a připojit se k Azure (např. Azure Storage, Azure SQL Database) a pak pomocí Tok dat pokračovat s dalším spojením nebo filtrováním.

Vytvoření vlastního modulu funkcí

Pro tabulku SAP v současné době podporujeme vlastnost customRfcReadTableFunctionModule ve zdroji kopírování, která umožňuje využít vlastní logiku a zpracování dat.

Tady jsou některé požadavky, které vám pomůžou začít s modulem vlastní funkce:

  • Definice:

    Definition

  • Exportujte data do jedné z následujících tabulek:

    Export table 1

    Export table 2

Níže je znázorněno, jak konektor tabulky SAP funguje s vlastním modulem funkcí:

  1. Sestavte připojení k serveru SAP přes SAP NCO.

  2. Volejte modul vlastní funkce s parametry nastavenými níže:

    • QUERY_TABLE: název tabulky, který jste nastavili v datové sadě tabulky SAP;
    • Oddělovač: oddělovač, který jste nastavili ve zdroji tabulky SAP;
    • ROWCOUNT/Option/Fields: rowcount/Aggregated Option/Fields, která jste nastavili ve zdroji tabulky.
  3. Získejte výsledek a parsujte data následujícími způsoby:

    1. Parsujte hodnotu v tabulce Pole a získejte schémata.

      Parse values in Fields

    2. Získejte hodnoty výstupní tabulky, abyste viděli, která tabulka obsahuje tyto hodnoty.

      Get values in output table

    3. Získejte hodnoty v OUT_TABLE, parsujte data a pak je zapište do jímky.

Mapování datových typů pro tabulku SAP

Při kopírování dat z tabulky SAP se z datových typů tabulky SAP používají následující mapování k dočasným datovým typům používaným v rámci služby. Informace o tom, jak aktivita kopírování mapuje zdrojové schéma a datový typ na jímku, najdete v tématu Mapování schématu a datového typu.

Typ jazyk ABAP SAP Dočasný datový typ služby
C (Řetězec) String
I (Celé číslo) Int32
F (Float) Double
D (Datum) String
T (Čas) String
P (BCD Packed, Currency, Decimal, Qty) Decimal
N (Číselné) String
X (Binární a nezpracované) String

Vlastnosti aktivity vyhledávání

Podrobnosti o vlastnostech najdete v aktivitě Vyhledávání.

Seznam úložišť dat podporovaných jako zdroje a jímky aktivitou kopírování najdete v tématu Podporované úložiště dat.