Dela via


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 .ingesteller .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:

  1. Skapa dataflödet för mappning.
  2. Exportera data till Azure Blob.
  3. 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
  • Distribuerad (standard), exportera data från flera noder samtidigt
  • Snabbare och KSV (kostnad för sålda varor) effektiva.
Serverbegränsningar Frågegränser kan utökas/inaktiveras. Som standard innehåller ADF-frågor:
  • Storleksgräns på 500 000 poster eller 64 MB.
  • Tidsgräns på 10 minuter.
  • noTruncation inställd på false.
Som standard utökas eller inaktiveras frågegränserna:
  • Storleksgränser är inaktiverade.
  • Tidsgränsen för servern har utökats till 1 timme.
  • MaxMemoryConsumptionPerIterator och MaxMemoryConsumptionPerQueryPerNode utökas till max (5 GB, TotalPhysicalMemory/2).

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.
  • Dessa kommandon har inte utformats för dataimport med stora volymer.
  • Fungerar som förväntat och billigare. Men för produktionsscenarier och när trafikhastigheterna och datastorlekarna är stora använder du aktiviteten Kopiera.
Serverbegränsningar
  • Ingen storleksgräns.
  • Maximal tidsgräns: En timme per inmatad blob.
  • Det finns bara en storleksgräns för frågedelen, som kan hoppas över genom att noTruncation=trueange .
  • Maxgräns för tidsgräns: En timme.
  • Ingen storleksgräns.
  • Maxgräns för tidsgräns: En timme.

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å.
  • TestConnection verifierar anslutningen till klustret och inte till databasen. Det kan lyckas även om databasen inte finns.
  • Tabelladministratörsbehörigheter räcker inte.
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 .
  • Alla obligatoriska åtgärder fungerar med tabell-ingestor.
  • Vissa valfria åtgärder kan misslyckas.
  • Skapa en CSV-mappning i tabellen
  • Ta bort mappningen
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:
  • käll- och mottagardatalager.
  • ADF Integration Runtime.
  • Ditt Azure Data Explorer-kluster.
Kontrollera att integreringskörningen åtminstone finns i samma region som ditt Azure Data Explorer-kluster.
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
  • För Azure Copy kan inte virtuella ADF-datorer och dator-SKU:er ändras.
  • För lokal till Azure-kopiering kontrollerar du att den virtuella dator som är värd för din lokalt installerade IR är tillräckligt stark.

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

  1. I Azure Data Factory väljer du pennverktyget Författare.

  2. Under Pipeline väljer du den pipeline där du vill lägga till ytterligare inmatningsegenskaper.

  3. På arbetsytan Aktiviteter väljer du aktiviteten Kopiera data .

  4. I aktivitetsinformationen väljer du Mottagare och expanderar sedan Ytterligare egenskaper.

  5. 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.

  6. När du är klar sparar och publicerar du din pipeline.

Nästa steg