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/-) | (2) |
Aktivita Lookup | (2) |
(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í k aplikačnímu serveru SAP nebo serveru 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:
- Pomocí grafického uživatelského rozhraní SAP se připojte k systému SAP.
- Přejděte na Stav systému>.
- Zkontrolujte verzi SAP_BASIS, ujistěte se, že je rovna nebo větší než 701.
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 64bitový konektor SAP 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.
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:
- Nástroj pro kopírování dat
- Azure Portal
- Sada .NET SDK
- Sada Python SDK
- Azure PowerShell
- Rozhraní REST API
- Šablona Azure Resource Manageru
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.
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ý:
Vyhledejte SAP a vyberte konektor tabulky SAP.
Nakonfigurujte podrobnosti o službě, otestujte připojení a vytvořte novou propojenou službu.
Podrobnosti konfigurace konektoru
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 SapTable hodnotu . |
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í k serveru 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 SapTableResource hodnotu . |
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 SapTableSource hodnotu . |
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ří:
|
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 PartitionOnInt mož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 rfcTableOptions
aplikaci 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:
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:
Exportujte data do jedné z následujících tabulek:
Níže je znázorněno, jak konektor tabulky SAP funguje s vlastním modulem funkcí:
Sestavte připojení k serveru SAP přes SAP NCO.
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.
Získejte výsledek a parsujte data následujícími způsoby:
Parsujte hodnotu v tabulce Pole a získejte schémata.
Získejte hodnoty výstupní tabulky, abyste viděli, která tabulka obsahuje tyto hodnoty.
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 SAP ABAP | 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í.
Související obsah
Seznam úložišť dat podporovaných jako zdroje a jímky aktivitou kopírování najdete v tématu Podporované úložiště dat.