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

Wskazówka

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óżnice między tym łącznikiem HTTP, łącznikiem REST i łącznikiem tabeli sieci Web są następujące:

  • Łącznik REST specjalnie wspiera 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żesz użyć łącznika HTTP do kopiowania danych z interfejsów RESTful API, co jest obsługiwane, ale w porównaniu do łącznika REST mniej funkcjonalne.
  • Łącznik tabeli sieci Web wyodrębnia zawartość tabeli ze strony internetowej HTML.

Obsługiwane możliwości

Ten łącznik HTTP obsługuje następujące funkcje:

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

(1) Środowisko Azure Integration Runtime (2) Środowisko uruchomieniowe z własnym hostingiem

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, Digest, Windows lub Certyfikat klienta.
  • Skopiuj odpowiedź HTTP tak jak jest lub przeanalizuj ją przy użyciu obsługiwanych formatów plików i kodeków kompresji.

Wskazówka

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 Amazon Virtual Private Cloud, 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ć zarządzanego środowiska Integration Runtime wirtualnej sieci 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.

Wprowadzenie

Aby wykonać działanie kopiowania za pomocą pipeline'u, 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 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 Wymagane
typ Właściwość type musi być ustawiona na HttpServer. Tak
Adres URL Podstawowy adres URL serwera internetowego. Tak
WłączWalidacjęCertyfikatuSerwera 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)
typ uwierzytelniania Określa typ uwierzytelniania. Dozwolone wartości to Anonimowe, Podstawowe, Skrót, Windows i ClientCertificate. Ponadto można skonfigurować nagłówki uwierzytelniania w właściwości authHeader. 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, typu Digest lub Windows

Ustaw właściwość authenticationType na Podstawowy, 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 Wymagane
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, przypisz wartość ClientCertificate do właściwości authenticationType. 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 Wymagane
embeddedCertData Dane certyfikatu zakodowane w formacie Base64. Wskaż albo embeddedCertData, albo certThumbprint.
certThumbprint Odcisk palca certyfikatu zainstalowanego w magazynie certyfikatów własnego środowiska Integration Runtime. Dotyczy tylko wtedy, gdy typ samodzielnie hostowanego Integration Runtime jest określony w wierszu ustawień connectVia. Określ wartość dla 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ń Certyfikaty>osobiste, a następnie wybierz 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, na którym działa 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 niezintegrowanego przez urząd certyfikacji, aby autoryzować certyfikat, musi on być również zainstalowany w jednym z następujących sklepów:
    • Zaufane osoby
    • Podstawowe urzędy certyfikacji stron trzecich
    • 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 Wymagane
typ 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 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 dla protokołu HTTP w ustawieniach storeSettings w źródle kopiowania opartego na formacie.

Właściwości Opis Wymagane
typ Właściwość type w obszarze storeSettings musi być ustawiona na HttpReadSettings. Tak
requestMethod Metoda HTTP.
Dozwolone wartości to Get (wartość domyślna) i Post.
Nie.
dodatkowe nagłówki Dodatkowe nagłówki żądań HTTP. Nie.
treśćŻądania Treść żądania HTTP. Nie.
limit czasu żądania HTTP 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.
maksymalnaLiczbaJednoczesnychPołączeń Górny limit połączeń współbieżnych nawiązanych z magazynem danych podczas przebiegu 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 czynności 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 w obecnej formie ze względu na zgodność wsteczną. Zaleca się używanie nowego modelu wymienionego w powyższych sekcjach na przyszłość, a interfejs użytkownika narzędzia do tworzenia treści został przełączony na generowanie nowego modelu.

Model dziedziczonego zestawu danych

Właściwości Opis Wymagane
typ 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 nagłówki Dodatkowe nagłówki żądań HTTP. Nie.
treśćŻądania 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. Pod 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 operacji kopiowania

Właściwości Opis Wymagane
typ Właściwość type źródła działania kopiowania musi być ustawiona na wartość HttpSource. Tak
limit czasu żądania HTTP 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.