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


A kiszolgáló nélküli SQL-készlet költségkezelése a Azure Synapse Analyticsben

Ez a cikk azt ismerteti, hogyan becsülheti meg és kezelheti a kiszolgáló nélküli SQL-készlet költségeit a Azure Synapse Analyticsben:

  • A lekérdezés kiadása előtt feldolgozott adatok becsült mennyisége
  • Költségkövetési funkció használata a költségvetés beállításához

Tudja meg, hogy a Azure Synapse Analytics kiszolgáló nélküli SQL-készletének költségei csak a havi költségek egy részét képezik az Azure-számláján. Ha más Azure-szolgáltatásokat használ, az Azure-előfizetésben használt összes Azure-szolgáltatásért és erőforrásért, beleértve a harmadik féltől származó szolgáltatásokat is. Ez a cikk azt ismerteti, hogyan tervezheti meg és kezelheti a kiszolgáló nélküli SQL-készlet költségeit a Azure Synapse Analyticsben.

Feldolgozott adatok

A feldolgozott adatok azon adatok mennyisége, amelyeket a rendszer ideiglenesen tárol egy lekérdezés futtatása közben. A feldolgozott adatok a következő mennyiségekből tevődnek össze:

  • A tárolóból beolvasott adatok mennyisége. Ez az összeg a következőket tartalmazza:
    • Az adatok olvasása közben beolvasott adatok.
    • Metaadatok olvasása közben beolvasott adatok (metaadatokat tartalmazó fájlformátumok esetén, például Parquet).
  • A köztes eredményekben lévő adatok mennyisége. Ezek az adatok a lekérdezés futtatásakor kerülnek átvitelre a csomópontok között. Tömörítetlen formátumban tartalmazza a végpontra történő adatátvitelt.
  • A tárolóba írt adatok mennyisége. Ha a CETAS használatával exportálja az eredményhalmazt tárolóba, akkor a rendszer hozzáadja a kiírt adatok mennyiségét a CETAS SELECT részében feldolgozott adatok mennyiségéhez.

A fájlok tárolóból való olvasása rendkívül optimalizált. A folyamat a következőket használja:

  • Előbetöltés, amely többletterhelést jelenthet az olvasási adatok mennyiségéhez. Ha egy lekérdezés egy teljes fájlt olvas be, akkor nincs többletterhelés. Ha egy fájl olvasása részben történik, például a TOP N lekérdezésekben, akkor egy kicsit több adatot olvas be az előolvasás használatával.
  • Optimalizált vesszővel tagolt érték (CSV) elemző. Ha PARSER_VERSION='2.0' használatával olvassa be a CSV-fájlokat, a tárolóból beolvasott adatok mennyisége kis mértékben nő. Az optimalizált CSV-elemzők a fájlokat párhuzamosan, azonos méretű adattömbökben olvassák fel. Az adattömbök nem feltétlenül tartalmaznak teljes sorokat. Az összes sor elemzésének biztosítása érdekében az optimalizált CSV-elemző a szomszédos adattömbök kis töredékeit is beolvassa. Ez a folyamat kis mértékű többletterhelést jelent.

Statisztika

A kiszolgáló nélküli SQL-készlet lekérdezésoptimalizálója statisztikákra támaszkodik az optimális lekérdezés-végrehajtási tervek létrehozásához. A statisztikákat manuálisan is létrehozhatja. Ellenkező esetben a kiszolgáló nélküli SQL-készlet automatikusan létrehozza őket. A statisztikák bármelyik módon is létrejönnek egy külön lekérdezés futtatásával, amely egy adott oszlopot ad vissza egy megadott mintasebesség mellett. A lekérdezéshez társított mennyiségű feldolgozott adat tartozik.

Ha ugyanazt a lekérdezést vagy bármely más lekérdezést futtat, amely a létrehozott statisztikák előnyeit élvezné, akkor a rendszer újra felhasználja a statisztikákat, ha lehetséges. A statisztikák létrehozásához nincs további feldolgozott adat.

