Gegevens kopiëren van een HTTP-eindpunt met behulp van Azure Data Factory of Azure Synapse Analytics

VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics

Tip

Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .

In dit artikel wordt beschreven hoe u kopieeractiviteit gebruikt in Azure Data Factory en Azure Synapse om gegevens van een HTTP-eindpunt te kopiëren. Het artikel bouwt voort op kopieeractiviteit, waarin een algemeen overzicht van de kopieeractiviteit wordt weergegeven.

Het verschil tussen deze HTTP-connector, de REST-connector en de webtabelconnector zijn:

  • REST-connector biedt specifiek ondersteuning voor het kopiëren van gegevens uit RESTful-API's;
  • HTTP-connector is algemeen voor het ophalen van gegevens van elk HTTP-eindpunt, bijvoorbeeld om het bestand te downloaden. Voordat de REST-connector beschikbaar komt, kunt u de HTTP-connector gebruiken om gegevens te kopiëren uit RESTful-API's. Deze wordt ondersteund, maar minder functioneel vergeleken met de REST-connector.
  • Webtabelconnector extraheert tabelinhoud uit een HTML-webpagina.

Ondersteunde mogelijkheden

Deze HTTP-connector wordt ondersteund voor de volgende mogelijkheden:

Ondersteunde mogelijkheden IR
Copy-activiteit (bron/-) ① ②
Activiteit Lookup ① ②

(1) Azure Integration Runtime (2) Zelf-hostende Integration Runtime

Zie Ondersteunde gegevensarchieven voor een lijst met gegevensarchieven die worden ondersteund als bronnen/sinks.

U kunt deze HTTP-connector gebruiken voor het volgende:

  • Gegevens ophalen uit een HTTP/S-eindpunt met behulp van de HTTP GET- of POST-methoden.
  • Haal gegevens op met behulp van een van de volgende verificaties: Anoniem, Basic, Digest, Windows of ClientCertificate.
  • Kopieer het HTTP-antwoord naar behoren of parseert het met behulp van ondersteunde bestandsindelingen en compressiecodecs.

Tip

Als u een HTTP-aanvraag voor het ophalen van gegevens wilt testen voordat u de HTTP-connector configureert, leert u meer over de API-specificatie voor header- en hoofdtekstvereisten. U kunt hulpprogramma's zoals Postman of een webbrowser gebruiken om te valideren.

Vereisten

Als uw gegevensarchief zich in een on-premises netwerk, een virtueel Azure-netwerk of een virtuele particuliere cloud van Amazon bevindt, moet u een zelf-hostende Integration Runtime configureren om er verbinding mee te maken.

Als uw gegevensarchief een beheerde cloudgegevensservice is, kunt u De Azure Integration Runtime gebruiken. Als de toegang is beperkt tot IP-adressen die zijn goedgekeurd in de firewallregels, kunt u IP-adressen van Azure Integration Runtime toevoegen aan de acceptatielijst.

U kunt ook de beheerde functie voor integratieruntime voor virtuele netwerken in Azure Data Factory gebruiken om toegang te krijgen tot het on-premises netwerk zonder een zelf-hostende Integration Runtime te installeren en te configureren.

Zie Strategieën voor gegevenstoegang voor meer informatie over de netwerkbeveiligingsmechanismen en -opties die door Data Factory worden ondersteund.

Aan de slag

Als u de kopieeractiviteit wilt uitvoeren met een pijplijn, kunt u een van de volgende hulpprogramma's of SDK's gebruiken:

Een gekoppelde service maken voor een HTTP-bron met behulp van de gebruikersinterface

Gebruik de volgende stappen om een gekoppelde service te maken naar een HTTP-bron in de gebruikersinterface van Azure Portal.

  1. Blader naar het tabblad Beheren in uw Azure Data Factory- of Synapse-werkruimte en selecteer Gekoppelde services en klik vervolgens op Nieuw:

  2. Zoek naar HTTP en selecteer de HTTP-connector.

    Screenshot of the HTTP connector.

  3. Configureer de servicedetails, test de verbinding en maak de nieuwe gekoppelde service.

    Screenshot of configuration for an HTTP linked service.

configuratiedetails Verbinding maken or

De volgende secties bevatten details over eigenschappen die u kunt gebruiken om entiteiten te definiëren die specifiek zijn voor de HTTP-connector.

Eigenschappen van gekoppelde service

De volgende eigenschappen worden ondersteund voor de gekoppelde HTTP-service:

