Azure Synapse Analytics の専用 SQL プールとサーバーレス SQL プールを使用した T-SQL ビュー
この記事では、Azure Synapse Analytics の専用 SQL プールとサーバーレス SQL プールで T-SQL ビューを使用して、ソリューションを開発するためのヒントを紹介します。
ビューを使用する理由
ビューをさまざまな方法で使用して、ソリューションの品質を向上させることができます。 この記事では、ビューによってソリューションを強化する方法の例をいくつか取り上げます。また、考慮する必要がある制限事項についても説明します。
SQL プール - ビューの作成
Note
この記事では 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 ビューを使用するもう 1 つの利点です。 そのため、ビューの機能によって、結合が常に最適な方法で実行されるようになります。 ユーザーは、使用している結合の適切な構造を覚えておく必要がなくなります。
制限事項
Synapse SQL のビューはメタデータとしてのみ格納されます。 そのため、次のオプションは使用できません。
- スキーマ バインド オプションはありません
- ビューを通してベース テーブルを更新することはできません
- 一時テーブルのビューを作成することはできません
- EXPAND/NOEXPAND ヒントはサポートされていません
- Synapse SQL にはインデックス付きビューはありません
次のステップ
開発に関するその他のヒントについては、Synapse SQL の開発の概要に関する記事をご覧ください。