Amikor egy Parquet-oszlophoz statisztikákat hoz létre, a rendszer csak a megfelelő oszlopot olvassa be a fájlokból. A CSV-oszlop statisztikáinak létrehozásakor a rendszer a teljes fájlokat beolvassa és elemzi.

Kerekítés

A feldolgozott adatok mennyisége lekérdezésenként a legközelebbi MB-ra lesz kerekítve. Minden lekérdezés legalább 10 MB feldolgozott adatból áll.

A feldolgozott adatok nem tartalmazzák a következőket:

  • Kiszolgálószintű metaadatok (például bejelentkezések, szerepkörök és kiszolgálószintű hitelesítő adatok).
  • A végponton létrehozott adatbázisok. Ezek az adatbázisok csak metaadatokat tartalmaznak (például felhasználókat, szerepköröket, sémákat, nézeteket, beágyazott táblaértékű függvényeket [TVF-ek], tárolt eljárásokat, adatbázis-hatókörű hitelesítő adatokat, külső adatforrásokat, külső fájlformátumokat és külső táblákat).
    • Sémakövetkeztetés használata esetén a rendszer beolvassa a fájlrészleteket az oszlopnevek és adattípusok következtetéséhez, és az adatolvasás mennyisége hozzáadódik a feldolgozott adatok mennyiségéhez.
  • Adatdefiníciós nyelvi (DDL-) utasítások, kivéve a CREATE STATISTICS utasítást, mert a megadott mintaszázada alapján feldolgozza a tárolóból származó adatokat.
  • Csak metaadat-lekérdezések.

A feldolgozott adatok mennyiségének csökkentése

A lekérdezésenkénti feldolgozott adatok mennyiségét optimalizálhatja, és javíthatja a teljesítményt azáltal, hogy particionálja és tömörített oszlopalapú formátumra konvertálja az adatokat, például a Parquetet.

Példák

Képzeljen el három táblát.

  • A population_csv tábla 5 TB CSV-fájllal van alátámasztva. A fájlok öt egyenlő méretű oszlopba vannak rendezve.
  • A population_parquet tábla ugyanazokat az adatokat tartalmazza, mint a population_csv tábla. 1 TB Parquet-fájllal van alátámasztva. Ez a táblázat kisebb, mint az előző, mert az adatok Parquet formátumban tömörítve lesznek.
  • A very_small_csv tábla 100 KB CSV-fájllal van alátámasztva.

1. lekérdezés: SELECT SUM(population) FROM population_csv

Ez a lekérdezés beolvassa és elemzi a teljes fájlokat a sokaság oszlop értékeinek lekéréséhez. A csomópontok feldolgozzák ennek a táblázatnak a töredékeit, és az egyes töredékek sokaságának összege átkerül a csomópontok közé. A végső összeg átkerül a végpontra.

Ez a lekérdezés 5 TB adatot dolgoz fel, valamint egy kis többletterhelést a töredékek összegének átviteléhez.

2. lekérdezés: SELECT SUM(population) FROM population_parquet

Ha tömörített és oszlopalapú formátumokat kérdez le, például a Parquetet, kevesebb adatot olvas be, mint az 1. lekérdezésben. Ez az eredmény azért jelenik meg, mert a kiszolgáló nélküli SQL-készlet egyetlen tömörített oszlopot olvas be a teljes fájl helyett. Ebben az esetben a 0,2 TB olvasható. (Öt egyenlő méretű oszlop egyenként 0,2 TB.) A csomópontok feldolgozzák ennek a táblázatnak a töredékeit, és az egyes töredékek sokaságának összege átkerül a csomópontok közé. A végső összeg átkerül a végpontra.

Ez a lekérdezés 0,2 TB-ot dolgoz fel, plusz egy kis többletterhelést a töredékek összegének átviteléhez.

3. lekérdezés: SELECT * FROM population_parquet

Ez a lekérdezés beolvassa az összes oszlopot, és tömörítetlen formátumban továbbítja az összes adatot. Ha a tömörítési formátum 5:1, akkor a lekérdezés 6 TB-ot dolgoz fel, mert 1 TB-ot olvas be, és 5 TB tömörítetlen adatot továbbít.

