This is the Trace Id: 080fa9ab98dfacd660fe89b2c3152e1b
メイン コンテンツへスキップ 詳細はこちら すべての製品を表示 (200 以上) Microsoft Foundry Azure Copilot GitHub Copilot Azure Kubernetes Service (AKS) Azure Cosmos DB Azure Database for PostgreSQL Azure Arc Microsoft Fabric Azure での Linux virtual machines Foundry Models Foundry Agent Service Foundry IQ Foundry Tools Foundry Control Plane Foundry Control Plane の監視 Azure OpenAI in Foundry Models Foundry Tools での Azure 音声 Azure Machine Learning すべてのデータベースを表示 Azure Cosmos DB Azure DocumentDB Azure SQL Azure Database for PostgreSQL Azure マネージド再配布 Microsoft Fabric Azure Databricks Azure での Linux virtual machines Windows Server on Azure Azure Functions Azure Virtual Machine Scale Sets Azure API Management Azure Container Apps Azure Kubernetes Service (AKS) Azure Kubernetes Fleet Manager Azure Container Registry Azure Red Hat OpenShift Azure Container Instances Azure コンテナー ストレージ Azure Arc Azure Local Microsoft Defender for Cloud Azure Monitor Microsoft Sentinel Azure Migrate すべてのソリューションを表示 (40 以上) 中小規模企業のための使いやすいソリューション クラウド移行およびモダン化センター AI 向けデータ分析 Azure データベース AI アプリとエージェント Microsoft Marketplace Microsoft Sovereign Cloud AI アプリとエージェント Azure を利用した責任ある AI AI インフラストラクチャ AI 向けデータ分析 機械学習の運用 (MLOps) Azure でのロー コード アプリケーション開発 統合サービス サーバーレス コンピューティング DevOps 移行とモダン化センター .NET アプリ移行 Azure 上のデータベース Linux on Azure Oracle on Azure SAP on Microsoft Cloud 適応型クラウド ハイパフォーマンス コンピューティング (HPC) サービスとしてのインフラストラクチャ (IaaS) 回復性 Azure Essentials Frontier Accelerate for Azure FinOps on Azure Microsoft Marketplace Azure 価格の概要 Azure アカウントを作成する 無料の Azure サービス 柔軟な購入のオプション 料金計算ツール FinOps on Azure AI で ROI を最大化する Azure 節約プラン Azure 予約 Azure ハイブリッド特典 Virtual Machines Azure SQL Microsoft Foundry Microsoft Fabric Azure Kubernetes Service (AKS) Microsoft Defender for Cloud 詳細を見る ソフトウェア開発企業 Microsoft Marketplace パートナーを見つける Azure パートナー向けリソース Azure の利用を開始する お客様導入事例 アナリスト レポート、ホワイト ペーパー、e-Book ビデオ クラウド コンピューティングについての詳細情報 ドキュメント Azure portal の詳細 開発者向けリソース クイックスタート テンプレート スタートアップ企業向けリソース 開発者コミュニティ 学生 パートナー向け Azure ブログ イベントとウェビナー 学ぶ サポート 営業に問い合わせる Azure の利用を開始する サインイン

データベース シャーディングとは?

データベース シャーディングは、グローバルな分散システム間でソリューションのパフォーマンスと可用性を向上させる水平スケーリングの方法です。

データベース シャーディングを定義する

データベース シャーディングとは、大規模なデータベースをシャードと呼ばれる、より小さく管理しやすいセグメントに分割するプロセスを指します。アプリケーションとシステムがパフォーマンスや可用性に影響を与えることなく、増加するデータとユーザー ボリュームを処理できるように、水平方向のスケーリングがサポートします。組織はシャーディング戦略を使用して、現代のクラウド環境でのデータベースのスケーリングに関連するストレージの制約やその他の課題を克服できます。

  • データベース シャーディングは、共有なしアーキテクチャ (SNA) で実行される独立したシャードにデータベースを分割する水平スケーリングの方法として定義されます。
  • データはシャード キーを使用してシャードに分割され、アプリケーションは要求を適切なシャードにルーティングできます。
  • データは通常、数値、ハッシュ関数、検索ディレクトリ、または地理的な場所を使用してシャード間で分割されます。
  • データベース シャーディングの利点には、クエリ パフォーマンスの向上、水平スケーラビリティのサポート、フォールト トレランスの向上があります。
  • シャーディングのユース ケースには、銀行、eコマース、ソーシャル メディア プラットフォームが含まれます。これらは、多くの場合、データやユーザーの急増に対処する必要があります。

