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. |
|
|
| Serverlimieten |
|
|
|
Tip
- Wanneer u gegevens kopieert van ADF naar Azure Data Explorer u de
ingest from queryopdrachten. - 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. |
|
|
| 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. |
|
|
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:
|
| 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 |
|
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
- Informatie over het kopiëren van gegevens naar Azure Data Explorer met behulp van Azure Data Factory.
- Meer informatie over het gebruik Azure Data Factory sjabloon voor bulksgewijskopiëren van database naar Azure Data Explorer .
- Meer informatie over het gebruik Azure Data Factory opdrachtactiviteit voor het uitvoeren van Azure Data Explorer besturingsopdrachten.
- Meer informatie over Azure Data Explorer voor het uitvoeren van query's op gegevens.
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:
- Maak de toewijzingsgegevensstroom.
- Exporteert de gegevens naar Azure Blob.
- 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 |
|
| Serverlimieten | Querylimieten kunnen worden uitgebreid/uitgeschakeld. ADF-query's bevatten standaard:
|
Hiermee worden standaard de querylimieten uitgebreid of uitgeschakeld:
|
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.