Gegevens uit een HTTP-bron verplaatsen met behulp van Azure Data Factory

Notitie

Dit artikel is van toepassing op versie 1 van Data Factory. Als u de huidige versie van de Azure Data Factory-service gebruikt, raadpleegt u de HTTP-connector in V2.

In dit artikel wordt beschreven hoe u kopieeractiviteit in Azure Data Factory kunt gebruiken om gegevens te verplaatsen van een on-premises of cloud-HTTP-eindpunt naar een ondersteund sinkgegevensarchief. Dit artikel bouwt voort op verplaatsingsgegevens met behulp van kopieeractiviteit. Dit artikel bevat een algemeen overzicht van gegevensverplaatsing met behulp van kopieeractiviteit. Het artikel bevat ook de gegevensarchieven die kopieeractiviteit ondersteunt als bronnen en sinks.

Data Factory ondersteunt momenteel alleen het verplaatsen van gegevens van een HTTP-bron naar andere gegevensarchieven. Het biedt geen ondersteuning voor het verplaatsen van gegevens van andere gegevensarchieven naar een HTTP-bestemming.

Ondersteunde scenario's en verificatietypen

U kunt deze HTTP-connector gebruiken om gegevens op te halen uit zowel een cloud als een on-premises HTTP/S-eindpunt met behulp van de HTTP GET - of POST-methoden . De volgende verificatietypen worden ondersteund: Anoniem, Basic, Digest, Windows en ClientCertificate. Let op het verschil tussen deze connector en de connector voor de webtabel. De webtabelconnector extraheert tabelinhoud van een HTML-webpagina.

Wanneer u gegevens kopieert vanuit een on-premises HTTP-eindpunt, moet u Gegevensbeheer Gateway installeren in de on-premises omgeving of in een Azure-VM. Zie Gegevens verplaatsen tussen on-premises locaties en de cloud voor meer informatie over Gegevensbeheer Gateway en stapsgewijze instructies over het instellen van de gateway.

Aan de slag

U kunt een pijplijn met een kopieeractiviteit maken om gegevens van een HTTP-bron te verplaatsen met behulp van verschillende hulpprogramma's of API's:

  • De eenvoudigste manier om een pijplijn te maken, is door de wizard Gegevens kopiëren te gebruiken. Zie Zelfstudie: Een pijplijn maken met behulp van de wizard Kopiëren van gegevens voor een beknopt overzicht van het maken van een pijplijn.

  • U kunt ook de volgende hulpprogramma's gebruiken om een pijplijn te maken: de Visual Studio, Azure PowerShell, een Azure Resource Manager-sjabloon, de .NET API of de REST API. Zie de zelfstudie Kopieeractiviteit voor stapsgewijze instructies voor het maken van een pijplijn met een kopieeractiviteit. Zie JSON-voorbeelden voor het kopiëren van gegevens van een HTTP-bron naar Azure Blob Storage.

Gekoppelde service-eigenschappen

In de volgende tabel worden JSON-elementen beschreven die specifiek zijn voor de gekoppelde HTTP-service:

Eigenschap Beschrijving Vereist
type De typeeigenschap moet worden ingesteld op Http. Yes
url De basis-URL naar de webserver. Yes
authenticationType Hiermee geeft u het verificatietype op. Toegestane waarden zijn Anoniem, Basic, Digest, Windows en ClientCertificate.

Raadpleeg latere secties in dit artikel voor meer eigenschappen en JSON-voorbeelden voor deze verificatietypen.
Yes
enableServerCertificateValidation Hiermee geeft u op of server TLS/SSL-certificaatvalidatie moet worden ingeschakeld als de bron een HTTPS-webserver is. Wanneer uw HTTPS-server een zelfondertekend certificaat gebruikt, stelt u dit in op False. No
(de standaardwaarde is waar)
gatewayName De naam van het Gegevensbeheer Gateway-exemplaar dat moet worden gebruikt om verbinding te maken met een on-premises HTTP-bron. Ja, als u gegevens kopieert vanuit een on-premises HTTP-bron
encryptedCredential De versleutelde referentie voor toegang tot het HTTP-eindpunt. De waarde wordt automatisch gegenereerd wanneer u de verificatiegegevens configureert in de wizard Kopiëren of met behulp van het dialoogvenster ClickOnce. No
(alleen van toepassing wanneer u gegevens kopieert van een on-premises HTTP-server)

