Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik: ✅Microsoft Fabric✅Azure 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ábla
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.
- 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
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
datetimeoszlopokat a Synapse SQLCOPYjelenleg nem támogatja.
Fájlok száma
A partíciónként írt fájlok száma az exportálási művelet
Ha a külső tábla csak
datetimepartí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, hasizeLimitelé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ítsadistributedhamisra. 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
sizeLimitelé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. Hadistributedhamisra á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.