Cosmos 開発者向けの Azure Cosmos DB に関する最新発表

執筆者: Rimma Nehme (Product Manager and Architect, Azure Cosmos DB)

このポストは、2019 年 5 月 14 日に投稿された A Cosmonaut’s guide to the latest Azure Cosmos DB announcements の翻訳です。

 

Microsoft Build 2019 では、新しい Apache Spark のビルトイン サポートを利用したリアルタイム運用分析や新しい Jupyter ノートブック エクスペリエンスなど、すべての Azure Cosmos DB API 向けの魅力的な新機能が発表されました。これらの機能により、お客様が世界規模のグローバル分散型アプリを容易に構築できると考えています。

今回は、この他に Microsoft Build で発表された開発者エクスペリエンスの機能強化についてご紹介します。

etcd API による Kubernetes 開発の支援

etcd (英語)Kubernetes (英語) クラスターの中核を担うものであり、すべてのステートが保存される場所です。このたび、ワイヤ プロトコル互換の etcd API のプレビューが開始されました。これにより、セルフマネージド型の Kubernetes 開発者が etcd クラスターの管理ではなく、アプリの開発に集中することができます。ワイヤ プロトコル互換の etcd 用 Azure Cosmos DB API を使用すると、Kubernetes 開発者はスケーラビリティと可用性に優れたグローバル分散型の Kubernetes クラスターを自動的に利用できるようになります。Azure Cosmos DB の SLA によって 99.999% の高可用性と弾力的なスケーラビリティが保証されたフル マネージド サービス上で Kubernetes のコーディネーションおよびステート管理データをスケーリングできます。その結果、総保有コスト (TCO) が大幅に削減され、etcd クラスターを管理する手間や複雑さから解放されます。

ご利用を開始するには、AKS Engine (英語) に etcd 用 Azure Cosmos DB API を設定します。また、こちらのページで詳細をご確認のうえ、プレビューにサインアップ (英語) してご利用ください。

マルチモデル機能の強化

Azure Cosmos DB のデータベース エンジンのマルチモデル機能は、このサービスの基礎を成すものです。1 つのアプリで複数のデータ モデルを活用したり、単一のサービスに集中して開発を合理化したり、複数のデータベース エンジンを管理する必要がなくなる分 TCO を削減したり、Azure Cosmos DB で提供される包括的な SLA (英語) のメリットを享受したりと、お客様に多大なメリットをもたらします。

この 2 年間、データベース エンジンの型システムや、Azure Cosmos DB のデータベース ログとインデックスのストレージ エンコーディングは着実に改良されてきました。データベース エンジンの型システムは完全に拡張可能であり、Apache Cassandra、MongoDB、Apache Gremlin、SQL のネイティブの型システムが網羅されたスーパーセットとなります。また、データベース ログの新しいエンコーディング方式は、保存と解析に高度に最適化されており、Parquet、protobuf、JSON、BSON などの主要なエンコーディング形式を効率的に変換することができます。新たに強化されたインデックス レイアウトは、以下のメリットをもたらします。

  • クエリ実行のコスト パフォーマンスの大幅な向上 (特に集計クエリの場合)
  • 新しい SQL クエリ機能
    • OFFSET/LIMIT、DISTINCT キーワードのサポート
    • 複合インデックスによる複数列の並べ替え
    • EXISTS および ARRAY 式などの相関サブクエリ

SQL クエリのサンプルについてはこちらのページ、SQL 言語リファレンスの詳細についてはこちらのページをご覧ください。

型システムとストレージ エンコーディングにより、GremlinMongoDBCassandra (CQL) の多数の機能がサポートされました。現在、Cassandra CQL v4 とのほぼ完全な互換性が実現されたほか、CQL の拡張コマンドとしてネイティブの変更フィード機能が追加されました。これにより、お客様は Azure Cosmos DB の Cassandra テーブルを基盤として効率的なイベント ソーシング パターンを構築できます。また、Execution Profile 関数のサポートによるパフォーマンス評価や、Apache TinkerPop 仕様に準拠した文字列比較関数など、Gremlin API の複数の機能強化も発表されました。

詳細については、Gremlin API 実行プロファイルAzure Cosmos DB の Gremlin API でサポートされる機能に関するドキュメントをご覧ください。

SDK の更新

Azure Cosmos DB .NET V3 SDK (英語) の一般提供

  • 完全なオープンソース化、.NET Standard 2.0 との互換性
  • 新しいストリーミング API など、最大 30% のパフォーマンスの向上
  • 開発者が使い慣れた API による直観的で慣習的なプログラミング モデル
  • 新しい変更フィードのプルおよびプッシュ プログラミング モデル

.NET SDK V3 の一般提供は今月中に開始される予定です。新たに強化された機能を活用できるように、既存のアプリをアップグレードすることをお勧めします。

Azure Cosmos DB Java V3 SDK (英語) の新機能と機能強化

  • 新しいリアクターベースの非同期プログラミング モデル
  • Azure Cosmos DB の Direct HTTPS および TCP トランスポート プロトコルのサポートによるパフォーマンスと可用性の向上
  • V3 SDK のすべての新しいクエリの機能強化

Java V3 SDK は完全にオープンソース化されています。本プロジェクトへの皆様のご参加をお待ちしています。Java V3 SDK の一般提供は近日中に開始される予定です。

Java 用変更フィード プロセッサ

