Horizontális felskálázás az Azure SQL Database segítségével

A következőre vonatkozik: Azure SQL Database

Az Azure SQL Database-ben egyszerűen méretezheti az adatbázisokat az Elastic Database-eszközökkel . Ezek az eszközök és funkciók lehetővé teszik, hogy az Azure SQL Database adatbázis-erőforrásaival olyan megoldásokat hozzon létre a tranzakciós számítási feladatokhoz, különösen a Szoftver mint szolgáltatás (SaaS) alkalmazásokhoz. A rugalmas adatbázis funkciói a következőkből állnak:

  • Rugalmas adatbázis-ügyfélkódtár: Az ügyfélkódtár egy olyan szolgáltatás, amely lehetővé teszi horizontális adatbázisok létrehozását és karbantartását. Tekintse meg az Elastic Database-eszközök használatának első lépéseit.
  • Rugalmas adatbázis-egyesítési eszköz: adatok áthelyezése szegmenses adatbázisok között. Ez az eszköz akkor hasznos, ha adatokat helyez át több-bérlős adatbázisból egy egybérlős adatbázisba (vagy fordítva). Lásd: Elastic Database Split-Merge tool tutorial.
  • Rugalmas adatbázis-feladatok (előzetes verzió): A feladatok segítségével nagy számú adatbázist kezelhet az Azure SQL Database-ben. Egyszerűen hajthat végre felügyeleti műveleteket, például sémamódosításokat, hitelesítő adatok kezelését, referenciaadat-frissítéseket, teljesítményadatok gyűjtését vagy bérlői (ügyfél-) telemetriai gyűjteményt feladatok használatával.
  • Rugalmas adatbázis-lekérdezés (előzetes verzió): Több adatbázisra kiterjedő Transact-SQL-lekérdezés futtatását teszi lehetővé. Ez lehetővé teszi az olyan jelentéskészítő eszközökhöz való kapcsolódást, mint az Excel, a Power BI, a Tableau stb.
  • Rugalmas tranzakciók: Ezzel a funkcióval több adatbázisra kiterjedő tranzakciókat futtathat. Rugalmas adatbázis-tranzakciók érhetők el az ADO .NET-et használó .NET-alkalmazásokhoz, és integrálhatók a jól ismert programozási felülettel a System.Transaction osztályok használatával.

Az alábbi ábrán egy olyan architektúra látható, amely az Elastic Database funkcióit tartalmazza egy adatbázisgyűjteményhez viszonyítva.

Ebben a ábrában az adatbázis színei sémákat jelölnek. Az azonos színű adatbázisok ugyanazt a sémát használják.

  1. Az Azure-ban több SQL-adatbázist üzemeltetnek horizontális skálázási architektúra használatával.
  2. A rugalmas adatbázis ügyfélkódtára egy szegmenskészlet kezelésére szolgál.
  3. Az adatbázisok egy részhalmaza rugalmas készletbe kerül. (Lásd: Mi az a készlet?).
  4. Egy rugalmas adatbázis-feladat ütemezett vagy alkalmi T-SQL-szkripteket futtat az összes adatbázison.
  5. A felosztási egyesítési eszköz az adatok egyik szegmensből a másikba való áthelyezésére szolgál.
  6. A Rugalmas adatbázis lekérdezéssel olyan lekérdezést írhat, amely a szegmenskészlet összes adatbázisára kiterjed.
  7. A rugalmas tranzakciók lehetővé teszik több adatbázisra kiterjedő tranzakciók futtatását.

Elastic Database tools

Miért érdemes használni az eszközöket?

A felhőalkalmazások rugalmasságának és skálázásának elérése a virtuális gépek és a blobtárolók számára egyszerű volt – egyszerűen egységeket adhat hozzá vagy vonhat ki, vagy növelheti a teljesítményt. A relációs adatbázisok állapotalapú adatfeldolgozása azonban továbbra is kihívást jelent. Az alábbi forgatókönyvekben felmerülő kihívások:

  • A számítási feladat relációs adatbázis-részének kapacitásának növekedése és zsugorítása.
  • Olyan hotspotok kezelése, amelyek az adatok egy adott részhalmazát érinthetik – például egy foglalt végfelhasználót (bérlőt).

