Tóadatbázisok elérése kiszolgáló nélküli SQL-készlet használatával az Azure Synapse Analyticsben
Az Azure Synapse Analytics-munkaterület lehetővé teszi, hogy két típusú adatbázist hozzon létre egy Spark-adattó tetején:
- Lake-adatbázisok, ahol apache Spark-jegyzetfüzetek , adatbázissablonok vagy Microsoft Dataverse (korábban Common Data Service) használatával definiálhat táblákat a tóadatok tetején. Ezek a táblák a T-SQL (Transact-SQL) nyelv használatával történő lekérdezéshez lesznek elérhetők a kiszolgáló nélküli SQL-készlet használatával.
- SQL-adatbázisok , amelyekben saját adatbázisokat és táblákat határozhat meg közvetlenül a kiszolgáló nélküli SQL-készletek használatával. A T-SQL CREATE DATABA Standard kiadás, CREATE EXTERNAL TABLE használatával definiálhatja az objektumokat, és további SQL-nézeteket, eljárásokat és beágyazott tábla-érték függvényeket adhat hozzá a táblákhoz.
Ez a cikk az Azure Synapse Analytics kiszolgáló nélküli SQL-készletében lévő tóadatbázisokkal foglalkozik.
Az Azure Synapse Analytics lehetővé teszi, hogy lake-adatbázisokat és táblákat hozzon létre a Spark vagy az adatbázis-tervező használatával, majd elemezze az adatokat a tóadatbázisokban a kiszolgáló nélküli SQL-készlet használatával. Az Apache Spark-készleteken, adatbázissablonokon vagy Dataverse-en létrehozott tóadatbázisok és táblák (parquet vagy CSV-háttér) automatikusan elérhetők a kiszolgáló nélküli SQL-készletmotorral való lekérdezéshez. A módosított tóadatbázisok és táblák egy idő után elérhetők lesznek a kiszolgáló nélküli SQL-készletben. A Sparkban vagy az adatbázisban végrehajtott módosítások kiszolgáló nélküli környezetben való megjelenéséig késni fog.
Tóadatbázis kezelése
A Spark által létrehozott lake-adatbázisok kezeléséhez Apache Spark-készleteket vagy Adatbázis-tervezőt használhat. Létrehozhat vagy törölhet például egy tóadatbázist egy Spark-készletfeladaton keresztül. A kiszolgáló nélküli SQL-készlet használatával nem hozhat létre tóadatbázist vagy objektumokat a tóadatbázisokban.
A Spark-adatbázis default
a kiszolgáló nélküli SQL-készlet környezetében érhető el egy tóadatbázisként.default
Megjegyzés:
Nem hozható létre tó és SQL-adatbázis a kiszolgáló nélküli SQL-készletben ugyanazzal a névvel.
A tóadatbázisokban lévő táblák nem módosíthatók kiszolgáló nélküli SQL-készletből. Az Adatbázis-tervező vagy az Apache Spark-készletek segítségével módosíthatja a tóadatbázist. A kiszolgáló nélküli SQL-készlettel a következő módosításokat hajthatja végre egy tóadatbázisban Transact-SQL-parancsokkal:
- Nézetek, eljárások, beágyazott tábla-érték függvények hozzáadása, módosítása és elvetése egy tóadatbázisban.
- Adatbázis-hatókörű Microsoft Entra-felhasználók hozzáadása és eltávolítása.
- Microsoft Entra-adatbázis felhasználóinak hozzáadása vagy eltávolítása a db_datareader szerepkörhöz. Az db_datareader szerepkörben lévő Microsoft Entra-adatbázis felhasználói jogosultak a tóadatbázis összes táblájának olvasására, de más adatbázisokból nem olvashatnak adatokat.
Biztonsági modell
A tóadatbázisok és -táblák két szinten vannak biztosítva:
- A mögöttes tárolási réteg a Microsoft Entra-felhasználókhoz az alábbiak egyikének hozzárendelésével:
- Azure szerepköralapú hozzáférés-vezérlés (Azure RBAC)
- Azure attribútumalapú hozzáférés-vezérlési (Azure ABAC) szerepkör
- ACL-engedélyek
- Az SQL-réteg, ahol definiálhat egy Microsoft Entra-felhasználót, és sql-engedélyeket adhat a tóadatokra hivatkozó táblákból származó Standard kiadás LECT-adatokhoz.
Lake biztonsági modell
A tóadatbázis-fájlokhoz való hozzáférés a tárrétegen lévő tóengedélyek használatával van szabályozva. Csak a Microsoft Entra-felhasználók használhatnak táblákat a tóadatbázisokban, és saját identitásukkal férhetnek hozzá a tó adataihoz.
A külső táblák alapjául szolgáló adatokhoz hozzáférést adhat egy biztonsági tagnak, például egy felhasználónak, egy Hozzárendelt szolgáltatásnévvel rendelkező Microsoft Entra-alkalmazásnak vagy egy biztonsági csoportnak. Adathozzáféréshez adja meg az alábbi engedélyeket:
- Engedélyek megadása
read (R)
fájlokon (például a tábla alapjául szolgáló adatfájlokon). - Adjon
execute (X)
engedélyt arra a mappára, amelyben a fájlok vannak tárolva, és minden szülőmappában egészen a gyökérkönyvtárig. Ezekről az engedélyekről a Hozzáférés-vezérlési listák (ACL-ek) oldalán olvashat bővebben.
A biztonsági tagoknak például a https://<storage-name>.dfs.core.windows.net/<fs>/synapse/workspaces/<synapse_ws>/warehouse/mytestdb.db/myparquettable/
következőkre van szükségük:
execute (X)
az összes mappára vonatkozó engedélyek a kezdő időponttól<fs>
kezdve.myparquettable
read (R)
engedélyeketmyparquettable
és fájlokat a mappában, hogy képes legyen olvasni egy táblázatot egy adatbázisban (szinkronizált vagy eredeti).
Ha egy biztonsági tagnak szüksége van arra, hogy objektumokat hozzon létre vagy objektumokat helyezzen el egy adatbázisban, további write (W)
engedélyekre van szükség a mappában lévő warehouse
mappákhoz és fájlokhoz. Az adatbázisok objektumainak módosítása kiszolgáló nélküli SQL-készletből nem lehetséges, csak a Spark-készletekből vagy az adatbázis-tervezőből.
SQL biztonsági modell
Az Azure Synapse-munkaterület egy T-SQL-végpontot biztosít, amely lehetővé teszi a tóadatbázis lekérdezését a kiszolgáló nélküli SQL-készlet használatával. Az adathozzáférés mellett az SQL-felület lehetővé teszi annak szabályozását, hogy ki férhet hozzá a táblákhoz. Engedélyeznie kell egy felhasználónak, hogy a kiszolgáló nélküli SQL-készlet használatával hozzáférjen a megosztott tóadatbázisokhoz. A tóadatbázisokhoz kétféle felhasználó fér hozzá:
- Rendszergazda istratorok: Rendelje hozzá a Synapse SQL Rendszergazda istrator-munkaterületi szerepkör vagy sysadmin kiszolgálószintű szerepkör a kiszolgáló nélküli SQL-készleten belül. Ez a szerepkör minden adatbázis felett teljes körűen szabályozható. A Synapse Rendszergazda istrator és a Synapse SQL Rendszergazda istrator szerepkörök alapértelmezés szerint minden engedéllyel rendelkeznek a kiszolgáló nélküli SQL-készlet összes objektumához.
- Munkaterület-olvasók: Adja meg a kiszolgálószintű engedélyeket a GRANT CONNECT ANY DATABA Standard kiadás és a GRANT Standard kiadás LECT ALL U Standard kiadás R Standard kiadás CURABLES kiszolgáló nélküli SQL-készleten olyan bejelentkezéshez, amely lehetővé teszi a bejelentkezést bármely adatbázis eléréséhez és olvasásához. Ez jó választás lehet, ha olvasói/nem rendszergazdai hozzáférést rendel egy felhasználóhoz.
- Adatbázis-olvasók: Hozzon létre adatbázis-felhasználókat a Microsoft Entra-azonosítóból a tóadatbázisban, és vegye fel őket db_datareader szerepkörbe, amely lehetővé teszi számukra az adatok olvasását a tóadatbázisban.
A megosztott adatbázisok hozzáférés-vezérlésének beállításáról itt olvashat bővebben.
Egyéni SQL-objektumok a tóadatbázisokban
A Lake-adatbázisok lehetővé teszik egyéni T-SQL-objektumok, például sémák, eljárások, nézetek és beágyazott táblaértékfüggvények (iTVF-ek) létrehozását. Egyéni SQL-objektumok létrehozásához létre kell hoznia egy sémát, ahol elhelyezi az objektumokat. Az egyéni SQL-objektumok nem helyezhetők sémába dbo
, mert a Sparkban, az adatbázis-tervezőben vagy a Dataverse-ben definiált tótáblákhoz vannak fenntartva.
Fontos
Egyéni SQL-sémát kell létrehoznia, ahol elhelyezi az SQL-objektumokat. Az egyéni SQL-objektumok nem helyezhetők el a dbo
sémában. A dbo
séma a Sparkban vagy az adatbázis-tervezőben eredetileg létrehozott tótáblák számára van fenntartva.
Példák
SQL-adatbázis-olvasó létrehozása a Lake Database-ben
Ebben a példában hozzáadunk egy Microsoft Entra-felhasználót a tóadatbázishoz, aki megosztott táblákon keresztül tud adatokat olvasni. A felhasználók a kiszolgáló nélküli SQL-készleten keresztül kerülnek a tóadatbázisba. Ezután rendelje hozzá a felhasználót a db_datareader szerepkörhöz, hogy adatokat tudjon olvasni.
CREATE USER [customuser@contoso.com] FROM EXTERNAL PROVIDER;
GO
ALTER ROLE db_datareader
ADD MEMBER [customuser@contoso.com];
Munkaterületszintű adatolvasó létrehozása
A bejelentkezéssel GRANT CONNECT ANY DATABASE
és GRANT SELECT ALL USER SECURABLES
engedélyekkel minden táblát beolvashat a kiszolgáló nélküli SQL-készlet használatával, de nem hozhat létre SQL-adatbázisokat, és nem módosíthatja a bennük lévő objektumokat.
CREATE LOGIN [wsdatareader@contoso.com] FROM EXTERNAL PROVIDER
GRANT CONNECT ANY DATABASE TO [wsdatareader@contoso.com]
GRANT SELECT ALL USER SECURABLES TO [wsdatareader@contoso.com]
Ez a szkript lehetővé teszi, hogy rendszergazdai jogosultságokkal nem rendelkező felhasználókat hozzon létre, akik bármilyen táblát elolvashatnak a Lake-adatbázisokban.
Spark-adatbázis létrehozása és csatlakoztatása kiszolgáló nélküli SQL-készlettel
Először hozzon létre egy új Spark-adatbázist a mytestdb
munkaterületen már létrehozott Spark-fürt használatával. Ezt például egy Spark C#-jegyzetfüzettel érheti el az alábbi .NET for Spark utasítással:
spark.sql("CREATE DATABASE mytestlakedb")
Rövid késés után láthatja a tóadatbázist a kiszolgáló nélküli SQL-készletből. Futtassa például a következő utasítást kiszolgáló nélküli SQL-készletből.
SELECT * FROM sys.databases;
Ellenőrizze, hogy mytestlakedb
szerepel-e az eredmények között.
Egyéni SQL-objektumok létrehozása a Lake Database-ben
Az alábbi példa bemutatja, hogyan hozhat létre egyéni nézetet, eljárást és beágyazott táblaérték függvényt (iTVF) a reports
sémában:
CREATE SCHEMA reports
GO
CREATE OR ALTER VIEW reports.GreenReport
AS SELECT puYear, puMonth,
fareAmount = SUM(fareAmount),
tipAmount = SUM(tipAmount),
mtaTax = SUM(mtaTax)
FROM dbo.green
GROUP BY puYear, puMonth
GO
CREATE OR ALTER PROCEDURE reports.GreenReportSummary
AS BEGIN
SELECT puYear, puMonth,
fareAmount = SUM(fareAmount),
tipAmount = SUM(tipAmount),
mtaTax = SUM(mtaTax)
FROM dbo.green
GROUP BY puYear, puMonth
END
GO
CREATE OR ALTER FUNCTION reports.GreenDataReportMonthly(@year int)
RETURNS TABLE
RETURN ( SELECT puYear = @year, puMonth,
fareAmount = SUM(fareAmount),
tipAmount = SUM(tipAmount),
mtaTax = SUM(mtaTax)
FROM dbo.green
WHERE puYear = @year
GROUP BY puMonth )
GO
További lépések
- További információ az Azure Synapse Analytics megosztott metaadatairól
- További információ az Azure Synapse Analytics megosztott metaadat-tábláiról
- Gyorsútmutató: Új tóadatbázis létrehozása adatbázissablonok használatával
- Oktatóanyag: Kiszolgáló nélküli SQL-készlet használata a Power BI Desktoppal & jelentés létrehozása
- Az Apache Spark for Azure Synapse külső tábladefinícióinak szinkronizálása kiszolgáló nélküli SQL-készletben
- Oktatóanyag: Adattavak feltárása és elemzése kiszolgáló nélküli SQL-készlettel
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: