8月に、Microsoft Azureで多数の新しいもの( prooflink )を開始しました。当然のことながら、聴衆にとって最も興味深いものの1つはDocumentDBと呼ばれるDocument NoSQL Databaseサービスでした。 時間が来て、私たちはそれについて書き始めます-いつものように、最初の記事は紹介です。
- これは何ですか 基本的な概念。
- アカウントを作成するには?
Azure DocumentDBとは何ですか?
現代の世界では、アプリケーションは常に大量のデータを生成しますが、常に消費するわけではありません。 アプリケーションなどのデータは時間の経過とともに模倣され、データスキームはそれに伴って変化します。これにより、スキーマフリーのNoSQLデータベースはそのようなシナリオに適しているという考えに定期的につながります。 ただし、これらのテクノロジーの多くでは、トランザクションに影響を与える複雑なクエリやプロセスを実行できないため、重要なモデルの管理が複雑になります。
Microsoft Azure DocumentDBは、Webおよびモバイルデバイス上のアプリケーション向けに特別に設計されたドキュメント指向のNoSQLデータベースです。高速な読み取りおよび書き込み操作が保証され、スキームの柔軟性があり、データベースを迅速に拡大および縮小できます。 DocumentDBには、SQLダイアレクト、JavaScriptサポート、多くのドキュメントでのトランザクション処理などを含む複雑なクエリもあります。 デフォルトでは、DocumentDBはJSONスキーマ操作をサポートし、JavaScriptの深い統合により、トランザクションを考慮してエンジン内でビジネスロジックを実行できます。
Azure DocumentDBは次のとおりです。
- SQL構文を使用したクエリ:DocumentDB内に異種JSONドキュメントを保存し、それらのクエリを実行します。
- ドキュメントコンテンツの自動インデックス付けを備えた高度に同時のロックフリーインデックス付けテクノロジ(したがって、スキーマヒント、セカンダリインデックス、またはビューを指定する必要はありません)。
- データベース内のJavaScriptは、ストアドプロシージャ、トリガー、UDFとしてのロジックです。つまり、アプリケーションとデータベーススキーマの間で同期が取れなくなるリスクなしにJSONの上にロジックを配置できます。
- エンジン内のJavaScriptのロジックの本格的なトランザクション実行(孤立したトランザクションとしてのJavaScriptのINSERT、REPLACE、DELETE、SELECT)
- カスタマイズ可能な4つの一貫性レベル-強力、限定的期限切れ、セッション、および最終。
- 完全な管理性:DocumentDBはサービスとして提供されるため、データベースとマシンのリソースを管理する必要はありません。 各データベースは自動的にバックアップされ、地域のエラーから保護されます。
- ストレージと帯域幅の単位を簡単に拡張できます。
Azure DocumentDBリソース
Azure DocumentDBでは、データは複製され、URIによってアドレス指定されます-すべてのリソースに対して単純なRESTfulアクセスが設定されます。 データベースのアカウントがあり、それは一意のグローバル名前空間です。 スペース内のすべてのリソースは、メタデータと物のコレクションとともにJSONドキュメントに保存されます。 この図は、DocumentDBリソース間の関係を示しています。
アカウントはデータベースのパックで構成され、各パックは複数のコレクションで構成され、各コレクションにはストアドプロシージャ、トリガー、UDF、ドキュメント、および関連する添付ファイルが含まれます。 データベースへの特定の権限を持つユーザーを割り当てて、コレクション、ストアドプロシージャ、トリガー、UDF、ドキュメントなどにアクセスできます。
Azure DocumentDBを使用した開発
Azure DocumentDBはREST APIを使用してリソースで操作を公開するため、HTTP / HTTPSが可能な任意の言語でリクエストを実行できます。 DocumentDBでの作業を簡素化するいくつかの言語用の特別なライブラリがあります。
JavaScriptトランザクションと実行
既に書かれているように、Azure DocumentDBではJavaScriptの形式でロジックを記述でき、「プログラム」がコレクションに登録され、これらのコレクション内のドキュメントに対する操作をサポートします。 JS上のアプリケーションは、トリガー、ストアドプロシージャ、UDFの実行用に登録できます。トリガーとストアドプロシージャはCRUDできますが、UDFには書き込みアクセス権がありません。 すべてのJSロジックは、スナップショット分離を備えたアンビエントACIDトランザクション内で実行され、JSロジックはT-SQLの最新の代替と見なされます。 実行中にJSが例外をスローすると、トランザクション全体がロールバックされます。
例を見てみましょう! MSN.com MSNは、月に5億人のユーザーを訪問する巨大なポータルです。 したがって、無料の回線を備えた大規模でスケーラブルな分散ストレージが必要です。 ある時点で、開発チームはすべてをAzureに転送し、次の要件を備えた統合分散ユーザーデータストアストレージシステムを作成することを決定しました。
- 最大4億2,500万のユニークユーザーにスケーリング+ 1億人のユーザーが既にシステムで認証済み
- 20テラバイトのストレージ
- 録音レイテンシー-最大15ミリ秒
- 固定回路の欠如
- 取引サポート
- データ上でのHadoop分析
- 地理的分布と可用性
選択はAzure DocumentDBで決まりました。 システムの一部であるHealth and Fitnessは、次のコンポーネントで構成されています。
- Diet Tracker :毎日の食事の監視-各エントリには、カロリー、脂肪、タンパク質などに関するデータが含まれています。
- エクササイズトラッカー :エクササイズモニタリング。
- GPS Tracker :GPS追跡。 何が起こっているかに関するメタデータは、DocumentDBに保存されます。
- 歩数計 :手順。
- 体重トラッカー 。 重量。
- 分析 :食事、運動、GPSなどの履歴データ
- お気に入り と カスタム :お気に入りの食べ物、運動、メタデータなどのブックマーク
新しいMSNポータルは、SSDと3つの地理的地域で150ユニットの帯域幅を持つユーザーデータをDocumentDBに保存します。
ドキュメントのサイズは1から10キロバイトまでさまざまで、一般的なスキームはありません。 ほとんどのコレクションは、最適なスループット値と最小のインデックス作成オーバーヘッドを提供するように調整されています。
UDSはユーザー情報をコレクションに配布し、各ユーザーのデータはドキュメントに保存されます。 このプロセスでは、ユーザーIDによる水平スケーリングと分散が発生します。
DocumentDBアカウントを作成します
新しい Microsoft Azure 管理ポータルに移動します
[新規]-> [DocumentDBアカウント]をクリックします。
または、「データ、ストレージ、+バックアップ」カテゴリに移動し、DocumentDBandを選択して同じことを実行できます。
[新しいDocumentDB(プレビュー)]で、目的の構成を選択します。
[名前]に名前を入力します-アカウント(ホスト)のアドレス指定に使用されます。 機能がプレビューにあり、利用できる支払いモードは1つだけなので(価格についてはこちら ) 、価格帯をまだ設定できません。 オプションの設定では、アカウントに割り当てられる容量を指定できます-ユニットで測定、追加または削除してソリューションを迅速にスケーリングできます(ユニットはストレージと帯域幅の加重量で構成され、デフォルトではアカウントに1ユニットが設定されます) パフォーマンスと帯域幅の詳細については、 こちらをご覧ください 。
アカウントの作成には数分かかります。
アカウントが作成され、使用する準備ができました。 デフォルトの一貫性モードはセッションで設定されます。
[参照]ウィンドウでDocumentDBアカウントで何が起こるかを確認できます。
合計-DocumentDBとは何か、サービスの基本概念、使用例、アカウントを作成しました。 次のパートでは、概念と使用について詳しく説明します。
便利なリンク
- Azureを30日間無料でお試しください !
- Microsoft Cloudおよびその他の仮想アカデミーコースを学ぶ
- 無料または試用版のVisual Studioをダウンロードする
- Microsoft Azure Development Center(azurehub.ru) -スクリプト、ガイド、例、サービスおよび開発の選択に関する推奨事項
- Twitter.com/windowsazure_ru-最新のMicrosoft Azureニュース
- FacebookのMicrosoft Azureコミュニティ -専門家、質問
- ユニバーサルWindows 開発者になる