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:
- Narzędzie do kopiowania danych
- Witryna Azure Portal
- 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 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.
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 ciąg HTTP i wybierz łącznik HTTP.
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, 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:
- Otwórz konsolę Microsoft Management Console (MMC). Dodaj przystawkę Certyfikaty , która jest przeznaczona dla komputera lokalnego.
- Rozwiń węzeł Certyfikaty>osobiste, a następnie wybierz pozycję Certyfikaty.
- Kliknij prawym przyciskiem myszy certyfikat z magazynu osobistego, a następnie wybierz pozycję Wszystkie zadania>Zarządzaj kluczami prywatnymi.
- 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.
- Łą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.
- Format Avro
- Format binarny
- Format tekstu rozdzielanego
- Format programu Excel
- Format JSON
- Format ORC
- Format Parquet
- Format XML
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.
- Format Avro
- Format binarny
- Format tekstu rozdzielanego
- Format programu Excel
- Format JSON
- Format ORC
- Format Parquet
- Format XML
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>"
}
}
}
]
Powiązana zawartość
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.