Sdílet prostřednictvím


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.