DocumentDB データのクエリおよび編集エクスペリエンスを改良

このポストは、6 月 11 日に投稿された Querying and Editing DocumentDB Data Just Got Better の翻訳です。 DocumentDB に関する以下の機能強化により、Azure プレビュー ポータルでのクエリ、ドキュメント、サーバー側プログラミングのエクスペリエンスと効率性が向上しました。 Query Explorer の改良 Document Explorer の改良 Script Explorer の追加   この記事では、これらの新機能と機能強化の詳細について説明します。 Query Explorer の改良 Query Explorer (英語) で複数のクエリの作成や貼り付けが可能になったほか、クエリを選択して強調表示し [Run query] をクリックすると任意のクエリのみ実行できるようになりました。同時に複数のクエリを実行することはできませんのでご注意ください。 また、構文の強調表示機能が拡張され、ARRAY_CONTAINS や CEILING、IS_BOOL などの DocumentDB の組み込み関数がサポートされるようになりました。DocumentDB の組み込み関数の詳細については、こちらのページを参照してください。 このほかにも、ファイルの内容を Query Explorer に読み込めるようになり、保存されているクエリをまとめて簡単に読み込むことができます。 Document Explorer の改良 Document Explorer (英語) でクエリから返される結果の数を指定できるようになりました…


DocumentDB へのデータのインポートがより高速、簡単に

このポストは、6 月 2 日に投稿された Importing Data to DocumentDB Just Got Faster and Easier の翻訳です。 Azure DocumentDB Data Migration Tool は、Azure の NoSQL ドキュメント データベースである DocumentDB にデータをインポートするためのオープン ソース ソリューションです。このツールの最新リリースでは、インポート中にデータを複数のコレクションにパーティション分割することにより、さまざまなソースから大規模なデータをさらに高速にインポートできるようになりました。 また、現在サポートされている CSV ファイルのインポートとインポート エラーのログ記録の機能がさらに強化されました。各データ ソース向けのコマンド ラインのサンプルなど、このツールの使用方法の詳細や新機能の概要については、私が執筆したこちらの記事 (英語) をお読みください。 パーティション分割のサポート DocumentDB Data Migration Tool で、複数の DocumentDB コレクションに対する読み取りと書き込みがサポートされるようになりました。複数のコレクションから読み取る場合は、正規表現を使用して 1 つまたは複数のコレクションを指定します。 インポート時に複数のコレクションにわたってデータをパーティション分割する場合は、既存の複数のコレクション (コレクションを新規作成する場合は、作成時にツールが使用する命名パターン*) と、パーティション キーとして使用するプロパティを指定します。 CSV 形式のサポートの強化 CSV ファイルをインポートする際に、CSV ファイル内の引用符で囲まれていない情報の型をツールが推定します…


DocumentDB の新しいインポート オプション

このポストは、5 月 5 日に投稿された New DocumentDB Import Options の翻訳です。 4 月 8 日に、さまざまなソースから DocumentDB にデータをインポートできるオープン ソース ソリューション、Azure DocumentDB Data Migration Tool がリリースされました。このツールでは主に次のソースからデータをインポートすることができます。 JSON ファイル MongoDB SQL Server CSV ファイル DocumentDB コレクション そして今回、さらに 2 つのインポート オプションがサポートされました。Azure Table Storage と、JSON/CSV/MongoDB の各エクスポート ファイルの URL です。 Azure Table Storage Azure Table Storage から DocumentDB へデータをインポートできるようになりました。接続文字列とテーブル名を指定するだけで、Azure Table のすべてのエントリをインポートできます。また、以下のオプションを利用して、インポート対象のデータを細かく指定することもできます。 [Filter] (フィルター)…


NoSQL データベース サービス「Azure DocumentDB」の一般提供を開始

このポストは、4 月 8 日に投稿された NoSQL database service Azure DocumentDB now Generally Available の翻訳です。 マイクロソフトはこのたび、Azure DocumentDB の一般提供を開始しました。DocumentDB は、アプリケーションでの JSON データの大規模なクエリや処理を可能にする、完全に管理された NoSQL ドキュメント データベース サービスです。一般提供の開始に伴い、DocumentDB は 3 種類の購入オプションから選択できるようになり、それぞれのオプションで予約済みのパフォーマンス、時間単位での課金制度、99.95% の可用性が提供されます。また今回、他のデータベース システムから DocumentDB に既存のデータを簡単に移行できる、オープン ソースの新しいデータ移行ツールもリリースしました。 DocumentDB は、モバイル ファースト、クラウド ファーストのアプリケーション開発に対するニーズが高まっていることを受けて開発されました。NoSQL データベースは多くの開発者の間で人気が高まりつつありますが、こうしたデータベースの運用と管理は、特に大規模な実装の場合、複雑で高コストになることがあります。DocumentDB は、完全に管理されたサービスとしてのデータベース (DBaaS: Database as a Service) の形で提供され、高可用性を備えるほか、インデックス化された JSON における SQL クエリや複数ドキュメントのトランザクション処理に対応しています。 昨年に DocumentDB のプレビュー版をリリースして以来、マイクロソフトはお客様が新しいアプリケーション エクスペリエンスを生み出せるよう、信頼性と拡張性に優れたサービスの実現に重きを置いてきました。デザインから印刷までを提供するソリューションの業界リーダーである SGS International (英語) は、DocumentDB…


