Az Azure Synapse SQL architektúrája

Ez a cikk a Synapse SQL architektúraösszetevőit ismerteti. Azt is ismerteti, hogy Azure Synapse SQL hogyan egyesíti az elosztott lekérdezésfeldolgozási képességeket az Azure Storage-ral a nagy teljesítmény és a méretezhetőség érdekében.

Synapse SQL-architektúra összetevői

A Synapse SQL vertikális felskálázási architektúrával osztja el az adatok számítási feldolgozását több csomópont között. A számítás elkülönül a tárterülettől, így a rendszer adataitól függetlenül skálázhatja a számításokat.

Dedikált SQL-készlet esetén a skálázási egység a számítási teljesítmény absztrakciója, amelyet adattárházegységnek neveznek.

Kiszolgáló nélküli SQL-készlet esetén a kiszolgáló nélküli skálázás automatikusan történik a lekérdezési erőforrás követelményeinek megfelelően. Ahogy a topológia idővel megváltozik csomópontok hozzáadásával, eltávolításával vagy feladatátvétellel, alkalmazkodik a változásokhoz, és gondoskodik arról, hogy a lekérdezés elegendő erőforrással rendelkezik, és sikeresen befejeződjön. Az alábbi képen például a kiszolgáló nélküli SQL-készlet látható, amely négy számítási csomópontot használ egy lekérdezés végrehajtásához.

Képernyőkép a Synapse SQL-architektúráról.

A Synapse SQL csomópontalapú architektúrát használ. Az alkalmazások T-SQL-parancsokat kötnek össze és adnak ki egy Vezérlő csomóponthoz, amely a Synapse SQL egyetlen belépési pontja.

A Azure Synapse SQL Control csomópont elosztott lekérdezési motort használ a lekérdezések párhuzamos feldolgozásra való optimalizálásához, majd továbbítja a műveleteket a számítási csomópontoknak, hogy párhuzamosan végezzék el a munkájukat.

A kiszolgáló nélküli SQL-készlet vezérlő csomópontja elosztott lekérdezésfeldolgozási (DQP) motort használ a felhasználói lekérdezések elosztott végrehajtásának optimalizálására és vezénylésére úgy, hogy kisebb lekérdezésekre osztja fel, amelyeket a számítási csomópontokon hajtanak végre. Minden kis lekérdezést feladatnak nevezünk, és elosztott végrehajtási egységet jelöl. Beolvassa a fájl(oka)t a tárolóból, más tevékenységekből, csoportokból vagy megrendelésekből származó eredményeket illeszt be más tevékenységekből.

A számítási csomópontok az összes felhasználói adatot az Microsoft Azure Storage-ban tárolják, és futtatják a párhuzamos lekérdezéseket. Az adatáthelyezési szolgáltatás (DMS) egy rendszerszintű belső szolgáltatás, amely szükség szerint áthelyezi az adatokat a csomópontok között a lekérdezések párhuzamos futtatásához és pontos eredmények visszaadásához.

A különálló tárolással és számítással a Synapse SQL használata esetén a számítási teljesítmény független méretezése a tárolási igényektől függetlenül előnyös lehet. A kiszolgáló nélküli SQL-készlet skálázása automatikusan történik, míg a dedikált SQL-készlet esetében az alábbiakra van lehetőség:

  • Számítási teljesítmény növelése vagy zsugorítása dedikált SQL-készleten belül, adatok áthelyezése nélkül.
  • Szüneteltetheti a számítási kapacitást az adatok megőrzésével, hogy csak a tárterületért kelljen fizetnie.
  • Működési időben újra aktiválhatja a számítási kapacitást.

Azure Storage

A Synapse SQL az Azure Storage használatával tartja biztonságban a felhasználói adatokat. Mivel az adatokat az Azure Storage tárolja és kezeli, a tárterület-használatért külön díjat kell fizetnie.

A kiszolgáló nélküli SQL-készlet lehetővé teszi a data lake-fájlok lekérdezését, míg a dedikált SQL-készlet lehetővé teszi az adatok lekérdezését és betöltését a data lake-fájlokból. Ha az adatok dedikált SQL-készletbe kerülnek, az adatok disztribúciókba lesznek osztva a rendszer teljesítményének optimalizálása érdekében. Hogy melyik horizontális skálázási mintát szeretné használni az adatok elosztásához, azt a tábla definiálásakor döntheti el. Ezek a horizontális skálázási minták támogatottak:

  • Kivonat
  • Ciklikus időszeletelés
  • Replikálás

Vezérlő csomópont

A vezérlő csomópont az architektúra agya. Ez az az előtérrendszer, amely az összes alkalmazással és kapcsolattal együttműködik.

A Synapse SQL-ben az elosztott lekérdezési motor a Vezérlő csomóponton fut a párhuzamos lekérdezések optimalizálásához és koordinálásához. Amikor T-SQL-lekérdezést küld a dedikált SQL-készletbe, a Control csomópont az egyes disztribúciókon párhuzamosan futó lekérdezésekké alakítja át.

A kiszolgáló nélküli SQL-készletben a DQP-motor a Vezérlő csomóponton fut, hogy optimalizálja és koordinálja a felhasználói lekérdezés elosztott végrehajtását úgy, hogy kisebb lekérdezésekre osztja fel, amelyeket a számítási csomópontokon hajtanak végre. Emellett az egyes csomópontok által feldolgozandó fájlkészleteket is hozzárendeli.

Számítási csomópontok

A számítási csomópontok biztosítják a számítási teljesítményt.

