Az Azure SQL Database rugalmas lekérdezésének áttekintése (előzetes verzió)

A következőre vonatkozik: Azure SQL Database

A rugalmas lekérdezési funkció (előzetes verzió) lehetővé teszi, hogy több adatbázisra kiterjedő Transact-SQL-lekérdezést futtasson az Azure SQL Database-ben. Lehetővé teszi, hogy adatbázisok közötti lekérdezéseket végezzen távoli táblákon, valamint hogy Microsoft- és harmadik féltől származó eszközökhöz (Excel, Power BI, Tableau stb.) csatlakozzon a több adatbázissal rendelkező adatszintek lekérdezéséhez. Ezzel a funkcióval nagy adatrétegekre terjesztheti ki a lekérdezéseket, és üzletiintelligencia- (BI-) jelentésekben jelenítheti meg az eredményeket.

Miért érdemes rugalmas lekérdezéseket használni?

Azure SQL Database

Az Azure SQL Database-ben lévő adatbázisok közötti lekérdezés teljes egészében a T-SQL-ben. Ez lehetővé teszi a távoli adatbázisok írásvédett lekérdezését, és lehetővé teszi, hogy a jelenlegi SQL Server-ügyfelek három és négyrészes névvel vagy az SQL Database-hez csatolt kiszolgálóval migrálják az alkalmazásokat.

Minden szolgáltatási szinten elérhető

A rugalmas lekérdezés az Azure SQL Database összes szolgáltatási szintjén támogatott. Az alacsonyabb szolgáltatási szintek teljesítménykorlátozásait az alábbi előzetes verziójú korlátozások című szakaszban tekintheti meg.

Paraméterek leküldése távoli adatbázisokba

A rugalmas lekérdezések mostantól sql-paramétereket küldhetnek a távoli adatbázisokba végrehajtás céljából.

Tárolt eljárás végrehajtása

Távoli tárolt eljáráshívások vagy távoli függvények végrehajtása sp_execute _remote használatával.

Rugalmasság

A rugalmas lekérdezést tartalmazó külső táblák más sémával vagy táblanévvel rendelkező távoli táblákra hivatkozhatnak.

Rugalmas lekérdezési forgatókönyvek

A cél az olyan lekérdezési forgatókönyvek megkönnyítése, amelyekben több adatbázis egyetlen összesített eredményhez ad hozzá sorokat. A lekérdezést a felhasználó vagy az alkalmazás közvetlenül vagy közvetve is összeállíthatja az adatbázishoz csatlakoztatott eszközökkel. Ez különösen akkor hasznos, ha jelentéseket hoz létre, kereskedelmi bi- vagy adatintegrációs eszközöket használ, vagy bármilyen olyan alkalmazást, amely nem módosítható. Rugalmas lekérdezéssel több adatbázisban is lekérdezhet az SQL Server ismerős kapcsolati felületével olyan eszközökben, mint az Excel, a Power BI, a Tableau vagy a Cognos. A rugalmas lekérdezések egyszerű hozzáférést biztosítanak az adatbázisok teljes gyűjteményéhez az SQL Server Management Studio vagy a Visual Studio által kiadott lekérdezéseken keresztül, és megkönnyítik az adatbázisközi lekérdezéseket az Entity Frameworkből vagy más ORM-környezetekből. Az 1. ábra egy olyan forgatókönyvet mutat be, amelyben egy meglévő felhőalkalmazás (amely a rugalmas adatbázis-ügyfélkódtárat használja) horizontálisan felskálázott adatszintre épít, és egy rugalmas lekérdezést használ az adatbázisközi jelentéskészítéshez.

1 . ábra A horizontálisan felskálázott adatszinten használt rugalmas lekérdezés

Elastic query used on scaled-out data tier

