Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 Omówienie działania kopiowania.
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 |
---|---|
Kopiowanie aktywności (źródło/-) | (2) |
Aktywność wyszukiwania | (2) |
(1) Środowisko Azure Integration Runtime (2) Lokalnie hostowane środowisko Integracji
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 zarówno z przezroczystej tabeli SAP, jak i z tabeli w puli, tabeli klastrowanej oraz 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 przy użyciu domyślnego lub niestandardowego RFC.
Aby uzyskać więcej informacji na temat usługi SNC, zobacz Artykuł Getting started with SAP SNC for RFC integrations - SAP blog (Wprowadzenie do integracji oprogramowania SAP SNC na potrzeby integracji RFC — blog SAP).
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ź wersję SAP_BASIS i upewnij się, że jest ona równa lub większa 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 w 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. Można odwoływać się do SAP Note 460089 w sprawie większości obiektów autoryzacji. Niektóre RFC są wymagane przez łącznik NCo, na przykład RFC_FUNCTION_SEARCH.
Rozpocznij
Aby wykonać akcję kopiowania za pomocą potoku, możesz użyć jednego z następujących narzędzi lub zestawów SDK:
- Narzędzie do kopiowania danych
- Portal Azure
- 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 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 | Wymagane |
---|---|---|
type |
Właściwość type musi być ustawiona 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. Wpływa na numer PORTU używany podczas komunikacji z tabelą SAP. Dozwolona wartość: dwucyfrowa liczba dziesiętna reprezentowana jako ciąg. |
Nie. |
messageServer |
Nazwa hosta serwera komunikatów SAP. Użyj tego, aby połączyć się z serwerem komunikatów SAP. |
Nie. |
messageServerService |
Nazwa usługi lub numer portu serwera komunikatów. Użyj tego, aby połączyć się z serwerem komunikatów SAP. |
Nie. |
systemId |
Identyfikator systemu SAP, w którym znajduje się tabela. Użyj tego, aby połączyć się z serwerem komunikatów SAP. |
Nie. |
logonGroup |
Grupa logowania dla systemu SAP. Użyj tego, aby połączyć się 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, jeśli chcesz użyć SNC do połączenia z serwerem SAP. 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 |
Poziom jakości ochrony do zastosowania w 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"
}
}
}
Aby uzyskać więcej informacji na temat usługi SNC, zobacz Artykuł Getting started with SAP SNC for RFC integrations - SAP blog (Wprowadzenie do integracji oprogramowania SAP SNC na potrzeby integracji RFC — blog SAP).
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 | Wymagane |
---|---|---|
type |
Właściwość type musi być ustawiona 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 | Wymagane |
---|---|---|
type |
Właściwość type musi być ustawiona 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 partycjonowania do odczytu danych 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 , która będzie używana do kontynuacji partycjonowania. |
Nie. |
partitionLowerBound |
Minimalna wartość kolumny określonej w partitionColumnName , 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, jest 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.
Biorąc partitionOption
jako partitionOnInt
jako przykład, liczba wierszy w każdej partycji jest obliczana na podstawie tej formuły: (łączna liczba wierszy pomiędzy partitionUpperBound
oraz partitionLowerBound
)/maxPartitionsNumber
.
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 ustawisz parallelCopies
na cztery, usługa jednocześnie generuje i uruchamia cztery zapytania na podstawie określonej opcji partycji i innych ustawień, a każde zapytanie pobiera część danych z tabeli SAP. Zdecydowanie zalecamy, aby wartość maxPartitionsNumber
była wielokrotnością wartości właściwości parallelCopies
. Podczas kopiowania danych do magazynu danych opartego na plikach zaleca się również zapisanie w folderze jako wielu plików (tylko określenie nazwy 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:
Obsługujący | Opis |
---|---|
EQ |
Równa się |
NE |
Nierówne |
LT |
Mniejsze niż |
LE |
Mniej 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, jak łącznik tabel SAP działa z modułem funkcji niestandardowych.
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 (Pływak) |
Double |
D (Data) |
String |
T (Czas) |
String |
P (BCD Opakowane, Waluta, Dziesiętny, Ilość) |
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ź Lookup activity.
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.