Udostępnij za pośrednictwem


Kopiowanie danych z platformy SAP HANA przy użyciu usługi Azure Data Factory lub 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 Synapse Analytics do kopiowania danych z bazy danych SAP HANA. Jest on oparty na artykule omówienie działania kopiowania, który przedstawia ogólne omówienie działania kopiowania.

Napiwek

Aby dowiedzieć się więcej o ogólnej obsłudze scenariusza integracji danych SAP, zobacz oficjalny dokument dotyczący integracji danych SAP ze szczegółowym wprowadzeniem do każdego łącznika SAP, porównania i wskazówek.

Obsługiwane możliwości

Ten łącznik SAP HANA jest obsługiwany w następujących funkcjach:

Obsługiwane możliwości IR
działanie Kopiuj (źródło/ujście) (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/ujścia przez działanie kopiowania, zobacz tabelę Obsługiwane magazyny danych.

W szczególności ten łącznik SAP HANA obsługuje następujące elementy:

  • Kopiowanie danych z dowolnej wersji bazy danych SAP HANA.
  • Kopiowanie danych z modeli informacji platformy HANA (takich jak widoki analityczne i obliczeniowe) i tabel wierszy/kolumn.
  • Kopiowanie danych przy użyciu uwierzytelniania podstawowego lub windows .
  • Równoległe kopiowanie ze źródła sap HANA. Aby uzyskać szczegółowe informacje, zobacz sekcję Kopiowanie równoległe z platformy SAP HANA .

Napiwek

Aby skopiować dane do magazynu danych SAP HANA, użyj ogólnego łącznika ODBC. Zobacz sekcję ujścia platformy SAP HANA ze szczegółowymi informacjami. Zwróć uwagę, że połączone usługi dla łącznika SAP HANA i łącznika ODBC mają inny typ, dlatego nie można ich ponownie użyć.

Wymagania wstępne

Aby użyć tego łącznika SAP HANA, należy wykonać następujące czynności:

Wprowadzenie

Aby wykonać działanie Kopiuj za pomocą potoku, możesz użyć jednego z następujących narzędzi lub zestawów SDK:

Tworzenie połączonej usługi z platformą SAP HANA przy użyciu interfejsu użytkownika

Wykonaj poniższe kroki, aby utworzyć połączoną usługę z platformą SAP HANA w interfejsie użytkownika witryny Azure Portal.

  1. 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:

  2. Wyszukaj pozycję SAP i wybierz łącznik SAP HANA.

    Zrzut ekranu przedstawiający łącznik SAP HANA.

  3. Skonfiguruj szczegóły usługi, przetestuj połączenie i utwórz nową połączoną usługę.

    Zrzut ekranu przedstawiający połączoną konfigurację usługi dla platformy SAP HANA.

Szczegóły konfiguracji łącznika

Poniższe sekcje zawierają szczegółowe informacje o właściwościach używanych do definiowania jednostek usługi Data Factory specyficznych dla łącznika SAP HANA.

Właściwości połączonej usługi

Następujące właściwości są obsługiwane w przypadku połączonej usługi SAP HANA:

Właściwości Opis Wymagania
type Właściwość type musi być ustawiona na: SapHana Tak
Parametry połączenia Określ informacje potrzebne do nawiązania połączenia z platformą SAP HANA przy użyciu uwierzytelniania podstawowego lub uwierzytelniania systemu Windows. Zapoznaj się z poniższymi przykładami.
W parametry połączenia serwer/port jest obowiązkowy (domyślny port to 30015), a nazwa użytkownika i hasło są obowiązkowe podczas korzystania z uwierzytelniania podstawowego. Aby uzyskać dodatkowe ustawienia zaawansowane, zobacz Właściwości połączenia ODBC platformy SAP HANA
Możesz również umieścić hasło w usłudze Azure Key Vault i ściągnąć konfigurację hasła z parametry połączenia. Zapoznaj się z artykułem Przechowywanie poświadczeń w usłudze Azure Key Vault , aby uzyskać więcej szczegółów.
Tak
userName Określ nazwę użytkownika podczas korzystania z uwierzytelniania systemu Windows. Przykład: user@domain.com Nie.
hasło Określ hasło dla konta użytkownika. Oznacz to pole jako element SecureString w celu bezpiecznego przechowywania go lub odwołuj się do wpisu tajnego przechowywanego w usłudze Azure Key Vault. Nie.
connectVia Środowisko Integration Runtime do nawiązania połączenia z magazynem danych. Środowisko Integration Runtime (Self-hosted) jest wymagane zgodnie z wymaganiami wstępnymi. Tak

Przykład: użyj uwierzytelniania podstawowego

{
    "name": "SapHanaLinkedService",
    "properties": {
        "type": "SapHana",
        "typeProperties": {
            "connectionString": "SERVERNODE=<server>:<port (optional)>;UID=<userName>;PWD=<Password>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Przykład: używanie uwierzytelniania systemu Windows

{
    "name": "SapHanaLinkedService",
    "properties": {
        "type": "SapHana",
        "typeProperties": {
            "connectionString": "SERVERNODE=<server>:<port (optional)>;",
            "userName": "<username>", 
            "password": { 
                "type": "SecureString", 
                "value": "<password>" 
            } 
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Jeśli używasz połączonej usługi SAP HANA z następującym ładunkiem, nadal jest ona obsługiwana zgodnie z rzeczywistym użyciem, podczas gdy zaleca się korzystanie z nowej usługi w przyszłości.

Przykład:

{
    "name": "SapHanaLinkedService",
    "properties": {
        "type": "SapHana",
        "typeProperties": {
            "server": "<server>:<port (optional)>",
            "authenticationType": "Basic",
            "userName": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Właściwości zestawu danych

Pełna lista sekcji i właściwości dostępnych do definiowania zestawów danych znajduje się w artykule dotyczącym zestawów danych. Ta sekcja zawiera listę właściwości obsługiwanych przez zestaw danych SAP HANA.

Aby skopiować dane z platformy SAP HANA, obsługiwane są następujące właściwości:

Właściwości Opis Wymagania
type Właściwość type zestawu danych musi być ustawiona na: SapHanaTable Tak
schema Nazwa schematu w bazie danych SAP HANA. Nie (jeśli określono "zapytanie" w źródle działania)
table Nazwa tabeli w bazie danych SAP HANA. Nie (jeśli określono "zapytanie" w źródle działania)

Przykład:

{
    "name": "SAPHANADataset",
    "properties": {
        "type": "SapHanaTable",
        "typeProperties": {
            "schema": "<schema name>",
            "table": "<table name>"
        },
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<SAP HANA linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

Jeśli używasz RelationalTable wpisanego zestawu danych, nadal jest on obsługiwany w stanie rzeczywistym, podczas gdy zaleca się korzystanie z nowego zestawu danych w przyszłości.

Właściwości działania kopiowania

Aby uzyskać pełną listę sekcji i właściwości dostępnych do definiowania działań, zobacz artykuł Pipelines (Potoki ). Ta sekcja zawiera listę właściwości obsługiwanych przez źródło sap HANA.

OPROGRAMOWANIE SAP HANA jako źródło

Napiwek

Aby efektywnie pozyskiwać dane z platformy SAP HANA przy użyciu partycjonowania danych, dowiedz się więcej w sekcji Kopiowanie równoległe z platformy SAP HANA .

Aby skopiować dane z platformy SAP HANA, w sekcji źródła działania kopiowania są obsługiwane następujące właściwości:

Właściwości Opis Wymagania
type Właściwość type źródła działania kopiowania musi być ustawiona na: SapHanaSource Tak
zapytanie Określa zapytanie SQL do odczytu danych z wystąpienia sap HANA. Tak
partitionOptions Określa opcje partycjonowania danych używane do pozyskiwania danych z platformy SAP HANA. Dowiedz się więcej z sekcji Kopiowanie równoległe z platformy SAP HANA .
Dozwolone wartości to: Brak (wartość domyślna), PhysicalPartitionsOfTable, SapHanaDynamicRange. Dowiedz się więcej z sekcji Kopiowanie równoległe z platformy SAP HANA . PhysicalPartitionsOfTable Można go używać tylko podczas kopiowania danych z tabeli, ale nie do wykonywania zapytań.
Jeśli opcja partycji jest włączona (czyli nie None), stopień równoległości równoczesnego ładowania danych z platformy SAP HANA jest kontrolowany przez parallelCopies ustawienie działania kopiowania.
Fałszywy
partitionSettings Określ grupę ustawień partycjonowania danych.
Zastosuj, gdy opcja partycji to SapHanaDynamicRange.
Fałszywy
partitionColumnName Określ nazwę kolumny źródłowej, która będzie używana przez partycję do kopiowania równoległego. Jeśli nie zostanie określony, indeks lub klucz podstawowy tabeli zostanie automatycznie wykryty i użyty jako kolumna partycji.
Zastosuj, gdy opcja partycji to SapHanaDynamicRange. Jeśli używasz zapytania do pobierania danych źródłowych, podłącz element w ?AdfHanaDynamicRangePartitionCondition klauzuli WHERE. Zobacz przykład w sekcji Kopiowanie równoległe z platformy SAP HANA .
Tak w przypadku korzystania z SapHanaDynamicRange partycji. 
packetSize Określa rozmiar pakietu sieciowego (w kilobajtach), aby podzielić dane na wiele bloków. Jeśli masz dużą ilość danych do skopiowania, zwiększenie rozmiaru pakietu może zwiększyć szybkość odczytu z platformy SAP HANA w większości przypadków. Testy wydajnościowe są zalecane podczas dostosowywania rozmiaru pakietu. L.p.
Wartość domyślna to 2048 (2 MB).

Przykład:

"activities":[
    {
        "name": "CopyFromSAPHANA",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<SAP HANA input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "SapHanaSource",
                "query": "<SQL query for SAP HANA>"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Jeśli używasz RelationalSource źródła kopii wpisanej, nadal jest obsługiwana zgodnie z rzeczywistym użyciem, podczas gdy zaleca się użycie nowego źródła.

Kopiowanie równoległe z platformy SAP HANA

Łącznik SAP HANA zapewnia wbudowane partycjonowanie danych w celu równoległego kopiowania danych z platformy SAP HANA. Opcje partycjonowania danych można znaleźć w tabeli Źródłowe działania kopiowania.

Zrzut ekranu przedstawiający opcje partycji

Po włączeniu kopii partycjonowanej usługa uruchamia zapytania równoległe względem źródła SAP HANA w celu pobrania danych według partycji. 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 platformy SAP HANA.

Zaleca się włączenie kopiowania równoległego przy użyciu partycjonowania danych, szczególnie w przypadku pozyskiwania dużej ilości danych z platformy SAP HANA. Poniżej przedstawiono sugerowane konfiguracje dla różnych scenariuszy. Podczas kopiowania danych do magazynu danych opartego na plikach zaleca się zapisywanie w folderze jako wielu plików (tylko określ nazwę folderu), w tym przypadku wydajność jest lepsza niż zapisywanie w jednym pliku.

Scenariusz Sugerowane ustawienia
Pełne ładowanie z dużej tabeli. Opcja partycji: fizyczne partycje tabeli.

Podczas wykonywania usługa automatycznie wykrywa typ partycji fizycznej określonej tabeli SAP HANA i wybiera odpowiednią strategię partycji:
- Partycjonowanie zakresu: pobierz kolumnę partycji i zakresy partycji zdefiniowane dla tabeli, a następnie skopiuj dane według zakresu.
- Partycjonowanie skrótów: użyj klucza partycji skrótu jako kolumny partycji, a następnie partycjonuj i skopiuj dane na podstawie zakresów obliczanych przez usługę.
- Partycjonowanie okrężne lub brak partycji: użyj klucza podstawowego jako kolumny partycji, a następnie podziel na partycję i skopiuj dane na podstawie zakresów obliczanych przez usługę.
Załaduj dużą ilość danych przy użyciu zapytania niestandardowego. Opcja partycji: partycja zakresu dynamicznego.
Zapytanie: SELECT * FROM <TABLENAME> WHERE ?AdfHanaDynamicRangePartitionCondition AND <your_additional_where_clause>.
Kolumna partycji: określ kolumnę używaną do stosowania partycji zakresu dynamicznego.

Podczas wykonywania usługa najpierw oblicza zakresy wartości określonej kolumny partycji, równomiernie rozkładając wiersze w wielu zasobnikach zgodnie z liczbą unikatowych wartości kolumn partycji ustawieniem kopiowania równoległego, a następnie zastępuje ?AdfHanaDynamicRangePartitionCondition filtrem zakres wartości kolumn partycji dla każdej partycji i wysyła do platformy SAP HANA.

Jeśli chcesz użyć wielu kolumn jako kolumny partycji, możesz połączyć wartości każdej kolumny jako jedną kolumnę w zapytaniu i określić ją jako kolumnę partycji, taką jak SELECT * FROM (SELECT *, CONCAT(<KeyColumn1>, <KeyColumn2>) AS PARTITIONCOLUMN FROM <TABLENAME>) WHERE ?AdfHanaDynamicRangePartitionCondition.

Przykład: zapytanie z partycjami fizycznymi tabeli

"source": {
    "type": "SapHanaSource",
    "partitionOption": "PhysicalPartitionsOfTable"
}

Przykład: zapytanie z partycją zakresu dynamicznego

"source": {
    "type": "SapHanaSource",
    "query": "SELECT * FROM <TABLENAME> WHERE ?AdfHanaDynamicRangePartitionCondition AND <your_additional_where_clause>",
    "partitionOption": "SapHanaDynamicRange",
    "partitionSettings": {
        "partitionColumnName": "<Partition_column_name>"
    }
}

Mapowanie typów danych dla platformy SAP HANA

Podczas kopiowania danych z platformy SAP HANA następujące mapowania są używane z typów danych SAP HANA do tymczasowych typów danych używanych wewnętrznie w usłudze. Zobacz Mapowania schematu i typu danych, aby dowiedzieć się, jak działanie kopiowania mapuje schemat źródłowy i typ danych na ujście.

Typ danych SAP HANA Typ danych usługi tymczasowej
ALFANUM String
BIGINT Int64
DWÓJKOWY Bajt[]
BINTEXT String
BLOB Bajt[]
BOOL Byte
CLOB String
DATE DateTime
DZIESIĘTNY Dziesiętne
PODWÓJNY Liczba rzeczywista
SPŁAWIK Liczba rzeczywista
LICZBA CAŁKOWITA Int32
NCLOB String
NVARCHAR String
PRAWDZIWY Pojedynczy
DRUGI IDENTYFIKATOR DateTime
KRÓTKI TEKST String
SMALLDECIMAL Dziesiętne
SMALLINT Int16
TYP STGEOMETRYTYPE Bajt[]
TYP PUNKTU STPOINT Bajt[]
TEKST String
TIME przedział_czasu
TINYINT Byte
VARCHAR String
TIMESTAMP DateTime
VARBINARY Bajt[]

Ujście sap HANA

Obecnie łącznik SAP HANA nie jest obsługiwany jako ujście, podczas gdy można użyć ogólnego łącznika ODBC ze sterownikiem SAP HANA do zapisywania danych na platformie SAP HANA.

Postępuj zgodnie z wymaganiami wstępnymi , aby skonfigurować własne środowisko Integration Runtime i najpierw zainstalować sterownik SAP HANA ODBC. Utwórz połączoną usługę ODBC, aby nawiązać połączenie z magazynem danych SAP HANA, jak pokazano w poniższym przykładzie, a następnie odpowiednio utworzyć zestaw danych i ujścia działania kopiowania z typem ODBC. Dowiedz się więcej z artykułu o łączniku ODBC.

{
    "name": "SAPHANAViaODBCLinkedService",
    "properties": {
        "type": "Odbc",
        "typeProperties": {
            "connectionString": "Driver={HDBODBC};servernode=<HANA server>.clouddatahub-int.net:30015",
            "authenticationType": "Basic",
            "userName": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Właściwości działania wyszukiwania

Aby dowiedzieć się więcej o właściwościach, sprawdź działanie Wyszukiwania.

Aby uzyskać listę magazynów danych obsługiwanych jako źródła i ujścia działania kopiowania, zobacz obsługiwane magazyny danych.