💻

MS Ignite 2021 Fall 付近で発表された Azure Cosmos DB 関連アップデートまとめ

2021/11/14に公開

この記事について

この記事は、第11回 Azure Cosmos DB 勉強会: Microsoft Ignite Recap の関連記事です。

この記事では、2021/11/2 〜 2021/11/4 (米国時間) で開催された Microsoft Ignite Spring 2021 付近で公開された Azure Cosmos DB 関連のアップデート情報について触れていきます。

今回触れるアップデートの一覧

  • 部分ドキュメント更新が一般提供開始
  • 新しいコスト管理機能が一般提供開始
  • インデックス作成のメトリックに新機能が追加
  • Azure Managed Instance for Apache Cassandra が一般提供開始
  • Azure Synapse Link for Azure Cosmos DB のカスタムパーティショニングがプレビュー開始
  • 高スループットのデータ処理を可能にする新しい Logic Apps のコネクタがプレビュー開始

部分ドキュメント更新が一般提供開始

今年の Microsoft Build 2021 でプライベートプレビューとして案内されていた部分ドキュメント更新 (Partial document update) が一般提供開始になりました。
また、プレビュー発表時では、この機能は .NET SDKJava SDK、および ストアドプロシージャー からのみ利用可能となっていましたが、今回の一般提供開始に伴い、Node SDK も追加となっています。

部分ドキュメント更新については、以前の記事で触れていますので、こちらもあわせてご確認ください。

https://zenn.dev/ymasaoka/articles/try-azure-cosmosdb-partial-update

公式の情報については、以下を参照してください。

https://devblogs.microsoft.com/cosmosdb/partial-document-update-ga/

新しいコスト管理機能が一般提供開始

プロビジョニングされたスループットモードを使用している場合において、Azure Cosmos アカウント全体で要求ユニット (RU/s) の最大値を制限できる機能が新登場しました。
これまでは、Azure Cosmos アカウント配下に作るデータベースまたはコンテナー毎に要求ユニットを設定していましたが、この場合、データベースまたはコンテナー単位でスループットを管理したり、スケールアップ/アウトを把握しなければならなかったため、コスト管理という観点では非常に辛い部分がありました。

今回のアップデートでは、Azure Cosmos アカウントに対して、要求ユニット (RU/s) の最大値を制限できるようになります。そのため、Azure Cosmos アカウントで設定した要求ユニットの最大値を超過してしまうような要求ユニットの設定をデータベースコンテナーで設定しようとした際に、その処理をブロックしてくれるようになります。

公式の情報については、以下を参照してください。

https://devblogs.microsoft.com/cosmosdb/cost-governance-available-ignite/

インデックス作成のメトリックに新機能が追加

.NET SDK 3.21.0 以降、または Java SDK 4.19.0 以降で、使用されたインデックス付きパス推奨されるインデックス付きパスの両方を示すためのインデックス作成メトリックが新しくサポートされるようになりました。
PopulateIndexMetrics プロパティを有効にすることで、クエリのインデックス作成メトリックが有効になります。(デフォルトは無効)

Azure の診断ログなどを使用して、要求ユニット (RU) の消費が多いクエリを特定した際、次のアクションとしてこのインデックス作成メトリックを使用することができます。ユーザーは、インデックス作成メトリックの情報からインデックス影響スコアの高低を確認し、スコアの高いものについて改善することで、要求ユニット (RU) の消費を抑え、クエリのパフォーマンスを向上させることができるようになります。

公式の情報については、以下を参照してください。

https://devblogs.microsoft.com/cosmosdb/query-performance-indexing-metrics/

Azure Managed Instance for Apache Cassandra が一般提供開始

今年の Microsoft Ignite 2021 Spring でプレビュー開始だった、Azure Managed Instance for Apache Cassandra が一般提供開始になりました。
マネージドインスタンス (MI) は、既に SQL Database でもありますが、Apache Cassandra も今回正式に対応開始になったことになります。

Azure Managed Instance for Apache Cassandra については、過去の記事で触れているので、詳細はこちらを確認してください。

https://zenn.dev/ymasaoka/articles/summary-of-cosmosdb-updates-msignite2021spring#azure-managed-instance-for-apache-cassandra-のプレビュー開始

また、上記記事でも触れていますが、Azure Cosmos DB Cassandra API との違いは、以下の公式ドキュメントに記載があるので、こちらも確認しておくといいと思います。

Azure Synapse Link for Azure Cosmos DB のカスタムパーティショニングがプレビュー開始

Azure Synapse Link for Azure Cosmos DB 機能として、カスタムパーティショニングプレビュー提供開始になりました。
このカスタムパーティショニングを使用することで、Azure Synapse Link 上で分析クエリを実行する際のパフォーマンスが向上されます。

Azure Synapse Link for Azure Cosmos DB 登場時にあわせて、Azure Cosmos DB 分析ストアというものが登場していました。通常の Azure Cosmos DB は行ストアに最適化された形でデータを保存しますが、それでは分析に向かないため、列ストアに最適化された分析ストアを別で作成し、Azure Cosmos DB が自動で Azure Cosmos DB 分析ストアにデータを ETL してくれていました。
Azure Cosmos DB 分析ストアのデータ (実態は Parquet データ) ですが、ここに書き込まれたデータはパーティショニングされていない状態でした。そのため、Azure Synapse Analytics 側で実行している分析クエリにて、頻繁にフィルターなどを使用している場合、非常に処理が非効率となっていたわけです。
カスタムパーティショニングを活用することで、不必要なデータ箇所のスキャンなどを回避することができ、分析クエリのパフォーマンスを向上させることが可能になります。

公式の情報については、以下を参照してください。

https://devblogs.microsoft.com/cosmosdb/custom-partitioning-azure-synapse-link/

高スループットのデータ処理を可能にする新しい Logic Apps のコネクタがプレビュー開始

高スループットのデータ処理を可能にする LogicApps の新しいコネクタがプレビュー提供開始になりました。
LogicApps で Azure Cosmos DB コネクタを使用しているユーザーは、ぜひチェックしてみてください。

Azure Cosmos DB Live TV にて、新しいコネクタについても紹介が今後なされる予定です。

https://youtu.be/CQLzXfCU6bY

参考情報

Microsoft Ignite 2021 Fall 関連

Azure Cosmos DB Blog

Azure Cosmos DB Live TV

Discussion