Azure DocumentDB の提供地域をアジアと米国で拡大、アカウント単位の制限も緩和

このポストは、2 月 3 日に投稿された Azure DocumentDB – New Asia, US regions, and increased account limits の翻訳です。 マイクロソフトでは Azure DocumentDB の機能拡張に積極的に取り組んでおり、今回、下記の変更を実施しました。   提供地域の拡大: DocumentDB をご利用いただけるリージョンの数が 2 倍に増加しました。 アカウントとドキュメントの制限緩和: 1 アカウントあたりの能力単位数が増え、またドキュメントのサイズの上限もこれまでの 2 倍に引き上げられました。   新しい提供地域 新たに東アジア、東南アジア、および米国東部の各 Azure リージョンで DocumentDB をプロビジョニングできるようになりました (これまでは米国西部、北ヨーロッパ、西ヨーロッパでの提供でした)。今後も引き続き提供地域の拡大に努め、DocumentDB のデータの格納先の選択肢を広げ、柔軟性を高めてまいります。DocumentDB の利用を希望される Azure リージョンがありましたら、Microsoft Azure DocumentDB のフォーラム (英語) までお寄せください。   アカウントとドキュメントの制限緩和 今回、ドキュメントの最大サイズが再度引き上げられ、256 KB から 512 KB…


DocumentDB で SQL のパラメーター化が可能に