A dedikált SQL-készletben a disztribúciók számítási csomópontokra lesznek leképezve feldolgozás céljából. A további számítási erőforrásokért való fizetés során a készlet újraképezi a disztribúciókat az elérhető számítási csomópontokra. A számítási csomópontok száma 1 és 60 között mozog, és a dedikált SQL-készlet szolgáltatási szintje határozza meg. Minden számítási csomópont rendelkezik egy csomópontazonosítóval, amely látható a rendszernézetekben. A számítási csomópont azonosítóját úgy tekintheti meg, hogy megkeresi a node_id oszlopot a rendszernézetekben, amelyeknek a neve sys.pdw_nodes kezdődik. A rendszernézetek listáját a Synapse SQL-rendszernézetek című témakörben találja.

A kiszolgáló nélküli SQL-készletben a rendszer minden számítási csomóponthoz hozzárendeli a feladatot és a feladat végrehajtásához szükséges fájlok készletét. A feladat elosztott lekérdezés-végrehajtási egység, amely valójában a felhasználó által elküldött lekérdezés része. Az automatikus skálázás azért van érvényben, hogy elegendő számítási csomópontot használjon a felhasználói lekérdezés végrehajtásához.

Adatáthelyezési szolgáltatás

A Data Movement Service (DMS) a dedikált SQL-készlet adatátviteli technológiája, amely koordinálja a számítási csomópontok közötti adatáthelyezési folyamatokat. Egyes lekérdezések adatáthelyezési elemet igényelnek, hogy a párhuzamos lekérdezések pontos eredményeket adjanak vissza. Az adatáthelyezési igény esetén a DMS biztosítja, hogy a megfelelő adatok a megfelelő helyre kerülnek.

Disztribúciók

A disztribúció a dedikált SQL-készletben elosztott adatokon futó párhuzamos lekérdezések tárolási és feldolgozási alapegysége. Amikor a dedikált SQL-készlet futtat egy lekérdezést, a munka 60, párhuzamosan futó kisebb lekérdezésre van osztva.

A 60 kisebb lekérdezés mindegyike az egyik adatterjesztésen fut. Minden számítási csomópont egy vagy több 60 disztribúciót kezel. A számítási erőforrások maximális számát tartalmazó dedikált SQL-készlet számítási csomópontonként egy elosztással rendelkezik. Egy dedikált SQL-készlet minimális számítási erőforrásokkal rendelkezik az összes disztribúcióval egy számítási csomóponton.

Kivonat alapján elosztott táblák

A kivonat alapján elosztott tábla nyújtja a legnagyobb lekérdezési teljesítményt az összekapcsolásoknál és aggregációknál nagy táblák esetén.

Ha az adatokat egy kivonatelosztott táblába szeretné felosztani, a dedikált SQL-készlet kivonatfüggvényt használ az egyes sorok determinisztikus hozzárendeléséhez egy eloszláshoz. A tábla definíciójában az oszlopok egyike elosztási oszlopként van megjelölve. A kivonatolási függvény az elosztási oszlop értékeit használja az egyes sorok elosztáshoz rendeléséhez.

Az alábbi ábra azt szemlélteti, hogy egy teljes (nem elosztott) tábla hogyan lesz kivonatolt táblaként tárolva.

Képernyőkép egy kivonat-eloszlásként tárolt tábláról.

  • Minden sor egy eloszláshoz tartozik.
  • A determinisztikus kivonatolási algoritmus minden sort egyetlen eloszláshoz rendel.
  • A táblázatsorok eloszlásonkénti száma a táblák különböző méretétől függően változik.

A terjesztési oszlopok kiválasztásánál teljesítménybeli szempontokat kell figyelembe venni, például a különbözőségeket, az adateltérést és a rendszeren futó lekérdezéstípusokat.

Ciklikus időszeleteléssel elosztott táblák

A ciklikus időszeleteléses táblázat a legegyszerűbb tábla, amely gyors teljesítményt nyújt, ha előkészítési táblaként használják a terhelésekhez.

Ciklikus időszeleteléses elosztott tábla egyenletesen osztja el az adatokat a táblázatban, de minden további optimalizálás nélkül. A rendszer először véletlenszerűen választ ki egy eloszlást, majd a sorok puffereit egymás után rendeli hozzá a eloszlásokhoz. Gyorsan betölti az adatokat egy ciklikus időszeleteléses táblába, de a lekérdezési teljesítmény gyakran jobb lehet a kivonatelosztott táblák esetében. A ciklikus időszeleteléses táblákhoz való csatlakozáshoz újra kell írni az adatokat, ami hosszabb időt vesz igénybe.

Replikált táblák

A kisméretű tábláknál a replikált táblák nyújtják a leggyorsabb lekérdezési teljesítményt.

A replikált tábla minden számítási csomóponton gyorsítótárazza a tábla teljes másolatát. A táblák replikálásával tehát nincs szükség az adatok számítási csomópontok közötti átvitelére az összekapcsolás vagy az összesítés előtt. A replikált táblákat legjobban kisméretű táblákkal lehet kihasználni. Extra tárhelyre van szükség, és az adatok írásakor többletterhelés is felmerül, ami miatt a nagyméretű táblák nem praktikusak.

Az alábbi ábrán egy replikált tábla látható, amely az egyes számítási csomópontok első disztribúcióján van gyorsítótárazva.

Képernyőkép az egyes számítási csomópontok első disztribúcióján gyorsítótárazott replikált tábláról.

Következő lépések

Most, hogy megismerkedett a Synapse SQL-lel, megtudhatja, hogyan hozhat létre gyorsan dedikált SQL-készletet , és tölthet be mintaadatokat. Vagy kezdje el használni a kiszolgáló nélküli SQL-készletet. Ha még nem ismerkedik az Azure-tal, hasznosnak találhatja az Azure-szószedetet , amikor új terminológiával találkozik.