Megosztás a következőn keresztül:


.export a táblába

A következőkre vonatkozik: ✅Microsoft FabricAzure Data Explorer

Adatokat exportálhat egy külső tábla definiálásával és az adatok exportálásával. A táblatulajdonságok a külső táblalétrehozásakor vannak megadva. Az exportálási parancs név alapján hivatkozik a külső táblára.

Engedélyek

A parancs futtatásához legalább táblaadminisztrátori engedéllyel kell rendelkeznie.

Szintaxis

.export [async] totableexternalTableName
[with(propertyName=propertyValue [, ...])] <|lekérdezési

További információ szintaxiskonvenciákról.

Paraméterek

Név Típus Szükséges Leírás
externalTableName string ✔️ Annak a külső táblának a neve, amelybe exportálni szeretné.
propertyName, propertyValue string A választható tulajdonságok vesszővel tagolt listája.
lekérdezési string ✔️ Az exportálási lekérdezés.

Támogatott tulajdonságok

A következő tulajdonságok támogatottak a külső táblázatba való exportálás parancs részeként.

Ingatlan Típus Leírás Alapértelmezett
sizeLimit long A tömörítés előtt írt egyetlen tárolási összetevő bájtban megadott méretkorlátja. A teljes sorméretcsoport parquetRowGroupSize íródik, mielőtt ellenőrzi, hogy ez a sorcsoport eléri-e a méretkorlátot, és új összetevőt kell-e létrehoznia. Érvényes tartomány: 100 MB (alapértelmezett) – 1 GB.
distributed bool Tiltsa le vagy engedélyezze az elosztott exportálást. A hamis érték single terjesztési tippnek felel meg. true
distribution string Terjesztési tipp (single, per_node, per_shard). További részletek terjesztési beállítások per_node
distributionKind string Ha a külső táblát sztringpartícióval particionálta, igény szerint egységes eloszlásra vált. Az érvényes értékek uniform vagy default. További részletek terjesztési beállítások
concurrency Szám Jelzi a rendszernek, hogy hány partíciót kell párhuzamosan futtatni. További részletek terjesztési beállítások 16
spread Szám Útmutatást ad a rendszernek a partíciók csomópontok közötti elosztásához. További részletek terjesztési beállítások Min(64, number-of-nodes)
parquetRowGroupSize int Csak akkor releváns, ha az adatformátum parquet. Az exportált fájlok sorcsoportméretét szabályozza. Ez az érték elsőbbséget élvez a sizeLimit, vagyis a teljes sorcsoport exportálása előtt ellenőrzi, hogy ez a sorcsoport eléri-e a méretkorlátot, és új összetevőt kell-e kezdenie. 100,000

Terjesztési beállítások

Az exportálás külső táblaműveletbe való eloszlása azt jelzi, hogy hány csomópont és szál ír egyszerre a tárolóba. Az alapértelmezett eloszlás a külső tábla particionálásától függ:

Külső tábla particionálása Alapértelmezett disztribúció
A külső tábla nem particionált, vagy csak datetime oszlop particionálása Az exportálás elosztott per_node – az összes csomópont egyidejűleg exportál. Minden csomópont megírja az adott csomóponthoz rendelt adatokat. A csomópont által exportált fájlok száma csak akkor nagyobb, ha az adott csomópont adatainak mérete meghaladja a sizeLimit.
A külső táblázatot sztringoszlop particionálta Az exportálandó adatok át lesznek helyezve a csomópontok között, így minden csomópont a partícióértékek egy részhalmazát írja. Egyetlen partíciót mindig egyetlen csomópont ír. A partíciónként írt fájlok száma csak akkor lehet nagyobb, ha az adatok túllépik a sizeLimit. Ha a külső tábla több sztringpartíciót is tartalmaz, akkor a rendszer az első partíció alapján particionálja az adatokat a csomópont között. Ezért a javaslat az, hogy a partíciót a legegyensúlyosabb eloszlással határozza meg elsőként.

Az alapértelmezett terjesztési beállítások módosítása

