Kopírování dat z koncového bodu HTTP pomocí služby Azure Data Factory nebo Azure Synapse Analytics
PLATÍ PRO: Azure Data Factory Azure Synapse Analytics
Tip
Vyzkoušejte si službu Data Factory v Microsoft Fabric, řešení pro analýzy typu all-in-one pro podniky. Microsoft Fabric zahrnuje všechno od přesunu dat až po datové vědy, analýzy v reálném čase, business intelligence a vytváření sestav. Přečtěte si, jak začít používat novou zkušební verzi zdarma.
Tento článek popisuje, jak pomocí aktivity kopírování ve službě Azure Data Factory a Azure Synapse kopírovat data z koncového bodu HTTP. Článek vychází z aktivity kopírování, která představuje obecný přehled aktivity kopírování.
Rozdíl mezi tímto konektorem HTTP, konektorem REST a konektorem webové tabulky jsou:
- Konektor REST konkrétně podporuje kopírování dat z rozhraní RESTful API;
- Konektor HTTP je obecný k načtení dat z libovolného koncového bodu HTTP, například ke stažení souboru. Než bude konektor REST dostupný, může se stát, že pomocí konektoru HTTP zkopírujete data z rozhraní RESTful API, což je podporované, ale méně funkční porovnání s konektorem REST.
- Konektor webové tabulky extrahuje obsah tabulky z webové stránky HTML.
Podporované funkce
Tento konektor HTTP je podporovaný pro následující funkce:
Podporované funkce | IR |
---|---|
aktivita Copy (zdroj/-) | (1) (2) |
Aktivita Lookup | (1) (2) |
(1) Prostředí Azure Integration Runtime (2) Místní prostředí Integration Runtime
Seznam úložišť dat podporovaných jako zdroje nebo jímky najdete v tématu Podporované úložiště dat.
Tento konektor HTTP můžete použít k:
- Načtěte data z koncového bodu HTTP/S pomocí metod HTTP GET nebo POST .
- Načtěte data pomocí jednoho z následujících ověřování: Anonymní, Základní, Digest, Windows nebo ClientCertificate.
- Zkopírujte odpověď HTTP tak, jak je, nebo ji parsujte pomocí podporovaných formátů souborů a komprese kodeků.
Tip
Pokud chcete otestovat požadavek HTTP na načtení dat před konfigurací konektoru HTTP, přečtěte si o specifikaci rozhraní API pro požadavky na hlavičku a tělo. K ověření můžete použít nástroje, jako je Visual Studio, Invoke-RestMethod PowerShellu nebo webový prohlížeč.
Požadavky
Pokud se vaše úložiště dat nachází uvnitř místní sítě, virtuální sítě Azure nebo amazonového privátního cloudu, musíte nakonfigurovat místní prostředí Integration Runtime pro připojení k němu.
Pokud je vaše úložiště dat spravovanou cloudovou datovou službou, můžete použít Azure Integration Runtime. Pokud je přístup omezený na IP adresy schválené v pravidlech brány firewall, můžete do seznamu povolených přidat IP adresy prostředí Azure Integration Runtime.
K přístupu k místní síti bez nutnosti instalace a konfigurace místního prostředí Integration Runtime můžete také použít funkci Runtime integrace spravované virtuální sítě ve službě Azure Data Factory.
Další informace o mechanismech zabezpečení sítě a možnostech podporovaných službou Data Factory najdete v tématu Strategie přístupu k datům.
Začínáme
K provedení aktivita Copy s kanálem můžete použít jeden z následujících nástrojů nebo sad SDK:
- Nástroj pro kopírování dat
- Azure Portal
- Sada .NET SDK
- Sada Python SDK
- Azure PowerShell
- Rozhraní REST API
- Šablona Azure Resource Manageru
Vytvoření propojené služby ke zdroji HTTP pomocí uživatelského rozhraní
Pomocí následujícího postupu vytvořte propojenou službu ke zdroji HTTP v uživatelském rozhraní webu Azure Portal.
Přejděte na kartu Správa v pracovním prostoru Azure Data Factory nebo Synapse a vyberte Propojené služby a pak klikněte na Nový:
Vyhledejte HTTP a vyberte konektor HTTP.
Nakonfigurujte podrobnosti o službě, otestujte připojení a vytvořte novou propojenou službu.
Podrobnosti konfigurace konektoru
Následující části obsahují podrobnosti o vlastnostech, které můžete použít k definování entit specifických pro konektor HTTP.
Vlastnosti propojené služby
Propojená služba HTTP podporuje následující vlastnosti:
Vlastnost | Popis | Povinní účastníci |
---|---|---|
type | Vlastnost typu musí být nastavena na HttpServer. | Ano |
url | Základní adresa URL webového serveru. | Ano |
enableServerCertificateValidation | Určete, jestli se má při připojení ke koncovému bodu HTTP povolit ověření certifikátu TLS/SSL serveru. Pokud váš server HTTPS používá certifikát podepsaný svým držitelem, nastavte tuto vlastnost na false. | No (výchozí hodnota je true) |
authenticationType | Určuje typ ověřování. Povolené hodnoty jsou Anonymní, Základní, Digest, Windows a ClientCertificate. Můžete také nakonfigurovat hlavičky ověřování ve authHeader vlastnosti. Další vlastnosti a ukázky JSON pro tyto typy ověřování najdete v částech, které následují v této tabulce. |
Ano |
authHeaders | Další hlavičky požadavku HTTP pro ověřování. Pokud například chcete použít ověřování pomocí klíče rozhraní API, můžete vybrat typ ověřování jako Anonymní a zadat klíč rozhraní API v hlavičce. |
No |
connectVia | Prostředí Integration Runtime , které se má použít pro připojení k úložišti dat. Další informace najdete v části Požadavky . Pokud není zadaný, použije se výchozí prostředí Azure Integration Runtime. | No |
Použití základního ověřování, digestu nebo windows
Nastavte vlastnost authenticationType na Hodnotu Basic, Digest nebo Windows. Kromě obecných vlastností popsaných v předchozí části zadejte následující vlastnosti:
Vlastnost | Popis | Povinní účastníci |
---|---|---|
userName | Uživatelské jméno, které se má použít pro přístup ke koncovému bodu HTTP. | Ano |
Heslo | Heslo pro uživatele ( hodnota userName ). Označte toto pole jako typ SecureString , abyste ho bezpečně uložili. Můžete také odkazovat na tajný klíč uložený ve službě Azure Key Vault. | Ano |
Příklad
{
"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"
}
}
}
Použití ověřování ClientCertificate
Chcete-li použít ověřování ClientCertificate, nastavte vlastnost authenticationType na ClientCertificate. Kromě obecných vlastností popsaných v předchozí části zadejte následující vlastnosti:
Vlastnost | Popis | Povinní účastníci |
---|---|---|
embeddedCertData | Data certifikátu s kódováním Base64 | Zadejte embeddedCertData nebo certThumbprint. |
certThumbprint | Kryptografický otisk certifikátu nainstalovaného v úložišti certifikátů místního prostředí Integration Runtime. Platí pouze v případech, kdy je ve vlastnosti connectVia zadaný typ místního prostředí Integration Runtime. | Zadejte embeddedCertData nebo certThumbprint. |
Heslo | Heslo přidružené k certifikátu. Označte toto pole jako typ SecureString , abyste ho bezpečně uložili. Můžete také odkazovat na tajný klíč uložený ve službě Azure Key Vault. | No |
Pokud pro ověřování používáte certThumbprint a certifikát je nainstalovaný v osobním úložišti místního počítače, udělte oprávnění ke čtení místnímu prostředí Integration Runtime:
- Otevřete konzolu Microsoft Management Console (MMC). Přidejte modul snap-in Certifikáty, který cílí na místní počítač.
- Rozbalte položku Certifikáty>Osobní a pak vyberte Certifikáty.
- Klikněte pravým tlačítkem myši na certifikát z osobního úložiště a pak vyberte Všechny úkoly>spravovat privátní klíče.
- Na kartě Zabezpečení přidejte uživatelský účet, pod kterým je spuštěná hostitelská služba prostředí Integration Runtime (DIAHostService) s přístupem pro čtení k certifikátu.
- Konektor HTTP načte pouze důvěryhodné certifikáty. Pokud používáte certifikát podepsaný svým držitelem nebo neintegrovaný certifikát vydaný certifikační autoritou, musí být certifikát nainstalovaný také v jednom z následujících úložišť:
- Důvěryhodné osoby
- Kořenové certifikační autority třetích stran
- Důvěryhodné kořenové certifikační autority
Příklad 1: Použití nástroje certThumbprint
{
"name": "HttpLinkedService",
"properties": {
"type": "HttpServer",
"typeProperties": {
"authenticationType": "ClientCertificate",
"url": "<HTTP endpoint>",
"certThumbprint": "<thumbprint of certificate>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Příklad 2: Použití 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"
}
}
}
Použití ověřovacích hlaviček
Kromě toho můžete nakonfigurovat hlavičky požadavků pro ověřování spolu s integrovanými typy ověřování.
Příklad: Použití ověřování pomocí klíče rozhraní 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"
}
}
}
Vlastnosti datové sady
Úplný seznam oddílů a vlastností dostupných pro definování datových sad najdete v článku Datové sady .
Azure Data Factory podporuje následující formáty souborů. Informace o nastaveních založených na formátu najdete v jednotlivých článcích.
- Formát Avro
- Binární formát
- Formát textu s oddělovači
- Formát aplikace Excel
- Formát JSON
- Formát ORC
- Formát Parquet
- Formát XML
V nastavení v datové sadě založené na formátu jsou podporovány následující vlastnosti:location
Vlastnost | Popis | Povinní účastníci |
---|---|---|
type | Vlastnost location typu v datové sadě musí být nastavena na HttpServerLocation. |
Ano |
relativeUrl | Relativní adresa URL prostředku, který obsahuje data. Konektor HTTP kopíruje data z kombinované adresy URL: [URL specified in linked service][relative URL specified in dataset] . |
No |
Poznámka:
Podporovaná velikost datové části požadavku HTTP je přibližně 500 kB. Pokud je velikost datové části, kterou chcete předat do webového koncového bodu, větší než 500 kB, zvažte dávkování datové části v menších blocích dat.
Příklad:
{
"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"
}
}
}
Vlastnosti aktivity kopírování
Tato část obsahuje seznam vlastností, které zdroj HTTP podporuje.
Úplný seznam oddílů a vlastností, které jsou k dispozici pro definování aktivit, najdete v tématu Kanály.
HTTP jako zdroj
Azure Data Factory podporuje následující formáty souborů. Informace o nastaveních založených na formátu najdete v jednotlivých článcích.
- Formát Avro
- Binární formát
- Formát textu s oddělovači
- Formát aplikace Excel
- Formát JSON
- Formát ORC
- Formát Parquet
- Formát XML
V nastavení ve zdroji kopírování založeném na formátu se podporují následující vlastnosti:storeSettings
Vlastnost | Popis | Povinní účastníci |
---|---|---|
type | Vlastnost typu v části storeSettings musí být nastavena na HttpReadSettings. |
Ano |
requestMethod | Metoda HTTP. Povolené hodnoty jsou Get (výchozí) a Post. |
No |
additionalHeaders | Další hlavičky požadavku HTTP | No |
requestBody | Text požadavku HTTP. | No |
httpRequestTimeout | Časový limit ( hodnota TimeSpan ) požadavku HTTP pro získání odpovědi. Tato hodnota je časový limit pro získání odpovědi, nikoli časový limit pro čtení dat odpovědi. Výchozí hodnota je 00:01:40. | No |
maxConcurrentConnections | Horní limit souběžných připojení vytvořených k úložišti dat během spuštění aktivity. Zadejte hodnotu pouze v případech, kdy chcete omezit souběžná připojení. | No |
Příklad:
"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>"
}
}
}
]
Vlastnosti aktivity vyhledávání
Podrobnosti o vlastnostech najdete v aktivitě Vyhledávání.
Starší modely
Poznámka:
Následující modely jsou stále podporovány, protože je to kvůli zpětné kompatibilitě. Doporučujeme použít nový model uvedený v předchozích částech a uživatelské rozhraní pro vytváření obsahu se přepnulo na generování nového modelu.
Starší model datové sady
Vlastnost | Popis | Povinní účastníci |
---|---|---|
type | Vlastnost typu datové sady musí být nastavena na HttpFile. | Ano |
relativeUrl | Relativní adresa URL prostředku, který obsahuje data. Pokud tato vlastnost není zadána, použije se pouze adresa URL zadaná v definici propojené služby. | No |
requestMethod | Metoda HTTP. Povolené hodnoty jsou Get (výchozí) a Post. | No |
additionalHeaders | Další hlavičky požadavku HTTP | No |
requestBody | Text požadavku HTTP. | No |
format | Pokud chcete načíst data z koncového bodu HTTP bez analýzy a pak je zkopírovat do úložiště založeného na souborech, přeskočte oddíl formátu v definicích vstupní i výstupní datové sady. Pokud chcete během kopírování parsovat obsah odpovědi HTTP, podporují se následující typy formátů souborů: TextFormat, JsonFormat, AvroFormat, OrcFormat a ParquetFormat. Ve formátu nastavte vlastnost typu na jednu z těchto hodnot. Další informace najdete ve formátu JSON, formátu textu, formátu Avro, formátu Orc a formátu Parquet. |
No |
komprese | Zadejte typ a úroveň komprese dat. Další informace naleznete v tématu Podporované formáty souborů a komprimační kodeky. Podporované typy: GZip, Deflate, BZip2 a ZipDeflate. Podporované úrovně: Optimální a nejrychlejší. |
No |
Poznámka:
Podporovaná velikost datové části požadavku HTTP je přibližně 500 kB. Pokud je velikost datové části, kterou chcete předat do webového koncového bodu, větší než 500 kB, zvažte dávkování datové části v menších blocích dat.
Příklad 1: Použití metody Get (výchozí)
{
"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"
}
}
}
Příklad 2: Použití 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>"
}
}
}
Model zdroje starší verze aktivity kopírování
Vlastnost | Popis | Povinní účastníci |
---|---|---|
type | Vlastnost typu zdroje aktivity kopírování musí být nastavena na HttpSource. | Ano |
httpRequestTimeout | Časový limit ( hodnota TimeSpan ) požadavku HTTP pro získání odpovědi. Tato hodnota je časový limit pro získání odpovědi, nikoli časový limit pro čtení dat odpovědi. Výchozí hodnota je 00:01:40. | No |
Příklad
"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>"
}
}
}
]
Související obsah
Seznam úložišť dat, která aktivita kopírování podporuje jako zdroje a jímky, najdete v tématu Podporované úložiště a formáty dat.