Kopiowanie danych z tabeli SAP przy użyciu usługi Azure Data Factory lub Azure Synapse Analytics
DOTYCZY: Azure Data Factory
Azure Synapse Analytics
Napiwek
Wypróbuj usługę Data Factory w usłudze Microsoft Fabric — rozwiązanie analityczne typu all-in-one dla przedsiębiorstw. Usługa Microsoft Fabric obejmuje wszystko, od przenoszenia danych do nauki o danych, analizy w czasie rzeczywistym, analizy biznesowej i raportowania. Dowiedz się, jak bezpłatnie rozpocząć nową wersję próbną !
W tym artykule opisano sposób używania działania kopiowania w potokach usługi Azure Data Factory i Usługi Azure Synapse Analytics do kopiowania danych z tabeli SAP. Aby uzyskać więcej informacji, zobacz działanie Kopiuj omówienie.
Napiwek
Aby dowiedzieć się więcej na temat ogólnego scenariusza integracji danych SAP, zobacz oficjalny dokument dotyczący integracji danych SAP przy użyciu usługi Azure Data Factory ze szczegółowym wprowadzeniem do każdego łącznika SAP, porównania i wskazówek.
Obsługiwane możliwości
Ten łącznik tabel SAP jest obsługiwany w następujących możliwościach:
Obsługiwane możliwości | IR |
---|---|
działanie Kopiuj (źródło/-) | (2) |
Działanie Lookup | (2) |
(1) Środowisko Azure Integration Runtime (2) Self-hosted Integration Runtime
Aby uzyskać listę magazynów danych obsługiwanych jako źródła lub ujścia działania kopiowania, zobacz tabelę Obsługiwane magazyny danych.
W szczególności ten łącznik tabel SAP obsługuje następujące elementy:
Kopiowanie danych z tabeli SAP w:
- SAP ERP Central Component (SAP ECC) w wersji 7.01 lub nowszej (w ostatnim stosie pakietów pomocy technicznej SAP wydanym po 2015 r.).
- SAP Business Warehouse (SAP BW) w wersji 7.01 lub nowszej (w ostatnim stosie pakietów pomocy technicznej SAP wydanym po 2015 r.).
- SAP S/4HANA.
- Inne produkty w pakiecie SAP Business Suite w wersji 7.01 lub nowszej (w ostatnim stosie pakietów pomocy technicznej SAP wydanym po 2015 r.).
Kopiowanie danych z przezroczystej tabeli SAP, tabeli w puli, tabeli klastrowanej i widoku.
Kopiowanie danych przy użyciu uwierzytelniania podstawowego lub protokołu Secure Network Communications (SNC), jeśli skonfigurowano usługę SNC.
Nawiązywanie połączenia z serwerem aplikacji SAP lub serwerem komunikatów SAP.
Pobieranie danych za pomocą domyślnego lub niestandardowego specyfikacji RFC.
Wersja 7.01 lub nowsza odwołuje się do wersji SAP NetWeaver zamiast wersji sap ECC. Na przykład system SAP ECC 6.0 EHP 7 ogólnie ma wersję >NetWeaver =7.4. Jeśli nie masz pewności co do środowiska, poniżej przedstawiono procedurę potwierdzania wersji z systemu SAP:
- Użyj graficznego interfejsu użytkownika sap, aby nawiązać połączenie z systemem SAP.
- Przejdź do pozycji System ->Status.
- Sprawdź wydanie SAP_BASIS, upewnij się, że jest on równy lub większy niż 701.
Wymagania wstępne
Aby użyć tego łącznika tabel SAP, należy wykonać następujące czynności:
Skonfiguruj własne środowisko Integration Runtime (wersja 3.17 lub nowsza). Aby uzyskać więcej informacji, zobacz Tworzenie i konfigurowanie własnego środowiska Integration Runtime.
Pobierz 64-bitowy łącznik SAP Connector dla platformy Microsoft .NET 3.0 z witryny internetowej SAP i zainstaluj go na maszynie własnego środowiska Integration Runtime. Podczas instalacji upewnij się, że w oknie Opcjonalne kroki konfiguracji wybrano opcję Zainstaluj zestawy do GAC.
Użytkownik SAP, który jest używany w łączniku tabel SAP, musi mieć następujące uprawnienia:
- Autoryzacja do korzystania z miejsc docelowych wywołania funkcji zdalnej (RFC).
- Uprawnienia do działania Execute obiektu autoryzacji S_SDSAUTH. W przypadku większości obiektów autoryzacji można odwoływać się do 460089 SAP Note. Niektóre rfCs są wymagane przez podstawowy łącznik NCo, na przykład RFC_FUNCTION_SEARCH.
Rozpocznij
Aby wykonać działanie Kopiuj za pomocą potoku, możesz użyć jednego z następujących narzędzi lub zestawów SDK:
- Narzędzie do kopiowania danych
- Witryna Azure Portal
- Zestaw SDK platformy .NET
- Zestaw SDK języka Python
- Azure PowerShell
- Interfejs API REST
- Szablon usługi Azure Resource Manager
Tworzenie połączonej usługi z tabelą SAP przy użyciu interfejsu użytkownika
Wykonaj poniższe kroki, aby utworzyć połączoną usługę z tabelą SAP w interfejsie użytkownika witryny Azure Portal.
Przejdź do karty Zarządzanie w obszarze roboczym usługi Azure Data Factory lub Synapse i wybierz pozycję Połączone usługi, a następnie kliknij pozycję Nowy:
Wyszukaj pozycję SAP i wybierz łącznik tabeli SAP.
Skonfiguruj szczegóły usługi, przetestuj połączenie i utwórz nową połączoną usługę.
Szczegóły konfiguracji łącznika
Poniższe sekcje zawierają szczegółowe informacje o właściwościach używanych do definiowania jednostek specyficznych dla łącznika tabeli SAP.
Właściwości połączonej usługi
Następujące właściwości są obsługiwane dla połączonej usługi SAP BW Open Hub:
Właściwości | Opis | Wymagania |
---|---|---|
type |
Właściwość musi być ustawiona type na SapTable . |
Tak |
server |
Nazwa serwera, na którym znajduje się wystąpienie SAP. Użyj polecenia , aby nawiązać połączenie z serwerem aplikacji SAP. |
Nie. |
systemNumber |
Numer systemowy systemu SAP. Użyj polecenia , aby nawiązać połączenie z serwerem aplikacji SAP. Dozwolona wartość: dwucyfrowa liczba dziesiętna reprezentowana jako ciąg. |
Nie. |
messageServer |
Nazwa hosta serwera komunikatów SAP. Użyj polecenia , aby nawiązać połączenie z serwerem komunikatów SAP. |
Nie. |
messageServerService |
Nazwa usługi lub numer portu serwera komunikatów. Użyj polecenia , aby nawiązać połączenie z serwerem komunikatów SAP. |
Nie. |
systemId |
Identyfikator systemu SAP, w którym znajduje się tabela. Użyj polecenia , aby nawiązać połączenie z serwerem komunikatów SAP. |
Nie. |
logonGroup |
Grupa logowania dla systemu SAP. Użyj polecenia , aby nawiązać połączenie z serwerem komunikatów SAP. |
Nie. |
clientId |
Identyfikator klienta w systemie SAP. Dozwolona wartość: trzycyfrowa liczba dziesiętna reprezentowana jako ciąg. |
Tak |
language |
Język używany przez system SAP. Wartość domyślna to EN . |
Nie. |
userName |
Nazwa użytkownika, który ma dostęp do serwera SAP. | Tak |
password |
Hasło użytkownika. Oznacz to pole typem SecureString w celu bezpiecznego przechowywania go lub odwołuj się do wpisu tajnego przechowywanego w usłudze Azure Key Vault. |
Tak |
sncMode |
Wskaźnik aktywacji SNC w celu uzyskania dostępu do serwera SAP, na którym znajduje się tabela. Użyj polecenia , aby nawiązać połączenie z serwerem SAP przy użyciu SNC. Dozwolone wartości to 0 (wyłączone, domyślne) lub 1 (włączone). |
Nie. |
sncMyName |
Nazwa SNC inicjatora w celu uzyskania dostępu do serwera SAP, na którym znajduje się tabela. Ma zastosowanie, gdy sncMode jest włączone. |
Nie. |
sncPartnerName |
Nazwa SNC partnera komunikacji w celu uzyskania dostępu do serwera SAP, na którym znajduje się tabela. Ma zastosowanie, gdy sncMode jest włączone. |
Nie. |
sncLibraryPath |
Biblioteka produktu zabezpieczeń zewnętrznych w celu uzyskania dostępu do serwera SAP, na którym znajduje się tabela. Ma zastosowanie, gdy sncMode jest włączone. |
Nie. |
sncQop |
Należy zastosować poziom jakości ochrony SNC. Ma zastosowanie, gdy sncMode jest włączone. Dozwolone wartości to 1 (Uwierzytelnianie), 2 (Integralność), 3 (Prywatność), 8 (Ustawienie domyślne), 9 (Maksimum). |
Nie. |
connectVia |
Środowisko Integration Runtime do nawiązania połączenia z magazynem danych. Wymagane jest własne środowisko Integration Runtime, jak wspomniano wcześniej w temacie Wymagania wstępne. | Tak |
Przykład 1. Nawiązywanie połączenia z serwerem aplikacji 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"
}
}
}
Przykład 2. Nawiązywanie połączenia z serwerem komunikatów 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"
}
}
}
Przykład 3. Nawiązywanie połączenia przy użyciu 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"
}
}
}
Właściwości zestawu danych
Aby uzyskać pełną listę sekcji i właściwości definiowania zestawów danych, zobacz Zestawy danych. Poniższa sekcja zawiera listę właściwości obsługiwanych przez zestaw danych tabeli SAP.
Aby skopiować dane z i do połączonej usługi SAP BW Open Hub, obsługiwane są następujące właściwości:
Właściwości | Opis | Wymagania |
---|---|---|
type |
Właściwość musi być ustawiona type na SapTableResource . |
Tak |
tableName |
Nazwa tabeli SAP do skopiowania danych. | Tak |
Przykład
{
"name": "SAPTableDataset",
"properties": {
"type": "SapTableResource",
"typeProperties": {
"tableName": "<SAP table name>"
},
"schema": [],
"linkedServiceName": {
"referenceName": "<SAP table linked service name>",
"type": "LinkedServiceReference"
}
}
}
Właściwości działania kopiowania
Aby uzyskać pełną listę sekcji i właściwości definiowania działań, zobacz Pipelines (Potoki). Poniższa sekcja zawiera listę właściwości obsługiwanych przez źródło tabeli SAP.
Tabela SAP jako źródło
Aby skopiować dane z tabeli SAP, obsługiwane są następujące właściwości:
Właściwości | Opis | Wymagania |
---|---|---|
type |
Właściwość musi być ustawiona type na SapTableSource . |
Tak |
rowCount |
Liczba wierszy do pobrania. | Nie. |
rfcTableFields |
Pola (kolumny) do skopiowania z tabeli SAP. Na przykład column0, column1 . |
Nie. |
rfcTableOptions |
Opcje filtrowania wierszy w tabeli SAP. Na przykład COLUMN0 EQ 'SOMEVALUE' . Zobacz również tabelę operatorów zapytań SAP w dalszej części tego artykułu. |
Nie. |
customRfcReadTableFunctionModule |
Niestandardowy moduł funkcji RFC, który może służyć do odczytywania danych z tabeli SAP. Możesz użyć niestandardowego modułu funkcji RFC, aby zdefiniować sposób pobierania danych z systemu SAP i zwracania ich do usługi. Moduł funkcji niestandardowej musi mieć zaimplementowany interfejs (import, eksport, tabele) podobny do /SAPDS/RFC_READ_TABLE2 , który jest domyślnym interfejsem używanym przez usługę. |
Nie. |
partitionOption |
Mechanizm partycji do odczytu z tabeli SAP. Obsługiwane opcje obejmują:
|
Nie. |
partitionColumnName |
Nazwa kolumny używanej do partycjonowania danych. | Nie. |
partitionUpperBound |
Maksymalna wartość kolumny określonej w partitionColumnName pliku , która będzie używana do kontynuowania partycjonowania. |
Nie. |
partitionLowerBound |
Minimalna wartość kolumny określonej w partitionColumnName pliku , która będzie używana do kontynuowania partycjonowania. (Uwaga: partitionLowerBound nie może być "0", gdy opcja partycji to PartitionOnInt ) |
Nie. |
maxPartitionsNumber |
Maksymalna liczba partycji do podzielenia danych na. Domyślna wartość wynosi 1. | Nie. |
sapDataColumnDelimiter |
Pojedynczy znak, który jest używany jako ogranicznik przekazywany do oprogramowania SAP RFC w celu podzielenia danych wyjściowych. | Nie. |
Napiwek
Jeśli tabela SAP zawiera dużą ilość danych, takich jak kilka miliardów wierszy, użyj polecenia partitionOption
i partitionSetting
podzielić dane na mniejsze partycje. W takim przypadku dane są odczytywane na partycję, a każda partycja danych jest pobierana z serwera SAP za pośrednictwem jednego wywołania RFC.
Na partitionOption
przykład liczba wierszy w każdej partycji jest obliczana przy użyciu tej formuły: (łączna liczba wierszy spadających między partitionUpperBound
i partitionLowerBound
)/maxPartitionsNumber
.partitionOnInt
Aby ładować partycje danych równolegle w celu przyspieszenia kopiowania, stopień równoległy jest kontrolowany przez parallelCopies
ustawienie działania kopiowania. Jeśli na przykład ustawiono parallelCopies
wartość cztery, usługa jednocześnie generuje i uruchamia cztery zapytania na podstawie określonej opcji partycji i ustawień, a każde zapytanie pobiera część danych z tabeli SAP. Zdecydowanie zalecamy utworzenie maxPartitionsNumber
wielokrotności wartości parallelCopies
właściwości. Podczas kopiowania danych do magazynu danych opartego na plikach zaleca się również zapisanie w folderze jako wielu plików (tylko określ nazwę folderu), w tym przypadku wydajność jest lepsza niż zapisywanie w jednym pliku.
Napiwek
Właściwość BASXML
jest domyślnie włączona dla tego łącznika tabel SAP w usłudze.
W rfcTableOptions
programie można użyć następujących typowych operatorów zapytań SAP do filtrowania wierszy:
Operator | opis |
---|---|
EQ |
Równa się |
NE |
Nierówne |
LT |
Mniejsze niż |
LE |
Mniejsze niż lub równe |
GT |
Większe niż |
GE |
Większe niż lub równe |
IN |
Tak jak w TABCLASS IN ('TRANSP', 'INTTAB') |
LIKE |
Tak jak w LIKE 'Emma%' |
Przykład
"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
}
}
]
Łączenie tabel SAP
Obecnie łącznik SAP Table Connector obsługuje tylko jedną tabelę z domyślnym modułem funkcji. Aby uzyskać dane sprzężone wielu tabel, możesz użyć właściwości customRfcReadTableFunctionModule w łączniku tabel SAP, wykonując poniższe kroki:
- Napisz moduł funkcji niestandardowej, który może przyjąć zapytanie jako OPCJE i zastosować własną logikę w celu pobrania danych.
- W polu "Moduł funkcji niestandardowej" wprowadź nazwę modułu funkcji niestandardowej.
- W przypadku opcji "opcje tabeli RFC" określ instrukcję sprzężenia tabeli, która ma być zawarta w module funkcji, na przykład "
<TABLE1>
INNER JOIN<TABLE2>
ON COLUMN0".
Poniżej przedstawiono przykład:
Napiwek
Możesz również rozważyć zagregowanie sprzężonych danych w widoku obsługiwanym przez łącznik SAP Table Connector. Możesz również spróbować wyodrębnić powiązane tabele, aby dołączyć do platformy Azure (np. Azure Storage, Azure SQL Database), a następnie użyć Przepływ danych, aby kontynuować dołączanie lub filtrowanie.
Tworzenie modułu funkcji niestandardowej
W przypadku tabeli SAP obecnie obsługujemy właściwość customRfcReadTableFunctionModule w źródle kopiowania, która umożliwia wykorzystanie własnej logiki i przetwarzania danych.
Poniżej przedstawiono kilka wskazówek, które należy spełnić, aby rozpocząć pracę z modułem "Funkcja niestandardowa":
Definicja:
Eksportuj dane do jednej z poniższych tabel:
Poniżej przedstawiono ilustracje dotyczące sposobu działania łącznika tabel SAP z modułem funkcji niestandardowej:
Skompiluj połączenie z serwerem SAP za pośrednictwem rozwiązania SAP NCO.
Wywołaj "Moduł funkcji niestandardowej" przy użyciu parametrów ustawionych poniżej:
- QUERY_TABLE: nazwa tabeli ustawiona w zestawie danych tabeli SAP;
- Ogranicznik: ogranicznik ustawiony w źródle tabeli SAP;
- ROWCOUNT/Option/Fields: pole Rowcount/Aggregated Option/Fields ustawione w źródle tabeli.
Pobierz wynik i przeanalizuj dane w następujący sposób:
Przeanalizuj wartość w tabeli Pola, aby pobrać schematy.
Pobierz wartości tabeli wyjściowej, aby zobaczyć, która tabela zawiera te wartości.
Pobierz wartości w OUT_TABLE, przeanalizuj dane, a następnie zapisz je w ujściu.
Mapowania typów danych dla tabeli SAP
Podczas kopiowania danych z tabeli SAP następujące mapowania są używane z typów danych tabeli SAP do tymczasowych typów danych używanych w usłudze. Aby dowiedzieć się, jak działanie kopiowania mapuje schemat źródłowy i typ danych na ujście, zobacz Mapowania schematu i typu danych.
Typ protokołu SAP ABAP | Typ danych tymczasowych usługi |
---|---|
C (Ciąg) |
String |
I (Liczba całkowita) |
Int32 |
F (Zmiennoprzecinkowy) |
Double |
D (Data) |
String |
T (Czas) |
String |
P (BCD Pakowane, Waluta, Dziesiętne, Qty) |
Decimal |
N (Numeryczne) |
String |
X (Dane binarne i nieprzetworzone) |
String |
Właściwości działania wyszukiwania
Aby dowiedzieć się więcej o właściwościach, sprawdź działanie Wyszukiwania.
Powiązana zawartość
Aby uzyskać listę magazynów danych obsługiwanych jako źródła i ujścia działania kopiowania, zobacz Obsługiwane magazyny danych.