Az alapértelmezett terjesztési beállítások módosítása a következő esetekben lehet hasznos:

Használati eset Leírás Ajánlás
Exportált fájlok számának csökkentése Az exportálás túl sok kis fájlt hoz létre, és azt szeretné, hogy kisebb számú nagyobb fájlt hozzon létre. Állítsa be distribution=single vagy distributed=false (mindkettő egyenértékű) a parancstulajdonságokban. Csak egyetlen szál hajtja végre az exportálást. Ennek hátránya, hogy az exportálási művelet lassabb lehet, mivel az egyidejűség jelentősen csökken.
Az exportálás időtartamának csökkentése Az exportálási művelet egyidejűségének növelése az időtartam csökkentése érdekében. Állítsa be a distribution=per_shard a parancs tulajdonságai között. Ez azt jelenti, hogy az írási műveletek egyidejűsége adatszilánkonként, nem csomópontonként történik. Ez csak akkor releváns, ha olyan külső táblába exportál, amelyet nem sztringpartíció particionált. Ez túl sok terhelést okozhat a tárterületen, ami szabályozást eredményezhet. Lásd tárolási hibák.
Sztringpartícióval particionált külső táblák exportálási időtartamának csökkentése Ha a partíciók nem egyenletesen oszlanak el a csomópontok között, az exportálás hosszabb időt vehet igénybe. Ha az egyik partíció sokkal nagyobb, mint a többi, a partícióhoz rendelt csomópont végzi az exportálási munka nagy részét, míg a többi csomópont többnyire tétlen marad. További információ: Terjesztési beállítások. Több beállítás is módosítható:
* Ha egynél több sztringpartíció van, először a legjobb eloszlású partíciót adja meg.

* Állítsa be a distributionKind=uniform a parancs tulajdonságai között. Ez a beállítás letiltja a sztringpartíciós külső táblák alapértelmezett terjesztési beállításait. Az exportálás per-node disztribúcióval fut, és minden csomópont exportálja a csomóponthoz rendelt adatokat. Előfordulhat, hogy egyetlen partíciót több csomópont is megír, és ennek megfelelően nő a fájlok száma. Az egyidejűség még tovább növelése érdekében állítsa be a distributionKind=uniform és a distribution=per_shard a legmagasabb egyidejűséghez (akár több írott fájl költségén)

* Ha a lassú exportálás oka nem nő az adatokban, csökkentse az időtartamot az egyidejűség növelésével, a particionálási beállítások módosítása nélkül. Használja a hint.spread és hint.concurrency tulajdonságokat, amelyek meghatározzák a particionálás egyidejűségét. Lásd partíciókezelő. Alapértelmezés szerint az egyidejűleg exportált csomópontok száma (a spread) a 64 és a csomópontok száma közötti minimális érték. A csomópontok számánál nagyobb számra spread beállítás növeli az egyes csomópontok egyidejűségét (a spread maximális értéke 64).

Hitelesítés és engedélyezés

Külső táblába való exportáláshoz be kell állítania az írási engedélyeket. További információ: Írási engedélyekKülső Azure Storage-tábla vagy KÜLSŐ SQL Server-tábla.

Hozam

Kimeneti paraméter Típus Leírás
ExternalTableName string A külső tábla neve.
Ösvény string Kimeneti elérési út.
NumRecords string Az elérési útra exportált rekordok száma.

