Mi az Azure Synapse SQL-architektúra?
Ez a cikk a Synapse SQL architektúrájának összetevőit ismerteti. Azt is ismerteti, hogy az 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 egy kibővített 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árolástól, ezáltal a számítások a rendszerben az adatoktól függetlenül skálázhatók.
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 skálázás automatikusan történik a lekérdezési erőforrás követelményeinek megfelelően. Mivel a topológia a csomópontok vagy feladatátvételek hozzáadásával, eltávolításával és eltávolításával idővel változik, 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.
A Synapse SQL csomópontalapú architektúrát használ. Az alkalmazások T-SQL-parancsokat csatlakoztatnak és adnak ki egy vezérlőcsomóponthoz, amely a Synapse SQL egyetlen belépési pontja.
Az 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 a párhuzamos munkavégzéshez.
A kiszolgáló nélküli SQL-készlet vezérlő csomópontja az Elosztott lekérdezésfeldolgozás (DQP) motort használja 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, 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ájlokat a tárolóból, más feladatokból, csoportokból vagy megrendelésekből származó eredményeket illeszt be más feladatokbó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ás és számítás esetén 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 dedikált SQL-készlet esetén a következőt teheti:
- Számítási teljesítmény növelése vagy csökkentése 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ókra 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 Vezérlő csomópont átalakítja azt olyan lekérdezésekké, amelyek párhuzamosan futnak az egyes disztribúciókon.
A kiszolgáló nélküli SQL-készletben a DQP-motor a Vezérlő csomóponton fut a felhasználói lekérdezés elosztott végrehajtásának optimalizálásához és koordinálásához úgy, hogy kisebb lekérdezésekre osztja, 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 számítási csomópontok hozzárendelése 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 olyan rendszernézetekben, amelyeknek a neve sys.pdw_nodes kezdődik. A rendszernézetek listáját a Synapse SQL-rendszernézetekben találja.
A kiszolgáló nélküli SQL-készletben minden számítási csomópont hozzárendelt feladathoz és fájlkészlethez, amelyen végrehajthatja a feladatot. A feladat elosztott lekérdezés-végrehajtási egység, amely valójában a lekérdezésfelhasználó által küldött kérelem része. Az automatikus skálázás érvényben van annak érdekében, hogy elegendő számítási csomópont legyen használatban a felhasználói lekérdezés végrehajtásához.
Adatáthelyezési szolgáltatás (Data Movement Service, DMS)
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ést. Egyes lekérdezések adatáthelyezést igényelnek, hogy a párhuzamos lekérdezések pontos eredményeket adjanak vissza. Ha adatáthelyezésre van szükség, 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. Ha dedikált SQL-készlet futtat egy lekérdezést, a munka 60 kisebb, párhuzamosan futó lekérdezésre oszlik.
A 60 kisebb lekérdezés mindegyike az egyik adateloszláson fut. Minden számítási csomópont egy vagy több 60 disztribúciót kezel. Egy dedikált SQL-készlet maximális számítási erőforrásokkal rendelkezik számítási csomópontonként egy disztribúcióval. 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.
Az adatok kivonatelosztott táblába való felosztásához a dedikált SQL-készlet kivonatfüggvény használatával determinisztikus módon rendeli hozzá az egyes sorokat egy-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 bemutatja, hogy a rendszer hogyan tárolja a teljes (nem diszktributált) táblákat kivonatelosztott táblaként.
- Minden sor egy eloszláshoz tartozik.
- A determinisztikus kivonatoló algoritmus minden sort egy 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 oszlop kiválasztásának teljesítménybeli szempontjai vannak, például a különbözőség, az adateltérés és a rendszeren futó lekérdezések típusai.
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áblázatké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 disztribúciókhoz. Gyorsan betölthet adatokat egy ciklikus időszeleteléses táblába, de a lekérdezési teljesítmény gyakran jobb lehet a kivonatelosztott táblákkal. 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 nem szükséges adatokat továbbítani a számítási csomópontok között az illeszté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 további többletterhelések merülnek fel az adatok írásakor, ami a nagy táblákat nem praktikussá teszi.
Az alábbi ábrán egy replikált tábla látható, amely az egyes számítási csomópontok első eloszlásán gyorsítótárazott.
Kapcsolódó tartalom
Most, hogy egy kicsit megismerkedett a Synapse SQL-sel, 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 ismeri az Azure-t, hasznosnak találhatja az Azure alapvető fogalmait , amikor új terminológiával találkozik.