スケーラブルなクラウド データベースの構築Building scalable cloud databases

Azure SQL Database 用のスケーラブルなツールと機能を使用して、データベースのスケール アウトを簡単に実現できます。Scaling out databases can be easily accomplished using scalable tools and features for Azure SQL Database. 具体的には、 Elastic Database クライアント ライブラリ を使用して、スケールアウトされたデータベースを作成および管理できます。In particular, you can use the Elastic Database client library to create and manage scaled-out databases. この機能により、数百から数千もの Azure SQL データベースを使用して、シャード化されたアプリケーションを簡単に開発できます。This feature lets you easily develop sharded applications using hundreds—or even thousands—of Azure SQL databases. エラスティック ジョブ を使用すると、こうしたデータベースを容易に操作できます。Elastic jobs can then be used to help ease management of these databases.

ダウンロードの対象:To download:

ドキュメントDocumentation

  1. Elastic Database ツールの概要Get started with Elastic Database tools
  2. Elastic Database の機能Elastic Database features
  3. シャード マップの管理Shard map management
  4. 既存のデータベースを移行してスケールアウトMigrate existing databases to scale out
  5. データ依存ルーティングData dependent routing
  6. マルチシャード クエリMulti-shard queries
  7. Elastic Database ツールを使用してシャードを追加するAdding a shard using Elastic Database tools
  8. 弾力性データベース ツールと行レベルのセキュリティを使用したマルチテナント アプリケーションMulti-tenant applications with elastic database tools and row-level security
  9. クライアント ライブラリ アプリのアップグレードUpgrade client library apps
  10. エラスティック クエリの概要Elastic queries overview
  11. Elastic Database ツールの用語集Elastic database tools glossary
  12. Entity Framework による Elastic Database クライアント ライブラリElastic Database client library with Entity Framework
  13. Dapper を使用したエラスティック データベース クライアント ライブラリElastic database client library with Dapper
  14. Split-Merge ツールSplit-merge tool
  15. シャード マップ マネージャーのパフォーマンス カウンターPerformance counters for shard map manager
  16. エラスティック データベース ツールに関する FAQFAQ for Elastic database tools

クライアントの機能Client capabilities

" シャーディング " を使用したアプリケーションのスケーリングにより、開発者と管理者の双方に課題が生じます。Scaling out applications using sharding presents challenges for both the developer as well as the administrator. クライアント ライブラリでは、開発者と管理者の両方がスケールアウトされたデータベースを管理できるツールが提供されることで、管理タスクが簡略化されます。The client library simplifies the management tasks by providing tools that let both developers and administrators manage scaled-out databases. 一般的な例では、「シャード」と呼ばれる多数の管理用データベースがあります。In a typical example, there are many databases, known as "shards," to manage. 顧客は同じデータベースに共存し、かつ顧客ごとに 1 つのデータベースが存在します (シングル テナント構成)。Customers are co-located in the same database, and there is one database per customer (a single-tenant scheme). クライアント ライブラリには、次の機能が含まれています。The client library includes these features:

  • シャード マップの管理:「シャード マップ マネージャー」と呼ばれる特別なデータベースが作成されます。Shard Map Management: A special database called the "shard map manager" is created. シャード マップの管理は、アプリケーションでシャードに関するメタデータを管理する機能です。Shard map management is the ability for an application to manage metadata about its shards. 開発者は、この機能を使用して、データベースをシャードとして登録したり、個々のシャーディング キーまたはキー範囲の当該データベースへのマッピングを記述したりできます。さらに、このメタデータを管理して、容量の変更に伴ってデータベースの数および構成を発展させることができます。Developers can use this functionality to register databases as shards, describe mappings of individual sharding keys or key ranges to those databases, and maintain this metadata as the number and composition of databases evolves to reflect capacity changes. Elastic Database クライアント ライブラリがないと、シャーディングを実装するにあたり管理コードの記述に多大な時間を費やすことになります。Without the elastic database client library, you would need to spend a lot of time writing the management code when implementing sharding. 詳細については、「 シャード マップの管理に移動します。For details, see Shard map management.

  • データ依存ルーティング:アプリケーションに要求が送信されるとします。Data dependent routing: Imagine a request coming into the application. アプリケーションでは、要求のシャーディング キー値に基づいて、キーの値に基づく適切なデータベースを特定する必要があります。Based on the sharding key value of the request, the application needs to determine the correct database based on the key value. その後、要求を処理するデータベースへの接続が開かれます。It then opens a connection to the database to process the request. データ依存ルーティングでは、アプリケーションのシャード マップへの単一の簡単な呼び出しで接続を開くことができます。Data dependent routing provides the ability to open connections with a single easy call into the shard map of the application. インフラストラクチャ コードのもう 1 つの領域であるデータ依存ルーティングは、現在、Elastic Database クライアント ライブラリの機能でカバーされるようになりました。Data dependent routing was another area of infrastructure code that is now covered by functionality in the elastic database client library. 詳細については、「 データ依存ルーティング」を参照してください。For details, see Data dependent routing.

  • マルチシャード クエリ (MSQ):マルチシャード クエリ実行は、要求にいくつか (またはすべて) のシャードが含まれる場合に機能します。Multi-shard queries (MSQ): Multi-shard querying works when a request involves several (or all) shards. マルチシャード クエリは、同じ T-SQL コードをすべてのシャードまたはシャードのセットで実行します。A multi-shard query executes the same T-SQL code on all shards or a set of shards. 参加しているシャードからの結果は、UNION ALL セマンティクスを使用して全体的な結果セットにマージされます。The results from the participating shards are merged into an overall result set using UNION ALL semantics. この機能は、クライアント ライブラリを介して公開され、接続管理、スレッド管理、エラー処理、中間結果処理などの多くのタスクを処理します。The functionality as exposed through the client library handles many tasks, including: connection management, thread management, fault handling, and intermediate results processing. MSQ では、最大で数百個のシャードを照会できます。MSQ can query up to hundreds of shards. 詳細については、「 マルチシャード クエリ実行」を参照してください。For details, see Multi-shard querying.

一般に、独自のセマンティクスを持つシャード間操作とは異なり、Elastic Database ツールを使用するお客様は、シャードにローカルな操作を送信するときに完全な T-SQL 機能を取得することを期待できます。In general, customers using elastic database tools can expect to get full T-SQL functionality when submitting shard-local operations as opposed to cross-shard operations that have their own semantics.

次の手順Next steps

その他のリソースAdditional resources

まだ弾力性データベース ツールを使用していない場合は、Not using elastic database tools yet? ファースト ステップ ガイドを参照してください。Check out our Getting Started Guide. 質問がある場合は、SQL Database のフォーラムに投稿してください。機能に関するご要望は、SQL Database に関するフィードバック フォーラムにお寄せください。For questions, please reach out to us on the SQL Database forum and for feature requests, please add them to the SQL Database feedback forum.