DocumentDB SDK でパーティション分割をサポート
このポストは、4 月 30 日に投稿された Announcing partitioning support in the DocumentDB SDK の翻訳です。
マイクロソフトは、.NET SDK に新しい機能を追加したことを発表しました。この機能によって、アプリケーション データのパーティション分割機能を Azure DocumentDB を使用して簡単に開発できるようになりました。
DocumentDB サービスのプレビュー期間中、私たちは開発者の皆様が個別の値やタイムスタンプの範囲のルックアップ テーブルを使用したり、オブジェクト ID を一貫してハッシュ化するなどさまざまな種類の類似のデータ アクセス層を実装してコレクション全体のデータをパーティション分割していたのを目にしました。これについて、皆様から「SDK でボイラープレートのパーティション分割タスクを実行するヘルパー クラスやヘルパー メソッドを追加すれば、大規模な DocumentDB アプリケーションの開発を簡略化できるのではないか」という明快なご指摘をいただきました。
そこで、SDK 内でパーティション分割をサポートするために、以下の機能を追加しました。
- DocumentClient (英語) を使用して、各データベースに対して IPartitionResolver (英語)の作成と登録を行えるようにしました。これにより、ドキュメントをどのようにパーティション分割するかを定義します。IPartitionResolver を登録すると、作成、フィードの読み取り、クエリなどのドキュメント操作をデータベースに対して直接実行できます。ドキュメント操作は、適切なコレクションに自動的にルーティングされます。
- よく使用される HashPartitionResolver (英語) と RangePartitionResolver (英語) の 2 種類のパーティション分割手法を標準でサポートすることにしました。これにより、このようなパーティション分割をデータ モデルやアクセス パターンに基づいて構成、拡張したり、自作の IPartitionResolver (英語) をゼロから構築して実装することができます。
パーティション分割のチュートリアルは、こちらのページ (英語) で詳細をご確認いただけます。ご利用を開始するには NuGet (英語) から .NET SDK バージョン 1.1.0 をダウンロードしてください。また、Github プロジェクト (英語) もご用意しました。これには、上記の新しいクラスを使用または拡張して、独自のシナリオに適合するカスタマイズされたパーティション分割ロジックを実装する方法のサンプルが含まれています。
サポートが必要な場合は、MSDN の Azure DocumentDB 開発者フォーラム (英語) または Stack Overflow の開発者フォーラム (英語) までご質問をお寄せください。また、お客様からのフィードバックを受けて、他の SDK でもパーティション分割をサポートする計画を進めています。.NET SDK にさらに追加したいパーティション分割機能がある場合や、パーティション分割のサポートを追加したい SDK がある場合は、Azure Feedback フォーラム (英語) までご連絡ください。