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

Installera LightIngest

  1. Navigera till den plats på datorn där du laddade ned LightIngest.
  2. Extrahera verktygskatalogen till datorn med hjälp av WinRAR.

Kör LightIngest

  1. Navigera till katalogen med extraherade verktyg på datorn.

  2. Ta bort befintlig platsinformation från platsfältet.

    Ta bort befintlig platsinformation för LightIngest i Azure Data Explorer.

  3. Ange cmd och tryck på cmd

  4. I kommandotolken anger LightIngest.exe du följt av relevant kommandoradsargument.

    Tips

    Om du vill se en lista över kommandoradsargument som stöds anger du LightIngest.exe /help .

    Kommandoradshjälp för LightIngest.

  5. 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 rawSizeBytes okomprimerad 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.parquet i månaden)

    Värdet för argumentet är en del av -creationTimePattern filnamnet: -creationTimePattern

    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}" -creationTimePattern:"'historicalvalues'yyyyMMdd'.parquet'"
     -pattern:"*.parquet" -format:parquet -limit:2 -cr:10.0 -dontWait:true
    
  • För en blob-URI som refererar till hierarkisk mappstruktur, till exempel https://storageaccount/container/folder/2002/12/01/blobname.extension ,

    Värdet för -creationTimePattern argumentet är en del av mappstrukturen: -creationTimePattern

      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}" -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 ACCOUNT lagringskontot , i mappen , under DIRCONT containern och matcha mönstret *.csv.gz
  • Målet är databasen DBTABLE , tabellen och inmatningsmappningen MAPPING har 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 ACCOUNT lagringskontot , i mappen , under DIR1/DIR2CONT containern och matcha mönstret *.csv.gz
  • Målet är databasen DBTABLE , tabellen och inmatningsmappningen MAPPING har 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 PATH sökvägen , som matchar mönstret *.json
  • Målet är databasen DB , TABLE tabellen och inmatningsmappningen definieras i den lokala filen MAPPING_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 PATH sökvägen , som matchar mönstret *.json
  • Målet är databasen DB , TABLE tabellen och inmatningsmappningen definieras i den lokala filen MAPPING_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"