Udostępnij za pośrednictwem


Kopiowanie danych z punktu końcowego HTTP 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 usłudze Azure Data Factory i usłudze Azure Synapse do kopiowania danych z punktu końcowego HTTP. Artykuł opiera się na działaniu kopiowania, które przedstawia ogólne omówienie działania kopiowania.

Różnica między tym łącznikiem HTTP, łącznikiem REST i łącznikiem tabeli sieci Web są następujące:

  • Łącznik REST obsługuje kopiowanie danych z interfejsów API RESTful;
  • Łącznik HTTP jest ogólny w celu pobierania danych z dowolnego punktu końcowego HTTP, np. do pobierania pliku. Zanim łącznik REST stanie się dostępny, może się zdarzyć użycie łącznika HTTP do kopiowania danych z interfejsów API RESTful, które są obsługiwane, ale mniej funkcjonalne w porównaniu z łącznikiem REST.
  • Łącznik tabeli sieci Web wyodrębnia zawartość tabeli ze strony internetowej HTML.

Obsługiwane możliwości

Ten łącznik HTTP jest obsługiwany w przypadku następujących możliwości:

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 jako źródła/ujścia, zobacz Obsługiwane magazyny danych.

Tego łącznika HTTP można użyć do:

  • Pobieranie danych z punktu końcowego HTTP/S przy użyciu metod HTTP GET lub POST .
  • Pobieranie danych przy użyciu jednego z następujących uwierzytelniania: Anonimowe, Podstawowe, Szyfrowane, Windows lub ClientCertificate.
  • Skopiuj odpowiedź HTTP w stanie rzeczywistym lub przeanalizuj ją przy użyciu obsługiwanych formatów plików i koderów koderów kompresji.

Napiwek

Aby przetestować żądanie HTTP dotyczące pobierania danych przed skonfigurowaniem łącznika HTTP, zapoznaj się ze specyfikacją interfejsu API dla wymagań nagłówka i treści. Aby zweryfikować poprawność, możesz użyć narzędzi takich jak Visual Studio, Invoke-RestMethod programu PowerShell lub przeglądarki internetowej.

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

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 ze źródłem HTTP przy użyciu interfejsu użytkownika

Wykonaj poniższe kroki, aby utworzyć połączoną usługę ze źródłem HTTP 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 ciąg HTTP i wybierz łącznik HTTP.

    Zrzut ekranu przedstawiający łącznik HTTP.

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

    Zrzut ekranu przedstawiający konfigurację połączonej usługi HTTP.

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

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

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

Właściwości Opis Wymagania
type Właściwość type musi być ustawiona na HttpServer. Tak
Adres URL Podstawowy adres URL serwera internetowego. Tak
enableServerCertificateValidation Określ, czy podczas nawiązywania połączenia z punktem końcowym HTTP należy włączyć weryfikację certyfikatu TLS/SSL serwera. Jeśli serwer HTTPS używa certyfikatu z podpisem własnym, ustaw tę właściwość na wartość false. Nie.
(wartość domyślna to true)
authenticationType Określa typ uwierzytelniania. Dozwolone wartości to Anonimowe, Podstawowe, Szyfrowane, Windows i ClientCertificate. Ponadto można skonfigurować nagłówki uwierzytelniania we authHeader właściwości. Zobacz sekcje, które znajdują się w tej tabeli, aby uzyskać więcej właściwości i przykładów JSON dla tych typów uwierzytelniania. Tak
authHeaders Dodatkowe nagłówki żądań HTTP na potrzeby uwierzytelniania.
Aby na przykład użyć uwierzytelniania klucza interfejsu API, możesz wybrać typ uwierzytelniania jako "Anonimowy" i określić klucz interfejsu API w nagłówku.
Nie.
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.

Korzystanie z uwierzytelniania podstawowego, szyfrowego lub windows

Ustaw właściwość authenticationType na Wartość Podstawowa, Skrót lub Windows. Oprócz właściwości ogólnych opisanych w poprzedniej sekcji określ następujące właściwości:

Właściwości Opis Wymagania
userName Nazwa użytkownika używana do uzyskiwania dostępu do punktu końcowego HTTP. Tak
hasło Hasło użytkownika ( wartość userName ). Oznacz to pole jako typ SecureString , aby przechowywać je bezpiecznie. Możesz również odwołać się do wpisu tajnego przechowywanego w usłudze Azure Key Vault. Tak

Przykład

