サーバーサイド JavaScript で Azure DocumentDB のアプリケーションのパフォーマンスを大幅に向上

このポストは、4 月 23 日に投稿された Boost Your Application’s Performance with Server-Side JavaScript in Azure DocumentDB の翻訳です。 JavaScript を最新の T-SQL として統合 Azure DocumentDB のデータベース エンジン内で JavaScript ロジックのトランザクションをネイティブに実行できることはご存知でしょうか? JavaScript を最新の T-SQL として使用すると、機能豊富で使い慣れたインターフェイスをビジネス ロジックに実装することができます。ロジックはストアド プロシージャ、トリガー、ユーザー定義関数 (UDF) の形で記述することができます。今回は DocumentDB がストアド プロシージャをどのように解釈するかについて説明します。 パフォーマンスの高いバッチ処理とシーケンス処理 ストアド プロシージャの大きなメリットは、複雑なバッチ処理やシーケンス処理を、データの格納場所に近いデータベース エンジン内で直接実行できることです。ストアド プロシージャでは、挿入、更新、削除などの処理をグループ化およびシーケンス化し、まとめて実行します。このため、バッチ処理やシーケンス処理でのネットワーク トラフィックの遅延コストを完全に削減できます。   一連のデータベース処理を実行する場合   ストアド プロシージャで一連の処理を実行する場合 また、ストアド プロシージャの登録時に暗黙的にバイト コード形式にプリコンパイルされるため、呼び出すたびにスクリプトをコンパイルする必要がないというメリットもあります。JSON は Javascript 言語形式のシステムに属し、DocumentDB のストレージの基本単位であるため、JSON ドキュメントをバッファー…

0

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…

0

DocumentDB の一般提供をまもなく開始

このポストは、3 月 5 日に投稿された DocumentDB moving to general availability の翻訳です。 マイクロソフトは、包括的に管理された NoSQL ドキュメント データベース サービスである Azure DocumentDB の一般提供をまもなく開始することを発表 (英語) しました。 現在プレビュー版として公開されており、4 月 8 日に一般提供が開始される予定です。DocumentDB では、煩わしいスキーマの制約やインフラストラクチャ管理の必要なしに、データを保存、クエリ、処理するための新しいアプリケーションを開発することができます。ユーザーのニーズが絶えず変化し、競争が激化する今日において、マイクロソフトはインフラストラクチャよりもアプリケーションを重視したデータベース サービスの提供を目指しています。マネージド サービスとして DocumentDB を利用することで、仮想マシンのプロビジョニング、管理、スケーリングといった高負担の作業が不要になり、データベース アカウントを数分で作成し、必要なリソースをプロビジョニングして、アプリケーションの規模に合ったデータベースのスケーリングを行うことが可能になります。 DocumentDB プレビュー版のリリース以来、お客様と緊密に連携し、このサービスに関する新しいアプリケーションや機能を公開してきました。MSN ではユーザー データの保存に DocumentDB を採用し、Web とモバイルの MSN ユーザーにサービスを提供しています。通信事業者の Telenor 社は DocumentDB の採用 (英語) により、新しい Office 365 プロモーション システムの市場投入までの時間を大幅に短縮しました。 「Azure DocumentDB は私たちの作業に無理なく適合し、スキーマの途中変更も非常に簡単でした。属性やクラスの追加や変更に関しても、バックエンドはまったく問題ありませんでした。」 Telenor 社、モビリティ アーキテクト、Andreas Helland…

0

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 =…

0

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…

0

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

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

0

Azure HDInsight で HBase (NoSQL データベース) の一般提供を開始

このポストは、8 月 25 日に投稿した Azure HDInsight makes HBase (NoSQL database) a GA Feature の翻訳です。 マイクロソフトは 6 月 6 日に Azure HDInsight の HBase をプレビューとしてリリースしたことを発表しました。また 8 月 21 日には、Azure DocumentDB と Azure Search のプレビューと並んで、HBase の一般提供 (英語) を発表しました。Apache HBase は、Apache Hadoop エコシステムを構成する単票形式の NoSQL (「Not only Structured Query Language」、つまり、SQL を使わない) 分散データベース プロジェクトです。 HBase は Hadoop エコシステムにトランザクション機能を提供し、Azure Blobs の大規模なデータセットの迅速なレコード更新や検索を可能にします。分散データベースである…

0

Azure Blobs の NoSQL データベースとして HBase クラスターのプレビュー版が Azure HDInsight に登場

このポストは、6 月 6 日に投稿した Azure HDInsight previewing HBase clusters as a NoSQL database on Azure Blobs の翻訳です。 6 月 3 日に、マイクロソフトは HDInsight の更新を発表し、クエリの実行が 100 倍速くなった Hadoop 2.4 のサポートを開始しました。そしてこのたび、HDInsight の Apache HBase (英語) クラスターのプレビュー版をリリースしました。 HBase は低待機時間 (レイテンシ) の NoSQL データベースで、ビッグ データのオンライン トランザクション処理 (OLTP: Online Transactional Processing) が可能です。HBase は、Azure 環境に統合された、管理されたクラスターとして提供されます。クラスターは Azure の BLOB ストレージに直接データを保存するよう構成されており、待機時間 (レイテンシ) が短縮され、パフォーマンスとコストのバランスを取ることができます。これにより、大規模なデータセットを扱うインタラクティブな Web…

0