Udostępnij za pośrednictwem


Kopiowanie danych z platformy Netezza 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 lub Synapse Analytics do kopiowania danych z platformy Netezza. Artykuł opiera się na działaniu kopiowania, które przedstawia ogólne omówienie działania kopiowania.

Napiwek

W przypadku scenariusza migracji danych z platformy Netezza na platformę Azure dowiedz się więcej na temat migrowania danych z lokalnego serwera Netezza na platformę Azure.

Obsługiwane możliwości

Ten łącznik Netezza jest obsługiwany w następujących możliwościach:

Obsługiwane możliwości IR
działanie Kopiuj (źródło/-) (1) (2)
Działanie Lookup (1) (2)

(1) Środowisko Azure Integration Runtime (2) Self-hosted Integration Runtime

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

Ten łącznik Netezza obsługuje:

Usługa udostępnia wbudowany sterownik umożliwiający łączność. Nie musisz ręcznie instalować żadnego sterownika, aby korzystać z tego łącznika.

Wymagania wstępne

Jeśli magazyn danych znajduje się wewnątrz sieci lokalnej, sieci wirtualnej platformy Azure lub chmury prywatnej Amazon Virtual, musisz skonfigurować własne środowisko Integration Runtime , aby się z nim połączyć.

Jeśli magazyn danych jest zarządzaną usługą danych w chmurze, możesz użyć środowiska Azure Integration Runtime. Jeśli dostęp jest ograniczony do adresów IP zatwierdzonych w regułach zapory, możesz dodać adresy IP środowiska Azure Integration Runtime do listy dozwolonych.

Możesz również użyć funkcji środowiska Integration Runtime zarządzanej sieci wirtualnej w usłudze Azure Data Factory, aby uzyskać dostęp do sieci lokalnej bez instalowania i konfigurowania własnego środowiska Integration Runtime.

Aby uzyskać więcej informacji na temat mechanizmów zabezpieczeń sieci i opcji obsługiwanych przez usługę Data Factory, zobacz Strategie dostępu do danych.

Rozpocznij

Potok, który używa działania kopiowania, można utworzyć przy użyciu zestawu SDK platformy .NET, zestawu SDK języka Python, programu Azure PowerShell, interfejsu API REST lub szablonu usługi Azure Resource Manager. Zapoznaj się z samouczkiem dotyczącym działania kopiowania, aby uzyskać instrukcje krok po kroku dotyczące tworzenia potoku z działaniem kopiowania.

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

Wykonaj poniższe kroki, aby utworzyć połączoną usługę z platformą Netezza 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ę Netezza i wybierz łącznik Netezza.

    Zrzut ekranu przedstawiający łącznik Netezza.

  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 netezza.

Szczegóły konfiguracji łącznika

Poniższe sekcje zawierają szczegółowe informacje o właściwościach, których można użyć do definiowania jednostek specyficznych dla łącznika Netezza.

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

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

Właściwości Opis Wymagania
type Właściwość type musi być ustawiona na Netezza. Tak
Parametry połączenia Parametry połączenia ODBC, aby nawiązać połączenie z platformą Netezza.
Możesz również umieścić hasło w usłudze Azure Key Vault i ściągnąć konfigurację pwd z parametry połączenia. Zapoznaj się z poniższymi przykładami i artykułem Store credentials in Azure Key Vault (Przechowywanie poświadczeń w usłudze Azure Key Vault ), aby uzyskać więcej szczegółów.
Tak
connectVia Środowisko Integration Runtime do nawiązania połączenia z magazynem danych. Dowiedz się więcej w sekcji Wymagania wstępne . Jeśli nie zostanie określony, zostanie użyte domyślne środowisko Azure Integration Runtime. Nie.

Typowy parametry połączenia to Server=<server>;Port=<port>;Database=<database>;UID=<user name>;PWD=<password>. W poniższej tabeli opisano więcej właściwości, które można ustawić:

Właściwości Opis Wymagania
Poziom zabezpieczeń Poziom zabezpieczeń używany przez sterownik do połączenia z magazynem danych.
Przykład: SecurityLevel=preferredUnSecured. Obsługiwane wartości to:
- Tylko niezabezpieczone (tylkoUnSecured): sterownik nie używa protokołu SSL.
- Preferowane niezabezpieczone (preferredUnSecured) (wartość domyślna): jeśli serwer wybierze opcję, sterownik nie używa protokołu SSL.
Nie.