A rugalmas lekérdezések ügyfélforgatókönyveit a következő topológiák jellemzik:

  • Függőleges particionálás – Adatbázisközi lekérdezések (Topológia 1): Az adatok függőlegesen particionálva lesznek egy adatréteg több adatbázisa között. Általában különböző táblák különböző adatbázisokban találhatók. Ez azt jelenti, hogy a séma eltérő a különböző adatbázisokban. Például a leltár összes táblája egy adatbázisban található, míg a könyveléssel kapcsolatos táblák egy második adatbázisban találhatók. A topológiával kapcsolatos gyakori használati esetekhez több adatbázis tábláiban kell lekérdezni vagy össze kell állítani a jelentéseket.
  • Horizontális particionálás – Horizontális horizontális skálázás (2. topológia): Az adatok horizontálisan particionálva lesznek a sorok horizontális felskálázott adatszintek közötti elosztásához. Ezzel a módszerrel a séma minden résztvevő adatbázison azonos. Ezt a megközelítést "horizontális skálázásnak" is nevezik. A horizontális skálázás (1) a rugalmas adatbázis-eszközök kódtárával vagy (2) önhardinggal végezhető el és kezelhető. A rugalmas lekérdezésekkel jelentéseket kérdezhet le vagy fordíthat le több szegmensben. A szegmensek általában rugalmas készleten belüli adatbázisok. A rugalmas lekérdezést hatékony módszernek tekintheti a rugalmas készlet összes adatbázisának egyszerre történő lekérdezéséhez, amennyiben az adatbázisok közös sémával osztoznak.

Megjegyzés:

A rugalmas lekérdezés olyan jelentéskészítési forgatókönyvek esetében működik a legjobban, ahol a feldolgozás (szűrés, összesítés) nagy része a külső forrásoldalon végezhető el. Nem alkalmas olyan ETL-műveletekhez, ahol nagy mennyiségű adat kerül átvitelre távoli adatbázis(ok)ból. Az összetettebb lekérdezésekkel rendelkező nagy jelentéskészítési számítási feladatok vagy adattárház-forgatókönyvek esetében fontolja meg az Azure Synapse Analytics használatát is.

Függőleges particionálás – adatbázisközi lekérdezések

A kódolás megkezdéséhez tekintse meg az adatbázisközi lekérdezés (függőleges particionálás) használatának első lépéseit.

Rugalmas lekérdezéssel elérhetővé teheti az SQL Database adatbázisában található adatokat az SQL Database más adatbázisai számára. Ez lehetővé teszi, hogy az egyik adatbázis lekérdezései az SQL Database bármely más távoli adatbázisában lévő táblákra hivatkozjanak. Az első lépés egy külső adatforrás definiálása minden távoli adatbázishoz. A külső adatforrás abban a helyi adatbázisban van definiálva, amelyből hozzá szeretne férni a távoli adatbázisban található táblákhoz. A távoli adatbázison nem kell módosításokat végrehajtani. Az olyan tipikus vertikális particionálási forgatókönyvek esetében, ahol a különböző adatbázisok különböző sémákkal rendelkeznek, rugalmas lekérdezések használhatók olyan gyakori használati esetek megvalósításához, mint a referenciaadatokhoz való hozzáférés és az adatbázisközi lekérdezések.

Fontos

Minden külső adatforrás engedélyével rendelkeznie kell. Ez az engedély az ALTER DATABASE engedély részét képezi. A mögöttes adatforrásra való hivatkozáshoz BÁRMILYEN KÜLSŐ ADATFORRÁS-engedély módosítása szükséges.

Referenciaadatok: A topológia a referenciaadat-kezeléshez használatos. Az alábbi ábrán két táblázat (T1 és T2) található referenciaadatokkal egy dedikált adatbázisban. Rugalmas lekérdezéssel mostantól távolról is elérheti a T1 és a T2 táblát más adatbázisokból, ahogy az ábrán is látható. Használja az 1. topológiát, ha a referenciatáblák kis méretű vagy távoli lekérdezések a referenciatáblában szelektív predikátumokkal rendelkeznek.

2 . ábra – Függőleges particionálás – Rugalmas lekérdezés használata referenciaadatok lekérdezéséhez

Vertical partitioning - Using elastic query to query reference data

Adatbázisközi lekérdezés: A rugalmas lekérdezések olyan használati eseteket tesznek lehetővé, amelyek az SQL Database több adatbázisában történő lekérdezést igényelnek. A 3. ábra négy különböző adatbázist mutat be: CRM, Inventory, HR és Products. Az egyik adatbázisban végrehajtott lekérdezéseknek hozzáférésre van szükségük az egyik vagy az összes többi adatbázishoz is. Rugalmas lekérdezéssel konfigurálhatja az adatbázist ehhez az esethez, ha a négy adatbázison futtat néhány egyszerű DDL-utasítást. Az egyszeri konfiguráció után a távoli táblákhoz való hozzáférés olyan egyszerű, mint egy helyi táblára hivatkozni a T-SQL-lekérdezésekből vagy a BI-eszközökből. Ez a módszer akkor ajánlott, ha a távoli lekérdezések nem adnak vissza nagy eredményeket.

