Uživatelem definovaná schémata v synapse SQL
V následujících částech najdete různé tipy pro použití uživatelsky definovaných schémat T-SQL k vývoji řešení v synapse SQL.
Schémata pro hranice aplikací
Tradiční analytická architektura často používá samostatné databáze k vytvoření hranic aplikací na základě úloh, domény nebo zabezpečení. Tradiční SQL Server analytická infrastruktura může například zahrnovat pracovní databázi, analytickou databázi a databáze datového tržiště. V této topologii každá databáze funguje jako hranice úlohy a zabezpečení v architektuře.
Synapse SQL místo toho spouští celou analytickou úlohu v jedné databázi. Připojení mezi databázemi nejsou povolená. Synapse SQL očekává, že všechny tabulky používané skladem budou uloženy v jedné databázi.
Poznámka
Vyhrazené fondy SQL nepodporují dotazy mezi databázemi žádného druhu. V důsledku toho bude potřeba revidovat analytické implementace, které tento model využívají. Bezserverový fond SQL podporuje dotazy mezi databázemi.
Doporučení schématu definovaná uživatelem
Součástí jsou doporučení pro konsolidaci úloh, zabezpečení, domén a funkčních hranic pomocí uživatelsky definovaných schémat:
- Ke spuštění celé analytické úlohy použijte jednu databázi.
- Konsolidovat stávající analytické prostředí tak, aby používalo jednu databázi.
- Využijte uživatelsky definovaná schémata k poskytnutí hranice dříve implementované pomocí databází.
Pokud se uživatelem definovaná schémata ještě nepoužila, máte čistou tabuli. Jako základ pro uživatelem definovaná schémata v databázi Synapse SQL použijte starý název databáze.
Pokud už jste schémata použili, máte několik možností:
- Odeberte názvy starších schémat a začněte znovu
- Názvy starších schémat ponechte před čekáním na název starší verze schématu na název tabulky.
- Zachovejte starší názvy schématu implementací zobrazení přes tabulku v dodatečném schématu, které znovu vytvoří starou strukturu schématu.
Poznámka
Při první kontrole se možnost 3 může jevit jako nejatraktnější volba. Zobrazení jsou v Synapse SQL jen pro čtení. U základní tabulky by bylo potřeba provést jakékoli úpravy dat nebo tabulky. Možnost 3 také zavádí do systému vrstvu zobrazení. Pokud už ve své architektuře používáte zobrazení, můžete si to ještě promyslet.
Příklady
Implementujte uživatelsky definovaná schémata založená na názvech databází.
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
, ...
);
Názvy starších schémat ponechte tak, že je předem čekáte na název tabulky. Pro hranici úloh použijte schémata.
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
, ...
);
Uchovávejte starší názvy schémat pomocí zobrazení.
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
;
Poznámka
Jakákoli změna strategie schématu vyžaduje kontrolu modelu zabezpečení databáze. V mnoha případech můžete model zabezpečení zjednodušit přiřazením oprávnění na úrovni schématu.
Pokud jsou vyžadována podrobnější oprávnění, můžete použít databázové role. Další informace o databázových rolích najdete v článku Správa databázových rolí a uživatelů .
Další kroky
Další tipy pro vývoj najdete v tématu Přehled vývoje synapse SQL.