.export till lagring
Gäller för: ✅Microsoft Fabric✅Azure Data Explorer
Kör en fråga och skriver det första resultatet till en extern molnlagring, som anges av en lagringsanslutningssträng.
Behörigheter
Du måste ha minst Database Viewer behörighet att köra det här kommandot.
Syntax
.export
[async
] [compressed
] to
OutputDataFormat(
StorageConnectionString [,
...] )
[with
(
PropertyName=
PropertyValue [,
...] )
] <|
Query
Läs mer om syntaxkonventioner.
Parametrar
Namn | Typ | Krävs | Beskrivning |
---|---|---|---|
async |
string |
Om det anges körs kommandot i asynkront läge. Se asynkront läge. | |
compressed |
string |
Om det anges komprimeras utdatalagringsartefakterna som .gz filer. Se egenskapen compressionType som stöds för att komprimera Parquet-filer som snabba. |
|
OutputDataFormat | string |
✔️ | Anger dataformatet för lagringsartefakter som skrivits av kommandot. Värden som stöds är: csv , tsv , json och parquet . |
StorageConnectionString | string |
En eller flera lagringsanslutningssträngar som anger vilken lagring som data ska skrivas till. Mer än en lagringsanslutningssträng kan anges för skalbara skrivningar. Varje sådan anslutningssträng måste ange de autentiseringsuppgifter som ska användas när du skriver till lagring. När du till exempel skriver till Azure Blob Storage kan autentiseringsuppgifterna vara lagringskontonyckeln eller en delad åtkomstnyckel (SAS) med behörighet att läsa, skriva och lista blobar. | |
PropertyName, PropertyValue | string |
En kommaavgränsad lista över nyckel/värde-egenskapspar. Se egenskaper som stöds. |
Not
Vi rekommenderar starkt att du exporterar data till lagring som är samlokaliserade i samma region som själva databasen. Detta inkluderar data som exporteras så att de kan överföras till en annan molntjänst i andra regioner. Skrivningar bör göras lokalt, medan läsningar kan ske via fjärranslutning.
Egenskaper som stöds
Egenskap | Typ | Beskrivning |
---|---|---|
includeHeaders |
string |
För csv /tsv utdata styr du genereringen av kolumnrubriker. Kan vara en av none (standard, inga rubrikrader som genereras), all (generera en rubrikrad i varje lagringsartefakt) eller firstFile (generera en rubrikrad endast till den första lagringsartefakten). |
fileExtension |
string |
Anger "tilläggsdelen" i lagringsartefakten (till exempel .csv eller .tsv ). Om komprimering används läggs även .gz till. |
namePrefix |
string |
Anger ett prefix som ska läggas till i varje genererat lagringsartefaktnamn. Ett slumpmässigt prefix används om det lämnas ospecificerat. |
encoding |
string |
Anger hur du kodar texten: UTF8NoBOM (standard) eller UTF8BOM . |
compressionType |
string |
Anger vilken typ av komprimering som ska användas. Möjliga värden är gzip eller snappy . Standardvärdet är gzip .
snappy kan (valfritt) användas för parquet format. |
distribution |
string |
Distributionstips (single , per_node , per_shard ). Om värdet är lika med single skrivs en enda tråd till lagring. Annars exporterar du skrivningar från alla noder som kör frågan parallellt. Se utvärdera plugin-operatorn. Standardvärdet är per_shard . |
persistDetails |
bool |
Anger att kommandot ska spara sina resultat (se async flagga). Standardvärdet är true i asynkrona körningar, men kan inaktiveras om anroparen inte kräver resultatet). Standardvärdet är att false i synkrona körningar, men kan även aktiveras i dessa. |
sizeLimit |
long |
Storleksgränsen i byte för en enda lagringsartefakt som skrivits före komprimering. Giltigt intervall: 100 MB (standard) till 4 GB. |
parquetRowGroupSize |
int |
Relevant endast när dataformatet är Parquet. Styr radgruppens storlek i de exporterade filerna. Standardstorleken för radgrupper är 100 000 poster. |
distributed |
bool |
Inaktivera eller aktivera distribuerad export. Inställningen false motsvarar single distributionstips. Standardvärdet är sant. |
parquetDatetimePrecision |
string |
Anger precisionen som ska användas vid export av datetime värden till Parquet. Möjliga värden är millisekunder och mikrosekunder. Standardvärdet är millisekunder. |
Autentisering och auktorisering
Autentiseringsmetoden baseras på den angivna anslutningssträngen och de behörigheter som krävs varierar beroende på autentiseringsmetoden.
I följande tabell visas de autentiseringsmetoder som stöds och de behörigheter som krävs för att exportera data till extern lagring efter lagringstyp.
Autentiseringsmetod | Azure Blob Storage/Data Lake Storage Gen2 | Data Lake Storage Gen1 |
---|---|---|
personifiering | Storage Blob Data-deltagare | Bidragsgivare |
SAS-token (Shared Access) | Skriva | Skriva |
Microsoft Entra-åtkomsttoken | Inga extra behörigheter krävs | Inga extra behörigheter krävs |
Åtkomstnyckel för lagringskonto | Inga extra behörigheter krävs | Inga extra behörigheter krävs |
Returnerar
Kommandona returnerar en tabell som beskriver de genererade lagringsartefakterna. Varje post beskriver en enskild artefakt och innehåller lagringssökvägen till artefakten och hur många poster den innehåller.
Stig | NumRecords |
---|---|
http://storage1.blob.core.windows.net/containerName/export_1_d08afcae2f044c1092b279412dcb571b.csv | 10 |
http://storage1.blob.core.windows.net/containerName/export_2_454c0f1359e24795b6529da8a0101330.csv | 15 |
Asynkront läge
Om flaggan async
anges körs kommandot i asynkront läge.
I det här läget returnerar kommandot omedelbart med ett åtgärds-ID, och dataexporten fortsätter i bakgrunden tills den är klar. Åtgärds-ID:t som returneras av kommandot kan användas för att spåra dess förlopp och slutligen dess resultat via följande kommandon:
-
.show operations
: Spåra förloppet. -
.show operation details
: Få resultat av slutförande.
Efter ett lyckat slutförande kan du till exempel hämta resultaten med hjälp av:
.show operation f008dc1e-2710-47d8-8d34-0d562f5f8615 details
Exempel
I det här exemplet kör Kusto frågan och exporterar sedan den första postuppsättningen som skapas av frågan till en eller flera komprimerade CSV-blobar, upp till 1 GB före komprimering. Kolumnnamnetiketter läggs till som den första raden för varje blob.
.export
async compressed
to csv (
h@"https://storage1.blob.core.windows.net/containerName;secretKey",
h@"https://storage1.blob.core.windows.net/containerName2;secretKey"
) with (
sizeLimit=1000000000,
namePrefix="export",
includeHeaders="all",
encoding="UTF8NoBOM"
)
<|
Logs | where id == "1234"
Fel vid exportkommandon
Exportkommandon kan misslyckas tillfälligt under körningen. Kontinuerlig export automatiskt försöker köra kommandot igen. Vanliga exportkommandon (exportera till lagring, exportera till extern tabell) utför inga återförsök.
- När exportkommandot misslyckas tas inte artefakter som redan har skrivits till lagring bort. Dessa artefakter finns kvar i lagringen. Om kommandot misslyckas antar du att exporten är ofullständig, även om vissa artefakter har skrivits.
- Det bästa sättet att spåra både slutförandet av kommandot och artefakterna som exporterades när det lyckades är genom att använda kommandona
.show operations
och.show operation details
.
Lagringsfel
Som standard distribueras exportkommandon så att det kan finnas många samtidiga skrivningar till lagringen. Distributionsnivån beror på typen av exportkommando:
Standarddistributionen för vanliga
.export
kommando ärper_shard
, vilket innebär att alla utsträckningar som innehåller data för att exportera skrivning till lagring samtidigt.Standardfördelningen för exportera till extern tabell kommandon är
per_node
, vilket innebär att samtidigheten är antalet noder.
När antalet omfattningar/noder är stort kan det leda till hög belastning på lagringen som resulterar i lagringsbegränsning eller tillfälliga lagringsfel. Följande förslag kan lösa dessa fel (efter prioritetsordning):
Öka antalet lagringskonton som anges i exportkommandot eller till externa tabelldefinitionen. Belastningen fördelas jämnt mellan kontona.
Minska samtidigheten genom att ange distributionstipset till
per_node
(se kommandoegenskaper).Minska samtidigheten för antalet noder som exporteras genom att ange egenskapen klientbegäran
query_fanout_nodes_percent
till önskad samtidighet (procent av noderna). Egenskapen kan anges som en del av exportfrågan. Följande kommando begränsar till exempel antalet noder som skrivs till lagring samtidigt till 50% av noderna:.export async to csv ( h@"https://storage1.blob.core.windows.net/containerName;secretKey" ) with ( distribution="per_node" ) <| set query_fanout_nodes_percent = 50; ExportQuery
Minska samtidigheten för antalet trådar som exporteras i varje nod när du använder per shardexport genom att ange egenskapen klientbegäran
query_fanout_threads_percent
till önskad samtidighet (procent av trådarna). Egenskapen kan anges som en del av exportfrågan. Följande kommando begränsar till exempel antalet trådar som skrivs till lagring samtidigt till 50% på var och en av noderna:.export async to csv ( h@"https://storage1.blob.core.windows.net/containerName;secretKey" ) with ( distribution="per_shard" ) <| set query_fanout_threads_percent = 50; ExportQuery
Om du exporterar till en partitionerad extern tabell kan
spread
/concurrency
egenskaper minska samtidigheten (se information i kommandoegenskaper.Om ingen av de tidigare rekommendationerna fungerar kan du helt inaktivera distributionen genom att ange egenskapen
distributed
till false. Vi rekommenderar dock inte att du gör det, eftersom det kan påverka kommandoprestandan avsevärt.
Auktoriseringsfel
Autentiserings- eller auktoriseringsfel under exportkommandon kan inträffa när de autentiseringsuppgifter som anges i lagringsanslutningssträngen inte tillåts skriva till lagring. Om du använder impersonate
eller en användardelegerings-SAS-token för exportkommandot krävs Storage Blob Data Contributor roll för att skriva till lagringskontot. Mer information finns i Storage-anslutningssträngar.
Mappning av datatyper
Parquet-datatyper mappning
Vid export mappas Kusto-datatyper till Parquet-datatyper med hjälp av följande regler:
Kusto-datatyp | Parquet-datatyp | Parquet-anteckning | Kommentarer |
---|---|---|---|
bool |
BOOLEAN |
||
datetime |
INT64 |
TIMESTAMP_MICROS | |
dynamic |
BYTE_ARRAY |
UTF-8 | Serialiserad som JSON-sträng |
guid |
BYTE_ARRAY |
UTF-8 | |
int |
INT32 |
||
long |
INT64 |
||
real |
DOUBLE |
||
string |
BYTE_ARRAY |
UTF-8 | |
timespan |
INT64 |
Lagrade som fästingar (antal 100 nanosekunder) | |
decimal |
FIXED_LENGTH_BYTE_ARRAY |
DECIMAL |