Eigenschappen Beschrijving Vereist
type De typeeigenschap moet worden ingesteld op HttpServer. Ja
URL De basis-URL naar de webserver. Ja
enableServerCertificateValidation Geef op of server-TLS/SSL-certificaatvalidatie moet worden ingeschakeld wanneer u verbinding maakt met een HTTP-eindpunt. Als uw HTTPS-server een zelfondertekend certificaat gebruikt, stelt u deze eigenschap in op false. Nee
(de standaardwaarde is waar)
authenticationType Hiermee geeft u het verificatietype. Toegestane waarden zijn Anoniem, Basic, Digest, Windows en ClientCertificate. U kunt ook verificatieheaders configureren in authHeader de eigenschap. Zie de secties die volgen in deze tabel voor meer eigenschappen en JSON-voorbeelden voor deze verificatietypen. Ja
authHeaders Aanvullende HTTP-aanvraagheaders voor verificatie.
Als u bijvoorbeeld API-sleutelverificatie wilt gebruiken, kunt u het verificatietype 'Anoniem' selecteren en de API-sleutel in de header opgeven.
Nee
connectVia De Integration Runtime die moet worden gebruikt om verbinding te maken met het gegevensarchief. Meer informatie vindt u in de sectie Vereisten . Als dit niet is opgegeven, wordt de standaard Azure Integration Runtime gebruikt. Nee

Basis-, digest- of Windows-verificatie gebruiken

Stel de eigenschap authenticationType in op Basic, Digest of Windows. Geef naast de algemene eigenschappen die in de vorige sectie worden beschreven, de volgende eigenschappen op:

Eigenschappen Beschrijving Vereist
gebruikersnaam De gebruikersnaam die moet worden gebruikt voor toegang tot het HTTP-eindpunt. Ja
password Het wachtwoord voor de gebruiker (de waarde userName ). Markeer dit veld als een SecureString-type om het veilig op te slaan. U kunt ook verwijzen naar een geheim dat is opgeslagen in Azure Key Vault. Ja

Voorbeeld

{
    "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"
        }
    }
}

ClientCertificate-verificatie gebruiken

Als u ClientCertificate-verificatie wilt gebruiken, stelt u de eigenschap authenticationType in op ClientCertificate. Geef naast de algemene eigenschappen die in de vorige sectie worden beschreven, de volgende eigenschappen op:

Eigenschappen Beschrijving Vereist
embeddedCertData Met Base64 gecodeerde certificaatgegevens. Geef embeddedCertData of certThumbprint op.
certThumbprint De vingerafdruk van het certificaat dat is geïnstalleerd op het certificaatarchief van uw zelf-hostende Integration Runtime-machine. Is alleen van toepassing wanneer het zelf-hostende type Integration Runtime is opgegeven in de eigenschap connectVia . Geef embeddedCertData of certThumbprint op.
password Het wachtwoord dat is gekoppeld aan het certificaat. Markeer dit veld als een SecureString-type om het veilig op te slaan. U kunt ook verwijzen naar een geheim dat is opgeslagen in Azure Key Vault. Nee

Als u certThumbprint gebruikt voor verificatie en het certificaat is geïnstalleerd in het persoonlijke archief van de lokale computer, verleent u leesmachtigingen voor de zelf-hostende Integration Runtime:

  1. Open de Microsoft Management Console (MMC). Voeg de module Certificaten toe die is gericht op lokale computer.
  2. Vouw Certificaten>persoonlijk uit en selecteer Certificaten.
  3. Klik met de rechtermuisknop op het certificaat in het persoonlijke archief en selecteer Vervolgens Alle taken>persoonlijke sleutels beheren.
  4. Voeg op het tabblad Beveiliging het gebruikersaccount toe waaronder de Integration Runtime Host Service (DIAHostService) wordt uitgevoerd, met leestoegang tot het certificaat.
  5. De HTTP-connector laadt alleen vertrouwde certificaten. Als u een zelfondertekend of niet-geïntegreerd ca-uitgegeven certificaat gebruikt om vertrouwen in te schakelen, moet het certificaat ook worden geïnstalleerd in een van de volgende winkels:
    • Vertrouwde Mensen
    • Externe basiscertificeringsinstanties
    • Vertrouwde basiscertificeringsinstanties

Voorbeeld 1: certThumbprint gebruiken

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

Voorbeeld 2: EmbeddedCertData gebruiken

{
    "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"
        }
    }
}

Verificatieheaders gebruiken

Daarnaast kunt u aanvraagheaders configureren voor verificatie, samen met de ingebouwde verificatietypen.

Voorbeeld: Api-sleutelverificatie gebruiken

{
    "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"
        }
    }
}

Eigenschappen van gegevensset

Zie het artikel Gegevenssets voor een volledige lijst met secties en eigenschappen die beschikbaar zijn voor het definiëren van gegevenssets .

Azure Data Factory ondersteunt de volgende bestandsindelingen. Raadpleeg elk artikel voor op indeling gebaseerde instellingen.

De volgende eigenschappen worden ondersteund voor HTTP onder location instellingen in op indeling gebaseerde gegevensset:

Eigenschappen Beschrijving Vereist
type De typeeigenschap onder location in de gegevensset moet worden ingesteld op HttpServerLocation. Ja
relativeUrl Een relatieve URL naar de resource die de gegevens bevat. De HTTP-connector kopieert gegevens van de gecombineerde URL: [URL specified in linked service][relative URL specified in dataset]. Nr.

Notitie

De ondersteunde nettoladinggrootte van de HTTP-aanvraag is ongeveer 500 kB. Als de nettoladinggrootte die u wilt doorgeven aan uw webeindpunt groter is dan 500 kB, kunt u overwegen om de nettolading in kleinere segmenten te batcheren.