3 . ábra – Függőleges particionálás – Rugalmas lekérdezés használata különböző adatbázisok lekérdezéséhez

Vertical partitioning - Using elastic query to query across various databases

Az alábbi lépések rugalmas adatbázis-lekérdezéseket konfigurálnak olyan függőleges particionálási forgatókönyvekhez, amelyek az SQL Database távoli adatbázisaiban található táblához való hozzáférést igénylik ugyanazzal a sémával:

A DDL-utasítások futtatása után úgy érheti el a "mytable" távoli táblát, mintha helyi tábla lenne. Az Azure SQL Database automatikusan megnyitja a kapcsolatot a távoli adatbázissal, feldolgozza a kérést a távoli adatbázisban, és visszaadja az eredményeket.

Horizontális particionálás – horizontális skálázás

Ha rugalmas lekérdezéssel végez jelentéskészítési feladatokat egy horizontálisan particionált, horizontálisan particionált adatrétegen, az adatréteg adatbázisait ábrázoló rugalmas adatbázis-szegmenstérképre van szükség. Ebben a forgatókönyvben általában csak egyetlen szegmenstérképet használunk, és egy rugalmas lekérdezési képességekkel rendelkező dedikált adatbázis (főcsomópont) szolgál a lekérdezések jelentésének belépési pontjaként. Csak ennek a dedikált adatbázisnak kell hozzáférnie a szegmenstérképhez. A 4. ábra a rugalmas lekérdezési adatbázissal és a szegmenstérképpel szemlélteti ezt a topológiát és annak konfigurációját. A rugalmas adatbázis-ügyfélkódtárról és a szegmenstérképek létrehozásáról további információt a szegmenstérkép-kezelés című témakörben talál.

4 . ábra – Horizontális particionálás – Rugalmas lekérdezés használata horizontális adatrétegeken keresztüli jelentéskészítéshez

Horizontal partitioning - Using elastic query for reporting over sharded data tiers

Megjegyzés:

A rugalmas lekérdezési adatbázis (fő csomópont) külön adatbázis lehet, vagy ugyanaz az adatbázis, amely a szegmenstérképet üzemelteti. Bármilyen konfigurációt is választ, győződjön meg arról, hogy az adatbázis szolgáltatási szintje és számítási mérete elég magas a bejelentkezési/lekérdezési kérelmek várható mennyiségének kezeléséhez.

Az alábbi lépések rugalmas adatbázis-lekérdezéseket konfigurálnak olyan horizontális particionálási forgatókönyvekhez, amelyek az SQL Database több távoli adatbázisán (általában) található táblákhoz való hozzáférést igényelnek:

Miután elvégezte ezeket a lépéseket, úgy érheti el a vízszintesen particionált "mytable" táblát, mintha helyi tábla lenne. Az Azure SQL Database automatikusan több párhuzamos kapcsolatot nyit meg azokkal a távoli adatbázisokkal, ahol a táblák fizikailag vannak tárolva, feldolgozza a kéréseket a távoli adatbázisokon, és visszaadja az eredményeket. A horizontális particionálási forgatókönyvhöz szükséges lépésekről további információt a horizontális particionálás rugalmas lekérdezésében talál.

A kódolás megkezdéséhez tekintse meg a horizontális particionálás (horizontális particionálás) rugalmas lekérdezésének első lépéseit.

Fontos

A rugalmas lekérdezések nagy adatbázisokon történő sikeres végrehajtása nagy mértékben támaszkodik az egyes adatbázisok rendelkezésre állására a lekérdezés végrehajtása során. Ha valamelyik adatbázis nem érhető el, a teljes lekérdezés sikertelen lesz. Ha egyszerre több száz vagy több ezer adatbázist szeretne lekérdezni, győződjön meg arról, hogy az ügyfélalkalmazás újrapróbálkozott logikával rendelkezik, vagy fontolja meg az Elastic Database-feladatok (előzetes verzió) és az adatbázisok kisebb részhalmazainak lekérdezését, így az egyes lekérdezések eredményeit egyetlen célhelyre összesíti.

T-SQL-lekérdezés

