Felhasználó által definiált sémák dedikált SQL-készletekhez a Azure Synapse Analyticsben

Ez a cikk több tippet is kínál a T-SQL felhasználó által definiált sémáinak a dedikált SQL-készletben való fejlesztéséhez.

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

A hagyományos adattárházak gyakran külön adatbázisokat használnak az alkalmazáshatárok létrehozásához a számítási feladat, a tartomány vagy a biztonság alapján.

Egy hagyományos SQL Server adattárház például tartalmazhat átmeneti adatbázist, adattárház-adatbázist és néhány 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.

Ezzel szemben egy dedikált SQL-készlet egyetlen adatbázisban futtatja a teljes adattárház-számítási feladatot. Az adatbázisközi illesztések nem engedélyezettek. A dedikált SQL-készlet elvárja, hogy a raktár által használt összes tábla az egyetlen adatbázisban legyen tárolva.

Megjegyzés

Az SQL-készlet nem támogatja az adatbázisközi lekérdezéseket. Következésképpen az ezt a mintát használó adattárház-implementációkat felül kell vizsgálni.

Javaslatok

Az alábbiakban 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ó javaslatokat soroljuk fel:

  • A teljes adattárház-számítási feladat futtatásához használjon egy adatbázist egy dedikált SQL-készletben.
  • A meglévő adattárház-környezet összevonása egy dedikált SQL-készlet-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 nem használták, akkor tiszta lappal rendelkezik. Használja a régi adatbázisnevet a felhasználó által definiált sémák alapjaként a dedikált SQL-készlet adatbázisában.

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.
  • Őrizze meg a régi sémaneveket úgy, hogy az örökölt séma nevét előre függőben tartja a táblanévre.
  • Őrizze meg az örökölt sémaneveket úgy, hogy a régi sémastruktúra újbóli létrehozásához egy további séma nézeteit implementálja a táblán.

Megjegyzés

Az első vizsgálat során a 3. lehetőség tűnik a legvonzóbb lehetőségnek. Az ördög azonban a részletekben van. A nézetek csak dedikált SQL-készletben 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 további gondolatmenetet.

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 data warehouse
GO
CREATE TABLE [stg].[customer] -- create staging tables in the stg schema
(       CustKey BIGINT NOT NULL
,       ...
);
GO
CREATE TABLE [edw].[customer] -- create data warehouse tables in the edw schema
(       CustKey BIGINT NOT NULL
,       ...
);

A régi sémanevek megtartása előre függőben a tábla nevével. 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 data warehouse 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 data warehouse boundary
(       CustKey BIGINT NOT NULL
,       ...
);

A régi sémanevek megőrzése nézetek használatával:

CREATE SCHEMA [stg]; -- stg defines the staging boundary
GO
CREATE SCHEMA [edw]; -- stg defines the data warehouse 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 data warehouse tables in the data warehouse 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.

Következő lépések

További fejlesztési tippekért tekintse meg a fejlesztés áttekintését.