Zie Gegevens verplaatsen tussen on-premises bronnen en de cloud met behulp van Gegevensbeheer Gateway voor meer informatie over het instellen van referenties voor een on-premises HTTP-connectorgegevensbron.

Basisverificatie, samenvatting of Windows gebruiken

Stel authenticationType in op Basic, Digest of Windows. Naast de algemene eigenschappen van de HTTP-connector die in de voorgaande secties worden beschreven, stelt u de volgende eigenschappen in:

Eigenschap Beschrijving Vereist
userName De gebruikersnaam die moet worden gebruikt voor toegang tot het HTTP-eindpunt. Yes
wachtwoord Het wachtwoord voor de gebruiker (gebruikersnaam). Yes

Voorbeeld: Basisverificatie, Samenvatting of Windows gebruiken

{
    "name": "HttpLinkedService",
    "properties":
    {
        "type": "Http",
        "typeProperties":
        {
            "authenticationType": "basic",
            "url" : "https://en.wikipedia.org/wiki/",
            "userName": "user name",
            "password": "password"
        }
    }
}

ClientCertificate-verificatie gebruiken

Als u basisverificatie wilt gebruiken, stelt u authenticationType in op ClientCertificate. Naast de algemene eigenschappen van de HTTP-connector die in de voorgaande secties worden beschreven, stelt u de volgende eigenschappen in:

Eigenschap Beschrijving Vereist
embeddedCertData De met Base64 gecodeerde inhoud van binaire gegevens van het PFX-bestand. EmbeddedCertData of certThumbprint opgeven
certThumbprint De vingerafdruk van het certificaat dat is geïnstalleerd op het certificaatarchief van uw gatewaycomputer. Pas alleen toe wanneer u gegevens kopieert uit een on-premises HTTP-bron. EmbeddedCertData of certThumbprint opgeven
wachtwoord Het wachtwoord dat is gekoppeld aan het certificaat. No

Als u certThumbprint gebruikt voor verificatie en het certificaat is geïnstalleerd in het persoonlijke archief van de lokale computer, verleent u leesmachtigingen aan de gatewayservice:

  1. Open de Microsoft Management Console (MMC). Voeg de module Certificaten toe die is gericht op lokale computer.
  2. Vouw CertificatesPersonal> uit en selecteer vervolgens Certificaten.
  3. Klik met de rechtermuisknop op het certificaat in het persoonlijke archief en selecteer vervolgens Alle takenbeheer>persoonlijke sleutels.
  4. Voeg op het tabblad Beveiliging het gebruikersaccount toe waaronder de Gegevensbeheer Gateway-hostservice wordt uitgevoerd, met leestoegang tot het certificaat.

Voorbeeld: Een clientcertificaat gebruiken

Deze gekoppelde service koppelt uw data factory aan een on-premises HTTP-webserver. Er wordt een clientcertificaat gebruikt dat is geïnstalleerd op de computer waarop Gegevensbeheer Gateway is geïnstalleerd.

{
    "name": "HttpLinkedService",
    "properties":
    {
        "type": "Http",
        "typeProperties":
        {
            "authenticationType": "ClientCertificate",
            "url": "https://en.wikipedia.org/wiki/",
            "certThumbprint": "thumbprint of certificate",
            "gatewayName": "gateway name"
        }
    }
}

Voorbeeld: Een clientcertificaat gebruiken in een bestand

Deze gekoppelde service koppelt uw data factory aan een on-premises HTTP-webserver. Er wordt een clientcertificaatbestand gebruikt op de computer waarop Gegevensbeheer Gateway is geïnstalleerd.

{
    "name": "HttpLinkedService",
    "properties":
    {
        "type": "Http",
        "typeProperties":
        {
            "authenticationType": "ClientCertificate",
            "url": "https://en.wikipedia.org/wiki/",
            "embeddedCertData": "Base64-encoded cert data",
            "password": "password of cert"
        }
    }
}

Eigenschappen van gegevensset

Sommige secties van een JSON-bestand met gegevenssets, zoals structuur, beschikbaarheid en beleid, zijn vergelijkbaar voor alle typen gegevenssets (Azure SQL Database, Azure Blob Storage, Azure Table Storage).

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

