SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Build 2024 のタイミングで発表された SQL Database に関連するアップデート

leave a comment

Build 2024 が開催されています。

キーノートについては次の情報から確認できます。

 

SQL Server についてはアップデートはなかったのですが、Azure SQL Database についてはアップデートがアナウンスされていますのでまとめておきたいと思います。

SQL Database に関連するアップデートのアナウンス

SQL Database に関連するアップデートについては次のようなアナウンスがありました。

Microsoft Developer Blogs

Azure updates

Azure SQL Blog

Fabric Updates Blog

Apps on Azure Blog

 

SQL Database のアップデート

上記のアナウンスからアップデートを見ていきたいと思います。

 

早期評価機能としてネイティブベクターサポートを提供 (EAP)

Announcing EAP for Vector Support in Azure SQL Database でアナウンスされた、今回の Build で一番大きな内容となると思います。

SQLBits 2024 のオープニングキーノートで発表のあった内容 で、SQLBits 2024 でアナウンスがあったのですが、SQL Database でのベクターサポートの詳細が公開され、申し込みによる早期評価 (EAP) 機能として提供が開始されました。

SQL Database を使用したベクトル検索の例としては次の情報が公開されていました。

主要な構成要素としては次のような内容があるのではないでしょうか。

  1. 検索対象データのベクター化
  2. ベクター化したデータをテーブルに格納
  3. ベクター化したデータ間の距離の測定によるスコアリング

「2.」「3.」に対して活用できる機能が今回のアップデートで提供されました。

ベクター化したデータをテーブルに格納する際に、活用できる関数として、次の関数が追加されています。

  • JSON_ARRAY_TO_VECTOR
  • ISVECTOR
  • VECTOR_TO_JSON_ARRAY

旧実装では、ベクトルの値については「varchar(max)」の JSON 配列の文字列として格納をしていました。(OpenAI の Embeddings の API の結果が JSON 配列となっており、その結果をそのまま格納していた)

新しい実装ではベクトルは varbinar(8000) のバイナリとして格納するようになっており、JSON とバイナリ間の相互変換ならびに、ベクターが有効であるかを確認するための関数 (チェック制約で利用することもできる) が追加されました。

格納したベクター間の距離を検索するための関数として次の関数が追加されています。旧実装では距離はクエリ内で計算をしていたのですが、これが関数の呼び出しだけで完結することができるようになりました。

  • VECTOR_DISTANCE

距離の測定方法としては cosine / euclidean / dot がサポートされており、これは Spanner で使用できるベクトル距離関数と同等となっているようですね。

データのベクトル化については外部 REST API 呼び出しにより実現をしているため「1.」については、現時点では新しい方法の提示はありませんでしたが、それ以降の処理を効率的に実施することができるようになったのではないでしょうか。

 

JSON サポートの強化 (Public Preview)

SQL Database の JSON サポート強化として、次の新機能が Public Preview としてアナウンスされました。(今までは Private Public Preview でした)

投稿を書いている時点ではまだ上記の更新を使用することができなかったのですが、近日使用することができるようになるのではないでしょうか。

今まで、JSON のデータを格納する際には、文字列型 (varchar / nvarchar) を使用していましたが、JSON データ型を使用することで、効率的に JSON のデータを格納することができるようになっています。

文字列型に JSON のバリデーションが行われるようなものなのかと思っていたのですが、それ以外にも JSON を効率よく取り扱うための対応が行われているようですね。

JSON ドキュメントをネイティブ バイナリ形式で格納する新しいネイティブ JSON データ型。

JSON 型は、クエリと操作を容易にできるように最適化された JSON ドキュメントの忠実度の高いストレージを提供し、varchar/nvarchar に JSON データを格納するより優れた次の利点を提供します。

  • ドキュメントが既に解析されているため、より効率的な読み取り
  • クエリはドキュメント全体にアクセスすることなく個々の値を更新できるため、より効率的な書き込み
  • 圧縮用に最適化された、より効率的なストレージ
  • 既存のコードとの互換性に変更はありません

JSON 型は、UTF-8 エンコード Latin1_General_100_BIN2_UTF8 を使用して内部にデータを格納します。 この動作は JSON 仕様に一致します。

 

可用性メトリックの追加 (Public Preview)

Azure SQL DB availability portal metric でアナウンスされましたが、SQL Database のメトリックとして「Availability」 が追加されました。

次のドキュメントにも記載が追加されています。

Azure Monitor で監視できるメトリックとして Availability が追加され、可用性の問題を Azure Monitor でアラートを発火できるようになりました。