Az ilyen forgatókönyveket hagyományosan az alkalmazás támogatásához nagyobb méretű kiszolgálókba való befektetéssel oldották meg. Ez a lehetőség azonban korlátozott a felhőben, ahol minden feldolgozás előre meghatározott áruhardveren történik. Ehelyett az adatok és a feldolgozás elosztása számos azonos strukturált adatbázis között (a horizontális felskálázási minta, más néven horizontális felskálázás) alternatívát kínál a hagyományos vertikális felskálázási megközelítésekkel szemben mind a költségek, mind a rugalmasság szempontjából.

Vízszintes és függőleges skálázás

Az alábbi ábra a skálázás vízszintes és függőleges dimenzióit mutatja be, amelyek a rugalmas adatbázisok méretezésének alapvető módjai.

Horizontal versus vertical scale-out

A horizontális skálázás az adatbázisok hozzáadását vagy eltávolítását jelenti a kapacitás vagy az általános teljesítmény módosítása érdekében, más néven "horizontális felskálázás". A horizontális skálázás megvalósításának gyakori módja a horizontális horizontális skálázás, amelyben az adatok azonos strukturált adatbázisok gyűjteményei között particionálva lesznek.

A vertikális skálázás az egyes adatbázisok számítási méretének növelését vagy csökkentését jelenti, más néven "vertikális felskálázást".

A legtöbb felhőalapú adatbázis-alkalmazás a két stratégia kombinációját használja. A szoftver mint szolgáltatásalkalmazás például horizontális skálázást használhat az új végfelhasználók kiépítéséhez és a vertikális skálázáshoz, hogy lehetővé tegye az egyes végfelhasználók adatbázisának az erőforrások igény szerinti növelését vagy zsugorítását a számítási feladat számára.

  • A horizontális skálázás kezelése az Elastic Database ügyfélkódtárával történik.
  • A vertikális skálázás az Azure PowerShell-parancsmagok használatával történik a szolgáltatási szint módosításához vagy az adatbázisok rugalmas készletbe helyezéséhez.

Sharding

A horizontális méretezéssel nagy mennyiségű azonos struktúrájú adatot oszthat el több független adatbázis között. Különösen népszerű a felhőfejlesztők számára, akik szolgáltatásként (SAAS) kínálják a végfelhasználókat vagy a vállalkozásokat. Ezeket a végfelhasználókat gyakran "bérlőknek" nevezik. Több okból is szükség lehet horizontális skálázásra:

  • Az adatok teljes mennyisége túl nagy ahhoz, hogy beleférjen az egyes adatbázisok korlátaiba
  • A teljes számítási feladat tranzakciós átviteli sebessége meghaladja az egyes adatbázisok képességeit
  • A bérlők fizikai elkülönítést igényelhetnek egymástól, ezért minden bérlőhöz külön adatbázisokra van szükség
  • Az adatbázisok különböző szakaszainak megfelelőségi, teljesítmény- vagy geopolitikai okokból különböző földrajzi helyeken kell elhelyezkedniük.

Más esetekben, például az elosztott eszközökről történő adatbetöltés esetén a horizontális skálázás használható az ideiglenesen rendszerezett adatbázisok halmazának kitöltésére. Egy külön adatbázis például minden napra vagy hétre dedikáltan használható. Ebben az esetben a horizontális skálázási kulcs lehet a dátumot (a szegmenses táblák összes sorában megtalálható) egész szám, és a dátumtartomány adatait lekért lekérdezéseket az alkalmazásnak a szóban forgó tartományt lefedő adatbázisok részhalmazához kell irányítania.

A horizontális skálázás akkor működik a legjobban, ha egy alkalmazás minden tranzakciója egy szegmenskulcs egyetlen értékére korlátozható. Ez biztosítja, hogy az összes tranzakció egy adott adatbázishoz legyen helyi.