このポストは、1 月 14 日に投稿された Announcing SQL Parameterization in DocumentDB の翻訳です。 このたび、Azure DocumentDB の REST API と SDK において、パラメーター化された SQL クエリがサポートされました。この機能により、ユーザーはパラメーター化された SQL クエリを利用できるようになります。SQL をパラメーター化すると、処理の信頼性が向上すると共にユーザーによる入力が不要になるため、「SQL インジェクション」による意図しないデータ漏洩を予防することができます*。 では、.NET SDK を使用したサンプルを見ていきましょう。単純な SQL 文字列と LINQ 式のほかに、新しい SqlQuerySpec クラスを付け加えています。このクラスを使用してパラメーター化されたクエリを作成します。 次のサンプルは、ユーザー指定のパラメーターが 1 つ存在する、“Books” コレクションに対するクエリのサンプルです。パラメーターで著者名を指定しています。 IQueryable queryable = client.CreateDocumentQuery( collectionSelfLink, new SqlQuerySpec { QueryText = “SELECT * FROM books b WHERE (b.Author.Name =…


Azure DocumentDB Java SDK の概要

このポストは、1 月 6 日に投稿された Introducing the Azure DocumentDB Java SDK の翻訳です。 マイクロソフトはこのたび、Azure DocumentDB Java SDK をリリースしました。この Java SDK により、さまざまな DocumentDB リソースの作成、読み取り、更新、削除を簡単に行えるようになると共に、詳細な構成設定の管理が可能になります。 ソース コードはすべて Github (英語) からダウンロードできます。 git clone git://github.com/Azure/azure-documentdb-java.git Azure Documentdb Java SDK は完全なオープンソースです。皆様のご協力を心よりお待ちしております。 Azure プロジェクトへの参加に関するガイドライン (英語) に記載された説明をご参照ください。 また、Maven を使用して、プロジェクトにすぐに使用できる最新のバイナリを入手することも可能です。 <dependency> <groupId>com.microsoft.azure</groupId> <artifactId>azure-documentdb</artifactId> <version>0.9.0</version> </dependency> マイクロソフトが提供する DocumentDB は、クラウド内で完全に管理された NoSQL ドキュメント データベース サービスです。詳細は、こちらをご覧ください。 なお、DocumentDB を使用して Java…


Azure DocumentDB においてマルチテナント アプリケーションの規模を拡大する

このポストは、12 月 3 日に投稿された Scaling a Multi-Tenant Application with Azure DocumentDB の翻訳です。 テナント配置と負荷分散のベスト プラクティス はじめに 「Azure DocumentDB 上にどのようにマルチテナント アプリケーションを設計すればよいのか」という質問をよく受けます。これには多くの答えがありますが、最適な答えがどれかはそれぞれのアプリケーションのシナリオによって異なります。 大まかに言うと、テナントの規模に応じて、データベース単位で分割するか、コレクション単位で分割するかを選択します。テナント データが比較的小さく、テナント数が比較的多い場合は、アプリケーションに必要な全体のリソースを少なくするために、同一のコレクション内に複数のテナントのデータを保管することをお勧めします。テナントはドキュメントのプロパティで識別でき、テナント固有のデータはフィルター クエリを発行して取得できます。DocumentDB のユーザーとアクセス許可 (英語) を使用して、テナント データを分離したり、承認キーを通じてリソースレベルでアクセスを制限したりすることもできます。 テナントが比較的大きい場合や、専用のリソースを必要とする場合、またはさらなる分離が必要な場合は、各テナントに専用のコレクションまたはデータベースを割り当てることができます。いずれの場合も、アプリケーションのデータ ストアを拡大する際の面倒な処理の大部分は DocumentDB によって自動で行われます。 この記事では、アプリケーションの要件に合わせて優れた設計を行うための考え方と戦略を説明します。 コレクションとは データのパーティション分割について深く踏み込む前に、コレクションとは何か、何がほかと違うのかを理解しておくことが重要です。 既にご存知かもしれませんが、コレクションは、JSON ドキュメントのコンテナーです。コレクションは、DocumentDB でクエリおよびトランザクションを実行するうえでのパーティションの単位および境界でもあります。各コレクションは、予約されている量のスループットを提供します。アプリケーションを拡大するには、ストレージとスループットのどちらを拡大する場合も、コレクションを追加してそれらにドキュメントを分散します。 まず、必ず理解していただきたいのは、コレクションはテーブルではないという点です。コレクションはスキーマを強制しません。つまり、異なるスキーマを持つさまざまな種類のドキュメントを同じコレクションに保管できます。種類の異なるエンティティも、ドキュメントに「type」属性を追加するだけで管理できます。 他のドキュメント データベースとは異なり、規模の拡大やパフォーマンス向上のために多数のコレクションを持ってもまったく問題ありません。ただし、コスト削減のためにコレクションを再利用するほうがよいでしょう。 DocumentDB によるシャーディング DocumentDB アプリケーションは、データを水平方向にパーティション分割することで、ストレージとスループットの両面においてほぼ無限に拡大できます。この考え方は、一般的にシャーディングと呼ばれます。 シャーディングは、大規模な Web アプリケーションで高いスケーラビリティを実現するための標準的なアプリケーション パターンです。トランザクション処理のメリットを利用するアプリケーションでは、キーに基づいてデータを慎重に分割する必要があり、各パーティションはトランザクション ドメイン (つまり、コレクション) に収まるように十分に小さくなければなりません。シャーディングされたアプリケーションは、データが複数のパーティションまたはトランザクション ドメインにわたって分散されていることを認識する必要があり、シャード キーに基づいてパーティションを選択し、そのパーティションとやり取りするためのロジックも必要となります。  複数のデータベースおよびコレクションにシャーディングされた DocumentDB アプリケーション…


Azure DocumentDB での日付の処理

このポストは、11 月 19 日に投稿された Working with Dates in Azure DocumentDB の翻訳です。 JSON (www.json.org) は、人間にとって解読、記述しやすく、機械にとっても解析、生成しやすい軽量のデータ交換形式です。JSON は DocumentDB の中核となるものであり、データの転送には JSON が使用されます。JSON は JSON として格納され、JSON ツリーにインデックスを作成することで JSON ドキュメント全体に対するクエリを実行できます。JSON は製品に後付けされたものではなく、サービスの根幹を成すものです。 そのため、DocumentDB によってネイティブにサポートされているデータ型 (文字列、数値、ブール値、配列、オブジェクト、Null) が JSON と同じであるのも当然だと言えます。 .NET 開発者は、使い慣れた一部の型が含まれていないことにお気付きでしょう。おそらく、特筆すべきなのは .NET DateTime 型です。DocumentDB で DateTime 型がネイティブにサポートされていないのなら、DateTime 型についてどのように格納、取得、クエリで使用するのでしょうか。 この記事では、その方法についてご説明します。 サンプルとして、以下の POCO オブジェクトを使用することにします。 public class Order{    [JsonProperty(PropertyName=”id”)]    public string OrderNumber { get; set;…


Azure DocumentDB – ドキュメントの一括追加とクエリ構文の強調表示

このポストは、11 月 12 日に投稿された Azure DocumentDB – Bulk Add Documents and Query Syntax Highlighting の翻訳です。 Azure DocumentDB は、完全に管理された NoSQL ドキュメント データベース サービスです。このほど、この DocumentDB の管理エクスペリエンスを改善するすばらしい機能がリリースされました。新しい Azure ポータル (https://portal.azure.com) には、次の機能が追加されています。 ドキュメントの一括追加 – Document Explorer を使用して、既存の複数の JSON ドキュメントをアップロードします。 クエリ構文の強調表示 – Query Explorer でキーワードと値を強調表示します。 クエリ エクスペリエンスの向上 – Results ブレードを閉じなくても、クエリを編集し、再実行することができます。 これらの新機能については追加情報をお読みになるか、実際に DocumentDB をお試しください。 ドキュメントの追加 Document Explorer を使用すると、JSON ドキュメントを簡単に作成、編集、削除することができます。DocumentDB の Account、Database、Collection…