瞬間的なダウンについてはこのメトリックで検知ができないため、可用性のメトリックだけでなく、リソースヘルス と併用するとよいのではないでしょうか。

可用性のメトリックでは検知できなかった瞬間的なダウンについてもリソースヘルスで検知することができました。

可用性のメトリックは 93 日間データが保持されるということですので、過去の傾向についてはメトリックが活用できるのではないでしょうか。

 

Copilot in Azure の SQL Database スキル (Public Preview)

Microsoft Copilot in Azure extends capabilities to Azure SQL Database (Public Preview) に記載されていますが、Copilot in Azure のすべてのテナントとユーザーに対してのデフォルトの提供に向けての対応により、SQL Database スキルについても、承認が不要で利用できるようになります。

Azure SQL データベースの Microsoft Copilot スキル (プレビュー) に利用可能な機能が記載されていますが、Azure ポータルで Copilot を利用した SQL Database の情報の確認や、自然言語を使用してポータルのクエリエディターでクエリを記載するということができるようになります。

 

Azure SQL Managed Instance の更新ポリシー (一般提供開始)

Update Policy for Azure SQL Managed Instance でアナウンスがありました。

Managed Instance は SQL Server 2022 と互換性がありますが、これは、更新ポリシーの機能で制御が行われています。

SQL Server 2022 と連携を行う場合には、Managed Instance のデータベースエンジンのバージョンを 2022 相当のもので止めておく必要があります。

最新の機能を使用するためには、「常に更新 (Always-up-to-date)」を使用する必要があり、この設定にしている場合は、SQL Server のメジャーバージョンのリリースを待たず、最新バージョンのデータベースエンジンを使用することができます。(Always-up-to-date に設定すると、以降は設定を戻すことはできないようです)

SQL Server 2022 と連携 (バックアップの復元 / 可用性グループにより同期) を行う必要がある場合は「SQL Server 2022」(既定の設定) に設定しておくことで新しいバージョンへのアップグレードを SQL Server 2022 のメインストリームサポートの終了日 (2028/01/11) までブロックすることができます。(この設定にしていても CU 相当の累積修正プログラムは適用されます)

この機能の一般提供が開始されました。

現状、新しいバージョンにアップグレードしないと使用できない機能はありませんので、SQL Server 2022 の設定にしていても問題はありませんが、今後新しい機能が提供された場合にはアップグレードを検討しないといけないものが出てくるかもしれませんね。

 

SQL Database のスタンバイレプリカのライセンスフリー (一般提供開始)

General Availability of license-free standby replica for Azure SQL database として、SQL DB のライセンス浮揚のスタンバイレプリカの一般提供開始がアナウンスされました。

vCore モデルを使用している場合、アクティブ Geo レプリケーションを構成する際に、セカンダリレプリカ側でクエリを実行しない場合には、スタンバイレプリカとすることで SQL Server ライセンスコストの発生を抑えることができます。(コンピューティングコストは発生します)

 

その他のサービスのアップデートで気になったもの

SQL Database の直接のアップデートではありませんが、SQL Database を活用できる機能として気になったものを。

 

Fabric のリアルタイムインテリジェンス機能で SQL Database CDC の活用 (プレビュー)

Introducing Real-Time Intelligence in Microsoft Fabric で Fabric のリアルタイムインテリジェンスのアナウンスがありました。

SQL Database 向けで関連しそうなドキュメントとしては次の内容となりそうです。

SQL Database の CDC をソースとしてイベントストリーム / リアルタイムハブのデータストリームにデータを追加する機能が新しく実装されたようです。

 

CDC を活用して KQL データベースにデータを登録することができる機能となるようですが、どのような動作が行われるのかはキャッチアップしておきたいですね。

 

Azure Functions の Flex 従量課金プラン (プレビュー)

Azure Functions – Microsoft build 2024 update で Azure Functions のアップデートが発表されました。

Flex 従量課金プランは従量課金での利用形態ですが、仮想ネットワーク統合 が可能となっています。

現状、日本では展開することはできませんが、SQL Database への接続に使用するケースもあるかと思いますので、今のうちにどのような構成ができるかを確認しておきたいですね。

 

可用性ゾーン間のデータ転送価格について

Update on Inter-Availability Zone Data Transfer Pricing でアナウンスがありましたが、可用性ゾーン間のデータ転送の課金は発生しないという方針が発表されました。

SQL Database でも可用性ゾーンを使用した構成ができますが、この構成とした場合にゾーン間の転送コストは考慮しなくても問題ないようです。

Share

Written by Masayuki.Ozawa

5月 22nd, 2024 at 3:18 pm

Leave a Reply