2022年4月下旬の Azure SQL Database Update がアナウンスされました。
Archive for 4月, 2022
特定の文字列を含むイベントログの出力時にタスクスケジューラーのタスクを実行できるか
Twitter を見ていて、イベントログに特定の文字列を含むログが出力された場合に、タスクスケジューラーのトリガーを実行させるためにはというような内容のつぶやきがあり、自分も今まではイベント ID ぐらいでしか制御をしたことがなく、どのように実装できるのか気になったので調べてみました。
次の情報を参考にさせていただきました。
- イベントの使用 (Windows ログ)
- Advanced XML filtering in the Windows Event Viewer
- XPath Reference
- Event Selection
- EventTrigger.ValueQueries プロパティ
- System.windows.eventtrigger> プロパティ
- Scheduled Task – Trigerred by Event – Getting data into the scripts as parameters…- Question
- 20220216: Windows – タスクスケジューラで順位指定の要素値を拾えない
複数サブネット構成を使用した SQL Server on Azure VM の可用性構成について
発表されてからかなり日が経っているのですが、Azure VM で SQL Server の可用性構成を構築する場合に、複数サブネット (マルチサブネット) 構成を使用することで、従来の構成と比較して構成の簡略化が行うことができるようになっています。
アナウンスとしては次の内容となり、
- SQL Server on Azure Virtual Machines: Multi subnet high availability generally available
- Simplify Azure SQL Virtual Machines HA and DR configuration by adopting multi subnet approach
技術情報としては次の内容となります。
基本構成としては下図のようになり、複数のサブネットに VM を配置し、ロードバランサーは不要で、可用性グループにアクセスを行うことができる構成を Azure 上に展開することができます。
FCI についても、複数サブネットを使用して同様の構成を行うことができ、単体のチュートリアルは提供されていないのですが、https://docs.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/failover-cluster-instance-prepare-vm?view=azuresql&tabs=multi-subnet#subnets で情報が公開されています。
本投稿ではこの複数サブネット構成について触れたいと思います。
なお、今回の投稿のメインとなる内容は Windows の SQL Server を使用した Always On 可用性グループについてとなります。
SQL Server のデータアクセスコンポーネントの暗号化設定の既定が変更されています
昨年からリリースされている Microsoft 社提供の SQL Server 向けのデータアクセスコンポーネントで、暗号化設定の既定が変更されています。
私が確認した範囲では、次のコンポーネントを使用している場合に影響が出る可能性があります。
- Microsoft ODBC Driver for SQL Server on Windows
- Release Notes for the Microsoft ODBC Driver for SQL Server on Linux and macOS
これらのデータアクセスコンポーネントでは「破壊的変更」として「Encrypt = true, by default」の変更が行われており、各コンポーネントの既定の接続が暗号化設定が有効になっています。
Azure SQL Database の General Purpose のゾーン冗長と性能への影響
以前、Azure SQL Database の Premium / Business Critical のゾーン冗長と性能への影響 という投稿を書きました。
2022/4 に General availability: Zone redundancy for Azure SQL Database general purpose tier というアナウンスがあり、General Purpose (汎用目的) でも、ゾーン冗長構成がサポートされるようになりました。
汎用目的の場合、General Purpose サービス レベルのゾーン冗長可用性 で解説されているように、ゾーン冗長は次のような構成となります。
汎用目的のゾーン冗長では、Premium / Business Critical とは異なり、AlwaysOn 可用性グループによるデータベースの冗長化ではなく、データベースのファイルをストレージレイヤーで冗長化させ、各可用性ゾーンにスペアノードを配置するという構成となっています。
このような構成の場合に、ゾーン冗長を使用した場合にどのように性能に影響が出るのかを、前回と同様に確認してみました。
SQL Server で sp_helptext では参照できないオブジェクトのテキストを取得する
SQL Server では sp_helptext というオブジェクトの定義を取得するためのストアドプロシージャが提供されています。類似の機能としては次のようなものも活用することができます。
私は sp_helptext を使用することが多いのですが、このストアドプロシージャでは一部の情報を見ることができません。
Azure Machine Learning Studio のデータセットとしてサーバーレス SQL プールを使用する
Azure Machine Learning Studio で、機械学習モデルを作成する際のデータセットとして、次のようなデータストアを選択することができるのですが、この中には Synapse Analytics は含まれていません。
SQL Database の論理サーバー内に専用 SQL プール (Dedicated SQL Pool) を使用した場合は、論理サーバーの下に DB が作成されますので、接続のエンドポイントとしては「~.database.windows.net」を使用することができますので、データストアの種類として「Azure SQL Database」を選択しても戸惑うことなくデータストアを作成できるのではないでしょうか。
2022年4月中旬の Azure SQL Database Update
2022年4月中旬の Azure SQL Database Update の情報がアナウンスされましたので、どのような情報が公開されたか見ていきたいと思います。
GA と Public Preview について、Azure の更新情報 で情報がまとめられたものが発信されていますので、アップデートの情報収集ははこの辺を活用するとよいかと思います。
本ブログでも上記のようなアナウンスがあった際には、情報をまとめておきたいと思います。(毎月やろうとは思っているのですがなかなか時間が取れず、頻繁にとん挫しています…。)
SQL Server の Azure 移行時の SKU Recommendation について
SQL Server を Azure に移行する場合、Azure 移行後にどの程度の性能が必要になるかの検討が必要となります。SQL Server では、Azure への移行後の性能を算出する方法として SKU Recommendation の機能が提供されています。
以前から Database Migration Assitant (DMA) で SKU Recommendation の機能が提供されていたのですが、先月 Public preview: SKU recommendation in Azure SQL Migration extension – Azure Data Studio というアナウンスが行われました。
Preview 機能となりますが、DMA で実行することができていた SKU Recommendation を Azure Data Studio でも実行することができるようになりました。
SKU Recommendation の機能については、DMA で初期に実装されていた機能からも変更が行われていますので、この機会にまとめておきたいと思います。
追記
投稿を書いた数日後に Generally available: Azure SQL Migration extension for Azure Data Studio で ADS の拡張機能の GA のアナウンスがありました。
Azure SQL Edge でストリーミングによるデータ取り込みを行う場合の注意点
SQL Server は Azure IoT Edge 上で容易に展開することができる Azure SQL Edge が提供されています。
この SQL Edge は、x64 だけでなく、ARM64 で動作させることができるため、ARM の CPU が使用されているデバイス上で動作させることができる SQL Server として利用することができます。
私は Raspberry Pi 4 を IoT Edge デバイスとして登録をして、Azure から SQL Edge の展開をしていますが、Azure SQL Edge は コンテナーイメージ として公開が行われていますので、コンテナーが動作する環境であれば、様々な環境に展開することが可能です。
Azure SQL Edge の検証環境としては、
を使用して、温度センサーのデータを SQL Edge にストリーミングで取り込むようなシナリオができる環境を準備しています。
センサーデータをストリーミングで取り込んでいたところ、ある条件に当てはまると、センサーデータを取り込んでいるテーブルが肥大化するという事象が発生しそうでしたので、情報を残しておきたいと思います。
今回は検証用の物理環境を準備していますが、Azure SQL Edge は x64 のイメージも提供されていますので、IoT 向けの物理環境が用意できなくても、Ubuntu 仮想マシン上で Azure IoT Edge を実行する で、基盤となる環境を用意し、IoT Edge Module として、Simulated Temperature Sensor を展開することで、仮想環境上でも動作の確認をすることができます。
クイック スタート:初めての IoT Edge モジュールを Linux 仮想デバイスにデプロイする が参考になり、温度センサーのシミュレーターについては SimulatedTemperatureSensor で C# のソースコードが公開されています。
Python を使用した場合の温度センサーのシミュレーターについては チュートリアル: Linux コンテナーを使用して Python IoT Edge モジュールを開発してデプロイする から確認することができます。