Több-bérlős és egybérlős

Egyes alkalmazások a legegyszerűbb módszert használják arra, hogy minden bérlőhöz külön adatbázist hozzanak létre. Ez a megközelítés az egyetlen bérlői horizontális skálázási minta , amely elkülönítést, biztonsági mentési/visszaállítási képességet és erőforrás-skálázást biztosít a bérlő részletességében. Az önálló bérlői horizontális skálázás esetén minden adatbázis egy adott bérlőazonosító-értékkel (vagy ügyfélkulcs-értékkel) van társítva, de ennek a kulcsnak nem kell mindig az adatokban szerepelnie. Az alkalmazás feladata, hogy az egyes kéréseket a megfelelő adatbázishoz irányítsa , és ezt az ügyfélkódtár egyszerűsítheti.

Single tenant versus multi-tenant

Más forgatókönyvek több bérlőt csomagolnak össze adatbázisokba ahelyett, hogy külön adatbázisokba osztanák őket. Ez a minta egy tipikus több-bérlős horizontális skálázási minta , amelyet az is okozhat, hogy egy alkalmazás nagy számú kis bérlőt kezel. Több-bérlős skálázás esetén az adatbázistáblák sorai mind úgy vannak kialakítva, hogy a bérlőazonosítót vagy a horizontális skálázási kulcsot azonosító kulcsot hordozzák. Az alkalmazásszint feladata a bérlői kérések átirányítása a megfelelő adatbázisba, és ezt a rugalmas adatbázis-ügyfélkódtár is támogatja. Emellett a sorszintű biztonság segítségével szűrheti, hogy az egyes bérlők mely sorokat érhetik el – a részletekért lásd a rugalmas adatbáziseszközökkel és sorszintű biztonsággal rendelkező több-bérlős alkalmazásokat. A több-bérlős horizontális skálázási mintával szükség lehet az adatok adatbázisok közötti újraelosztására, és ezt a rugalmas adatbázis-egyesítési eszköz teszi lehetővé. A rugalmas készleteket használó SaaS-alkalmazások szerkezeti kialakításainak alaposabb megismeréséhez olvassa el a Tervminták több-bérlős SaaS-alkalmazásokhoz Azure SQL Database esetén című részt.

Adatok áthelyezése többről egy-bérlős adatbázisokra

SaaS-alkalmazások létrehozásakor általában a szoftver próbaverzióját kínálják a leendő ügyfeleknek. Ebben az esetben költséghatékony, ha több-bérlős adatbázist használ az adatokhoz. Ha azonban egy potenciális ügyfél ügyfél lesz, az egybérlős adatbázis jobb, mivel jobb teljesítményt nyújt. Ha az ügyfél a próbaidőszak során hozott létre adatokat, az egyesítési eszközzel helyezze át az adatokat a több-bérlős adatbázisból az új egybérlős adatbázisba.

Megjegyzés:

A több-bérlős adatbázisokból egyetlen bérlőre történő visszaállítás nem lehetséges.

További lépések

Az ügyfélkódtárat bemutató mintaalkalmazásért tekintse meg az Elastic Database-eszközök használatának első lépéseit.

Ha meglévő adatbázisokat szeretne átalakítani az eszközök használatára, tekintse meg a meglévő adatbázisok migrálását a vertikális felskálázáshoz.

A rugalmas készlet jellemzőinek megtekintéséhez tekintse meg a rugalmas készlet ár- és teljesítménybeli szempontjait, vagy hozzon létre egy új készletet rugalmas készletekkel.

További információforrások

Még nem használ rugalmas adatbázis-eszközöket? Tekintse meg az első lépések útmutatót. Ha kérdése van, lépjen kapcsolatba velünk az SQL Database-hez készült Microsoft Q&A kérdésoldalon, és a funkciókérésekért, adjon hozzá új ötleteket, vagy szavazzon a meglévő ötletekre az SQL Database visszajelzési fórumában.