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 chcete zjistit celkovou podporu 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
Další informace o SNC najdete v tématu Začínáme se SAP SNC pro integraci RFC – blog SAP.
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"
}
}
}
Další informace o SNC najdete v tématu Začínáme se SAP SNC pro integraci RFC – blog SAP.
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.