4. lekérdezés: SELECT COUNT(*) FROM very_small_csv

Ez a lekérdezés teljes fájlokat olvas be. A táblázatban található fájlok teljes mérete 100 KB. A csomópontok feldolgozzák a tábla töredékeit, és az egyes töredékek összege átkerül a csomópontok közé. A végső összeg átkerül a végpontra.

Ez a lekérdezés valamivel több mint 100 KB adatot dolgoz fel. A lekérdezéshez feldolgozott adatok mennyisége 10 MB-ra kerekítése a cikk Kerekítés szakaszában megadottak szerint.

Költségkezelés

A kiszolgáló nélküli SQL-készletek költségszabályozási funkciója lehetővé teszi, hogy költségvetést állítson be a feldolgozott adatok mennyiségéhez. A költségvetést a naponta, hetente és havonta feldolgozott adatok TB-jában adhatja meg. Egyszerre egy vagy több költségvetési is beállíthat. Ha kiszolgáló nélküli SQL-készlethez szeretne költségszabályozást konfigurálni, a Synapse Studiót vagy a T-SQL-t használhatja.

Költségvezérlés konfigurálása kiszolgáló nélküli SQL-készlethez a Synapse Studio

A kiszolgáló nélküli SQL-készlet költségszabályozásának konfigurálásához Synapse Studio lépjen a bal oldali menü Kezelés elemére, és válassza az SQL-készlet elemét az Elemzési készletek területen. Amikor rámutat a kiszolgáló nélküli SQL-készletre, megjelenik egy költségkövetési ikon – kattintson erre az ikonra.

Költségvezérlési navigáció

Miután a költségvezérlő ikonra kattint, megjelenik egy oldalsáv:

Költségvezérlés konfigurálása

Ha egy vagy több költségvetést szeretne beállítani, először kattintson a Választógomb engedélyezése gombra a beállítani kívánt költségvetéshez, és ne írja be az egész számot a szövegmezőbe. Az érték mértékegysége a TBs. Miután konfigurálta a kívánt költségvetéseket, kattintson az alkalmaz gombra az oldalsáv alján. Ennyi, a költségvetés most már be van állítva.

Költségkezelés konfigurálása kiszolgáló nélküli SQL-készlethez a T-SQL-ben

A T-SQL-ben a kiszolgáló nélküli SQL-készlet költségvezérlésének konfigurálásához végre kell hajtania egy vagy több tárolt eljárást.

sp_set_data_processed_limit
	@type = N'daily',
	@limit_tb = 1

sp_set_data_processed_limit
	@type= N'weekly',
	@limit_tb = 2

sp_set_data_processed_limit
	@type= N'monthly',
	@limit_tb = 3334

Az aktuális konfiguráció megtekintéséhez hajtsa végre a következő T-SQL-utasítást:

SELECT * FROM sys.configurations
WHERE name like 'Data processed %';

Az aktuális nap, hét vagy hónap során feldolgozott adatok számának megtekintéséhez hajtsa végre a következő T-SQL-utasítást:

SELECT * FROM sys.dm_external_data_processed

A költségszabályozásban meghatározott korlátok túllépése

Ha a lekérdezés végrehajtása során túllép egy korlátot, a lekérdezés nem fejeződik be.

Ha túllépi a korlátot, a rendszer elutasítja az új lekérdezést a hibaüzenettel, amely az időszakra, az adott időszakra meghatározott korlátra és az adott időszakra feldolgozott adatokra vonatkozó adatokat tartalmazza. Ha például új lekérdezést hajtanak végre, ahol a heti korlát 1 TB-ra van állítva, és túllépte azt, a hibaüzenet a következő lesz:

Query is rejected because SQL Serverless budget limit for a period is exceeded. (Period = Weekly: Limit = 1 TB, Data processed = 1 TB))

Következő lépések

A lekérdezések teljesítményének optimalizálásáról a Kiszolgáló nélküli SQL-készletre vonatkozó ajánlott eljárások című témakörben olvashat.