最新のソリューションでは、トランザクション、イベント、ドキュメント、テレメトリ、バイナリ資産、分析ファクトなど、さまざまなデータが処理されます。 1 つのデータ ストアがすべてのアクセス パターンを効率的に満たすことはほとんどありません。 ほとんどの運用システムでは 、ポリグロット永続化が採用されています。つまり、複数のストレージ モデルを選択します。 この記事では、Azure で使用できるプライマリ データ ストア モデルの正規の定義を一元化し、特定のサービスを選択する前にモデルの選択を高速化するための比較テーブルを提供します。
データ モデルを選択するには、次の手順に従います。
ポイント読み取り、集計、フルテキスト、類似性、時間枠スキャン、オブジェクト配信などのワークロード アクセス パターンを特定します。
以降のセクションで、パターンをストレージ モデルにマップします。
これらのモデルを実装する Azure サービスのショートリストを作成します。
整合性、待機時間、スケール、ガバナンス、コストなどの評価基準を適用します。
アクセス パターンまたはライフ サイクルが明確に分岐する場合にのみ、モデルを結合します。
このガイドの使用方法
各モデル セクションには、簡潔な定義、一般的なワークロード、データ特性、シナリオ例、代表的な Azure サービスへのリンクが含まれています。 各セクションには、ユース ケースに適した Azure サービスを選択するのに役立つ表も含まれています。 場合によっては、他の記事を使用して、Azure サービス オプションに関するより多くの情報に基づいた選択を行うことができます。 それぞれのモデル セクションでは、これらの記事を参照しています。
2 つの比較表は、セクション間でコンテンツを繰り返すことなくオプションをすばやく評価するのに役立つ非リレーショナル モデルの特徴をまとめたものです。
分類の概要
カテゴリ | 主な目的 | 一般的な Azure サービスの例 |
---|---|---|
リレーショナル (OLTP) | 一貫性のあるトランザクション操作 | Azure SQL Database、Azure Database for PostgreSQL、または Azure Database for MySQL |
ドキュメント、キー値、列ファミリ、グラフなどの非リレーショナル | 柔軟なスキーマまたはリレーションシップ中心のワークロード | Azure Cosmos DB API、Azure Managed Redis、Managed Cassandra、または HBase |
タイム シリーズ | 大規模なタイムスタンプ付きメトリックおよびイベントの取り込み | Azure Data Explorer |
オブジェクトとファイル | 大きなバイナリまたは半構造化ファイル ストレージ | Azure Blob Storage または Azure Data Lake Storage |
検索とインデックス作成 | フルテキストと複数フィールドの関連性、セカンダリ インデックス作成 | Azure AI 検索 |
Vector | セマンティックまたは近似最近傍 (ANN) の類似性 | Azure AI Search または Azure Cosmos DB バリアント |
分析、オンライン分析処理 (OLAP)、超並列処理 (MPP) | 大規模な履歴集計またはビジネス インテリジェンス (BI) | Microsoft Fabric、Azure Synapse Analytics、Azure Data Explorer、Azure Analysis Services、または Azure Databricks |
注
1 つのサービスで複数のモデル ( マルチモデルとも呼ばれます) が提供される場合があります。 操作を複雑にする方法でモデルを組み合わせる代わりに、最適なモデルを選択します。
リレーショナル データ ストア
リレーショナル データベース管理システムは、スキーマの書き込みを使用して、データを正規化されたテーブルに整理します。 整合性を強制し、アトミック性、一貫性、分離性、持続性 (ACID) トランザクションと豊富な SQL クエリをサポートします。
強み: 複数行のトランザクション整合性、複雑な結合、強力なリレーショナル制約、レポート、管理、ガバナンスのための成熟したツール。
考慮 事項: 水平方向のスケールでは通常、シャーディングまたはパーティション分割が必要であり、正規化により、読み取り負荷の高い非正規化ビューの結合コストが増加する可能性があります。
ワークロード: 注文管理、在庫追跡、財務台帳の記録、請求、運用レポート。
リレーショナル データ ストア用の Azure サービスを選択する
SQL Database は、SQL Server エンジンを使用する最新のクラウド アプリケーション用のマネージド リレーショナル データベースです。
Azure SQL Managed Instance は、リフト アンド シフト移行に最適な、クラウド内のほぼ完全な SQL Server 環境です。
SQL Database (Hyperscale) は、高速自動スケーリングと迅速なバックアップを備えた大規模なワークロード向けに設計された、拡張性の高い SQL 層です。
Azure Database for PostgreSQL は、オープンソースの拡張機能と柔軟なデプロイ オプションをサポートするマネージド PostgreSQL サービスです。
Azure Database for MySQL は、Web アプリとオープン ソース ワークロード用のマネージド MySQL データベースです。
Fabric の SQL Database は、SQL Database に基づく開発者向けのトランザクション データベースであり、Fabric で運用データベースを簡単に作成するために使用できます。
ユース ケースの要件を満たす Azure サービスを判断するには、次の表を参考にしてください。
サービス | 最適な用途 | 主な機能 | ユース ケースの例 |
---|---|---|---|
SQL Database | クラウドネイティブ アプリ | マネージド、エラスティック プール、Hyperscale、組み込みの高可用性、高度なセキュリティ | スケーラブルな SQL バックエンドを使用した最新のサービスとしてのソフトウェア (SaaS) アプリケーションの構築 |
SQL Managed Instance | 従来のエンタープライズ アプリ | 完全な SQL Server 互換性、リフト アンド シフト のサポート、仮想ネットワーク、高度な監査 | 最小限のコード変更を使用したオンプレミスの SQL Server アプリの移行 |
SQL Database (Hyperscale) | グローバル配信 | 複数リージョンの読み取りスケーラビリティ、ジオレプリケーション、迅速な自動スケーリング | 高い読み取りスループットを必要とするグローバル分散アプリの提供 |
Azure Database for PostgreSQL | オープン ソースの分析ワークロード | PostGIS、Hyperscale、フレキシブル サーバー、オープン ソース拡張機能 | PostgreSQL と PostGIS を使用した地理空間分析アプリの開発 |
Azure Database for MySQL | 軽量 Web アプリ | フレキシブル サーバー、オープン ソースの互換性、コスト効率に優れた | WordPress ベースの e コマース サイトのホスト |
Fabric の SQL Database | Fabric エコシステムでのオンライン トランザクション処理 (OLTP) ワークロード | SQL Database エンジン上に構築され、スケーラブルで、Fabric に統合されている | ネイティブ ベクター検索機能を含む、運用上のリレーショナル データ モデルで AI アプリを構築する |
非リレーショナル データ ストア
非リレーショナル データベース ( NoSQL データベースとも呼ばれます) は、柔軟なスキーマ、水平方向のスケール、特定のアクセスまたは集計パターンに合わせて最適化します。 通常、スケーラビリティや機敏性のために、スキーマの剛性やトランザクション スコープなど、リレーショナル動作の一部の側面を緩和します。
ドキュメント データ ストア
ドキュメント データ ストアを使用して、半構造化ドキュメント (多くの場合、JSON 形式) を格納します。各ドキュメントには名前付きフィールドとデータが含まれます。 データには、単純な値や、リストや子コレクションなどの複合要素を指定できます。 ドキュメントごとのスキーマの柔軟性により、段階的な進化が可能になります。
強み: 自然なアプリケーション オブジェクト マッピング、非正規化された集計、マルチフィールド インデックス作成
考慮 事項: ドキュメント サイズの増加、選択的なトランザクション スコープ、高度なクエリのための慎重なデータシェイプ設計の必要性
ワークロード: 製品カタログ、コンテンツ管理、プロファイル ストア
ドキュメント データ ストア用の Azure サービスを選択する
Azure Cosmos DB for NoSQL は、読み取りと書き込みの待機時間が短いスキーマレスのマルチリージョン NoSQL データベースです。
Azure Cosmos DB for MongoDB は、MongoDB ワイヤ プロトコルの互換性と自動スケーリングを備えるグローバル分散データベースです。
Fabric の Azure Cosmos DB は、スキーマレスの NoSQL データベースであり、読み取りと書き込みの待機時間が短く、管理が簡素化され、Fabric 分析が組み込まれています。
ユース ケースの要件を満たす Azure サービスを判断するには、次の表を参考にしてください。
サービス | 最適な用途 | 主な機能 | ユース ケースの例 |
---|---|---|---|
Azure Cosmos DB (NoSQL) | SQL に似たクエリをサポートするカスタム JSON ドキュメント モデル | 豊富なクエリ言語、複数リージョンの書き込み、Time to Live (TTL)、変更フィード | 柔軟なスキーマをサポートするマルチテナント SaaS プラットフォームの構築 |
MongoDB 用の Azure Cosmos DB | MongoDB ドライバーまたは JSON 中心の API を使用するアプリ | グローバル分散、自動スケーリング、ネイティブ MongoDB ワイヤ プロトコル | Node.js アプリを MongoDB から Azure に移行する |
Fabric の Azure Cosmos DB | NoSQL データに対するリアルタイム分析 | Fabric 統合による OneLake への自動抽出、変換、読み込み (ETL) | リアルタイム分析ダッシュボードを含むトランザクション アプリ |
列ファミリ データ ストア
列ファミリ データベース ( ワイド列データベースとも呼ばれます) は、スパース データを行に格納し、動的列を列ファミリに整理して共同アクセスをサポートします。 列の向きにより、選択した列セットに対するスキャンが向上します。
強み: 高い書き込みスループット、幅の広いデータセットまたはスパース データセットの効率的な取得、ファミリ内の動的スキーマ
考慮 事項: 先頭行のキーと列ファミリの設計、セカンダリ インデックスのサポートが異なる、リレーショナルよりもクエリの柔軟性が低い
ワークロード: モノのインターネット (IoT) テレメトリ、パーソナル化、分析の事前集計、専用の時系列データベースを使用しない場合の時系列スタイルの高いデータ
列ファミリ データ ストアの Azure サービスを選択する
Azure Managed Instance for Apache Cassandra は、オープンソースの Apache Cassandra クラスター用のマネージド サービスです。
Azure HDInsight 上の Apache HBase は、Apache HBase と Hadoop エコシステム上に構築されたビッグ データ ワークロード用のスケーラブルな NoSQL ストアです。
Azure Data Explorer (Kusto) は、Kusto クエリ言語 (KQL) を使用するテレメトリ、ログ、時系列データの分析エンジンです。
ユース ケースの要件を満たす Azure サービスを判断するには、次の表を参考にしてください。
サービス | 最適な用途 | 主な機能 | ユース ケースの例 |
---|---|---|---|
Azure Managed Instance for Apache Cassandra | 新しい Cassandra ワークロードと移行された Cassandra ワークロード | マネージド型のネイティブ統合 Apache Cassandra | Cassandra の互換性をサポートする IoT デバイス テレメトリ インジェスト |
HDInsight 上の Apache HBase | Hadoop エコシステム、バッチ分析 | Hadoop 分散ファイル システム (HDFS) 統合、大規模なバッチ処理 | 製造工場でのセンサー データのバッチ処理 |
Azure Data Explorer (Kusto) | 高取り込みテレメトリ、時系列分析 | KQL、高速アドホック クエリ、時間枠関数 | アプリケーション ログとメトリックのリアルタイム分析 |
キー・バリュー型データストア
キー値データ ストアは、各データ値を一意のキーに関連付けます。 ほとんどのキー値ストアでは、単純なクエリ操作、挿入操作、および削除操作のみがサポートされます。 値を部分的または完全に変更するには、アプリケーションで値全体の既存のデータを上書きする必要があります。 ほとんどの実装では、1 つの値の読み取りまたは書き込みはアトミック操作です。
強み: シンプルさ、低待機時間、線形スケーラビリティ
考慮 事項: クエリ表現の制限、値ベースの検索に必要な再設計、大きな値の上書きコスト
ワークロード: キャッシュ、セッション、機能フラグ、ユーザー プロファイル、推奨事項の参照
キーと値のデータ ストアの Azure サービスを選択する
Azure Managed Redis は、待ち時間が短くスループットが高い最新の Redis Enterprise バージョンに基づく、メモリ内のマネージド データ ストアです。
Azure Cosmos DB for Table は、構造化された NoSQL データへの高速アクセス用に最適化されたキー値ストアです。
Azure Cosmos DB for NoSQL は、構造化された NoSQL データへの高速アクセス用に最適化され、水平方向のスケーラビリティを提供するドキュメント データ ストアです。
ユース ケースの要件を満たす Azure サービスを判断するには、次の表を参考にしてください。
サービス | 最適な用途 | 主な機能 | ユース ケースの例 |
---|---|---|---|
Azure Managed Redis | 高速キャッシュ、セッション状態、パブリッシュサブスクライブ | メモリ内ストア、ミリ秒未満の待機時間、Redis プロトコル | eコマース サイトの製品ページのキャッシュ |
Azure Cosmos DB for Table | 既存の Azure Table Storage ワークロードの移行 | Table Storage API の互換性 | モバイル アプリでのユーザー設定と設定の保存 |
Azure Cosmos DB (NoSQL) | 大規模で高可用性を備えた高速キャッシュ | スキーマレス、マルチリージョン、自動スケーリング | キャッシュ、セッション状態、サービス レイヤー |
グラフ データ ストア
グラフ データベースは、ノードとエッジとして情報を格納します。 エッジはリレーションシップを定義し、ノードとエッジの両方にテーブル列のようなプロパティを設定できます。 従業員や部門などのエンティティ間の接続を分析できます。
強み: リレーションシップ優先のクエリ パターン、効率的な可変深度トラバーサル
考慮 事項: リレーションシップが浅い場合のオーバーヘッド。パフォーマンスを慎重にモデル化する必要があり、一括分析スキャンには最適ではありません
ワークロード: ソーシャル ネットワーク、詐欺リング、ナレッジ グラフ、サプライ チェーンの依存関係
グラフ データ ストア用の Azure サービスを選択する
グラフ データを格納するために SQL Server グラフ拡張機能 を使用します。 グラフ拡張機能は、SQL Server、SQL Database、SQL Managed Instance の機能を拡張し、リレーショナル データベース内でグラフ構造を直接使用して複雑なリレーションシップのモデリングとクエリを実行できるようにします。
時系列データベース
時系列データ ストアは、時間別に編成された値のセットを管理します。 これらは、時間ベースのクエリや集計などの機能をサポートし、大量のデータをほぼリアルタイムで取り込んで分析するために最適化されています。
強み: 圧縮、ウィンドウ化されたクエリ パフォーマンス、順序不同のインジェスト処理
考慮 事項: タグカーディナリティ管理、保持コスト、ダウンサンプリング戦略
ワークロード: IoT センサー メトリック, アプリケーション テレメトリ, 監視, 産業用データ
時系列データ ストアの Azure サービスを選択する
時系列データを格納するために Azure Data Explorer を使用します。 Azure Data Explorer は、大量のデータをほぼリアルタイムで簡単に分析できる、管理された高パフォーマンスのビッグ データ分析プラットフォームです。
オブジェクト データ ストア
大きなバイナリ オブジェクトまたは半構造化オブジェクトを格納し、ほとんど変更されないか変更できないメタデータを含めます。
強み: 実質的に無制限のスケール、階層化されたコスト、持続性、並列読み取り機能
考慮 事項: オブジェクト全体の操作、メタデータ クエリの制限、最終的なリストの動作
ワークロード: メディア資産、バックアップ、データ レイク生ゾーン、ログ アーカイブ
オブジェクト データ ストアの Azure サービスを選択する
Data Lake Storage は、高度な分析と大規模なデータ処理のために階層型名前空間と HDFS 互換性を組み合わせたビッグ データ最適化オブジェクト ストアです。
Blob Storage は、コストの最適化のために階層化されたアクセスを含む、イメージ、ドキュメント、バックアップなどの非構造化データ用のスケーラブルなオブジェクト ストアです。
ユース ケースの要件を満たす Azure サービスを判断するには、次の表を参考にしてください。
サービス | 最適な用途 | 主な機能 | ユース ケースの例 |
---|---|---|---|
Data Lake Storage | ビッグ データ分析と階層データ | HDFS、階層型名前空間、分析用に最適化 | Azure Synapse Analytics または Azure Databricks を使用した、ペタバイト単位の構造化データと非構造化データの格納とクエリ |
Blob Storage | 汎用オブジェクト ストレージ | フラットな名前空間、単純な REST API、ホット、クール、アーカイブを含む階層型ストレージ | イメージ、ドキュメント、バックアップ、静的な Web サイト コンテンツのホスティング |
データ ストアの検索とインデックス作成
検索エンジン データベースを使用すると、アプリケーションは外部データ ストア内の情報を検索できます。 検索エンジン データベースでは、大量のデータにインデックスを作成し、これらのインデックスにほぼリアルタイムでアクセスできます。
強み: フルテキスト クエリ、スコアリング、言語分析、あいまい一致
考慮 事項: インデックスの最終的な整合性、個別のインジェストまたはインデックス作成パイプライン、大規模なインデックス更新のコスト
ワークロード: サイトまたは製品の検索、ログ検索、メタデータのフィルター処理、複数属性の検出
検索データ ストア用の Azure サービスを選択する
詳細については、「 Azure での検索データ ストアの選択」を参照してください。
ベクター検索データ ストア
ベクター検索データ ストアは、多くの場合、機械学習モデルによって生成されるデータの高次元ベクター表現を格納および取得します。
強み: セマンティック検索、ANN アルゴリズム
考慮 事項: インデックス作成の複雑さ、ストレージのオーバーヘッド、待機時間と精度、統合の課題
ワークロード: セマンティック ドキュメント検索、レコメンデーション エンジン、画像とビデオの取得、不正行為と異常検出
ベクター検索データ ストアの Azure サービスを選択する
詳細については、「ベクトル検索用の Azure サービスを選択する」を参照してください。
分析データストア
分析データ ストアは、ビッグ データを格納し、分析パイプラインのライフ サイクル全体にわたって保持します。
強み: スケーラブルなコンピューティングとストレージ、SQL と Spark のサポート、BI ツールとの統合、時系列およびテレメトリ分析
考慮 事項: オーケストレーションのコストと複雑さ、アドホック ワークロードのクエリ待機時間、複数のデータ ドメイン間のガバナンス
ワークロード: エンタープライズ レポート、ビッグ データ分析、テレメトリ集計、運用ダッシュボード、データ サイエンス パイプライン
分析データ ストア用の Azure サービスを選択する
詳細については、「 Azure での分析データ ストアの選択」を参照してください。
比較特性 (コア非リレーショナル モデル)
特徴 | ドキュメント | 列ファミリ | キーと値 | Graph |
---|---|---|---|---|
正規化 | 非 正規 化 | 非 正規 化 | 非 正規 化 | 正規化されたリレーションシップ |
スキーマのアプローチ | 読み取り時のスキーマ | 定義された列ファミリ、読み取り時の列スキーマ | 読み取り時のスキーマ | 読み取り時のスキーマ |
一貫性 (一般的) | 各項目に対して調整可能 | 行またはファミリごとに | キーごとに | エッジまたはトラバーサル セマンティクスごとに |
アトミックスコープ | ドキュメント | テーブルの実装に応じて行またはファミリ | 単一キー | グラフ トランザクション (異なる) |
ロックとコンカレンシー | オプティミスティック (ETag) | ペシミスティックまたはオプティミスティック (実装に応じて) | オプティミスティック (キー) | オプティミスティック (パターン) |
アクセス パターン | 集計 (エンティティ) | ワイド スパース集計 | キーによるポイント参照 | リレーションシップ トラバーサル |
インデックス作成 | プライマリとセカンダリ | プライマリおよび制限付きセカンダリ | プライマリ (キー) | プライマリと場合によってはセカンダリ |
データ形状 | 柔軟な階層構造 | スパーステーブル形式 | 不透明な値 | ノードとエッジ |
スパース/ワイド適合性 | はい/はい | はい/はい | はい/いいえ | いいえ/いいえ |
標準的なデータム サイズ | 小中規模 | 中~大 | 小さい | 小さい |
スケール ディメンション | パーティション数 | パーティションとカラムファミリーの幅 | キー空間 | ノードまたはエッジの数 |
比較特性 (特殊な非リレーショナル モデル)
特徴 | タイム シリーズ | オブジェクト (BLOB) | 検索/インデックス作成 |
---|---|---|---|
正規化 | 正規化 | 非 正規 化 | 非 正規 化 |
Schema | 読み取り時のスキーマ (タグ) | 不透明な値とメタデータ | 書き込み時のスキーマ (インデックス マッピング) |
アトミックスコープ | N/A (追加) | Object | ドキュメントまたはインデックス操作ごとに |
アクセス パターン | タイムスライス・スキャン、ウィンドウ集計 | オブジェクト全体の操作 | テキスト クエリとフィルター |
インデックス作成 | オプションのセカンダリ機能と時間 | キー (パス) のみ | 反転ファセットと省略可能なファセット |
データ形状 | 表形式 (タイムスタンプ、タグ、値) | メタデータを含むバイナリまたは BLOB | トークン化されたテキストと構造化フィールド |
プロファイルの書き込み | 高頻度の追加処理 | 一括更新または頻度の低い更新 | バッチインデックスまたはストリーミング インデックス |
プロファイルの読み取り | 集計された範囲 | 全体または一部のダウンロード | ランク付けされた結果セット |
成長ドライバー | イベントレートにリテンション期間を掛けたもの | オブジェクトの数とサイズ | インデックス付きドキュメント ボリューム |
整合性の許容範囲 | 遅延データの最終的な処理 | 各オブジェクトの書き込み後の読み取り | 新しいドキュメントの最終的な結果 |
モデルの中から選択する (ヒューリスティック)
必要 | 好む |
---|---|
厳密なマルチエンティティ トランザクション | リレーショナル |
進化する集計形状、JSON 中心の API | ドキュメント |
低遅延のキー検索またはキャッシュ | キーと値 |
ワイド、スパース、書き込み負荷の高いテレメトリ | 列ファミリまたは時系列 |
ディープ リレーションシップ トラバーサル | Graph |
大規模な履歴分析スキャン | 分析または OLAP |
大規模な非構造化バイナリまたはレイク ゾーン | Object |
フルテキストの関連性とフィルター処理 | 検索とインデックス作成 |
高インジェストのタイムスタンプ メトリックをウィンドウ クエリで使用する | タイム シリーズ |
迅速な類似性 (セマンティックまたはベクター) | ベクトル検索 |
モデルを組み合わせて落とし穴を避ける
次のシナリオが適用される場合は、複数のモデルを使用します。
- アクセスパターンは、ポイントルックアップ、広域分析スキャン、フルテキスト関連性スキャンなど、異なります。
- ライフサイクルとリテンション期間は、不変の生データと整理された構造化データなど、異なります。
- 待機時間とスループットの要件の競合。
早期断片化を回避する:
- パフォーマンス、スケール、ガバナンスの目標を満たす場合は、1 つのサービスを使用します。
- 共有分類ロジックを一元化し、必要な場合を除き、ストア間で重複する変換パイプラインを回避します。
次の一般的なアンチパターンに注意してください。
- 複数のマイクロサービスが 1 つのデータベースを共有し、結合を作成します。
- Teams は、監視やバックアップなど、運用の成熟度なしで別のモデルを追加します。
- 検索インデックスがプライマリ データ ストアになり、誤用につながります。
モデルの選択を再評価するタイミング
信号 | 可能なアクション |
---|---|
ドキュメント ストアでのアドホック結合の増加 | リレーショナル読み取りモデルの導入 |
分析集計による検索インデックスの CPU 使用率が高い | 分析エンジンにオフロードする |
大規模な非正規化ドキュメントで部分的な更新の競合が発生する | 集合を再形成するか分割する |
カラムファミリーストアでのタイムウィンドウクエリが遅い | 専用の時系列データベースを採用する |
グラフトラバーサルの深さでポイント参照の待機時間が増加する | 派生マテリアライズド・ビューを追加する |
次のステップ
関連リソース
次の記事を使用して、特殊なデータ ストアを選択します。
この記事では、Azure サービスを使用する参照アーキテクチャについて説明します。
- ベースラインの高可用性ゾーン冗長 Web アプリケーション アーキテクチャでは、SQL Database をリレーショナル データ ストアとして使用します。
- Azure Container Apps と Dapr アーキテクチャを使用したデプロイ マイクロサービスでは、SQL Database、Azure Cosmos DB、Azure Cache for Redis をデータ ストアとして使用します。
- Azure アーキテクチャでのドキュメント分類の自動化では、データ ストアとして Azure Cosmos DB が使用されます。