Mais conteúdo relacionado Semelhante a M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days] (20) Mais de 日本マイクロソフト株式会社 (20) M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]1. Microsoft Japan Digital Days
*本資料の内容 (添付文書、リンク先などを含む) は Microsoft Japan Digital Days における公開日時点のものであり、予告なく変更される場合があります。
#MSDD2021
Azure SQL Database
最新アップデートを
まとめてキャッチアップ
Microsoft MVP for Data Platform
小澤 真之
#M20
3. 基本機能
GREATEST / LEAST Transact-SQL 関数
論理関数 - GREATEST (Transact-SQL)
https://docs.microsoft.com/ja-jp/sql/t-sql/functions/logical-functions-greatest-transact-sql
論理関数 - LEAST (Transact-SQL)
https://docs.microsoft.com/ja-jp/sql/t-sql/functions/logical-functions-least-transact-sql
一般提供開始
変更データキャプチャ (Change Data Capture : CDC)
変更データ キャプチャ (CDC) とは
https://docs.microsoft.com/ja-jp/sql/relational-databases/track-changes/about-change-data-capture-sql-server
クエリストアヒント
クエリ ストア ヒント (プレビュー)
https://docs.microsoft.com/ja-jp/sql/relational-databases/performance/query-store-hints
プレビュー
4. 変更データキャプチャ (Change Data Capture : CDC)
SQL Server で利用可能な CDC を SQL Database でも利用することが可能に
DTU モデルの場合は利用可能なインスタンスサイズに制限があり、「S3」以上のサイズで利用可能
従来からサポートされていた「変更の追跡 (Change Tracking)」とは異なり、どのようにデータ
が変更されたかの情報を取得することが可能
変更の追跡は「変更されたデータの主キーの項目」を取得することはできるが、データがどのように変更さ
れたかまでは取得することはできなかった
変更されたデータの情報を詳細に取得することができ、SQL Database で変更されたデータの
差分取得を効率的に実施することが可能
例 : CDC と Data Factory を組み合わせて、SQL Database の変更内容を他ストレージに連携
「変更の追跡」は、該当のデータに対して
どのような操作が行われたかを取得可能
「CDC」は、データがどのように変更されたのかを
実際のデータを含めて取得することができる
「変更の追跡」で取得可能な情報
「CDC」で取得可能な情報
5. クエリストアヒント
クエリストア = 実行されたクエリの情報を自動的に保存し、過去に遡りクエリの実行情報を確認できる
SQL Database ではデフォルトで有効
クエリストアを使用した、実行プランの補正は従来は「プランの強制」が可能であったが、本機能を使用す
ることで「任意のクエリヒント」を設定することができる
例 :
クエリ単位で、MAXDOP の上限を設定
DB レベルの互換性レベルを変更することなく、クエリ単位で互換性レベルを設定
クエリストアヒントを使用することで、プランガイドより、容易にクエリヒントを設定することができる
アプリケーションを改修することなく、特定のクエリに容易にヒント句を設定することができる
-- 設定
EXEC sys.sp_query_store_set_hints
@query_id= 1904359,
@query_hints = N'OPTION( MAXDOP 1, USE HINT(''QUERY_OPTIMIZER_COMPATIBILITY_LEVEL_150''))'
GO
-- 設定解除
EXEC sys.sp_query_store_clear_hints
@query_id= 1904359
GO
6. 監査 / 監視
一般提供開始
監査ログの Log Analytics / Event Hub の連携
Azure SQL Database および Azure Synapse Analytics の監査
https://docs.microsoft.com/ja-jp/azure/azure-sql/database/auditing-overview
Microsoft サポート操作の監査
https://docs.microsoft.com/ja-jp/azure/azure-sql/database/auditing-overview#auditing-of-microsoft-support-operations
SQL Insights (Preview)
SQL insights を使用して SQL デプロイを監視する (Preview)
https://docs.microsoft.com/ja-jp/azure/azure-monitor/insights/sql-insights-overview
プレビュー
7. SQL Insights
Azure SQL ファミリの製品を監視するための包括的なソリューション
Azure に展開された SQL Server ベースの環境の各種情報を取得
vCore モデルの場合は、「S3」以上のサイズについて、取得先として指定が可能
Azure 仮想マシン (Linux VM) にインストールした、データ収集用のエージェン
トから Azure SQL ファミリの情報を取得し、Azure Monitor ログに蓄積
1 VM で複数の環境の情報を取得可能であり、1 台で最大 100 接続をサポート
エージェントで DMV の
情報を取得
取得した情報を
Azure Monitor ログに蓄積
Book で可視化
8. メンテナンス通知
Preview
計画メンテナンスイベントの 24 時間前までに事前通知
計画メンテナンス イベントの事前通知 (プレビュー)
https://docs.microsoft.com/ja-jp/azure/azure-sql/database/advance-notifications
計画メンテナンスのメンテナンス実行タイミングを指定
メンテナンス期間 (プレビュー)
https://docs.microsoft.com/ja-jp/azure/azure-sql/database/maintenance-window
9. メンテナンス期間
次の 3 種類から選択することが可能
システムの既定値 : 午後 5 時から午前 8 時
月~金 : 22:00~翌 6:00 : 標準的な稼働日の夜間~朝の時間帯
金~日 : 22:00~翌 6:00 : 週末の夜間~朝の時間帯
タイムゾーンは UTC ではなく、リソースをホストするリージョンによって決定される
日本リージョンに作成した場合は JST のタイムゾーンとなる
10. セキュリティ
一般提供開始
動的データマスクの詳細な権限設定
General availability: Dynamic data masking granular permissions for Azure
SQL and Azure Synapse Analytics
https://azure.microsoft.com/ja-jp/updates/general-availability-dynamic-data-masking-granular-permissions-for-azure-sql-
and-azure-synapse-analytics/
プレビュー
論理サーバーに対してAzure AD 専用認証 を設定 (SQL 認証の無効化)
Azure SQL を使用した Azure AD 専用認証
https://docs.microsoft.com/ja-jp/azure/azure-sql/database/authentication-azure-ad-only-authentication
Always Encrypted Secure Enclaves
チュートリアル:セキュリティで保護されたエンクレーブが設定された Always Encrypted の使用を Azure
SQL Database で開始する
https://docs.microsoft.com/ja-jp/azure/azure-sql/database/always-encrypted-enclaves-getting-started
SQL Database 台帳
データベース台帳とは
https://docs.microsoft.com/ja-jp/azure/azure-sql/database/ledger-database-ledger
11. Always Encrypted Secure Enclaves
SQL Server 2019 で実装された、テーブル内のデータ暗号化機能である Always
Encrypted Secure Enclaves を SQL Database でも利用可能
機能を使用するためには、vCore モデルの DC シリーズのデータベースを利用する必要がある
2021/8 時点では一部のリージョンでのみ利用可能 (日本では現時点では未提供)
セキュリティで保護されたエンクレーブを使用することで、Always Encrypted と比較して、
柔軟な暗号化を実現
ランダム暗号化列の検索 / インプレース暗号化により既存テーブルに Always Encrypted を適用
Database
Client
SQL Client
Driver
プレーン
テキスト
Secure Enclave
プレーン
テキスト
SQL
DDL
暗号化
テキスト
暗号化
テキスト
SQL Database
クライアントアプリケーション
構成証明プロバイダー
(Azure Attestation)
操作
Always Encrypted Always Encrypted Secure Enclaves
ランダム暗号化 決定的暗号化 ランダム暗号化 決定的暗号化
インプレース暗号化 非サポート 非サポート サポート サポート
等価による比較 非サポート サポート サポート サポート
不等号による比較 非サポート 非サポート サポート 非サポート
LIKE 非サポート 非サポート サポート 非サポート
12. SQL Database 台帳 (SQL Database Ledger)
データの改ざんを防止 / データに対しての全変更を自動的に記録するテーブルを作成
データ変更のトランザクションの内容を基にしたハッシュ値により、不正なデータの改ざんを検出
データの特性に合わせ、更新可能な台帳テーブル / 追加専用の台帳テーブルを作成可能
更新可能な台帳テーブルは、履歴テーブルが自動的に作成され、更新/削除したデータが保管される
現時点では次のリージョンで利用可能
米国中西部 / 西ヨーロッパ / ブラジル南部
台帳テーブル
(更新可能/追加専用)
ダイジェストストレージ (上記のいずれかを利用)
SQL Database
Azure
Confidential
Ledger
Azure
Immutable
Storage
データベース台帳
変更されたデータを
履歴として保存
データベースで処理した
トランザクションを
基にブロックを生成
トランザクションを発生させた接続ユーザーと、更新/削除された履歴データを自動的に記録
Block #1 ・・・
Block #2 Block #3
ブロック
履歴テーブル
(更新可能な台帳テーブルの場合)
ブロックでブロックチェーンを形成
トランザクション
全トランザクションを記録
トランザクションを
データベース台帳に記録
最新のブロックのハッシュ
(データベースダイジェスト) を
ダイジェストストレージに保存
自動ダイジェストストレージ
(30 秒間隔で自動的にデータベースダイジェストを生成しアップロード)
手動で生成し
任意の場所に保存
(手動でデータベースダイジェストを生成し、
結果を任意の場所に保存)
ダイジェストストレージに保存されているデータベースダイジェストのハッシュと、
台帳テーブル/履歴テーブルのデータから再計算したハッシュを比較し、
データの改ざんが行われていないかを検証できる
13. Hyperscale
プレビュー
Geo レプリケーションのサポート
アクティブ geo レプリケーションの作成と使用 - Azure SQL Database
https://docs.microsoft.com/ja-jp/azure/azure-sql/database/active-geo-replication-overview
名前付きレプリカによる読み取りワークロードの分離
名前付きレプリカ (プレビュー)
https://docs.microsoft.com/ja-jp/azure/azure-sql/database/service-tier-hyperscale-replicas
一般提供開始
データベース コピー
Database copy for Azure SQL Hyperscale now generally available!
https://techcommunity.microsoft.com/t5/azure-sql/database-copy-for-azure-sql-hyperscale-now-generally-available/ba-
p/2598080
14. 名前付きレプリカ
一つのプライマリレプリカに対して、最大で 30 個の名前付きレプリカをサポート
通常のセカンダリレプリカでは最大で 4 個のレプリカをサポート
同一の論理サーバーに異なる DB 名または、プライマリレプリカと同一リージョンの異なる論理サーバーに同一または異
なる DB 名で読み取り専用のレプリカを作成
同一のデータベース (ページサーバー) を参照するため、読み取りレプリカの作成時にデータのコピーは必要なく、高速にレプリカを
作成できる
名前付きレプリカの DB 単位に SLO を指定することができる (プライマリレプリカと異なる SLO を指定可能)
異なる論理サーバーに作成した場合、プライマリとは異なるログインを作成することができる
従来のセカンダリレプリカ
Page Servers
Page Server
RBPEX
・・・
ApplicationIntent=ReadWrite ApplicationIntent=ReadOnly
プライマリ / セカンダリの接続時の
接続先のサーバー名 / DB 名は同一
プライマリレプリカ セカンダリレプリカ
(読み取り専用)
同一の Page Server を参照
SQL Server
RBPEX
DB1
SQL Server
RBPEX
DB1
SQL Server
RBPEX
DB1
SQL Server
RBPEX
DB1
SQL Server
RBPEX
DB1
server1
名前付きレプリカ
プライマリレプリカ
SQL Server
RBPEX
DB1
名前付きレプリカ
(読み取り専用)
SQL Server
RBPEX
DB2
Database=DB1 Database=DB2
接続先のサーバー名は同一
接続先の DB 名は異なる
同一の Page Server を参照
server1
Page Servers
Page Server
RBPEX
Page Server
RBPEX
Page Server
RBPEX
Page Server
RBPEX
Page Server
RBPEX
・・・
server1
SQL Server
RBPEX
DB1
server2
SQL Server
RBPEX
DB1
同一の Page Server を参照
Page Servers
Page Server
RBPEX
Page Server
RBPEX
・・・
プライマリレプリカ 名前付きレプリカ
(読み取り専用)
Server=server1 Server=server2
接続先のサーバー名は異なる
接続先の DB 名は同一
15. Managed Instance
一般提供開始
プレビュー
新規作成環境の MAXDOP のデフォルト値変更 (0 → 8)
Changing default MAXDOP in Azure SQL Database and Azure SQL Managed Instance
https://techcommunity.microsoft.com/t5/azure-sql/changing-default-maxdop-in-azure-sql-database-and-azure-sql/ba-p/1538528
Machine Learning Service (R / Python) のサポート
Azure SQL Managed Instance の Machine Learning Services
https://docs.microsoft.com/ja-jp/azure/azure-sql/managed-instance/machine-learning-services-overview
汎用目的の COPY-ONLY バックアップの並列バックアップによるパフォーマンスの向上
Parallel backup for better performance in SQL Managed Instance General Purpose
https://techcommunity.microsoft.com/t5/azure-sql/parallel-backup-for-better-performance-in-sql-managed-instance/ba-p/2421762
Azure Arc Enabled SQL Managed Instance
Azure Arc 対応 SQL Managed Instance の概要
https://docs.microsoft.com/ja-jp/azure/azure-arc/data/managed-instance-overview
Service Broker によるインスタンス間のメッセージ交換のサポート
Cross-instance Service Broker message exchange for Azure SQL Managed Instance
https://techcommunity.microsoft.com/t5/azure-sql/cross-instance-service-broker-message-exchange-for-azure-sql/ba-p/2217323
汎用目的の 16 コア以上のモデルで 16 TB のデータベースをサポート
Increased storage limit to 16 TB for SQL Managed Instance General Purpose
https://techcommunity.microsoft.com/t5/azure-sql/increased-storage-limit-to-16-tb-for-sql-managed-instance/ba-p/2421443
16. Azure Arc Enabled SQL Managed Instance
任意の Kubernetes 上に Managed Instance を展開
Azure 以外のクラウド / オンプレミス環境上に構築した Kubernetes 上に Managed Instance を展
開して利用することができる
展開した Managed Instance は、Azure と同様にサービスパッチや新機能の更新が頻繁に行われ、
常に最新の状態で使用することができる
サブスクリプションサービスであるため、オンプレミスの SQL Server のようなサポートライフサイクルの終了によるサポート
終了に直面することがなくなる
Azure と接続して使用 (直接接続モード : プレビュー) した場は、Azure ポータルからの操作 / Azure
Monitor によるモニタリング等、Azure の管理機能を活用することができる
任意の環境に構築された Kubernetes
Azure Arc Enabled Data Services
Azure Arc Enabled
SQL Managed Instance
Azure Arc Enabled
PostgreSQL Hyperscale
(Preview)
Kubernetes 上に
Managed Instance
が展開される
直接接続モードで展開をした場合は、
Azure と環境が連携され、
Azure Portal から Kubernetes に
Managed Instance の展開や、
Azure の各種機能と連携ができる
17. SQL Database の Update 情報
Azure の更新情報
https://azure.microsoft.com/ja-jp/updates/
Azure SQL News Update
Azure SQL - General availability updates for early September 2021
https://azure.microsoft.com/en-us/updates/azure-sql-general-availability-updates-for-early-september-2021/
Azure SQL - Public preview updates for early September 2021
https://azure.microsoft.com/en-us/updates/azure-sql-public-preview-updates-for-early-september-2021/
Azure SQL News Update: September 2021
https://techcommunity.microsoft.com/t5/azure-sql/azure-sql-news-update-september-2021/ba-p/2705044