Viste T-SQL con pool T-SQL dedicato e pool SQL serverless in Azure Synapse Analytics

In questo articolo sono disponibili suggerimenti per l'uso di viste T-SQL e lo sviluppo di soluzioni con pool SQL dedicato e pool SQL serverless in Azure Synapse Analytics.

Perché usare le viste

Le viste risultano utili in molti modi diversi per migliorare la qualità della soluzione. Questo articolo contiene alcuni esempi che illustrano come migliorare la soluzione con le viste e include le limitazioni da prendere in considerazione.

Pool SQL - Creare una vista

Nota

La sintassi per CREATE VIEW non viene illustrata in questo articolo. Per altre informazioni, vedere la documentazione per CREATE VIEW.

Astrazione dell'architettura

Un modello di applicazione comune consiste nel ricreare le tabelle usando CREATE TABLE AS SELECT (CTAS), che è seguito da un modello di ridenominazione di oggetti durante il caricamento dei dati.

L'esempio seguente aggiunge nuovi record di data a una dimensione data. Si noti come viene creata prima di tutto una nuova tabella, DimDate_New, che viene poi rinominata per sostituire la versione originale della tabella.

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;

Tenere presente che questo approccio può comportare la comparsa e la scomparsa di tabelle dalla vista di un utente e la visualizzazione di messaggi di errore di tipo "tabella non esistente". È possibile usare le viste per garantire agli utenti un livello di presentazione coerente durante la ridenominazione degli oggetti sottostanti.

Fornendo l'accesso ai dati tramite le viste, gli utenti non devono avere visibilità sulle tabelle sottostanti. Oltre a offrire un'esperienza utente coerente, questo livello assicura che i progettisti di analisi possano sviluppare il modello di dati. La possibilità di sviluppare le tabelle sottostanti implica che i progettisti possono usare CTAS per ottimizzare le prestazioni durante il processo di caricamento dei dati.

Ottimizzazione delle prestazioni

È possibile usare le viste anche per creare join ottimizzati per le prestazioni tra le tabelle. Ad esempio, una vista può incorporare una chiave di distribuzione ridondante come parte dei criteri di join per ridurre al minimo lo spostamento dei dati.

L'uso forzato di una query specifica o di un hint di join è un altro vantaggio associato all'uso delle viste T-SQL. Di conseguenza, la funzionalità delle viste garantisce che i join vengano sempre eseguiti in modo ottimale. In questo modo gli utenti non dovranno ricordare il costrutto corretto per i propri join.

Limiti

Le viste in Synapse SQL vengono archiviate solo come metadati. Di conseguenza, le opzioni seguenti non sono disponibili:

  • Non esiste un'opzione di binding dello schema
  • Le tabelle di base non possono essere aggiornate tramite la vista
  • Non è possibile creare viste su tabelle temporanee
  • Non è disponibile alcun supporto per gli hint EXPAND/NOEXPAND
  • Non sono disponibili viste indicizzate in Synapse SQL

Passaggi successivi

Per altri suggerimenti sullo sviluppo, vedere Synapse SQL pool development overview (Panoramica sullo sviluppo per il pool Synapse SQL).