Поделиться через


Пользовательские схемы в Synapse SQL

В следующих разделах вы найдете различные советы по использованию пользовательских схем T-SQL для разработки решений с поддержкой Synapse SQL.

Схемы для границ приложений

В традиционных архитектурах аналитики часто используются отдельные базы данных, чтобы разграничить приложения с учетом рабочей нагрузки, домена или безопасности. Например, традиционная инфраструктура аналитики SQL Server может включать в себя промежуточную базу данных, базу данных аналитики и базы данных киоска данных. В этой топологии каждая база данных функционирует как рабочая нагрузка и граница безопасности в архитектуре.

В Synapse SQL вся рабочая нагрузка аналитики выполняется в пределах одной базы данных. Межбазовые соединения не допускаются. Synapse SQL предполагает, что все таблицы, используемые в хранилище данных, должны находиться в одной базе данных.

Примечание

Выделенные пулы SQL не поддерживают межбазовые запросы. Следовательно, необходимо пересмотреть реализации аналитики, в которых используется этот шаблон. Бессерверный пул SQL поддерживает межбазовые запросы.

Рекомендации для пользовательских схем

Ниже приведены рекомендации по консолидации границ рабочих нагрузок, безопасности, домена и функциональности с помощью пользовательских схем.

  • Используйте одну базу данных для выполнения всей рабочей нагрузки аналитики.
  • Консолидируйте существующую среду аналитики, чтобы использовать одну базу данных.
  • Используйте определяемые пользователем схемы , чтобы создать границы, ранее реализуемые с помощью баз данных.

Если пользовательские схемы ранее не применялись, следует начать с нуля. Используйте старое имя базы данных в пользовательских схемах в базе данных Synapse SQL.

Если схемы уже использовались, есть несколько вариантов:

  • Удалить прежние имена схем и создать новые.
  • Сохранить прежние имена схем, добавляя прежнее имя схемы в начало имени таблицы.
  • Сохранить прежние имена схем, включив представления таблицы в дополнительную схему, чтобы воссоздать старую структуру схемы.

Примечание

На первый взгляд вариант 3 может показаться наиболее привлекательным. В Synapse SQL представления доступны только для чтения. Любое изменение данных или таблицы потребуется выполнять в базовой таблице. Кроме того, вариант 3 добавляет в систему уровень представлений. Это необходимо учитывать, если в архитектуре уже используются представления.

Примеры

Реализация пользовательских схем на основе имен баз данных.

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

Сохранение прежних имен схем путем их добавления в начало имени таблицы. Используйте схемы для создания границы рабочих нагрузок.

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

Сохранение прежних имен схем с помощью представлений.

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
;

Примечание

Любое изменение в стратегии схем влечет за собой пересмотр модели безопасности базы данных. Во многих случаях можно упростить модель безопасности, назначив разрешения на уровне схемы.

Если требуется более точная настройка разрешений, можно использовать роли базы данных. Дополнительные сведения о ролях базы данных см. в статье Управление ролями и пользователями базы данных.

Дальнейшие действия

Дополнительные советы по разработке приведены в обзоре разработки Synapse SQL.