Uwaga

Łącznik nie obsługuje protokołu SSLv3, ponieważ jest oficjalnie przestarzały przez Netezza.

Przykład

{
    "name": "NetezzaLinkedService",
    "properties": {
        "type": "Netezza",
        "typeProperties": {
            "connectionString": "Server=<server>;Port=<port>;Database=<database>;UID=<user name>;PWD=<password>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Przykład: przechowywanie hasła w usłudze Azure Key Vault

{
    "name": "NetezzaLinkedService",
    "properties": {
        "type": "Netezza",
        "typeProperties": {
            "connectionString": "Server=<server>;Port=<port>;Database=<database>;UID=<user name>;",
            "pwd": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<secretName>" 
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Właściwości zestawu danych

Ta sekcja zawiera listę właściwości, które obsługuje zestaw danych Netezza.

Aby uzyskać pełną listę sekcji i właściwości dostępnych do definiowania zestawów danych, zobacz Zestawy danych.

Aby skopiować dane z netezza, ustaw właściwość type zestawu danych na NetezzaTable. 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: NetezzaTable Tak
schema Nazwa schematu. Nie (jeśli określono "zapytanie" w źródle działania)
table Nazwa tabeli. Nie (jeśli określono "zapytanie" w źródle działania)
tableName Nazwa tabeli ze schematem. Ta właściwość jest obsługiwana w celu zapewnienia zgodności z poprzednimi wersjami. Użyj polecenia schema i table dla nowego obciążenia. Nie (jeśli określono "zapytanie" w źródle działania)

Przykład

{
    "name": "NetezzaDataset",
    "properties": {
        "type": "NetezzaTable",
        "linkedServiceName": {
            "referenceName": "<Netezza linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {}
    }
}

Właściwości działania kopiowania

Ta sekcja zawiera listę właściwości, które obsługuje źródło Netezza.

Aby uzyskać pełną listę sekcji i właściwości dostępnych do definiowania działań, zobacz Pipelines (Potoki).

Netezza jako źródło

Napiwek

Aby wydajnie ładować dane z platformy Netezza przy użyciu partycjonowania danych, dowiedz się więcej z sekcji Kopiowanie równoległe z platformy Netezza .

Aby skopiować dane z netezza, ustaw typ źródła w działaniu kopiowania na NetezzaSource. Następujące właściwości są obsługiwane w sekcji Źródło działania kopiowania:

Właściwości Opis Wymagania
type Właściwość type źródła działania kopiowania musi być ustawiona na NetezzaSource. Tak
zapytanie Użyj niestandardowego zapytania SQL, aby odczytać dane. Przykład: "SELECT * FROM MyTable" Nie (jeśli określono "tableName" w zestawie danych)
partitionOptions Określa opcje partycjonowania danych używane do ładowania danych z Netezza.
Dozwolone wartości to: Brak (wartość domyślna), DataSlice i DynamicRange.
Jeśli opcja partycji jest włączona (czyli nie None), stopień równoległości równoczesnego ładowania danych z bazy danych Netezza jest kontrolowany przez parallelCopies ustawienie działania kopiowania.
Nie.
partitionSettings Określ grupę ustawień partycjonowania danych.
Zastosuj, gdy opcja partycji nie Nonejest .
Nie.
partitionColumnName Określ nazwę kolumny źródłowej w typie liczb całkowitych, które będą używane przez partycjonowanie zakresu na potrzeby kopiowania równoległego. Jeśli nie zostanie określony, klucz podstawowy tabeli jest automatycznie wykrywany i używany jako kolumna partycji.
Zastosuj, gdy opcja partycji to DynamicRange. Jeśli używasz zapytania do pobierania danych źródłowych, podłącz element w ?AdfRangePartitionColumnName klauzuli WHERE. Zobacz przykład w sekcji Kopiowanie równoległe z netezza .
Nie.
partitionUpperBound Maksymalna wartość kolumny partycji do skopiowania danych.
Zastosuj, gdy opcja partycji to DynamicRange. Jeśli używasz zapytania do pobierania danych źródłowych, należy podłączyć ?AdfRangePartitionUpbound się do klauzuli WHERE. Aby zapoznać się z przykładem, zobacz sekcję Kopia równoległa z netezza .
Nie.
partitionLowerBound Minimalna wartość kolumny partycji do skopiowania danych.
Zastosuj, gdy opcja partycji to DynamicRange. Jeśli używasz zapytania do pobierania danych źródłowych, należy podłączyć ?AdfRangePartitionLowbound się do klauzuli WHERE. Aby zapoznać się z przykładem, zobacz sekcję Kopia równoległa z netezza .
Nie.

Przykład:

"activities":[
    {
        "name": "CopyFromNetezza",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Netezza input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "NetezzaSource",
                "query": "SELECT * FROM MyTable"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Kopiowanie równoległe z Netezza

Łącznik Netezza usługi Data Factory zapewnia wbudowane partycjonowanie danych w celu równoległego kopiowania danych z platformy Netezza. 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 Netezza w celu załadowania 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 bazy danych Netezza.

Zaleca się włączenie kopiowania równoległego przy użyciu partycjonowania danych, szczególnie w przypadku ładowania dużej ilości danych z bazy danych Netezza. 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: Fragmentowanie danych.

Podczas wykonywania usługa automatycznie partycjonuje dane na podstawie wbudowanych wycinków danych Netezza i kopiuje dane według partycji.
Załaduj dużą ilość danych przy użyciu zapytania niestandardowego. Opcja partycji: Fragmentowanie danych.
Zapytanie: SELECT * FROM <TABLENAME> WHERE mod(datasliceid, ?AdfPartitionCount) = ?AdfDataSliceCondition AND <your_additional_where_clause>.
Podczas wykonywania usługa zastępuje ?AdfPartitionCount (z równoległym numerem kopiowania ustawionym w działaniu kopiowania) i ?AdfDataSliceCondition logiką partycji fragmentowania danych i wysyła do Netezza.
Załaduj dużą ilość danych przy użyciu zapytania niestandardowego, zawierającą kolumnę całkowitą z równomiernie rozproszoną wartością partycjonowania zakresu. Opcje partycji: partycja zakresu dynamicznego.
Zapytanie: SELECT * FROM <TABLENAME> WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause>.
Kolumna partycji: określ kolumnę używaną do partycjonowania danych. Kolumnę można podzielić na partycje przy użyciu typu danych całkowitych.
Górna granica partycji i dolna granica partycji: określ, czy chcesz filtrować względem kolumny partycji, aby pobrać dane tylko między dolnym i górnym zakresem.

Podczas wykonywania usługa zastępuje ?AdfRangePartitionColumnNamewartości , ?AdfRangePartitionUpboundi ?AdfRangePartitionLowbound rzeczywistymi nazwami kolumn i zakresami wartości dla każdej partycji oraz wysyła je do netezza.
Na przykład jeśli kolumna partycji "ID" ustawiona z dolną granicą jako 1 i górną granicą jako 80, z zestawem kopii równoległej jako 4, usługa pobiera dane według 4 partycji. Ich identyfikatory to odpowiednio [120], [21, 40], [41, 60] i [61, 80].

Przykład: zapytanie z partycją fragmentowania danych

"source": {
    "type": "NetezzaSource",
    "query": "SELECT * FROM <TABLENAME> WHERE mod(datasliceid, ?AdfPartitionCount) = ?AdfDataSliceCondition AND <your_additional_where_clause>",
    "partitionOption": "DataSlice"
}

Przykład: zapytanie z partycją zakresu dynamicznego

"source": {
    "type": "NetezzaSource",
    "query": "SELECT * FROM <TABLENAME> WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause>",
    "partitionOption": "DynamicRange",
    "partitionSettings": {
        "partitionColumnName": "<dynamic_range_partition_column_name>",
        "partitionUpperBound": "<upper_value_of_partition_column>",
        "partitionLowerBound": "<lower_value_of_partition_column>"
    }
}

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 przez działanie kopiowania jako źródła i ujścia, zobacz Obsługiwane magazyny danych i formaty.