Integratie Azure Data Explorer met Azure Data Factory

Kopieeractiviteit Opname via query
.set-or-append / .set-or-replace / .set / .replace
Opname vanuit opslag
.ingest
Flow beschrijving ADF haalt de gegevens op uit het brongegevensopslag, converteert deze naar een tabelvorm en brengt de vereiste wijzigingen aan schematoewijzing aan. ADF uploadt de gegevens vervolgens naar Azure-blobs, splitst deze in segmenten en downloadt vervolgens de blobs om ze op te nemen in Azure Data Explorer tabel.
(Brongegevensopslag ADF > Azure-blobs > ADX)
Met deze opdrachten kunt u een query of een opdracht uitvoeren en de resultaten van de query opnemen .show in een tabel (.show Met deze opdracht worden gegevens opgenomen in een tabel door de gegevens op te halen uit een of meer cloudopslagartefacten.
Ondersteunde brongegevensopslag verschillende opties ADLS Gen 2, Azure Blob, SQL (met behulp van de sql_request()-invoegvoegprogramma ), Cosmos (met behulp van de cosmosdb_sql_request-invoegprogramma) en andere gegevensopslag met HTTP-of Python-API's. Bestandssysteem, Azure Blob Storage, ADLS Gen 1, ADLS Gen 2
Prestaties Opnames worden in de wachtrij geplaatst en beheerd, wat zorgt voor opname van kleine omvang en hoge beschikbaarheid garandeert door taakverdeling, nieuwe proberen en foutafhandeling te bieden.
  • Deze opdrachten zijn niet ontworpen voor het importeren van grote hoeveelheden gegevens.
  • Werkt zoals verwacht en goedkoper. Maar voor productiescenario's en wanneer de verkeerssnelheden en gegevensgrootten groot zijn, gebruikt u de Copy-activiteit.
Serverlimieten
  • Geen groottelimiet.
  • Maximale time-outlimiet: 1 uur per opgenomen blob.
  • Er is slechts een groottelimiet voor het querygedeelte, die kan worden overgeslagen door op te noTruncation=true geven.
  • Maximale time-outlimiet: 1 uur.
  • Geen groottelimiet.
  • Maximale time-outlimiet: 1 uur.

Tip

  • Wanneer u gegevens kopieert van ADF naar Azure Data Explorer u de ingest from query opdrachten.
  • Gebruik voor grote > gegevenssets (1 GB) de Copy-activiteit.

Vereiste machtigingen

De volgende tabel bevat de vereiste machtigingen voor verschillende stappen in de integratie met Azure Data Factory.

Stap Bewerking Minimaal machtigingsniveau Notities
Een gekoppelde service maken Databasenavigatie databaseviewer
De aangemelde gebruiker die ADF gebruikt, moet gemachtigd zijn om metagegevens van de database te lezen.
De gebruiker kan de databasenaam handmatig verstrekken.
Verbinding testen database monitor of table ingestor
Service-principal moet worden gemachtigd om opdrachten op databaseniveau of .show opname op tabelniveau uit te voeren.
  • TestConnection verifieert de verbinding met het cluster en niet met de database. Dit kan zelfs lukken als de database niet bestaat.
  • Tabelbeheerdersmachtigingen zijn niet voldoende.
Een gegevensset maken Tabelnavigatie database monitor
De aangemelde gebruiker die ADF gebruikt, moet gemachtigd zijn om opdrachten op databaseniveau uit te .show voeren.
De gebruiker kan de tabelnaam handmatig verstrekken.
Een gegevensset ofkopieeractiviteit maken Voorbeeld van gegevens bekijken databaseviewer
De service-principal moet zijn gemachtigd om metagegevens van de database te lezen.
Schema importeren databaseviewer
De service-principal moet zijn gemachtigd om metagegevens van de database te lezen.
Wanneer Azure Data Explorer de bron is van een kopie in tabelvorm naar tabelvorm, importeert ADF automatisch het schema, zelfs als de gebruiker het schema niet expliciet heeft geïmporteerd.
ADX als sink Een kolomtoewijzing op naam maken database monitor
Service-principal moet zijn gemachtigd om opdrachten op databaseniveau uit te .show voeren.
  • Alle verplichte bewerkingen werken met table ingestor.
  • Sommige optionele bewerkingen kunnen mislukken.
  • Een CSV-toewijzing maken voor de tabel
  • De toewijzing neerzetten
table ingestor of database admin
De service-principal moet zijn gemachtigd om wijzigingen aan te brengen in een tabel.
Gegevens opnemen table ingestor of database admin
De service-principal moet zijn gemachtigd om wijzigingen aan te brengen in een tabel.
ADX als bron Query uitvoeren databaseviewer
De service-principal moet zijn gemachtigd om metagegevens van de database te lezen.
Kusto-opdracht Op basis van het machtigingsniveau van elke opdracht.

Prestaties

Als Azure Data Explorer de bron is en u de activiteit Opzoek-, kopieer- of opdrachtactiviteit gebruikt die een query bevat, raadpleegt u de best practices voor query's voor prestatiegegevens en ADF-documentatie voor kopieeractiviteit.

Deze sectie behandelt het gebruik van kopieeractiviteit waarbij Azure Data Explorer de sink is. De geschatte doorvoer voor Azure Data Explorer sink is 11-13 MBps. De volgende tabel geeft informatie over de parameters die van invloed zijn op de prestaties van Azure Data Explorer sink.

Parameter Opmerkingen
Geografische nabijheid van onderdelen Plaats alle onderdelen in dezelfde regio:
  • bron- en sinkgegevensopslag.
  • ADF-integratieruntime.
  • Uw Azure Data Explorer cluster.
Zorg ervoor dat uw integratieruntime zich ten minste in dezelfde regio als uw Azure Data Explorer cluster.
Aantal DIUs 1 VM voor elke 4 DIUs die door ADF wordt gebruikt.
Het verhogen van de DIUs helpt alleen als uw bron een bestandsopslag met meerdere bestanden is. Elke VM verwerkt vervolgens een ander bestand parallel. Daarom heeft het kopiëren van één groot bestand een hogere latentie dan het kopiëren van meerdere kleinere bestanden.
De hoeveelheid en SKU van uw ADX-cluster Een groot aantal Azure Data Explorer knooppunten verhoogt de opnameverwerking. Het gebruik van dev-SKU's beperkt de prestaties ernstig
Parallelle uitvoering Als u een zeer grote hoeveelheid gegevens uit een database wilt kopiëren, partitioneert u uw gegevens en gebruikt u vervolgens een ForEach-lus die elke partitie parallel kopieert of de sjabloon Bulksgewijskopiëren van database naar Azure Data Explorer gebruiken. Opmerking: Instellingenmate van parallelleisme in de Copy-activiteit niet relevant is voor Azure Data Explorer.
Complexiteit van gegevensverwerking De latentie is afhankelijk van de indeling van het bronbestand, de kolomtoewijzing en compressie.
De VM met uw integratieruntime
  • Voor Azure Copy kunnen ADF-VM's en machine-SKU's niet worden gewijzigd.
  • Voor on-prem naar Azure-kopie, moet u bepalen dat de VM die als host voor uw zelf-hostende IR wordt gehost, sterk genoeg is.

Tips en veelvoorkomende valkuilen

Voortgang van activiteit bewaken

  • Bij het bewaken van de voortgang van de activiteit kan de eigenschap Geschreven gegevens veel groter zijn dan de eigenschap Gegevens lezen, omdat Gegevens lezen wordt berekend op basis van de grootte van het binaire bestand, terwijl Geschreven gegevens worden berekend op basis van de geheugengrootte, nadat de gegevens zijn gedeseraliseerd en gedecomprimeerd.

  • Wanneer u de voortgang van de activiteit bijwerkt, kunt u zien dat gegevens naar de sink van Azure Data Explorer geschreven. Wanneer u een query uitvoert Azure Data Explorer tabel, ziet u dat er geen gegevens zijn aangekomen. Dit komt doordat er twee fasen zijn bij het kopiëren naar Azure Data Explorer.

    • De eerste fase leest de brongegevens, splitst deze in segmenten van 900 MB en uploadt elk segment naar een Azure Blob. De eerste fase wordt gezien in de voortgangsweergave van de ADF-activiteit.
    • De tweede fase begint zodra alle gegevens zijn geüpload naar Azure Blobs. De Azure Data Explorer engine-knooppunten downloaden de blobs en nemen de gegevens op in de sinktabel. De gegevens worden vervolgens in uw Azure Data Explorer gezien.

Fout bij het opnemen van CSV-bestanden vanwege onjuiste escape-items

Azure Data Explorer verwacht dat CSV-bestanden worden uitgelijnd met RFC 4180. Er wordt verwacht dat:

  • Velden die tekens bevatten waarvoor escape-tekens (zoals ' en nieuwe regels) moeten beginnen en eindigen met een '-teken, zonder witruimte. Alle tekens in het veld krijgen een escape-teken met behulp van een dubbel teken (""). "Hello, ""World"" is bijvoorbeeld een geldig CSV-bestand met één record met één kolom of veld met de inhoud Hallo, "Wereld".
  • Alle records in het bestand moeten hetzelfde aantal kolommen en velden hebben.

Azure Data Factory staat het backslash-teken (escape) toe. Als u een CSV-bestand met een backslash-teken genereert met behulp van Azure Data Factory, mislukt de opname van het Azure Data Explorer bestand.

Voorbeeld

De volgende tekstwaarden: Hallo, 'Wereld'
ABC DEF
"ABC\D"EF
"ABC DEF

Moet als volgt in een juist CSV-bestand worden weergegeven: "Hallo" ""Wereld""
ABC DEF
""ABC DEF"
"""ABC\D"EF"

Met behulp van het standaard escape-teken (backslash) werkt het volgende CSV-bestand niet met Azure Data Explorer: "Hallo, "Wereld""
ABC DEF
""ABC DEF"
""ABC\D"EF"

Geneste JSON-objecten

Wanneer u een JSON-bestand kopieert naar Azure Data Explorer, moet u rekening met het volgende maken:

  • Matrices worden niet ondersteund.
  • Als uw JSON-structuur objectgegevenstypen bevat, platt Azure Data Factory de onderliggende items van het object en probeert elk onderliggend item toe te Azure Data Explorer aan een andere kolom in Azure Data Explorer tabel. Als u wilt dat het hele objectitem wordt Azure Data Explorer:
    • De volledige JSON-rij opnemen in één dynamische kolom in Azure Data Explorer.
    • Bewerk de pijplijndefinitie handmatig met behulp Azure Data Factory JSON-editor van de app. In Toewijzingen
      • Verwijder de meerdere toewijzingen die zijn gemaakt voor elk onderliggend item en voeg één toewijzing toe die uw objecttype toewijst aan uw tabelkolom.
      • Voeg na het vierkante haakje sluiten een komma toe, gevolgd door:
        "mapComplexValuesToString": true.

Geef Extra Eigenschappen op bij het kopiëren naar Azure Data Explorer

Notitie

Deze functie is momenteel beschikbaar door de JSON-nettolading handmatig te bewerken.

Voeg als volgt één rij toe onder de sectie sink van de kopieeractiviteit:

"sink": {
    "type": "AzureDataExplorerSink",
    "additionalProperties": "{\"tags\":\"[\\\"drop-by:account_FiscalYearID_2020\\\"]\"}"
},

Het kan lastig zijn om de waarde te escapen. Gebruik het volgende codefragment als referentie:

static void Main(string[] args)
{
       Dictionary<string, string> additionalProperties = new Dictionary<string, string>();
       additionalProperties.Add("ignoreFirstRecord", "false");
       additionalProperties.Add("csvMappingReference", "Table1_mapping_1");
       IEnumerable<string> ingestIfNotExists = new List<string> { "Part0001" };
       additionalProperties.Add("ingestIfNotExists", JsonConvert.SerializeObject(ingestIfNotExists));
       IEnumerable<string> tags = new List<string> { "ingest-by:Part0001", "ingest-by:IngestedByTest" };
       additionalProperties.Add("tags", JsonConvert.SerializeObject(tags));
       var additionalPropertiesForPayload = JsonConvert.SerializeObject(additionalProperties);
       Console.WriteLine(additionalPropertiesForPayload);
       Console.ReadLine();
}

De afgedrukte waarde:

{"ignoreFirstRecord":"false","csvMappingReference":"Table1_mapping_1","ingestIfNotExists":"[\"Part0001\"]","tags":"[\"ingest-by:Part0001\",\"ingest-by:IngestedByTest\"]"}

Volgende stappen

Azure Data Factory (ADF) is een cloudgebaseerde gegevensintegratieservice waarmee u verschillende gegevensopslag kunt integreren en activiteiten kunt uitvoeren op de gegevens. Met ADF kunt u gegevensgestuurde werkstromen maken voor het in delen en automatiseren van gegevensver movement en gegevenstransformatie. Azure Data Explorer is een van de ondersteunde gegevensopslag in Azure Data Factory.

Azure Data Factory activiteiten voor Azure Data Explorer

Er zijn verschillende integraties Azure Data Factory beschikbaar voor Azure Data Explorer gebruikers:

Kopieeractiviteit

Azure Data Factory Copy-activiteit wordt gebruikt om gegevens over te dragen tussen gegevensopslag. Azure Data Explorer wordt ondersteund als een bron, waarbij gegevens worden gekopieerd van Azure Data Explorer naar een ondersteund gegevensopslag en een sink, waar gegevens worden gekopieerd van een ondersteund gegevensopslag naar Azure Data Explorer. Zie Copy data to or from Azure Data Explorer using Azure Data Factory (Gegevens kopiëren naar of van een Azure Data Factory) voor meer Azure Data Factory. en voor een gedetailleerd overzicht ziet u gegevens uit uw Azure Data Factory in Azure Data Explorer. Azure Data Explorer wordt ondersteund door Azure IR (Integration Runtime), dat wordt gebruikt wanneer gegevens worden gekopieerd in Azure en zelf-hostende IR, die worden gebruikt bij het kopiëren van gegevens van/naar gegevensopslag on-premises of in een netwerk met toegangsbeheer, zoals een Azure-Virtual Network. Zie welke IR u wilt gebruiken voor meer informatie

Tip

Wanneer u de kopieeractiviteit gebruikt en een gekoppelde service of een gegevensset maakt,selecteert u het gegevensopslagexemplaar Azure Data Explorer (Kusto) en niet het oude gegevensopslag kusto.

Opzoekactiviteit

De opzoekactiviteit wordt gebruikt voor het uitvoeren van query's op Azure Data Explorer. Het resultaat van de query wordt geretourneerd als de uitvoer van de opzoekactiviteit en kan worden gebruikt in de volgende activiteit in de pijplijn, zoals beschreven in de ADF Lookup-documentatie.

Naast de limiet voor de antwoordgrootte van 5000 rijen en 2 MB, heeft de activiteit ook een time-outlimiet van 1 uur voor de query.

Opdrachtactiviteit

Met de activiteit Opdracht kunt u de opdracht Azure Data Explorer besturingsopdrachten uit te voeren. In tegenstelling tot query's kunnen de besturingsopdrachten mogelijk gegevens of metagegevens wijzigen. Sommige besturingsopdrachten zijn gericht op het opnemen van gegevens in Azure Data Explorer, met behulp van opdrachten zoals of ) of het kopiëren van gegevens van Azure Data Explorer naar externe gegevensopslag met behulp van opdrachten zoals .ingest.set-or-append.export . Zie De opdrachtactiviteit van Azure Data Factory gebruiken om de besturingsopdrachten Azure Data Explorer uit te voeren voor een gedetailleerd overzicht van de opdrachtactiviteit. Het gebruik van een besturingsopdracht voor het kopiëren van gegevens kan soms een snellere en goedkopere optie zijn dan de Copy-activiteit. Zie Select between Copy and Command activities when copying data(Selecteren tussen kopieer- en opdrachtactiviteiten bij het kopiëren van gegevens) om te bepalen wanneer u de opdrachtactiviteit wilt gebruiken in vergelijking met de Copy-activiteit.

Bulksgewijs kopiëren uit een databasesjabloon

Het bulksgewijs kopiëren van een database naar Azure Data Explorer met behulp van de sjabloon Azure Data Factory is een vooraf gedefinieerde Azure Data Factory pijplijn. De sjabloon wordt gebruikt voor het maken van veel pijplijnen per database of per tabel voor het sneller kopiëren van gegevens.

Toewijzing gegevensstromen

Azure Data Factory toewijzingsgegevensstromen zijn visueel ontworpen gegevenstransformaties waarmee data engineers grafische logica voor gegevenstransformatie kunnen ontwikkelen zonder code te schrijven. Als u een gegevensstroom wilt maken en gegevens wilt opnemen in Azure Data Explorer, gebruikt u de volgende methode:

  1. Maak de toewijzingsgegevensstroom.
  2. Exporteert de gegevens naar Azure Blob.
  3. Definieer Event GridADF-kopieeractiviteit om de gegevens op te nemen in Azure Data Explorer.

Selecteren tussen Kopiëren en Azure Data Explorer uitvoeren bij het kopiëren van gegevens

Deze sectie helpt u bij het selecteren van de juiste activiteit voor uw behoeften voor het kopiëren van gegevens.

Wanneer u gegevens kopieert van of naar Azure Data Explorer, zijn er twee beschikbare opties in Azure Data Factory:

  • Copy-activiteit.
  • Azure Data Explorer opdrachtactiviteit, waarmee een van de besturingsopdrachten wordt uitgevoerd waarmee gegevens in de Azure Data Explorer.

Gegevens kopiëren uit Azure Data Explorer

U kunt gegevens kopiëren van Azure Data Explorer met behulp van de kopieeractiviteit of de .export opdracht . De .export opdracht voert een query uit en exporteert vervolgens de resultaten van de query.

Zie de volgende tabel voor een vergelijking van de Copy-activiteit en de opdracht voor .export het kopiëren van gegevens uit Azure Data Explorer.

Kopieeractiviteit .export-opdracht
Flow beschrijving ADF voert een query uit op Kusto, verwerkt het resultaat en verzendt deze naar het doelgegevensopslag.
(ADX ADF > sink-gegevensopslag)
ADF verzendt een besturingsopdracht naar Azure Data Explorer, die de opdracht uitvoert, en verzendt de gegevens .export rechtstreeks naar het doelgegevensopslag.
(ADX sink-gegevensopslag)
Ondersteunde doelgegevensopslag Een groot aantal ondersteunde gegevensopslag ADLSv2, Azure Blob, SQL Database
Prestaties Gecentraliseerde
  • Gedistribueerd (standaard), gegevens exporteren van meerdere knooppunten tegelijk
  • Sneller en COGS (kosten van verkochte goederen).
Serverlimieten Querylimieten kunnen worden uitgebreid/uitgeschakeld. ADF-query's bevatten standaard:
  • Groottelimiet van 500.000 records of 64 MB.
  • Tijdslimiet van 10 minuten.
  • noTruncation ingesteld op onwaar.
Hiermee worden standaard de querylimieten uitgebreid of uitgeschakeld:
  • Groottelimieten zijn uitgeschakeld.
  • De time-out van de server wordt verlengd tot 1 uur.
  • MaxMemoryConsumptionPerIterator en MaxMemoryConsumptionPerQueryPerNode worden uitgebreid naar maximaal (5 GB, TotalPhysicalMemory/2).

Tip

Als uw kopieerbestemming een van de gegevensopslagexemplaars is die door de opdracht worden ondersteund en als geen van de Copy-activiteit-functies essentieel is voor .export uw behoeften, selecteert u de opdracht .export .

Gegevens kopiëren naar Azure Data Explorer

U kunt gegevens kopiëren naar Azure Data Explorer met behulp van de kopieeractiviteit of opnameopdrachten, zoals opnemen uit query ( , , , , en opnemen vanuit opslag ( .set-or-replace.set.replace).set-or-replace.ingest ).

Zie de volgende tabel voor een vergelijking van de Copy-activiteit en opnameopdrachten voor het kopiëren van gegevens naar Azure Data Explorer.