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/-) | ① ② |
Aktivita Lookup | ① ② |
(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 Postman 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 o konfiguraci Připojení oru
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é Lidé
- 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 HttpRead Nastavení. |
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 |
maxConcurrent Připojení ions | 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.