Voorbeeld:

{
    "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"
        }
    }
}

Eigenschappen van kopieeractiviteit

Deze sectie bevat een lijst met eigenschappen die door de HTTP-bron worden ondersteund.

Zie Pijplijnen voor een volledige lijst met secties en eigenschappen die beschikbaar zijn voor het definiëren van activiteiten.

HTTP als bron

Azure Data Factory ondersteunt de volgende bestandsindelingen. Raadpleeg elk artikel voor op indeling gebaseerde instellingen.

De volgende eigenschappen worden ondersteund voor HTTP onder storeSettings instellingen in op indeling gebaseerde kopieerbron:

Eigenschappen Beschrijving Vereist
type De eigenschap type onder storeSettings moet worden ingesteld op HttpRead Instellingen. Ja
requestMethod De HTTP-methode.
Toegestane waarden zijn Get (standaard) en Post.
Nee
additionalHeaders Aanvullende HTTP-aanvraagheaders. Nee
requestBody De hoofdtekst voor de HTTP-aanvraag. Nee
httpRequestTimeout De time-out (de timespanwaarde ) voor de HTTP-aanvraag om een antwoord te krijgen. Deze waarde is de time-out voor het ophalen van een antwoord, niet de time-out voor het lezen van antwoordgegevens. De standaardwaarde is 00:01:40. Nee
maxConcurrent Verbinding maken ions De bovengrens van gelijktijdige verbindingen die tijdens de uitvoering van de activiteit tot stand zijn gebracht met het gegevensarchief. Geef alleen een waarde op wanneer u gelijktijdige verbindingen wilt beperken. Nee

Voorbeeld:

"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>"
            }
        }
    }
]

Eigenschappen van opzoekactiviteit

Als u meer wilt weten over de eigenschappen, controleert u de lookup-activiteit.

Verouderde modellen

Notitie

De volgende modellen worden nog steeds ondersteund voor compatibiliteit met eerdere versies. U wordt aangeraden het nieuwe model te gebruiken dat in de bovenstaande secties wordt genoemd en de ontwerpgebruikersinterface is overgeschakeld naar het genereren van het nieuwe model.

Verouderd gegevenssetmodel

Eigenschappen Beschrijving Vereist
type De typeeigenschap van de gegevensset moet worden ingesteld op HttpFile. Ja
relativeUrl Een relatieve URL naar de resource die de gegevens bevat. Wanneer deze eigenschap niet is opgegeven, wordt alleen de URL gebruikt die is opgegeven in de definitie van de gekoppelde service. Nee
requestMethod De HTTP-methode. Toegestane waarden zijn Get (standaard) en Post. Nee
additionalHeaders Aanvullende HTTP-aanvraagheaders. Nee
requestBody De hoofdtekst voor de HTTP-aanvraag. Nee
indeling Als u gegevens van het HTTP-eindpunt wilt ophalen zonder deze te parseren en vervolgens de gegevens naar een archief op basis van een bestand wilt kopiëren, slaat u de indelingssectie over in de definities van de invoer- en uitvoergegevensset.

Als u de HTTP-antwoordinhoud tijdens het kopiëren wilt parseren, worden de volgende bestandstypen ondersteund: TextFormat, JsonFormat, AvroFormat, OrcFormat en ParquetFormat. Stel onder Opmaak de eigenschap type in op een van deze waarden. Zie JSON-indeling, Tekstindeling, Avro-indeling, Orc-indeling en Parquet-indeling voor meer informatie.
Nee
compressie Geef het type en het compressieniveau voor de gegevens op. Zie Ondersteunde bestandsindelingen en compressiecodecs voor meer informatie.

Ondersteunde typen: GZip, Deflate, BZip2 en ZipDeflate.
Ondersteunde niveaus: Optimaal en Snelst.
Nr.

Notitie

De ondersteunde nettoladinggrootte van de HTTP-aanvraag is ongeveer 500 kB. Als de nettoladinggrootte die u wilt doorgeven aan uw webeindpunt groter is dan 500 kB, kunt u overwegen om de nettolading in kleinere segmenten te batcheren.

Voorbeeld 1: De Get-methode gebruiken (standaard)

{
    "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"
        }
    }
}

Voorbeeld 2: De Post-methode gebruiken

{
    "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>"
        }
    }
}

Bronmodel van verouderde kopieeractiviteit

Eigenschappen Beschrijving Vereist
type De typeeigenschap van de bron van de kopieeractiviteit moet worden ingesteld op HttpSource. Ja
httpRequestTimeout De time-out (de timespanwaarde ) voor de HTTP-aanvraag om een antwoord te krijgen. Deze waarde is de time-out voor het ophalen van een antwoord, niet de time-out voor het lezen van antwoordgegevens. De standaardwaarde is 00:01:40. Nee

Voorbeeld

"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>"
            }
        }
    }
]

Zie Ondersteunde gegevensarchieven en -indelingen voor een lijst met gegevensarchieven die door de kopieeractiviteit worden ondersteund als bronnen en sinks.