{
    "name": "HttpLinkedService",
    "properties": {
        "type": "HttpServer",
        "typeProperties": {
            "authenticationType": "Basic",
            "url" : "<HTTP endpoint>",
            "userName": "<user name>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Korzystanie z uwierzytelniania ClientCertificate

Aby użyć uwierzytelniania ClientCertificate, ustaw właściwość authenticationType na ClientCertificate. Oprócz właściwości ogólnych opisanych w poprzedniej sekcji określ następujące właściwości:

Właściwości Opis Wymagania
embeddedCertData Dane certyfikatu zakodowane w formacie Base64. Określ wartość embeddedCertData lub certThumbprint.
certThumbprint Odcisk palca certyfikatu zainstalowanego w magazynie certyfikatów własnego środowiska Integration Runtime. Dotyczy tylko wtedy, gdy typ własnego środowiska Integration Runtime jest określony we właściwości connectVia . Określ wartość embeddedCertData lub certThumbprint.
hasło Hasło skojarzone z certyfikatem. Oznacz to pole jako typ SecureString , aby przechowywać je bezpiecznie. Możesz również odwołać się do wpisu tajnego przechowywanego w usłudze Azure Key Vault. Nie.

Jeśli używasz narzędzia certThumbprint do uwierzytelniania i certyfikat jest zainstalowany w osobistym magazynie komputera lokalnego, przyznaj uprawnienia do odczytu własnemu środowisku Integration Runtime:

  1. Otwórz konsolę Microsoft Management Console (MMC). Dodaj przystawkę Certyfikaty , która jest przeznaczona dla komputera lokalnego.
  2. Rozwiń węzeł Certyfikaty>osobiste, a następnie wybierz pozycję Certyfikaty.
  3. Kliknij prawym przyciskiem myszy certyfikat z magazynu osobistego, a następnie wybierz pozycję Wszystkie zadania>Zarządzaj kluczami prywatnymi.
  4. Na karcie Zabezpieczenia dodaj konto użytkownika, w ramach którego jest uruchomiona usługa hosta środowiska Integration Runtime (DIAHostService), z dostępem do odczytu do certyfikatu.
  5. Łącznik HTTP ładuje tylko zaufane certyfikaty. Jeśli używasz certyfikatu z podpisem własnym lub nieintegrowanego urzędu certyfikacji, aby włączyć zaufanie, certyfikat musi być również zainstalowany w jednym z następujących magazynów:
    • Zaufane osoby
    • Główne urzędy certyfikacji innych firm
    • Zaufane główne urzędy certyfikacji

Przykład 1. Używanie narzędzia certThumbprint

{
    "name": "HttpLinkedService",
    "properties": {
        "type": "HttpServer",
        "typeProperties": {
            "authenticationType": "ClientCertificate",
            "url": "<HTTP endpoint>",
            "certThumbprint": "<thumbprint of certificate>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Przykład 2. Korzystanie z embeddedCertData

{
    "name": "HttpLinkedService",
    "properties": {
        "type": "HttpServer",
        "typeProperties": {
            "authenticationType": "ClientCertificate",
            "url": "<HTTP endpoint>",
            "embeddedCertData": "<Base64-encoded cert data>",
            "password": {
                "type": "SecureString",
                "value": "password of cert"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Używanie nagłówków uwierzytelniania

Ponadto można skonfigurować nagłówki żądań na potrzeby uwierzytelniania wraz z wbudowanymi typami uwierzytelniania.

Przykład: używanie uwierzytelniania klucza interfejsu API

{
    "name": "HttpLinkedService",
    "properties": {
        "type": "HttpServer",
        "typeProperties": {
            "url": "<HTTP endpoint>",
            "authenticationType": "Anonymous",
            "authHeader": {
                "x-api-key": {
                    "type": "SecureString",
                    "value": "<API key>"
                }
            }
        },
        "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 dostępnych do definiowania zestawów danych, zobacz artykuł Zestawy danych.

Usługa Azure Data Factory obsługuje następujące formaty plików. Zapoznaj się z każdym artykułem, aby zapoznać się z ustawieniami opartymi na formacie.

Następujące właściwości są obsługiwane w przypadku protokołu HTTP w obszarze location ustawień w zestawie danych opartym na formacie:

Właściwości Opis Wymagania
type Właściwość type w obszarze location w zestawie danych musi być ustawiona na HttpServerLocation. Tak
relativeUrl Względny adres URL zasobu, który zawiera dane. Łącznik HTTP kopiuje dane z połączonego adresu URL: [URL specified in linked service][relative URL specified in dataset]. Nie.

Uwaga

Obsługiwany rozmiar ładunku żądania HTTP wynosi około 500 KB. Jeśli rozmiar ładunku, który chcesz przekazać do internetowego punktu końcowego, jest większy niż 500 KB, rozważ wsadowanie ładunku w mniejszych fragmentach.

Przykład:

{
    "name": "DelimitedTextDataset",
    "properties": {
        "type": "DelimitedText",
        "linkedServiceName": {
            "referenceName": "<HTTP linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, auto retrieved during authoring > ],
        "typeProperties": {
            "location": {
                "type": "HttpServerLocation",
                "relativeUrl": "<relative url>"
            },
            "columnDelimiter": ",",
            "quoteChar": "\"",
            "firstRowAsHeader": true,
            "compressionCodec": "gzip"
        }
    }
}

Właściwości działania kopiowania

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

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

HTTP jako źródło

Usługa Azure Data Factory obsługuje następujące formaty plików. Zapoznaj się z każdym artykułem, aby zapoznać się z ustawieniami opartymi na formacie.

Następujące właściwości są obsługiwane w przypadku protokołu HTTP w ustawieniach storeSettings w źródle kopiowania opartego na formacie:

Właściwości Opis Wymagania
type Właściwość type w obszarze storeSettings musi być ustawiona na Wartość HttpReadSettings. Tak
requestMethod Metoda HTTP.
Dozwolone wartości to Get (wartość domyślna) i Post.
Nie.
dodatkowe ściągniki Dodatkowe nagłówki żądań HTTP. Nie.
requestBody Treść żądania HTTP. Nie.
httpRequestTimeout Limit czasu ( wartość TimeSpan ) żądania HTTP w celu uzyskania odpowiedzi. Ta wartość to limit czasu pobierania odpowiedzi, a nie limit czasu odczytu danych odpowiedzi. Wartość domyślna to 00:01:40. Nie.
maxConcurrentConnections Górny limit połączeń współbieżnych ustanowionych z magazynem danych podczas uruchamiania działania. Określ wartość tylko wtedy, gdy chcesz ograniczyć połączenia współbieżne. Nie.

Przykład:

"activities":[
    {
        "name": "CopyFromHTTP",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Delimited text input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "DelimitedTextSource",
                "formatSettings":{
                    "type": "DelimitedTextReadSettings",
                    "skipLineCount": 10
                },
                "storeSettings":{
                    "type": "HttpReadSettings",
                    "requestMethod": "Post",
                    "additionalHeaders": "<header key: header value>\n<header key: header value>\n",
                    "requestBody": "<body for POST HTTP request>"
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Właściwości działania wyszukiwania

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

Starsze modele

Uwaga

Następujące modele są nadal obsługiwane zgodnie ze zgodnością z poprzednimi wersjami. Zalecamy użycie nowego modelu wymienionego w powyższych sekcjach, a interfejs użytkownika tworzenia przeszedł do generowania nowego modelu.

Starszy model zestawu danych

Właściwości Opis Wymagania
type Właściwość type zestawu danych musi być ustawiona na HttpFile. Tak
relativeUrl Względny adres URL zasobu, który zawiera dane. Jeśli ta właściwość nie zostanie określona, zostanie użyty tylko adres URL określony w definicji połączonej usługi. Nie.
requestMethod Metoda HTTP. Dozwolone wartości to Get (wartość domyślna) i Post. Nie.
dodatkowe ściągniki Dodatkowe nagłówki żądań HTTP. Nie.
requestBody Treść żądania HTTP. Nie.
format Jeśli chcesz pobrać dane z punktu końcowego HTTP bez analizowania, a następnie skopiować dane do magazynu opartego na plikach, pomiń sekcję formatowania zarówno w definicjach wejściowych, jak i wyjściowych zestawu danych.

Jeśli chcesz przeanalizować zawartość odpowiedzi HTTP podczas kopiowania, obsługiwane są następujące typy formatów plików: TextFormat, JsonFormat, AvroFormat, OrcFormat i ParquetFormat. W obszarze format ustaw właściwość type na jedną z tych wartości. Aby uzyskać więcej informacji, zobacz Format JSON, Format tekstu, Format Avro, Format Orc i Parquet format.
Nie.
kompresja Określ typ i poziom kompresji danych. Aby uzyskać więcej informacji, zobacz Obsługiwane formaty plików i koderów kompresji.

Obsługiwane typy: GZip, Deflate, BZip2 i ZipDeflate.
Obsługiwane poziomy: optymalne i najszybsze.
Nie.

Uwaga

Obsługiwany rozmiar ładunku żądania HTTP wynosi około 500 KB. Jeśli rozmiar ładunku, który chcesz przekazać do internetowego punktu końcowego, jest większy niż 500 KB, rozważ wsadowanie ładunku w mniejszych fragmentach.

Przykład 1. Używanie metody Get (ustawienie domyślne)

{
    "name": "HttpSourceDataInput",
    "properties": {
        "type": "HttpFile",
        "linkedServiceName": {
            "referenceName": "<HTTP linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "relativeUrl": "<relative url>",
            "additionalHeaders": "Connection: keep-alive\nUser-Agent: Mozilla/5.0\n"
        }
    }
}

Przykład 2: Używanie metody Post

{
    "name": "HttpSourceDataInput",
    "properties": {
        "type": "HttpFile",
        "linkedServiceName": {
            "referenceName": "<HTTP linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "relativeUrl": "<relative url>",
            "requestMethod": "Post",
            "requestBody": "<body for POST HTTP request>"
        }
    }
}

Starszy model źródła działania kopiowania

Właściwości Opis Wymagania
type Właściwość type źródła działania kopiowania musi być ustawiona na wartość HttpSource. Tak
httpRequestTimeout Limit czasu ( wartość TimeSpan ) żądania HTTP w celu uzyskania odpowiedzi. Ta wartość to limit czasu pobierania odpowiedzi, a nie limit czasu odczytu danych odpowiedzi. Wartość domyślna to 00:01:40. Nie.

Przykład

"activities":[
    {
        "name": "CopyFromHTTP",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<HTTP input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "HttpSource",
                "httpRequestTimeout": "00:01:00"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

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.