Felhasználó által definiált sémák a Synapse SQL-ben

Az alábbi szakaszokban különböző tippeket talál a T-SQL felhasználó által definiált sémáinak a Synapse SQL-en belüli megoldások fejlesztéséhez való használatához.

Az alkalmazáshatárokhoz tartozó sémák

A hagyományos elemzési architektúra gyakran külön adatbázisokkal hoz létre alkalmazáshatárokat a számítási feladatok, a tartomány vagy a biztonság alapján. Egy hagyományos SQL Server elemzési infrastruktúra például tartalmazhat átmeneti adatbázist, elemzési adatbázist és adatpiac-adatbázist. Ebben a topológiában minden adatbázis számítási feladatként és biztonsági határként működik az architektúrában.

Ehelyett a Synapse SQL egyetlen adatbázisban futtatja a teljes elemzési számítási feladatot. Az adatbázisközi illesztések nem engedélyezettek. A Synapse SQL elvárja, hogy a raktár által használt összes tábla az egyetlen adatbázisban legyen tárolva.

Megjegyzés

A dedikált SQL-készletek nem támogatják az adatbázisközi lekérdezéseket. Következésképpen az ezt a mintát használó elemzési implementációkat felül kell vizsgálni. A kiszolgáló nélküli SQL-készlet támogatja az adatbázisközi lekérdezéseket.

Felhasználó által definiált sémajavaslatok

Ezek közé tartoznak a számítási feladatok, a biztonság, a tartomány és a funkcionális határok felhasználó által definiált sémák használatával történő összevonására vonatkozó javaslatok:

  • Egy adatbázissal futtathatja a teljes elemzési számítási feladatot.
  • A meglévő elemzési környezet összevonása egy adatbázis használatához.
  • A felhasználó által definiált sémák használatával biztosíthatja az adatbázisok használatával korábban implementált határt.

Ha a felhasználó által definiált sémákat korábban még nem használták, akkor tiszta lappal rendelkezik. Használja a régi adatbázisnevet a Synapse SQL-adatbázis felhasználó által definiált sémáinak alapjaként.

Ha már használták a sémákat, akkor van néhány lehetősége:

  • Távolítsa el az örökölt sémaneveket, és kezdje újra
  • Az örökölt sémanevek megtartása az örökölt sémanévnek a táblanévre való előzetes függőben hagyásával
  • Őrizze meg az örökölt sémaneveket úgy, hogy egy további sémában implementálja a tábla nézeteit, amely újra létrehozza a régi sémastruktúrát.

Megjegyzés

Az első vizsgálat során a 3. lehetőség tűnik a legvonzóbb választásnak. A nézetek csak a Synapse SQL-ben olvashatók. Minden adat- vagy táblamódosítást az alaptáblán kell végrehajtani. A 3. lehetőség egy nézetréteget is bevezet a rendszerbe. Ha már használ nézeteket az architektúrában, érdemes megfontolnia ezt a gondolatot.

Példák

Felhasználó által definiált sémák implementálása adatbázisnevek alapján.

CREATE SCHEMA [stg]; -- stg previously database name for staging database
GO
CREATE SCHEMA [edw]; -- edw previously database name for the analytics
GO
CREATE TABLE [stg].[customer] -- create staging tables in the stg schema
(       CustKey BIGINT NOT NULL
,       ...
);
GO
CREATE TABLE [edw].[customer] -- create analytics tables in the edw schema
(       CustKey BIGINT NOT NULL
,       ...
);

Tartsa meg az örökölt sémaneveket, ha előre függőben tartja őket a táblanévre. Használjon sémákat a számítási feladatok határához.

CREATE SCHEMA [stg]; -- stg defines the staging boundary
GO
CREATE SCHEMA [edw]; -- edw defines the analytics boundary
GO
CREATE TABLE [stg].[dim_customer] --pre-pend the old schema name to the table and create in the staging boundary
(       CustKey BIGINT NOT NULL
,       ...
);
GO
CREATE TABLE [edw].[dim_customer] --pre-pend the old schema name to the table and create in the analytics boundary
(       CustKey BIGINT NOT NULL
,       ...
);

Őrizze meg a régi sémaneveket a nézetek használatával.

CREATE SCHEMA [stg]; -- stg defines the staging boundary
GO
CREATE SCHEMA [edw]; -- stg defines the analytics boundary
GO
CREATE SCHEMA [dim]; -- edw defines the legacy schema name boundary
GO
CREATE TABLE [stg].[customer] -- create the base staging tables in the staging boundary
(       CustKey    BIGINT NOT NULL
,       ...
)
GO
CREATE TABLE [edw].[customer] -- create the base analytics tables in the analytics boundary
(       CustKey    BIGINT NOT NULL
,       ...
)
GO
CREATE VIEW [dim].[customer] -- create a view in the legacy schema name boundary for presentation consistency purposes only
AS
SELECT  CustKey
,       ...
FROM    [edw].customer
;

Megjegyzés

A sémastratégia bármilyen módosításához át kell tekinteni az adatbázis biztonsági modelljét. Sok esetben leegyszerűsítheti a biztonsági modellt a sémaszinten hozzárendelt engedélyek hozzárendelésével.

Ha részletesebb engedélyekre van szükség, használhat adatbázis-szerepköröket. Az adatbázis-szerepkörökről további információt az Adatbázis-szerepkörök és felhasználók kezelése című cikkben talál.

Következő lépések

További fejlesztési tippekért lásd: Synapse SQL-fejlesztés áttekintése.