データベース シャーディングのしくみは?

データベース シャーディングは、シャードと呼ばれる小さな独立した部分に分割することで、大規模なデータベースを水平方向にスケーリングするために使用される手法です。各シャードは、同じスキーマを維持しながら、データ全体の個別のサブセットを含む個別のデータベースとして動作します。これにより、シャードは別々のサーバーで実行されていても、まとめて 1 つの論理データベースを形成できます。

データベース シャーディングは、共有なしアーキテクチャ (SNA) に従います。これは分散コンピューティング モデルであり、各シャードは、処理、メモリ、またはストレージ リソースを他のシャードと共有することなく独自に動作します。

シャード キー (データ内の特定のフィールドまたはフィールドの組み合わせ) によって、各シャードに格納されるデータが決まります。アプリケーションは、データの読み取りまたは書き込みを行う必要がある場合、シャード キーを使用して要求を適切なシャードにルーティングします。

シャーディング戦略

組織は、複数のシャードに分散されたデータをさまざまな方法で管理します。一般的な戦略をいくつか次に示します:

  • 範囲ベースまたは動的シャーディング: データは、シャード キー内の値の範囲で分割されます。たとえば、eコマース データベース内の 1 つのシャードに顧客 ID 番号 1~1,000,000 を割り当て、別のシャードに顧客 ID 番号 1,000,001~ 2,000,000 を割り当てることができます。この方法は範囲クエリに対して効率的ですが、特定の範囲にアクセスする頻度が高い場合、分布が不均等になる可能性があります。
  • ハッシュ ベースのシャーディング:データは、ハッシュ関数と呼ばれる数式を各シャード キーに適用することで、シャード間で均等に分散されます。この方法は、オーバーロードを防ぐのに役立ちますが、関連するデータを複数のシャードに分散させ、範囲クエリの効率を低下させる可能性があります。
  • ディレクトリベースまたは検索ベースのシャーディング: シャード マップが、どのシャード キーがどのデータに対応するかを示します。この戦略では、必要に応じてシャード キーをすばやく追加できる柔軟性が提供されますが、複雑さと潜在的なオーバーヘッドが増加します。
  • 地理的シャーディング: データは地理的な場所に基づいてパーティション分割されるため、リージョンごとのユーザーの待機時間が短縮され、データ所在地の要件がサポートされます。多くのプラットフォームでは、回復性を高めるために、地理的シャーディングとデータベース レプリケーションを組み合わせています。

データベースについての詳細情報。

データベース シャーディングの主な利点は何ですか?

データベース シャーディングでは、シャード キーとシャーディング戦略、およびクエリ ルーティングの最適化を慎重に選択する必要があります。データベース シャーディングの主な利点を次に示します:

  • クエリパフォーマンスの向上: 複数のシャードにデータを分散することで、データベースは各クエリの実行に必要なデータセットをより迅速に取得できます。これにより、応答時間が短縮されます。
  • 水平方向のスケーラビリティのサポート: 単一のサーバーでリソース容量をスケールアップするのではなく、組織はスケールアウトしてシャード (およびサーバー) を追加することで、増大するデータとワークロードのボリュームに対応できます。スケールアップとスケールアウトの詳細情報。
  • フォールト トレランスの強化: シャーディングでは SNA アプローチが採用されているため、各シャードは他のシャードから分離されます。1 つのシャードに問題が発生しても、他のシャードには影響しないため、システムの信頼性が向上します。シャード間のデータ レプリケーションにより、可用性がさらに保護されます。
  • コスト効率の向上: 多くの場合、データ シャードは、高価なハイエンド サーバーを必要とする大規模なデータベースよりもハードウェアとソフトウェアの要件が少なくなります。

AI ワークロードの最適化支援: 複雑なモノリシック データベースは、AI によるデータへのアクセス、予測の作成、時間の経過と共に学習する能力を低下させる可能性があります。シャーディングは、AI がより効果的に機能できる分散型でデータが豊富な環境の作成をサポートします。

データベース シャーディングの業界固有の例

データベース シャーディングは、データやユーザー トラフィックの急増や予測不可能なスパイクが発生するクラウドベースのソリューションで特に有効です。次のユース ケースでは、シャーディングをさまざまな業界に適用する方法を示します:

  • eコマース: 小売プラットフォームでは、顧客と注文データがシャードに分割され、ピーク時の製品検索とスムーズなチェックアウト エクスペリエンスを確保します。
  • 金融サービス: 銀行取引やその他の金融取引の記録は、日付または口座番号で分割され、効率的なクエリと、安全でスケーラブルなストレージが可能になります。
  • オンライン ゲーム: プレイヤーまたはセッション データはリージョンとユーザー ID で分割され、シャード間での負荷の分散と、世界中のユーザーの待機時間 (データが目的に到達するために必要な時間) が最小限に抑えられます。
  • ソーシャル メディア: ソーシャル メディア プラットフォームは、ユーザー プロファイルとアクティビティ フィードのデータをユーザー ID または時間の範囲で分割します。このアプローチにより、プラットフォームは最近の投稿に迅速にクエリを実行し、数百万人の同時ユーザーをサポートできます。
  • サービスとしてのソフトウェア (SaaS): 複数のテナントを持つ SaaS アプリは、一般的にテナント ID でデータを分割します。これにより、顧客データが分離され、ユーザー ベースの拡大に伴う管理が簡素化されます。または、テナントのワークロードまたは地理的な場所で分割することもできます。

ビッグ データ分析のしくみについて説明します。

データベース シャーディングの未来

複数の独立したサーバーにデータを分散することで、シャーディングは単一サーバーの負荷を軽減し、ボトルネックを最小限に抑え、システムの可用性と応答性を向上させます。最新のクラウド環境でデータベース シャーディングを使用する利点は、AI やその他の関連テクノロジが進化し続けるにつれて増す一方です。

注目すべき傾向は次のとおりです:

AI 支援のシャーディング ワークフロー

自動化されたシャード キーの選択、ワークロードの再調整、クエリ ルーティングなどのインテリジェントな機能が、より主流になります。

利点: シンプルで最適化された運用と、かつてないスケーラビリティ

ゼロ ダウンタイム リシャーディング

最新のデータ プラットフォームでは、データのダウンタイムや複雑なデータ移行を必要としないシャード キーの変更がますますサポートされるようになります。

利点: ワークロードの変化に応じたシャーディング戦略の更新に関する柔軟性の向上

シャーディングとサーバーレス データベースの組み合わせ

サーバーレス データベースは、シャードごとに個別にサーバーをプロビジョニングおよび管理します。また、イベントドリブン クエリに基づいて、オンデマンドで容量をスケールアップまたはスケールダウンします。

利点: 運用オーバーヘッドの軽減

適応型ポリシー駆動の地理的シャーディング

自動化されたシャーディング ワークフローでは、コードに埋め込まれた地域固有のポリシー ルールに基づいて、地理的シャード間でデータが自動的にルーティングされます。利点: 規制要件やプライバシー要件の変化への迅速な対応

クラウド コンピューティングについての詳細をご確認ください。

よくあるご質問

  • データベース シャーディングは、複数のサーバー間で大規模なデータベースを水平方向にスケーリングするプロセスであり、それぞれがデータ全体の個別のサブセットを持つシャードをホストします。シャーディングは、単一の大規模なサーバーに依存するのではなく、クエリとストレージを複数のマシンに分散することで、増大するデータ ボリュームとユーザー トラフィックを効率的に処理するために使用されます。
  • シャーディングとパーティション分割の両方は、大規模なデータベースをより小さなサブセットに分割することで、データベースの運用を最適化します。ただし、パーティション分割は同じサーバー上でデータを分割するのに対して、シャーディングは複数のサーバーにデータを分散します。レプリケーションとは、冗長性を確保するために、複数のサーバーに同じデータセットの複数のコピーを保持することを指します。 
  • はい。データベース シャーディングにより、アプリケーションのパフォーマンスとスケーラビリティが向上します。シャード間でデータとワークロードを分散することで、シャーディングはクエリの応答時間を短縮し、フォールト トレランスが向上します。組織はアプリを水平方向にスケーリングすることもできます。シャード キーとシャード戦略の選択は、データ シャーディングの最適化に不可欠です。
  • はい。Azure やその他のクラウド プラットフォームでは、データベース シャーディングの組み込みサポートが提供されています。たとえば、Azure SQL Database には、シャードの作成と管理を簡略化するクライアント ライブラリなど、データベースのスケーリングを最適化するためのツールがいくつか用意されています。
日本語 (日本) コンシューマーの正常性のプライバシー Microsoft に問い合わせ プライバシー 特定商取引法に基づく表示 Cookie の管理 使用条件 商標 広告について