はじめに
Azure Synapse Analytics におけるシステムビューの利用可否について調べたところ、SQL pool については以下リンクに記載がありました。
Synapse SQL プールでサポートされるシステム ビュー
これに対し SQL on-demand については明確な記載が見つけられませんでしたが、Synapse Studio の Data Hub を見るとシステムビューらしきものが存在するように見えます。
公式にサポートはされていないかもしれませんが、軽く触ってみたのでわかったことを簡単にまとめます。
試してみる
Synapse Studio の Develop Hub で接続先を SQL on-demand に指定した上で、クエリを発行します。FROM 句にシステムビューを指定した SELECT 文であれば何でも構いません。以下は、sys.configurations の情報を取得している例です。
エラーになるケース
何度か試してみたところ、指定するシステムビューによってはエラーが返ってくるものがありました。
エラーになるものとしては DMV(動的管理ビュー)に関するものが多く、メッセージにも DMV は対応していないと明記されていました。
内部動作に対する気づき
SQL on-demand におけるシステムビューの実行を通していくつか気づいたことがあったので、2 点ほどご紹介します。まずは、sys.servers の実行結果です。Product 列に「SQL Server」という文字が確認できます。
次に、sys.database_files の実行結果です。どこかの Blob ストレージ上に mdf と ldf ファイル(SQL Server におけるデータベースファイルとログファイル)がそれぞれ格納されていることがわかります。
これらのことから、SQL on-demand も内部的には SQL Server をベースとした仕組みで動作していることが伺い知れます。サーバレスのサービスの裏側を知ってどうするんだという話はあるかもしれませんが、個人的に興味深い結果であったため共有させていただきました。
まとめ
今回は SQL on-demand におけるシステムビューの実行を試してみました。DMV 等も実行できるようになるとシステムでのトラブルシューティングやパフォーマンスチューニングが捗るため、今後の正式サポートと機能強化に期待したいです。
最後に、Azure Synapse Analytics は現在 Public Preview であり、今回の SQL on-demand におけるシステムビューの利用も公式ドキュメントに記載のあるものではありません。
本記事の内容は、それらに対して何らかの動作保証をするものではございませんのであらかじめご了承ください。正式な製品仕様や機能の対応状況については、Azure サポート等に直接お問合せください。