Miután definiálta a külső adatforrásokat és a külső táblákat, rendszeres SQL Server kapcsolati sztringek használatával csatlakozhat azokhoz az adatbázisokhoz, ahol a külső táblákat definiálta. Ezután az alábbi korlátozásokkal T-SQL-utasításokat futtathat a külső táblákon ezen a kapcsolaton. A T-SQL-lekérdezésekre vonatkozó további információkat és példákat a vízszintes particionálás és a függőleges particionálás dokumentációs témaköreiben talál.

Eszközök csatlakoztatása

Rendszeres SQL Server kapcsolati sztringek használatával csatlakoztathatja alkalmazásait és bi- vagy adatintegrációs eszközeit külső táblákkal rendelkező adatbázisokhoz. Győződjön meg arról, hogy az SQL Server támogatott az eszköz adatforrásaként. Miután csatlakozott, tekintse meg a rugalmas lekérdezési adatbázist és az adatbázisban lévő külső táblákat, ugyanúgy, mint bármely más SQL Server-adatbázist, amelyhez az eszközével csatlakozik.

Fontos

A rugalmas lekérdezések csak az SQL Server-hitelesítéssel való csatlakozáskor támogatottak.

Költségek

A rugalmas lekérdezés az Azure SQL Database költségei közé tartozik. Vegye figyelembe, hogy azok a topológiák, amelyekben a távoli adatbázisok más adatközpontban találhatók, mint a rugalmas lekérdezési végpont, támogatottak, de a távoli adatbázisokból érkező adatforgalom díja rendszeresen Azure-díjakat számít fel.

Előzetes verzióra vonatkozó korlátozások

  • Az első rugalmas lekérdezés futtatása akár néhány percet is igénybe vehet a kisebb erőforrásokon és a Standard és az Általános célú szolgáltatási szinten. Ez az idő szükséges a rugalmas lekérdezési funkció betöltéséhez; a betöltési teljesítmény magasabb szolgáltatási szinttel és számítási méretekkel javul.
  • A külső adatforrások vagy külső táblák SSMS-ből vagy SSDT-ből történő szkriptelése még nem támogatott.
  • Az SQL Database importálása/exportálása még nem támogatja a külső adatforrásokat és a külső táblákat. Ha importálást/exportálást szeretne használni, az exportálás előtt dobja el ezeket az objektumokat, majd hozza létre újra azokat az importálás után.
  • A rugalmas lekérdezés jelenleg csak a külső táblák írásvédett elérését támogatja. Használhat azonban teljes Transact-SQL-funkciókat azon az adatbázison, ahol a külső tábla definiálva van. Ez hasznos lehet például az ideiglenes eredmények megőrzéséhez például a SELECT <column_list> INTO <local_table> vagy a külső táblákra hivatkozó rugalmas lekérdezési adatbázisban tárolt eljárások definiálásához.
  • Az nvarchar(max) kivételével a LOB-típusok (beleértve a térbeli típusokat) nem támogatottak a külső tábladefiníciókban. Áthidaló megoldásként létrehozhat egy nézetet a távoli adatbázisban, amely a LOB típust nvarchar(max) értékre alakítja, a külső táblát az alaptábla helyett a nézet fölé definiálja, majd visszaadhatja a lekérdezések eredeti LOB típusába.
  • Az eredményhalmazban lévő nvarchar(max) adattípus oszlopai letiltják az Elastic Query implementációjában használt speciális kötegelési technikákat, és nagysági sorrendben befolyásolhatják a lekérdezés teljesítményét, vagy akár két nagyságrendet is a nem canonikus használat esetén, amikor a lekérdezés eredményeként nagy mennyiségű nem összesített adat kerül átvitelre.
  • A külső táblák oszlopstatisztikái jelenleg nem támogatottak. A táblázatstatisztikák támogatottak, de manuálisan kell létrehozni.
  • A kurzorok nem támogatottak külső táblákhoz az Azure SQL Database-ben.
  • A rugalmas lekérdezés csak az Azure SQL Database-lel működik. SQL Server-példány lekérdezéséhez nem használható.
  • A privát hivatkozások jelenleg nem támogatottak rugalmas lekérdezésekkel azon adatbázisok esetében, amelyek külső adatforrások célpontjai.

Visszajelzés megosztása

Ossza meg velünk visszajelzését a rugalmas lekérdezésekkel kapcsolatos tapasztalatairól alább, az MSDN-fórumokon vagy a Stack Overflow-on. A szolgáltatással kapcsolatos visszajelzések (hibák, durva élek, funkcióbeli rések) iránt érdeklődünk.

További lépések