Integrera Azure Data Explorer med Azure Data Factory
Azure Data Factory (ADF) är en molnbaserad dataintegreringstjänst som gör att du kan integrera olika datalager och utföra aktiviteter på data. Med ADF kan du skapa datadrivna arbetsflöden för orkestrering och automatisering av dataflytt och datatransformering. Azure Data Explorer är ett av de datalager som stöds i Azure Data Factory.
Azure Data Factory aktiviteter för Azure Data Explorer
Olika integreringar med Azure Data Factory är tillgängliga för Azure Data Explorer-användare:
Kopieringsaktivitet
Azure Data Factory aktiviteten Kopiera används för att överföra data mellan datalager. Azure Data Explorer stöds som källa, där data kopieras från Azure Data Explorer till alla datalager som stöds och en mottagare, där data kopieras från alla datalager som stöds till Azure Data Explorer. Mer information finns i Kopiera data till eller från Azure Data Explorer med hjälp av Azure Data Factory. En detaljerad genomgång finns i Läsa in data från Azure Data Factory till Azure Data Explorer. Azure Data Explorer stöds av Azure IR (Integration Runtime), används när data kopieras i Azure och lokalt installerad IR som används vid kopiering av data från/till datalager som finns lokalt eller i ett nätverk med åtkomstkontroll, till exempel en Azure-Virtual Network. Mer information finns i vilken IR som ska användas.
Tips
När du använder kopieringsaktiviteten och skapar en länkad tjänst eller en datauppsättning väljer du datalagret Azure Data Explorer (Kusto) och inte det gamla datalagret Kusto.
Sökningsaktivitet
Sökningsaktiviteten används för att köra frågor på Azure Data Explorer. Resultatet av frågan returneras som utdata för sökningsaktiviteten och kan användas i nästa aktivitet i pipelinen enligt beskrivningen i ADF-uppslagsdokumentationen.
Förutom svarsstorleksgränsen på 5 000 rader och 2 MB har aktiviteten också en tidsgränsgräns för frågor på 1 timme.
Kommandoaktivitet
Med kommandoaktiviteten kan du köra Azure Data Explorer-hanteringskommandon. Till skillnad från frågor kan hanteringskommandona eventuellt ändra data eller metadata. Några av hanteringskommandona är avsedda att mata in data i Azure Data Explorer, med hjälp av kommandon som .ingest
eller .set-or-append
) eller kopiera data från Azure Data Explorer till externa datalager med hjälp av kommandon som .export
.
En detaljerad genomgång av kommandoaktiviteten finns i Använda Azure Data Factory kommandoaktivitet för att köra Azure Data Explorer-hanteringskommandon. Att använda ett hanteringskommando för att kopiera data kan ibland vara ett snabbare och billigare alternativ än aktiviteten Kopiera. Information om när du ska använda kommandoaktiviteten jämfört med aktiviteten Kopiera finns i Välj mellan kopiera och kommando-aktiviteter när du kopierar data.
Masskopiera från en databasmall
Kopiera massvis från en databas till Azure Data Explorer med hjälp av mallen Azure Data Factory är en fördefinierad Azure Data Factory pipeline. Mallen används för att skapa många pipelines per databas eller per tabell för snabbare datakopiering.
Mappa dataflöden
Azure Data Factory mappning av dataflöden är visuellt utformade datatransformeringar som gör det möjligt för datatekniker att utveckla logik för grafisk datatransformering utan att skriva kod. Använd följande metod för att skapa ett dataflöde och mata in data i Azure Data Explorer:
- Skapa dataflödet för mappning.
- Exportera data till Azure Blob.
- Definiera Event Grid- eller ADF-kopieringsaktivitet för att mata in data till Azure Data Explorer.
Välj mellan aktiviteterna Kopiera och Azure Data Explorer Command när du kopierar data
Det här avsnittet hjälper dig att välja rätt aktivitet för dina datakopieringsbehov.
När du kopierar data från eller till Azure Data Explorer finns det två tillgängliga alternativ i Azure Data Factory:
- aktiviteten Kopiera.
- Azure Data Explorer Command-aktivitet, som kör ett av de hanteringskommandon som överför data i Azure Data Explorer.
Kopiera data från Azure Data Explorer
Du kan kopiera data från Azure Data Explorer med hjälp av kopieringsaktiviteten .export
eller kommandot . Kommandot .export
kör en fråga och exporterar sedan resultatet av frågan.
Se följande tabell för en jämförelse av aktiviteten Kopiera och .export
kommandot för att kopiera data från Azure Data Explorer.
Kopieringsaktivitet | .export-kommandot | |
---|---|---|
Flödesbeskrivning | ADF kör en fråga på Kusto, bearbetar resultatet och skickar det till måldatalagret. (Azure Data Explorer > datalager för ADF-mottagare>) |
ADF skickar ett .export hanteringskommando till Azure Data Explorer, som kör kommandot och skickar data direkt till måldatalagret. (** Datalager för Mottagare i Azure Data Explorer>**) |
Måldatalager som stöds | En mängd olika datalager som stöds | ADLSv2, Azure Blob, SQL Database |
Prestanda | Centraliserad |
|
Serverbegränsningar |
Frågegränser kan utökas/inaktiveras. Som standard innehåller ADF-frågor:
|
Som standard utökas eller inaktiveras frågegränserna:
|
Tips
Om kopieringsmålet är ett av de datalager som stöds av .export
kommandot, och om ingen av de aktiviteten Kopiera funktionerna är avgörande för dina behov, väljer du .export
kommandot .
Kopiera data till Azure Data Explorer
Du kan kopiera data till Azure Data Explorer med hjälp av kopieringsaktiviteten eller inmatningskommandon, till exempel mata in från fråga (.set-or-append
, .set-or-replace
, .set
, .replace)
och mata in från lagring (.ingest
).
Se följande tabell för en jämförelse av aktiviteten Kopiera och inmatningskommandon för att kopiera data till Azure Data Explorer.
Kopieringsaktivitet | Mata in från fråga.set-or-append / .set-or-replace / .set / .replace |
Mata in från lagring.ingest |
|
---|---|---|---|
Flödesbeskrivning | ADF hämtar data från källdatalagret, konverterar dem till tabellformat och utför de nödvändiga schemamappningsändringarna. ADF laddar sedan upp data till Azure-blobar, delar upp dem i segment och laddar sedan ned blobarna för att mata in dem i azure Data Explorer-tabellen. (Källdatalager > ADF > Azure blobar > Azure Data Explorer) |
Dessa kommandon kan köra en fråga eller ett .show kommando och mata in resultatet av frågan i en tabell (Azure Data Explorer > Azure Data Explorer). |
Det här kommandot matar in data i en tabell genom att "hämta" data från en eller flera molnlagringsartefakter. |
Källdatalager som stöds | olika alternativ | ADLS Gen 2, Azure Blob, SQL (med plugin-programmet sql_request(), Azure Cosmos DB (med plugin-programmet cosmosdb_sql_request) och andra datalager som tillhandahåller HTTP- eller Python-API:er. | Filesystem, Azure Blob Storage, ADLS Gen 1, ADLS Gen 2 |
Prestanda | Inmatningar placeras i kö och hanteras, vilket säkerställer små inmatningar och säkerställer hög tillgänglighet genom att tillhandahålla belastningsutjämning, återförsök och felhantering. |
|
|
Serverbegränsningar |
|
|
|
Tips
- När du kopierar data från ADF till Azure Data Explorer använda
ingest from query
kommandona. - För stora datamängder (>1 GB) använder du aktiviteten Kopiera.
Behörigheter som krävs
I följande tabell visas de behörigheter som krävs för olika steg i integreringen med Azure Data Factory.
Steg | Åtgärd | Lägsta behörighetsnivå | Kommentarer |
---|---|---|---|
Skapa en länkad tjänst | Databasnavigering |
databasvisningsprogram Den inloggade användaren som använder ADF bör ha behörighet att läsa databasmetadata. |
Användaren kan ange databasnamnet manuellt. |
Testa anslutning |
database monitor eller table ingestor Tjänstens huvudnamn ska ha behörighet att köra kommandon på databasnivå .show eller inmatning på tabellnivå. |
|
|
Skapa en datauppsättning | Tabellnavigering |
databasövervakare Den inloggade användaren som använder ADF måste ha behörighet att köra kommandon på databasnivå .show . |
Användaren kan ange tabellnamnet manuellt. |
Skapa en datauppsättning eller kopieringsaktivitet | Förhandsgranska data |
databasvisningsprogram Tjänstens huvudnamn måste ha behörighet att läsa databasmetadata. |
|
Importera schema |
databasvisningsprogram Tjänstens huvudnamn måste ha behörighet att läsa databasmetadata. |
När Azure Data Explorer är källan till en tabell-till-tabellkopia importerar ADF schemat automatiskt, även om användaren inte uttryckligen har importerat schemat. | |
Azure Data Explorer som mottagare | Skapa en kolumnmappning efter namn |
databasövervakare Tjänstens huvudnamn måste ha behörighet att köra kommandon på databasnivå .show . |
|
|
tabell-ingestor eller databasadministratör Tjänstens huvudnamn måste ha behörighet att göra ändringar i en tabell. |
||
Mata in data |
tabell-ingestor eller databasadministratör Tjänstens huvudnamn måste ha behörighet att göra ändringar i en tabell. |
||
Azure Data Explorer som källa | Köra fråga |
databasvisningsprogram Tjänstens huvudnamn måste ha behörighet att läsa databasmetadata. |
|
Kusto-kommando | Enligt behörighetsnivån för varje kommando. |
Prestanda
Om Azure Data Explorer är källan och du använder söknings-, kopierings- eller kommandoaktiviteten som innehåller en fråga där, se metodtips för frågor för prestandainformation och ADF-dokumentation för kopieringsaktivitet.
I det här avsnittet beskrivs användningen av kopieringsaktivitet där Azure Data Explorer är mottagare. Det uppskattade dataflödet för Azure Data Explorer mottagare är 11–13 Mbit/s. I följande tabell beskrivs de parametrar som påverkar prestanda för Azure Data Explorer-mottagaren.
Parameter | Kommentarer |
---|---|
Komponenter geografisk närhet | Placera alla komponenter i samma region:
|
Antal DIU:er | En virtuell dator för var fjärde DIU:er som används av ADF. Att öka DIU:erna hjälper bara om källan är ett filbaserat arkiv med flera filer. Varje virtuell dator bearbetar sedan en annan fil parallellt. Därför har kopiering av en enda stor fil en högre svarstid än att kopiera flera mindre filer. |
Mängd och SKU för ditt Azure Data Explorer-kluster | Ett stort antal Azure Data Explorer-noder ökar bearbetningstiden för inmatning. Användning av dev-SKU:er begränsar prestanda avsevärt |
Parallellitet | Om du vill kopiera en stor mängd data från en databas partitionerar du dina data och använder sedan en ForEach-loop som kopierar varje partition parallellt eller använder mallen Masskopiering från databas till Azure Data Explorer. Obs! Inställningar>Grad av parallellitet i aktiviteten Kopiera är inte relevant för Azure Data Explorer. |
Databehandlingskomplexitet | Svarstiden varierar beroende på källfilformat, kolumnmappning och komprimering. |
Den virtuella dator som kör integrationskörningen |
|
Tips och vanliga fallgropar
Övervaka aktivitetsförlopp
När du övervakar aktivitetsförloppet kan den skrivna egenskapen Data vara större än egenskapen Dataläsning eftersom Dataläsning beräknas enligt den binära filstorleken, medan skrivna data beräknas enligt minnesintern storlek när data deserialiseras och dekomprimeras.
När du övervakar aktivitetsstatusen kan du se att data skrivs till Azure Data Explorer mottagare. När du kör frågor mot Azure Data Explorer-tabellen ser du att data inte har anlänt. Det beror på att det finns två steg när du kopierar till Azure Data Explorer.
- Första steget läser källdata, delar upp dem till segment på 900 MB och laddar upp varje segment till en Azure-blob. Den första fasen visas i förloppsvyn för ADF-aktiviteten.
- Det andra steget börjar när alla data har laddats upp till Azure Blobs. Noderna i klustret laddar ned blobarna och matar in data i mottagartabellen. Data visas sedan i din Azure Data Explorer-tabell.
Det gick inte att mata in CSV-filer på grund av felaktig undantagskörning
Azure Data Explorer förväntar sig att CSV-filer överensstämmer med RFC 4180. Den förväntar sig:
- Fält som innehåller tecken som kräver undantag (till exempel " och nya rader) bör börja och sluta med ett " tecken, utan blanksteg. Alla " tecken i fältet är undantagna med hjälp av ett dubbelt " tecken (""). Till exempel är "Hello, "World"" en giltig CSV-fil med en enda post som har en enda kolumn eller ett fält med innehållet Hello, "World".
- Alla poster i filen måste ha samma antal kolumner och fält.
Azure Data Factory tillåter omvänt snedstreck (escape). Om du genererar en CSV-fil med ett omvänt snedstreck med Azure Data Factory misslyckas inmatningen av filen till Azure Data Explorer.
Exempel
Följande textvärden: Hello, "World"
ABC DEF
"ABC\D"EF
"ABC DEF
Bör visas i en korrekt CSV-fil på följande sätt: "Hello, "World""
"ABC DEF"
""ABC\D""EF"
""ABC DEF"
Med hjälp av standardtecken för escape (omvänt snedstreck) fungerar inte följande CSV med Azure Data Explorer: "Hello, "World""
"ABC DEF"
""ABC\D"EF"
""ABC DEF"
Kapslade JSON-objekt
När du kopierar en JSON-fil till Azure Data Explorer bör du tänka på följande:
- Matriser stöds inte.
- Om din JSON-struktur innehåller objektdatatyper kommer Azure Data Factory att platta ut objektets underordnade objekt och försöka mappa varje underordnat objekt till en annan kolumn i din Azure Data Explorer-tabell. Om du vill att hela objektobjektet ska mappas till en enda kolumn i Azure Data Explorer:
- Mata in hela JSON-raden i en enda dynamisk kolumn i Azure Data Explorer.
- Redigera pipelinedefinitionen manuellt med hjälp av Azure Data Factory JSON-redigeraren. I mappningar
- Ta bort flera mappningar som har skapats för varje underordnat objekt och lägg till en enda mappning som mappar objekttypen till tabellkolumnen.
- Efter den avslutande hakparentesen lägger du till ett kommatecken följt av:
"mapComplexValuesToString": true
.
Ange ytterligare egenskaper när du kopierar till Azure Data Explorer
Du kan lägga till ytterligare inmatningsegenskaper genom att ange dem i kopieringsaktiviteten i pipelinen.
Så här lägger du till egenskaper
I Azure Data Factory väljer du pennverktyget Författare.
Under Pipeline väljer du den pipeline där du vill lägga till ytterligare inmatningsegenskaper.
På arbetsytan Aktiviteter väljer du aktiviteten Kopiera data .
I aktivitetsinformationen väljer du Mottagare och expanderar sedan Ytterligare egenskaper.
Välj Nytt, välj antingen Lägg till nod eller Lägg till matris efter behov och ange sedan inmatningsegenskapens namn och värde. Upprepa det här steget om du vill lägga till fler egenskaper.
När du är klar sparar och publicerar du din pipeline.