Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:Azure SQL Database
A rugalmas lekérdezési funkció (előzetes verzióban) lehetővé teszi egy Transact-SQL (T-SQL) lekérdezés futtatását, amely az Azure SQL Database több adatbázisára is kiterjed. Lehetővé teszi az adatbázisközi lekérdezések végrehajtását a távoli táblák eléréséhez, valamint a Microsoft és külső eszközök (Excel, Power BI, Tableau stb.) összekapcsolásához több adatbázissal rendelkező adatszintek lekérdezéséhez. Ezzel a funkcióval nagy adatszintekre skálázhatja a lekérdezéseket, és megjelenítheti az eredményeket üzletiintelligencia-jelentésekben.
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 _remotehasználatával.
Hajlékonysá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árathasznál) horizontálisan felskálázott adatszintre épül, és rugalmas lekérdezést használ az adatbázisközi jelentéskészítéshez.
1. ábra kibővített adatszinten használt rugalmas lekérdezés
A rugalmas lekérdezések ügyfélforgatókönyveit a következő topológiák jellemzik:
Vertikális particionálás – Adatbázisközi lekérdezések (1. topológia): 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 – Sharding (2. topológia): Az adatok horizontális particionálása a sorok elosztását szolgálja a kibővített adatszintek között. Ezzel a módszerrel a séma minden résztvevő adatbázison azonos. Ezt a megközelítést shardingnekis nevezik. Particionálás végezhető és kezelhető (1) a rugalmas adatbázis-eszközök könyvtáraival vagy (2) önálló particionálással. Egy rugalmas lekérdezés segítségével jelentéseket lehet lekérni vagy összeállítani több shardok között. A shardok általában rugalmas tároló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.
Jegyzet
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 átvitele történik távoli adatbázisokbó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én fontolja meg Azure Synapse Analyticshasználatát is.
Függőleges particionálás – adatbázisközi lekérdezések
A kódolás megkezdéséhez tekintse meg Adatbázisközi lekérdezés (függőleges particionálás)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ázisban nincs szükség módosításokra. 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
Rendelkeznie kell ALTER ANY EXTERNAL DATA SOURCE engedéllyel. Ez az engedély a ALTER DATABASE engedély részét képezi.
ALTER ANY EXTERNAL DATA SOURCE engedélyek szükségesek a mögöttes adatforrásra való hivatkozáshoz.
Referenciaadatok: A topológia a referenciaadat-kezeléshez használatos. Az alábbi ábrán két tábla (T1 és T2) található hivatkozási adatokkal 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
adatbázisközi lekérdezési: A rugalmas lekérdezések olyan használati eseteket tesznek lehetővé, amelyekhez az SQL Database több adatbázisában is le kell kérdezni. 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
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:
MASTER KULCS LÉTREHOZÁSA
mymasterkeyADATBÁZIS HATÓKÖRÉBE TARTOZÓ HITELESÍTŐ ADATOK LÉTREHOZÁSA
mycredentialKÜLSŐ ADATFORRÁS LÉTREHOZÁSA
mydatasourcetípusúRDBMSKÜLSŐ TÁBLA LÉTREHOZÁSA
mytable
A DDL-utasítások futtatása után úgy érheti el a távoli táblát, mytable 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 – szeletelés
A rugalmas lekérdezések használatával jelentéskészítési feladatokat hajthat végre egy horizontálisan particionált adatrétegen, amelyhez szükséges egy adatbázis szilánktérkép az adatréteg adatbázisainak megjelenítéséhez. 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. További információ a rugalmas adatbázis-ügyfélkódtárról és a szegmenstérképek létrehozásáról: szegmenstérkép-kezelés.
4. ábra Horizontális particionálás – Rugalmas lekérdezés használata horizontális adatrétegeken keresztüli jelentéskészítéshez
Jegyzet
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árt számának 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:
MASTER KULCS LÉTREHOZÁSA
mymasterkeyLÉTREHOZ DATABASE SCOPED CREDENTIAL
mycredential.Hozzon létre egy tömbtérképet, amely az adatréteget képviseli a rugalmas adatbázis-ügyfélkönyvtár használatával.
CREATE EXTERNAL DATA SOURCE
mydatasourceSHARD_MAP_MANAGERtípusú.KÜLSŐ TÁBLA LÉTREHOZÁSA
mytable
Miután végrehajtotta ezeket a lépéseket, úgy érheti el a vízszintesen particionált táblát, mytable 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 horizontális particionálásirugalmas lekérdezésében talál.
A kódolás megkezdéséhez tekintse meg a horizontális particionálás (sharding) 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 az egyik adatbázis nem érhető el, a teljes lekérdezés meghiúsul. 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 rugalmas feladatok é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 a jelen cikk későbbi részében ismertetett 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 horizontális particionálási és függőleges particionálásicímű dokumentációban 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ég
A rugalmas lekérdezés az Azure SQL Database költségei közé tartozik. Támogatottak 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, de a távoli adatbázisokból érkező adatforgalom rendszeres díjat számít fel, Azure-díjak.
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 rugalmas lekérdezés jelenleg csak olvasásra szóló hozzáférést támogat a külső táblákhoz. Használhat azonban teljes Transact-SQL funkciót azon az adatbázison, amelyben 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
SELECT <column_list> INTO <local_table>használatával, vagy tárolt eljárások definiálásához a rugalmas lekérdezési adatbázisban, amelyek külső táblákra hivatkoznak.A 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)-ként képezi le, a külső táblázatát a nézet alapján definiálja az alaptábla helyett, majd a lekérdezésekben visszaalakítja az eredeti LOB típusba.
A nvarchar(max) oszlopai adattípus az eredményhalmazban letiltják az Elastic Query implementációjában használt fejlett kötegelési technikákat, és ez nagyságrendileg, vagy akár két nagyságrenddel is befolyásolhatja a lekérdezés teljesítményét azokban a nem kanonikus használati esetekben, 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, felügyelt Azure SQL-példány vagy Fabric SQL-adatbázis 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.
Kapcsolódó tartalom
- Adatbázisközi lekérdezések (függőleges particionálás) (előzetes verzió)
- Különböző sémákkal (előzetes verzió) rendelkező felhőadatbázisok lekérdezése
- Jelentés vertikálisan felskálázott felhőalapú adatbázisokban (előzetes verzió)
- Jelentéskészítés vertikálisan felskálázott felhőalapú adatbázisokban (előzetes verzió)
- sp_execute_remote (Azure SQL adatbázis)