Använda LightIngest för att mata in data i Azure Data Explorer
LightIngest är ett kommandoradsverktyg för ad hoc-datainmatning till Azure Data Explorer. Verktyget kan hämta källdata från en lokal mapp eller från en Azure Blob Storage-container. LightIngest är mest användbart när du vill mata in en stor mängd data, eftersom det inte finns någon tidsbegränsning för inmatningens varaktighet. Det är också användbart när du vill köra frågor mot poster senare efter den tidpunkt då de skapades och inte den tid de matades in.
Om du vill generera ett LightIngest-kommando automatiskt kan du se Använda inmatningsguiden för inmatning av historiska data en gång med LightIngest.
Förutsättningar
LightIngest – ladda ned det som en del av Microsoft.Azure.Kusto.Tools NuGet-paketet
WinRAR – ladda ned den från www.win-rar.com/download.html
Installera LightIngest
- Navigera till den plats på datorn där du laddade ned LightIngest.
- Extrahera verktygskatalogen till datorn med hjälp av WinRAR.
Kör LightIngest
Navigera till katalogen med extraherade verktyg på datorn.
Ta bort befintlig platsinformation från platsfältet.
Ange
cmdoch tryck påcmdI kommandotolken anger
LightIngest.exedu följt av relevant kommandoradsargument.Tips
Om du vill se en lista över kommandoradsargument som stöds anger du
LightIngest.exe /help.
Ange
ingest-följt av anslutningssträngen till Azure Data Explorer som ska hantera inmatningen. Omslut anslutningssträngen med dubbla citattecken och följ specifikationen för Kusto-anslutningssträngar.Exempel:
ingest-{Cluster name and region}.kusto.windows.net;AAD Federated Security=True -db:{Database} -table:Trips -source:"https://{Account}.blob.core.windows.net/{ROOT_CONTAINER};{StorageAccountKey}" -pattern:"*.csv.gz" -format:csv -limit:2 -ignoreFirst:true -cr:10.0 -dontWait:true
Rekommendationer
Den rekommenderade metoden är att LightIngest fungerar med inmatningsslutpunkten på
https://ingest-{yourClusterNameAndRegion}.kusto.windows.net. På så sätt kan Azure Data Explorer tjänsten hantera inmatningsbelastningen och du kan enkelt återställa från tillfälliga fel. Du kan dock också konfigurera LightIngest så att det fungerar direkt med motorns slutpunkt (https://{yourClusterNameAndRegion}.kusto.windows.net).Anteckning
Om du matar in direkt med motorslutpunkten behöver du inte inkludera
ingest-. Det finns dock ingen DM-funktion för att skydda motorn och förbättra inmatningshastigheten.För optimala datainmatningsprestanda krävs rådatastorleken så LightIngest kan uppskatta den okomprimerade storleken på lokala filer. LightIngest kanske dock inte kan uppskatta råstorleken för komprimerade blobar utan att först hämta dem. När du matar in komprimerade blobar anger du därför egenskapen för blobmetadata till
rawSizeBytesokomprimerad datastorlek i byte.
Kommandoradsargument
| Argumentnamn | Typ | Beskrivning | Obligatorisk/valfri |
|---|---|---|---|
| sträng | Azure Data Explorer en anslutningssträng som anger den Kusto-slutpunkt som ska hantera inmatningen. Ska omges av dubbla citattecken | Obligatorisk | |
| -database, -db | sträng | Måldatabasnamn Azure Data Explorer måldatabasen | Valfritt |
| -table | sträng | Måltabellens Azure Data Explorer tabellnamn | Obligatorisk |
| -sourcePath, -source | sträng | Sökväg till källfiler eller rot-URI för blobcontainern. Om data finns i blobar måste innehålla lagringskontonyckel eller SAS. Rekommenderas att omge med dubbla citattecken | Obligatorisk |
| -prefix | sträng | När källdata som ska matas in finns i bloblagringen delas det här URL-prefixet av alla blobar, exklusive containernamnet. Om data till exempel finns i MyContainer/Dir1/Dir2 ska prefixet vara Dir1/Dir2 . Vi rekommenderar att du omsluter med dubbla citattecken |
Valfritt |
| -pattern | sträng | Mönster som används för att välja källfiler/blobar. Stöder jokertecken. Till exempel "*.csv". Rekommenderas att omge med dubbla citattecken |
Valfritt |
| -zipPattern | sträng | Reguljärt uttryck som ska användas när du väljer vilka filer i ett ZIP-arkiv som ska matas in. Alla andra filer i arkivet ignoreras. Till exempel "*.csv". Vi rekommenderar att du omger den med dubbla citattecken |
Valfritt |
| -format, -f | sträng | Källdataformat. Måste vara ett av de format som stöds | Valfritt |
| -ingestionMappingPath, -mappingPath | sträng | Sökväg till lokal fil för kolumnmappning för inmatning. Obligatoriskt för Json- och Avro-format. Se datamappningar | Valfritt |
| -ingestionMappingRef, -mappingRef | sträng | Namnet på en kolumnmappning för inmatning som tidigare har skapats i tabellen. Obligatoriskt för Json- och Avro-format. Se datamappningar | Valfritt |
| -creationTimePattern | sträng | När detta anges används för att extrahera egenskapen CreationTime från filen eller blobsökvägen. Se Mata in data med hjälp av | Valfritt |
| -ignoreFirstRow, -ignoreFirst | boolesk | Om den ställs in ignoreras den första posten för varje fil/blob (till exempel om källdata har rubriker) | Valfritt |
| -tag | sträng | Taggar som ska associeras med indata. Flera förekomster tillåts | Valfritt |
| -dontWait | boolesk | Om det är inställt på "true" väntar du inte på att datainmatningen ska slutföras. Användbart vid inmatning av stora mängder filer/blobar | Valfritt |
| -compression, -cr | double | Tips om komprimeringsförhållande. Användbart när du matar in komprimerade filer/blobar för Azure Data Explorer att utvärdera rådatastorleken. Beräknat som ursprunglig storlek dividerat med komprimerad storlek | Valfritt |
| -limit , -l | heltal | Om detta anges begränsar inmatningen till de första N filerna | Valfritt |
| -listOnly, -list | boolesk | Om den har angetts visas endast de objekt som skulle ha valts för inmatning | Valfritt |
| -ingestTimeout | heltal | Tidsgräns i minuter för slutförande av alla inmatningsåtgärder. Standardvärdet är 60 |
Valfritt |
| -forceSync | boolesk | Om detta anges framt tvingar du synkron inmatning. Standardvärdet är false |
Valfritt |
| -dataBatchSize | heltal | Anger den totala storleksgränsen (MB, okomprimerad) för varje inmatningsåtgärd | Valfritt |
| -filesInBatch | heltal | Anger gränsen för antal filer/blobar för varje inmatningsåtgärd | Valfritt |
| -devTracing, -trace | sträng | Om detta anges skrivs diagnostikloggar till en lokal katalog (som standard i den aktuella katalogen, eller kan ändras RollingLogs genom att ange växelvärdet) |
Valfritt |
Azure Blob-specifika funktioner
När lightIngest används med Azure-blobar använder de vissa egenskaper för blobmetadata för att utöka inmatningsprocessen.
| Metadataegenskap | Användning |
|---|---|
rawSizeBytes, kustoUncompressedSizeBytes |
Om detta anges tolkas som den okomprimerade datastorleken |
kustoCreationTime, kustoCreationTimeUtc |
Tolkas som UTC-tidsstämpel. Om detta anges används för att åsidosätta skapandetiden i Kusto. Användbart för återfyllningsscenarier |
Användningsexempel
Mata in data med CreationTime
När du läser in historiska data från ett befintligt system Azure Data Explorer alla poster samma datainmatningsdatum. Om du vill aktivera partitionering av data efter skapandetid och inte inmatningstid kan du använda -creationTimePattern argumentet . Argumentet -creationTimePattern extraherar egenskapen CreationTime från filen eller blobsökvägen. Mönstret behöver inte återspegla hela objektsökvägen, bara avsnittet som omsluter den tidsstämpel som du vill använda.
Argumentvärdena måste innehålla:
- Konstant text omedelbart före tidsstämpelformatet, omslutet med enkla citattecken (prefix)
- Tidsstämpelformatet i standardformatet .NET DateTime
- Konstant text direkt efter tidsstämpeln (suffixet).
Viktigt
När du anger att skapandetiden ska åsidosättas kontrollerar du att egenskapen i måltabellens effektiva sammanslagningsprincip för omfattningar är justerad med värdena i filen LookbackLookback blobsökvägarna.
Exempel
Ett blobnamn som innehåller datetime enligt följande: (tidsstämpeln är fyra siffror för året, två siffror för månaden och två siffror för dagen
historicalvalues19840101.parqueti månaden)Värdet för argumentet är en del av
-creationTimePatternfilnamnet:-creationTimePatterningest-{Cluster name and region}.kusto.windows.net;AAD Federated Security=True -db:{Database} -table:Trips -source:"https://{Account}.blob.core.windows.net/{ROOT_CONTAINER};{StorageAccountKey}" -creationTimePattern:"'historicalvalues'yyyyMMdd'.parquet'" -pattern:"*.parquet" -format:parquet -limit:2 -cr:10.0 -dontWait:trueFör en blob-URI som refererar till hierarkisk mappstruktur, till exempel
https://storageaccount/container/folder/2002/12/01/blobname.extension,Värdet för
-creationTimePatternargumentet är en del av mappstrukturen:-creationTimePatterningest-{Cluster name and region}.kusto.windows.net;AAD Federated Security=True -db:{Database} -table:Trips -source:"https://{Account}.blob.core.windows.net/{ROOT_CONTAINER};{StorageAccountKey}" -creationTimePattern:"'folder/'yyyy/MM/dd'/blob'" -pattern:"*.csv.gz" -format:csv -limit:2 -ignoreFirst:true -cr:10.0 -dontWait:true
Mata in blobar med en lagringskontonyckel eller en SAS-token
- Mata in 10 blobar under det angivna
ACCOUNTlagringskontot , i mappen , underDIRCONTcontainern och matcha mönstret*.csv.gz - Målet är databasen
DBTABLE, tabellen och inmatningsmappningenMAPPINGhar förskapats på målet - Verktyget väntar tills inmatningen har slutförts
- Observera de olika alternativen för att ange måldatabasen och lagringskontonyckeln jämfört med SAS-token
LightIngest.exe "https://ingest-{ClusterAndRegion}.kusto.windows.net;Fed=True"
-database:DB
-table:TABLE
-source:"https://ACCOUNT.blob.core.windows.net/{ROOT_CONTAINER};{StorageAccountKey}"
-prefix:"DIR"
-pattern:*.csv.gz
-format:csv
-mappingRef:MAPPING
-limit:10
LightIngest.exe "https://ingest-{ClusterAndRegion}.kusto.windows.net;Fed=True;Initial Catalog=DB"
-table:TABLE
-source:"https://ACCOUNT.blob.core.windows.net/{ROOT_CONTAINER}?{SAS token}"
-prefix:"DIR"
-pattern:*.csv.gz
-format:csv
-mappingRef:MAPPING
-limit:10
Mata in alla blobar i en container, utan rubrikrader
- Mata in alla blobar under det angivna
ACCOUNTlagringskontot , i mappen , underDIR1/DIR2CONTcontainern och matcha mönstret*.csv.gz - Målet är databasen
DBTABLE, tabellen och inmatningsmappningenMAPPINGhar förskapats på målet - Källblobar innehåller rubrikrad, så verktyget uppmanas att ta bort den första posten för varje blob
- Verktyget publicerar data för inmatning och väntar inte på att inmatningsåtgärder ska slutföras
LightIngest.exe "https://ingest-{ClusterAndRegion}.kusto.windows.net;Fed=True"
-database:DB
-table:TABLE
-source:"https://ACCOUNT.blob.core.windows.net/{ROOT_CONTAINER}?{SAS token}"
-prefix:"DIR1/DIR2"
-pattern:*.csv.gz
-format:csv
-mappingRef:MAPPING
-ignoreFirstRow:true
Mata in alla JSON-filer från en sökväg
- Mata in alla filer under
PATHsökvägen , som matchar mönstret*.json - Målet är databasen
DB,TABLEtabellen och inmatningsmappningen definieras i den lokala filenMAPPING_FILE_PATH - Verktyget publicerar data för inmatning och väntar inte på att inmatningsåtgärder ska slutföras
LightIngest.exe "https://ingest-{ClusterAndRegion}.kusto.windows.net;Fed=True"
-database:DB
-table:TABLE
-source:"PATH"
-pattern:*.json
-format:json
-mappingPath:"MAPPING_FILE_PATH"
Mata in filer och skriva diagnostikspårningsfiler
- Mata in alla filer under
PATHsökvägen , som matchar mönstret*.json - Målet är databasen
DB,TABLEtabellen och inmatningsmappningen definieras i den lokala filenMAPPING_FILE_PATH - Verktyget publicerar data för inmatning och väntar inte på att inmatningsåtgärder ska slutföras
- Diagnostikspårningsfiler skrivs lokalt under mappen
LOGS_PATH
LightIngest.exe "https://ingest-{ClusterAndRegion}.kusto.windows.net;Fed=True"
-database:DB
-table:TABLE
-source:"PATH"
-pattern:*.json
-format:json
-mappingPath:"MAPPING_FILE_PATH"
-trace:"LOGS_PATH"