De sectie typeProperties verschilt voor elk type gegevensset. De sectie typeProperties bevat informatie over de locatie van de gegevens in het gegevensarchief. De sectie typeProperties voor een gegevensset van het Http-type heeft de volgende eigenschappen:

Eigenschap Beschrijving Vereist
type Het type gegevensset moet worden ingesteld op Http. Yes
relativeUrl Een relatieve URL naar de resource die de gegevens bevat. Wanneer het pad niet is opgegeven, wordt alleen de URL die is opgegeven in de definitie van de gekoppelde service gebruikt.

Als u een dynamische URL wilt maken, kunt u Data Factory-functies en systeemvariabelen gebruiken. Voorbeeld: relativeUrl: $$Text.Format('/my/report?month={0:yyyy}-{0:MM}&fmt=csv', SliceStart).
No
requestMethod De HTTP-methode. Toegestane waarden zijn GET en POST. No
(standaard is GET)
additionalHeaders Aanvullende HTTP-aanvraagheaders. No
requestBody De hoofdtekst voor de HTTP-aanvraag. No
indeling Als u de gegevens van een HTTP-eindpunt wilt ophalen zonder deze te parseren, slaat u de indelingsinstelling over.

Als u de HTTP-antwoordinhoud tijdens het kopiëren wilt parseren, worden de volgende indelingstypen ondersteund: TextFormat, JsonFormat, AvroFormat, OrcFormat en ParquetFormat. Zie tekstindeling, JSON-indeling, Avro-indeling, Orc-indeling en Parquet-indeling voor meer informatie.
No
compressie Geef het type en het compressieniveau voor de gegevens op. Ondersteunde typen: GZip, Deflate, BZip2 en ZipDeflate. Ondersteunde niveaus: Optimaal en Snelst. Zie bestands- en compressieindelingen in Azure Data Factory voor meer informatie. No

Voorbeeld: De GET-methode (standaard) gebruiken

{
  "name": "HttpSourceDataInput",
    "properties": {
    "type": "Http",
        "linkedServiceName": "HttpLinkedService",
        "typeProperties": {
          "relativeUrl": "XXX/test.xml",
          "additionalHeaders": "Connection: keep-alive\nUser-Agent: Mozilla/5.0\n"
        },
        "external": true,
        "availability": {
            "frequency": "Hour",
            "interval":  1
        }
    }
}

Voorbeeld: De POST-methode gebruiken

{
    "name": "HttpSourceDataInput",
    "properties": {
        "type": "Http",
        "linkedServiceName": "HttpLinkedService",
        "typeProperties": {
            "relativeUrl": "/XXX/test.xml",
       "requestMethod": "Post",
            "requestBody": "body for POST HTTP request"
        },
        "external": true,
        "availability": {
            "frequency": "Hour",
            "interval":  1
        }
    }
}

Eigenschappen van kopieeractiviteit

Eigenschappen zoals naam, beschrijving, invoer- en uitvoertabellen en beleid zijn beschikbaar voor alle typen activiteiten.

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

Eigenschappen die beschikbaar zijn in de sectie typeProperties van de activiteit variëren met elk activiteitstype. Voor een kopieeractiviteit variëren de eigenschappen, afhankelijk van de typen bronnen en sinks.

Wanneer de bron in de kopieeractiviteit van het type HttpSource is, worden de volgende eigenschappen ondersteund:

Eigenschap Beschrijving Vereist
httpRequestTimeout De time-out (de TimeSpan-waarde ) voor de HTTP-aanvraag om een antwoord te krijgen. Het is de time-out om een antwoord te krijgen, niet de time-out voor het lezen van antwoordgegevens. No
(standaardwaarde: 00:01:40)

Ondersteunde indelingen voor bestanden en compressie

Zie bestands- en compressieindelingen in Azure Data Factory voor meer informatie.

JSON-voorbeelden

De volgende voorbeelden bevatten voorbeeld-JSON-definities die u kunt gebruiken om een pijplijn te maken met behulp van Visual Studio of Azure PowerShell. In de voorbeelden ziet u hoe u gegevens kopieert van een HTTP-bron naar Azure Blob Storage. Gegevens kunnen echter rechtstreeks vanuit een van de bronnen worden gekopieerd naar een van de sinks die worden ondersteund met behulp van kopieeractiviteit in Azure Data Factory.

Voorbeeld: Gegevens kopiëren van een HTTP-bron naar Azure Blob Storage

