Представления T-SQL с выделенным пулом SQL и бессерверным пулом SQL в Azure Synapse Analytics
В этой статье представлены советы по использованию представлений T-SQL и разработке решений с выделенным пулом SQL и бессерверным пулом SQL в Azure Synapse Analytics.
Зачем нужны представления
Представления можно использовать разными способами для повышения качества вашего решения. В этой статье представлены примеры того, как можно обогатить решение с помощью представлений, а также здесь описаны ограничения, которые следует учитывать.
Пул SQL — создание представления
Примечание.
Синтаксис команды CREATE VIEW в этой статье не рассматривается. Дополнительные сведения см. в документации по CREATE VIEW.
Архитектурная абстракция
Один из распространенных шаблонов приложения — повторное создание таблиц с помощью инструкции CREATE TABLE AS SELECT (CTAS) с последующим шаблоном переименования объектов при загрузке данных.
Приведенный ниже пример добавляет новые записи даты в измерение даты. Обратите внимание, что сначала создается новая таблица DimDate_New, которая затем переименовывается для замены исходной версии таблицы.
CREATE TABLE dbo.DimDate_New
WITH (DISTRIBUTION = ROUND_ROBIN
, CLUSTERED INDEX (DateKey ASC)
)
AS
SELECT *
FROM dbo.DimDate AS prod
UNION ALL
SELECT *
FROM dbo.DimDate_stg AS stg
;
RENAME OBJECT DimDate TO DimDate_Old;
RENAME OBJECT DimDate_New TO DimDate;
Помните, что эти действия могут привести к тому, что таблицы могут появляться в представлении пользователя и исчезать из него; кроме того, могут появляться подсказки с сообщениями об ошибках, информирующие о том, что таблица не существует. Представления нужны для предоставления пользователям доступа к согласованному уровню представления данных, пока базовые объекты переименовываются.
Когда пользователи обращаются к данным через представления, им не нужно видеть базовые таблицы. Этот слой не только обеспечивает согласованный пользовательских интерфейс, но и позволяет разработчикам решений аналитики развивать модель данных. Благодаря возможности усовершенствования базовых таблиц разработчики могут использовать CTAS, чтобы повысить производительность при загрузке данных.
Производительность и оптимизация
Представления также можно использовать для применения оптимизированных для высокой производительности соединений между таблицами. Например, в представление можно включить ключ избыточного распространения, заданный в критерии соединения, чтобы минимизировать перемещение данных.
Еще одна важная возможность представлений T-SQL — принудительное применение определенного запроса или подсказки по соединению. Эта возможность для представлений гарантирует, что соединения всегда будут выполняться оптимальным образом. Вы избавите пользователей от необходимости запоминать правильную конструкцию для своих соединений.
Ограничения
Представления в Synapse SQL хранятся только в формате метаданных. Поэтому следующие варианты недоступны:
- не поддерживается привязка схемы;
- базовые таблицы нельзя обновлять через представление;
- для временных таблиц нельзя создавать представления;
- не поддерживаются указания для EXPAND и NOEXPAND;
- в Synapse SQL нет индексированных представлений.
Следующие шаги
Дополнительные советы по разработке приведены в обзоре разработки Synapse SQL.