Esquemas definidos pelo utilizador no Synapse SQL

Nas secções abaixo, encontrará várias sugestões para utilizar esquemas definidos pelo utilizador do T-SQL para desenvolver soluções no Synapse SQL.

Esquemas para limites de aplicações

A arquitetura de análise tradicional utiliza frequentemente bases de dados separadas para criar limites de aplicações com base na carga de trabalho, domínio ou segurança. Por exemplo, uma infraestrutura de análise de SQL Server tradicional pode incluir uma base de dados de teste, uma base de dados de análise e bases de dados data mart. Nesta topologia, cada base de dados funciona como uma carga de trabalho e limite de segurança na arquitetura.

Em vez disso, o Synapse SQL executa toda a carga de trabalho de análise numa base de dados. Não são permitidas associações entre bases de dados. O Synapse SQL espera que todas as tabelas utilizadas pelo armazém sejam armazenadas numa base de dados.

Nota

Os conjuntos de SQL dedicados não suportam qualquer tipo de consultas entre bases de dados. Consequentemente, as implementações de análise que tiram partido deste padrão terão de ser revistas. O conjunto de SQL sem servidor suporta consultas entre bases de dados.

Recomendações de esquema definidas pelo utilizador

Incluem-se recomendações para consolidar cargas de trabalho, segurança, domínio e limites funcionais com esquemas definidos pelo utilizador:

  • Utilize uma base de dados para executar toda a carga de trabalho de análise.
  • Consolide o seu ambiente de análise existente para utilizar uma base de dados.
  • Tire partido dos esquemas definidos pelo utilizador para fornecer o limite anteriormente implementado com bases de dados.

Se os esquemas definidos pelo utilizador não tiverem sido utilizados anteriormente, significa que tem uma folha limpa. Utilize o nome da base de dados antigo como base para os esquemas definidos pelo utilizador na base de dados SQL do Synapse.

Se os esquemas já tiverem sido utilizados, tem algumas opções:

  • Remover os nomes de esquema legados e começar de novo
  • Mantenha os nomes de esquema legados ao pré-aguardar o nome do esquema legado para o nome da tabela
  • Mantenha os nomes de esquema legados ao implementar vistas sobre a tabela num esquema extra, o que recria a estrutura de esquema antiga.

Nota

Na primeira inspeção, a opção 3 pode parecer a escolha mais apelativa. As vistas são lidas apenas no Synapse SQL. Qualquer modificação de dados ou tabela teria de ser efetuada na tabela base. A opção 3 também introduz uma camada de vistas no seu sistema. Poderá querer pensar melhor se já estiver a utilizar vistas na sua arquitetura.

Exemplos

Implemente esquemas definidos pelo utilizador com base nos nomes das bases de dados.

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

Mantenha os nomes de esquema legados ao pré-os pendentes para o nome da tabela. Utilize esquemas para o limite da carga de trabalho.

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

Mantenha os nomes de esquema legados com vistas.

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
;

Nota

Qualquer alteração na estratégia de esquema requer uma revisão do modelo de segurança da base de dados. Em muitos casos, poderá conseguir simplificar o modelo de segurança ao atribuir permissões ao nível do esquema.

Se forem necessárias permissões mais granulares, pode utilizar funções de base de dados. Para obter mais informações sobre as funções de base de dados, veja o artigo Gerir funções de base de dados e utilizadores .

Passos seguintes

Para obter mais sugestões de desenvolvimento, veja Descrição geral do desenvolvimento do SQL do Synapse.