Notes

  • Az exportálási lekérdezés kimeneti sémájának meg kell egyeznie a külső tábla sémájának, beleértve a partíciók által definiált összes oszlopot is. Ha például a táblát DateTimeparticionálta, a lekérdezés kimeneti sémájának a TimestampColumnName. Ez az oszlopnév a külső tábla particionálási definíciójában van definiálva.

  • A külső táblatulajdonságokat nem lehet felülbírálni az exportálási paranccsal. Például nem exportálhat parquet formátumú adatokat olyan külső táblába, amelynek adatformátuma CSV.

  • Ha a külső tábla particionálása történik, az exportált összetevők a partíciódefinícióknak megfelelően lesznek megírva a megfelelő könyvtárakba. Példa: particionált külső tábla.

    • Ha egy partíció értéke null/üres, vagy érvénytelen könyvtárérték, a céltároló definíciói szerint a partíció értékét a rendszer __DEFAULT_PARTITION__alapértelmezett értékre cseréli.
  • Az exportálási parancsok tárolási hibáinak elhárítására vonatkozó javaslatokat az exportálási parancsok során fellépő hibákcímű témakörben talál.

  • A külső táblaoszlopok megfelelő célformátumú adattípusokhoz vannak megfeleltetve adattípusok leképezési szabályainak megfelelően.

  • A parquet natív exportálása egy hatékonyabb, erőforrás-könnyű exportálási mechanizmus. Az exportált datetime oszlopokat a Synapse SQL COPYjelenleg nem támogatja.

Fájlok száma

A partíciónként írt fájlok száma az exportálási művelet terjesztési beállításaitól függ:

  • Ha a külső tábla csak datetime partíciókat tartalmaz, vagy egyáltalán nem tartalmaz partíciókat, akkor az egyes partíciókhoz írt fájlok számának hasonlónak kell lennie a csomópontok számához (vagy több, ha sizeLimit eléri). Az exportálási művelet elosztásakor az összes csomópont egyidejűleg exportál. Ha le szeretné tiltani a disztribúciót, hogy csak egyetlen csomópont írja le az írást, állítsa distributed hamisra. Ez a folyamat kevesebb fájlt hoz létre, de csökkenti az exportálási teljesítményt.

  • Ha a külső tábla sztringoszlopok szerint tartalmaz partíciót, az exportált fájlok számának partíciónként egyetlen fájlnak kell lennie (vagy többnek, ha sizeLimit elérése esetén). Az exportálásban továbbra is minden csomópont részt vesz (a művelet el van terjesztve), de minden partíció egy adott csomóponthoz van rendelve. Ha distributed hamisra állítja, akkor csak egyetlen csomópont hajtja végre az exportálást, de a viselkedés változatlan marad (partíciónként egyetlen fájl).

Példák

Példa nem particionált külső táblázatra

Az alábbi példa adatokat exportál a T táblából a ExternalBlob táblába. ExternalBlob egy nem particionált külső tábla.

.export to table ExternalBlob <| T

kimeneti

ExternalTableName Ösvény NumRecords
ExternalBlob http://storage1.blob.core.windows.net/externaltable1cont1/1_58017c550b384c0db0fea61a8661333e.csv 10

Példa particionált külső táblázatra

Az alábbi példa először létrehoz egy particionált külső táblát, PartitionedExternalBlob egy megadott blobtároló helyével. Az adatok CSV formátumban, elérésiút-formátumban lesznek tárolva, amely az adatokat ügyfélnév és dátum szerint rendezi.

.create external table PartitionedExternalBlob (Timestamp:datetime, CustomerName:string) 
kind=blob
partition by (CustomerName:string=CustomerName, Date:datetime=startofday(Timestamp))   
pathformat = ("CustomerName=" CustomerName "/" datetime_pattern("yyyy/MM/dd", Date))   
dataformat=csv
( 
   h@'http://storageaccount.blob.core.windows.net/container1;secretKey'
)

Ezután exportálja az adatokat a T táblából a PartitionedExternalBlob külső táblába.

.export to table PartitionedExternalBlob <| T

kimeneti

ExternalTableName Ösvény NumRecords
ExternalBlob http://storageaccount.blob.core.windows.net/container1/CustomerName=customer1/2019/01/01/fa36f35c-c064-414d-b8e2-e75cf157ec35_1_58017c550b384c0db0fea61a8661333e.csv 10
ExternalBlob http://storageaccount.blob.core.windows.net/container1/CustomerName=customer2/2019/01/01/fa36f35c-c064-414d-b8e2-e75cf157ec35_2_b785beec2c004d93b7cd531208424dc9.csv 10

Ha a parancsot aszinkron módon hajtja végre a async kulcsszóval, a kimenet a művelet részleteinek megjelenítése parancs használatával érhető el.