Sdílet prostřednictvím


Uživatelsky definované schémata v rámci Synapse SQL

V následujících částech najdete různé tipy pro používání uživatelsky definovaných schémat T-SQL k vývoji řešení v rámci Synapse SQL.

Schémata pro hranice aplikací

Tradiční analytická architektura často používá samostatné databáze k vytváření hranic aplikací na základě úloh, domén nebo zabezpečení. Například tradiční analytická infrastruktura SQL Serveru může zahrnovat pracovní databázi, analytickou databázi a databáze datového tržiště. V této topologii funguje každá databáze v architektuře jako hranice zátěže a zabezpečení.

Místo toho Synapse SQL 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 se uloží v rámci jedné databáze.

Poznámka:

Vyhrazené fondy SQL nepodporují dotazy napříč databázemi jakéhokoli druhu. V důsledku toho je potřeba revidovat analytické implementace, které tento model využívají. Bezserverový fond SQL podporuje dotazy napříč databázemi.

Doporučení schématu definovaná uživatelem

Součástí jsou doporučení pro konsolidaci úloh, zabezpečení, domény a funkčních hranic pomocí uživatelsky definovaných schémat:

  • Ke spuštění celé analytické úlohy použijte jednu databázi.
  • Sloučit stávající analytické prostředí tak, aby používalo jednu databázi.
  • Využijte uživatelsky definované schémata k poskytnutí hranice, která byla dříve implementována pomocí databází.

Pokud se uživatelsky definovaná schémata dříve nepoužila, máte čistý začátek. Jako základ pro uživatelsky definovaná schémata v databázi Synapse SQL použijte starý název databáze.

Pokud už schémata byla použita, máte několik možností:

  • Odeberte starší názvy schémat a začněte znovu.
  • Připojte název zastaralého schématu k názvu tabulky a ponechte původní názvy schématu.
  • Zachovejte starší názvy schémat implementací zobrazení nad tabulkou 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 zdát jako nejatrakvější volba. Zobrazení jsou v Synapse SQL jen pro čtení. Všechna data nebo úpravy tabulky by bylo potřeba provést proti základní tabulce. Možnost 3 také zavádí do systému vrstvu zobrazení. Pokud už ve své architektuře používáte zobrazení, měli byste si to ještě promyslet.

Příklady

Implementujte uživatelsky definovaná schémata na základě názvů 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ředehodíte na název tabulky. Použijte schémata pro hranici úlohy.

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
,       ...
);

Zachovejte 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.