Azure Cosmos DB の機能の中でも特に人気の高い変更フィードを使用すると、お客様は Cosmos コンテナー内のデータに対する変更をプログラムによって監視できます。変更フィードは、リアクティブ プログラミング、分析、イベント ストア、サーバーレスなど、多数のアプリケーション パターンで使用されています。今回、Java 用変更フィード プロセッサ ライブラリが発表されました。これにより、変更フィードを基盤として分散型マイクロサービス アーキテクチャを構築し、主要なプログラミング言語を使用して動的にスケーリングすることができます。

クロス プラットフォーム Table .NET Standard SDK の一般提供

先日、クロス プラットフォーム Table .NET Standard SDK バージョン 1.0.1 の一般提供が開始されました。この単一の統合クロス プラットフォーム SDK は、Azure Cosmos DB Table API と Azure Storage Table サービスの両方に対応します。これにより、Azure のお客様は、Windows 上で .NET Framework アプリを使用するか、複数のプラットフォーム上で .NET Core アプリを使用して、Cosmos Table または Azure Storage Table のいずれかとして Table サービスを操作できるようになります。今回は開発エクスペリエンスを強化するため、不要なバイナリ依存関係を削除すると同時に、最新の HttpClient、DelegatingHandler ベースの拡張性、最新の非同期パターンなど、REST プロトコルから Table API を呼び出す場合の機能強化を維持しています。この SDK は、クロス プラットフォームの Azure PowerShell で引き続き Table API コマンドレットを利用するために使用することもできます。

Cosmos 開発者向けのその他の機能強化

Azure Resource Manager のデータベース、コンテナー、その他のリソースに対する ARM のサポート

Azure Cosmos DB では、Azure Resource Manager のデータベース、コンテナー、オファーがサポートされました。これにより、Azure Resource Manager テンプレートまたは PowerShell を使用して、データベースやコンテナーをプロビジョニングしたり、スループットを設定したりできます。このサポートは、SQL (Core)、MongoDB、Cassandra、Gremlin、Table を含むすべての API で提供されます。この機能を使用すると、Azure Cosmos DB のデータベースやコンテナーの設定を作成、削除、変更するカスタムの RBAC ロールを作成することもできます。詳細と利用開始方法については、Azure Cosmos DB の Azure Resource Manager テンプレートに関するドキュメントをご覧ください。

Azure Cosmos DB のカスタム ロールおよびポリシー

Azure Cosmos DB では、カスタム ロールおよびポリシーがサポートされています。今回、Azure Cosmos DB オペレーター ロールの一般提供が開始されました。このロールにより、データ アクセスを許可することなく Azure Cosmos DB の Azure Resource Manager リソースを管理する権限を付与できます。このロールは、Azure Cosmos DB (アカウント、データベース、コンテナーを含む) のデプロイ操作を管理するために、お客様が Azure Active Directory サービス プリンシパルへのアクセスを許可する必要があるシナリオを想定しています。詳細については、Azure Cosmos DB のカスタム ロールおよびポリシーのサポートに関するドキュメントをご覧ください。

Cosmos アカウントの単一リージョンの書き込みから複数リージョンの書き込みへのアップグレード

お客様からは、単一の書き込みリージョン (シングルマスター) を構成した既存の Cosmos アカウントを複数の書き込みリージョン (マルチマスター) にアップグレードする機能を望む声が多く寄せられていました。本日より、既存のアカウントをすべてのリージョンから書き込み可能にすることができます。この操作は、Azure Portal または Azure CLI を使用して実行できます。アップグレードは完全にシームレスで実行され、ダウンタイムは発生しません。このアップグレードを実行する方法の詳細については、こちらのドキュメントをご覧ください。

固定コンテナーから無制限のコンテナーへの自動アップグレード

Azure Cosmos DB サービスの、既存のすべての Azure Cosmos 固定コンテナー (コレクション、テーブル、グラフ) が自動的にアップグレードされ、無制限のスケーリングとストレージを利用できるようになりました。既存の固定コンテナーを無制限のコンテナーにスケーリングする方法の詳細については、こちらのドキュメントをご覧ください。

Azure Cosmos Explorer での Azure AD のサポート

Azure Cosmos DB エミュレーターと Azure Storage Explorer の機能により、柔軟な Cosmos Explorer エクスペリエンスを利用して Azure Portal 内のデータを操作できます。開発者が Azure Portal にアクセスできない場合や、全画面表示のエクスペリエンスが必要な場合には、「全画面表示」にすることも可能です。今回、https://cosmos.azure.com に Azure Active Directory のサポートが追加されました。開発者は Azure 資格情報を使用して直接認証を行い、全画面表示のエクスペリエンスを利用することができます。

Azure Portal とツールの機能強化

お客様が Azure Cosmos DB のアプリのキャパシティを正確にプロビジョニングしてコストを最適化できるように、Azure Portal と Azure Advisor に組み込みのコストに関する推奨事項が追加されたほか、Azure 料金計算ツールが更新されました。

Azure Cosmos DB を開発にご活用いただければ幸いです。

Azure Cosmos DB

Azure Cosmos DB は、マイクロソフトが提供するミッションクリティカルなワークロード向けのグローバル分散型マルチモデル データベース サービスです。Azure Cosmos DB では、ターンキー方式のグローバル分散、エンドポイントの無制限のスケーラビリティ、複数のレベル (データベース/キースペース、テーブル/コレクション/グラフなど) でのスループットの弾力的なスケーリング、世界規模のストレージ、99 パーセンタイルで 10 ミリ秒未満の読み取り/書き込みの待ち時間、明確に定義された 5 つの整合性モデル、高可用性の保証のすべてが、業界最高レベルの包括的な SLA によってサポートされています。

 

cosmosdb