De Data Factory-oplossing voor dit voorbeeld bevat de volgende Data Factory-entiteiten:

In het voorbeeld worden gegevens van een HTTP-bron elk uur gekopieerd naar een Azure-blob. De JSON-eigenschappen die in deze voorbeelden worden gebruikt, worden beschreven in secties die de voorbeelden volgen.

Gekoppelde HTTP-service

In dit voorbeeld wordt de gekoppelde HTTP-service met anonieme verificatie gebruikt. Zie de gekoppelde HTTP-service voor verschillende typen verificatie die u kunt gebruiken.

{
    "name": "HttpLinkedService",
    "properties":
    {
        "type": "Http",
        "typeProperties":
        {
            "authenticationType": "Anonymous",
            "url" : "https://en.wikipedia.org/wiki/"
        }
    }
}

Gekoppelde Azure Storage-service

{
  "name": "AzureStorageLinkedService",
  "properties": {
    "type": "AzureStorage",
    "typeProperties": {
      "connectionString": "DefaultEndpointsProtocol=https;AccountName=<account name>;AccountKey=<account key>"
    }
  }
}

HTTP-invoergegevensset

Als u extern instelt op true , wordt de Data Factory-service geïnformeerd dat de gegevensset extern is van de data factory en niet wordt geproduceerd door een activiteit in de data factory.

{
  "name": "HttpSourceDataInput",
    "properties": {
    "type": "Http",
        "linkedServiceName": "HttpLinkedService",
        "typeProperties": {
            "relativeUrl": "$$Text.Format('/my/report?month={0:yyyy}-{0:MM}&fmt=csv', SliceStart)",
        "additionalHeaders": "Connection: keep-alive\nUser-Agent: Mozilla/5.0\n"
    },
        "external": true,
        "availability": {
            "frequency": "Hour",
            "interval":  1
        }
    }
}

Azure Blob-uitvoergegevensset

Gegevens worden elk uur naar een nieuwe blob geschreven (frequentie: uur, interval: 1).

{
    "name": "AzureBlobOutput",
    "properties":
    {
        "type": "AzureBlob",
        "linkedServiceName": "AzureStorageLinkedService",
        "typeProperties":
        {
            "folderPath": "adfgetstarted/Movies"
        },
        "availability":
        {
            "frequency": "Hour",
            "interval": 1
        }
    }
}

Pijplijn die gebruikmaakt van een kopieeractiviteit

De pijplijn bevat een kopieeractiviteit die is geconfigureerd voor het gebruik van de invoer- en uitvoergegevenssets. De kopieeractiviteit wordt elk uur uitgevoerd. In de JSON-definitie van de pijplijn wordt het brontype ingesteld op HttpSource en wordt het sinktype ingesteld op BlobSink.

Zie HttpSource voor de lijst met eigenschappen die door HttpSource worden ondersteund.

{  
    "name":"SamplePipeline",
    "properties":{  
    "start":"2014-06-01T18:00:00",
    "end":"2014-06-01T19:00:00",
    "description":"pipeline with a copy activity",
    "activities":[  
      {
        "name": "HttpSourceToAzureBlob",
        "description": "Copy from an HTTP source to an Azure blob",
        "type": "Copy",
        "inputs": [
          {
            "name": "HttpSourceDataInput"
          }
        ],
        "outputs": [
          {
            "name": "AzureBlobOutput"
          }
        ],
        "typeProperties": {
          "source": {
            "type": "HttpSource"
          },
          "sink": {
            "type": "BlobSink"
          }
        },
       "scheduler": {
          "frequency": "Hour",
          "interval": 1
        },
        "policy": {
          "concurrency": 1,
          "executionPriorityOrder": "OldestFirst",
          "retry": 0,
          "timeout": "01:00:00"
        }
      }
      ]
   }
}

Notitie

Zie Kolommen voor toewijzingsgegevenssets in Azure Data Factory als u kolommen uit een brongegevensset wilt toewijzen aan kolommen uit een sinkgegevensset.

Prestaties en afstemmen

Zie de prestatie- en afstemmingshandleiding voor kopieeractiviteit voor meer informatie over belangrijke factoren die van invloed zijn op de prestaties van gegevensverplaatsing (kopieeractiviteit) in Azure Data Factory en op verschillende manieren om deze te optimaliseren.