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


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.

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 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.

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

  • 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.

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

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.