Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Přepněte služby pomocí rozevíracího seznamu Verze . Přečtěte si další informace o navigaci.
Platí pro: ✅ Microsoft Fabric ✅ Azure Data Explorer
Spustí dotaz a zapíše první sadu výsledků do externího cloudového úložiště určeného připojovací řetězec úložiště.
Oprávnění
Ke spuštění tohoto příkazu musíte mít alespoň oprávnění prohlížeče databáze.
Syntaxe
.export[asynccompressed] [] toOutputDataFormat( StorageConnectionString [, ...] ) [with(PropertyName=PropertyValue [, ...] ] )<|Dotaz
Přečtěte si další informace o konvencích syntaxe.
Parametry
| Název | Typ | Požadováno | Popis |
|---|---|---|---|
| asynchronní | string |
Pokud je zadaný, příkaz se spustí v asynchronním režimu. Viz asynchronní režim. | |
| komprimované | bool |
Pokud je zadáno, výstupní artefakty úložiště jsou komprimovány ve formátu určeném compressionTypepodporovanou vlastností. |
|
| OutputDataFormat | string |
✔️ | Formát dat artefaktů úložiště zapsaných příkazem. Podporované hodnoty jsou: csv, tsv, jsona parquet. |
| StorageConnectionString | string |
Nejméně jeden připojovací řetězce úložiště, které určují, do kterého úložiště se mají data zapisovat. Pro škálovatelné zápisy může být zadán více než jeden připojovací řetězec úložiště. Každý takový připojovací řetězec musí zadat přihlašovací údaje, které se mají použít při zápisu do úložiště. Například při zápisu do služby Azure Blob Storage můžou být přihlašovací údaje klíčem účtu úložiště nebo sdíleným přístupovým klíčem (SAS) s oprávněními ke čtení, zápisu a výpisu objektů blob. Když exportujete data do souborů CSV pomocí koncového bodu DFS, data procházejí privátním koncovým bodem spravovaného dfs. Když exportujete data do souborů parquet, data procházejí privátním koncovým bodem spravovaným objektem blob. |
|
| PropertyName, PropertyValue | string |
Čárkami oddělený seznam párů vlastností klíč-hodnota. Viz podporované vlastnosti. |
Poznámka:
Důrazně doporučujeme exportovat data do úložiště, které je společně přiděleno ve stejné oblasti jako samotná databáze. To zahrnuje data, která se exportují, aby je bylo možné přenést do jiné cloudové služby v jiných oblastech. Zápisy by se měly provádět místně, zatímco čtení může probíhat vzdáleně.
Podporované vlastnosti
| Vlastnost | Typ | Popis |
|---|---|---|
includeHeaders |
string |
Pro csv/tsv výstup určuje generování záhlaví sloupců. Může to být jedna z none hodnot (výchozí, nevygenerují se žádné řádky záhlaví), all (vygenerují řádek záhlaví do každého artefaktu úložiště) nebo firstFile (vygeneruje řádek záhlaví pouze do prvního artefaktu úložiště). |
fileExtension |
string |
Část "rozšíření" artefaktu úložiště (například .csv nebo .tsv). Pokud se použije komprese, .gz připojí se také. |
namePrefix |
string |
Předpona, která se má přidat ke každému vygenerovanému názvu artefaktu úložiště. Pokud není zadána levostranná předpona, použije se náhodná předpona. |
encoding |
string |
Kódování textu. Mezi možné hodnoty patří: UTF8NoBOM (výchozí) nebo UTF8BOM. |
compressionType |
string |
Typ komprese, která se má použít. Pro jiné soubory než Parquet je povolena pouze gzip. U souborů Parquet mohou být hodnoty gzip, snappy, lz4_raw, brotlia zstd. Výchozí hodnota je gzip. |
distribution |
string |
Distribuční tip (single, per_node, per_shard). Pokud se hodnota rovná single, jedno vlákno zapíše do úložiště. Jinak exportuje zápisy ze všech uzlů, které spouští dotaz paralelně. Viz operátor vyhodnocovat modul plug-in. Výchozí hodnota per_shardje . |
persistDetails |
bool |
Pokud true, příkaz zachová výsledky (viz příznak async). Výchozí nastavení true je v asynchronních spuštěních, ale je možné ho vypnout, pokud volající nevyžaduje výsledky. Výchozí hodnota false je v synchronních spuštěních, ale je možné ji zapnout. |
sizeLimit |
long |
Omezení velikosti v bajtech jednoho artefaktu úložiště zapsaného před kompresí. Platný rozsah: 100 MB (výchozí) až 4 GB. |
parquetRowGroupSize |
int |
Relevantní pouze v případech, kdy je formát dat Parquet. Určuje velikost skupiny řádků v exportovaných souborech. Výchozí velikost skupiny řádků je 100 000 záznamů. |
distributed |
bool |
Zakažte nebo povolte distribuovaný export. Nastavení na hodnotu false je ekvivalentem nápovědy k single distribuci. Výchozí hodnota je true. |
parquetDatetimePrecision |
string |
Přesnost, která se má použít při exportu hodnot datetime do Parquet. Možné hodnoty jsou milisekundy a mikrosekundy. Výchozí hodnota je milisekund. |
Ověřování a autorizace
Metoda ověřování je založená na zadaném připojovací řetězec a požadovaná oprávnění se liší v závislosti na metodě ověřování.
Následující tabulka uvádí podporované metody ověřování a oprávnění potřebná k exportu dat do externího úložiště podle typu úložiště.
| Metoda ověřování | Azure Blob Storage / Data Lake Storage Gen2 | Data Lake Storage Gen1 |
|---|---|---|
| Zosobnění | Přispěvatel dat objektů blob úložiště | Přispěvatel |
| Token sdíleného přístupu (SAS) | Write | Write |
| Přístupový token Microsoft Entra | Nevyžaduje se žádná další oprávnění. | Nevyžaduje se žádná další oprávnění. |
| Přístupový klíč účtu úložiště | Nevyžaduje se žádná další oprávnění. | Nevyžaduje se žádná další oprávnění. |
| Metoda ověřování | Azure Blob Storage / Data Lake Storage Gen2 | Data Lake Storage Gen1 |
|---|---|---|
| Zosobnění | Přispěvatel dat objektů blob úložiště | Přispěvatel |
| Spravovaná identita | Přispěvatel dat objektů blob úložiště | Přispěvatel |
| Token sdíleného přístupu (SAS) | Write | Write |
| Přístupový token Microsoft Entra | Nevyžaduje se žádná další oprávnění. | Nevyžaduje se žádná další oprávnění. |
| Přístupový klíč účtu úložiště | Nevyžaduje se žádná další oprávnění. | Nevyžaduje se žádná další oprávnění. |
Návraty
Příkazy vrátí tabulku, která popisuje vygenerované artefakty úložiště. Každý záznam popisuje jeden artefakt a zahrnuje cestu k úložišti k artefaktu a počet záznamů, které obsahuje.
| Cesta | 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 |
Asynchronní režim
async Pokud je příznak zadán, příkaz se spustí v asynchronním režimu.
V tomto režimu příkaz okamžitě vrátí ID operace a export dat pokračuje na pozadí až do dokončení. ID operace vrácené příkazem lze použít ke sledování jeho průběhu a nakonec k jeho výsledkům pomocí následujících příkazů:
-
.show operations: Sledujte průběh. -
.show operation details: Získejte výsledky dokončení.
Po úspěšném dokončení můžete například načíst výsledky pomocí:
.show operation f008dc1e-2710-47d8-8d34-0d562f5f8615 details
Příklady
V tomto příkladu Kusto spustí dotaz a pak exportuje první sadu záznamů vytvořenou dotazem do jednoho nebo více komprimovaných objektů blob CSV až do 1 GB před kompresí. Popisky názvů sloupců se přidají jako první řádek každého objektu 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"
Selhání při exportu příkazů
Příkazy exportu můžou během provádění přechodně selhat. průběžného exportu příkaz automaticky opakuje. Běžné příkazy exportu (export do úložiště, export do externí tabulky) neprovádějí žádné opakování.
- Když se příkaz pro export nezdaří, artefakty, které už jsou zapsané do úložiště, se neodstraní. Tyto artefakty zůstanou v úložišti. Pokud příkaz selže, předpokládejme, že export není úplný, i když byly zapsány některé artefakty.
- Nejlepší způsob, jak sledovat dokončení příkazu i artefakty exportované po úspěšném dokončení, je použití
.show operationspříkazů a.show operation detailspříkazů.
Selhání úložiště
Ve výchozím nastavení jsou příkazy exportu distribuovány tak, aby do úložiště mohlo existovat mnoho souběžných zápisů. Úroveň distribuce závisí na typu příkazu exportu:
Výchozí rozdělení pro běžný
.exportpříkaz jeper_shard, což znamená, že všechny rozsahy , které obsahují data pro souběžný export zápisu do úložiště.Výchozí rozdělení pro export do příkazů externí tabulky je
per_node, což znamená, že souběžnost je počet uzlů.
Pokud je počet rozsahů a uzlů velký, může to vést k vysokému zatížení úložiště, které vede k omezování úložiště nebo přechodným chybám úložiště. Tyto chyby můžou překonat následující návrhy (podle pořadí priorit):
Zvyšte počet účtů úložiště zadaných pro příkaz pro export nebo do definice externí tabulky. Zatížení se rovnoměrně distribuuje mezi účty.
Snižte souběžnost nastavením nápovědy k
per_nodedistribuci (viz vlastnosti příkazu).Snižte souběžnost počtu uzlů exportovaných nastavením vlastnosti
query_fanout_nodes_percentpožadavku klienta na požadovanou souběžnost (procento uzlů). Vlastnost lze nastavit jako součást exportovacího dotazu. Následující příkaz například omezuje počet uzlů, které se zapisují do úložiště souběžně, na 50 % uzlů:.export async to csv ( h@"https://storage1.blob.core.windows.net/containerName;secretKey" ) with ( distribution="per_node" ) <| set query_fanout_nodes_percent = 50; ExportQuerySnižte souběžnost počtu vláken exportovaných v každém uzlu při použití jednotlivých exportů horizontálních oddílů nastavením vlastnosti
query_fanout_threads_percentpožadavku klienta na požadovanou souběžnost (procento vláken). Vlastnost lze nastavit jako součást exportovacího dotazu. Následující příkaz například omezuje počet vláken zapisovaných do úložiště souběžně na 50 % na každém uzlu:.export async to csv ( h@"https://storage1.blob.core.windows.net/containerName;secretKey" ) with ( distribution="per_shard" ) <| set query_fanout_threads_percent = 50; ExportQueryPokud exportujete do dělené externí tabulky, nastavení
spread/concurrencyvlastností může snížit souběžnost (viz podrobnosti ve vlastnostech příkazu.Pokud žádná z předchozích doporučení nefunguje, můžete distribuci úplně zakázat nastavením vlastnosti
distributedna false. Nedoporučujeme to ale, protože to může výrazně ovlivnit výkon příkazu.
Selhání autorizace
K selhání ověřování nebo autorizace během příkazů exportu může dojít v případě, že přihlašovací údaje zadané v úložišti připojovací řetězec nejsou povolené pro zápis do úložiště. Pokud pro příkaz exportu používáte impersonate token SAS delegovaný uživatelem, je k zápisu do účtu úložiště potřeba role Přispěvatel dat objektů blob služby Storage. Další informace najdete v tématu Připojovací řetězec úložiště.
Mapování datových typů
Mapování datových typů Parquet
Při exportu se datové typy Kusto mapují na datové typy Parquet pomocí následujících pravidel:
| Datový typ Kusto | Datový typ Parquet | Anotace Parquet | Komentáře |
|---|---|---|---|
bool |
BOOLEAN |
||
datetime |
INT64 |
TIMESTAMP_MICROS | |
dynamic |
BYTE_ARRAY |
UTF-8 | Serializováno jako řetězec JSON |
guid |
BYTE_ARRAY |
UTF-8 | |
int |
INT32 |
||
long |
INT64 |
||
real |
DOUBLE |
||
string |
BYTE_ARRAY |
UTF-8 | |
timespan |
INT64 |
Uložený jako ticks (počet 100 nanosekundových jednotek) | |
decimal |
FIXED_LENGTH_BYTE_ARRAY |
DESETINNÝ |
Související obsah
- Přehled příkazů pro správu
- exportu dat .continuous
- .ingest do
- .export do tabulky
- .export do sql