Azure 上のストレージ ソリューションを選択する
正しいストレージ ソリューションを選択することは、パフォーマンスの向上、コストの削減、管理性の向上につながります。 ストレージ要件はデータの種類ごとに異なります。 会社で使用しているデータの種類に最適なストレージ ソリューションを決定することが、あなたの仕事です。 データの種類、必要な操作、望ましい待機時間、およびトランザクションのサポートの必要性を、常に考慮する必要があります。
ここでは、オンライン小売りシナリオでのデータについて学習したことを適用して、各データ セットに最適な Azure サービスを見つけます。
製品カタログ データ
データ分類: 新製品に向けてスキーマを拡張または変更する必要があるため、半構造化。
運用:顧客は、データベース内の多くのフィールドを照会する機能と共に、多数の読み取り操作を必要とします。 また、企業では、常に変化する在庫を追跡するために、多数の書き込み操作が必要になります。
待機時間とスループット: 高スループットかつ低遅延。
トランザクション サポート: 製品データは支払いと在庫に関連付けられているため、トランザクション サポートが必要。
推奨されるサービス:Azure Cosmos DB
Azure Cosmos DB では、仕様で半構造化つまり NoSQL データがサポートされています。 そのため、"Bluetooth 対応" フィールドといった新しいフィールドや、将来必要になる新しいフィールドのサポートは、Azure Cosmos DB で実現できます。
Azure Cosmos DB ではクエリ用の SQL がサポートされており、すべてのプロパティに既定でインデックスが付けられます。 顧客がカタログの任意のプロパティでフィルター処理できるように、クエリを作成することができます。
Azure Cosmos DB は ACID に準拠しているので、トランザクションは厳密な要件に従って完了することが確実になります。 OLTP コネクタは、Azure Cosmos DB で使用できます。
さらに、Azure Cosmos DB では世界中のどこにでもご利用のデータを簡単にレプリケートできます。 eコマース サイトのユーザーが米国、フランス、英国に集中している場合は、それらのリージョンにあるデータセンターにデータをレプリケートできます。 データがユーザーの近くに物理的に移動するので、待機時間が短縮されます。
世界各地にデータをレプリケートしても、5 つの整合性レベルのいずれかを選択できます。 適切な整合性レベルを選択することで、整合性、可用性、待機時間、スループットの間のトレードオフを決定できます。 ショッピングが増える期間は高い顧客需要を処理するようにスケールアップし、少なくなったらコストを節約するためにスケールダウンすることができます。
他の Azure サービスにしない理由
ほとんどの製品に共通するプロパティのサブセットと、一部の製品には存在しない可能性のある変数のプロパティを特定できる場合、Azure SQL Database がこのデータ セットに対して最適な選択肢となります。 Azure SQL Database を使用すると、列の構造化データと、拡張しやすい JSON 列として格納されている半構造化データを組み合わせることができます。 Azure SQL Database には、Azure Cosmos DB と同じ利点の多くが備わっています。 ただし、異なるエンティティでデータの構造が変更される場合、得られる利点はほとんどありません。また、ほとんどのエンティティで繰り返し使用される共通プロパティのセットを、事前に定義することはできません。 ドキュメント内のすべてのプロパティのインデックスが作成される Azure Cosmos DB とは異なり、Azure SQL Database では、半構造化ドキュメントのどのプロパティのインデックスを作成する必要があるかを明示的に定義する必要があります。 どのプロパティに対してインデックスを作成する必要があるか予測できない、極めて非構造的で変動しやすいデータに対しては、Azure Cosmos DB がより適しています。 Azure SQL Database で OLTP がサポートされています。
Azure Table Storage、Azure HDInsight の Apache HBase、Azure Cache for Redis などの他の Azure サービスでも、NoSQL データを格納できます。 このシナリオでは、ユーザーが複数のフィールドをクエリしたいため、Azure Cosmos DB の方が適しています。 Azure Cosmos DB ではすべてのフィールドに既定でインデックスが付きますが、他の Azure サービスはインデックスの付くデータが限られています。 インデックスのないフィールドに対してクエリを実行すると、パフォーマンスが低下します。
写真とビデオ
データの分類: 非構造化。
運用:ID のみで取得します。顧客は、低待ち時間で多数の読み取り操作を行う必要があります。作成操作と更新操作は頻度が低くなるので、読み取り操作より待ち時間が長くなっても構いません。
待機時間とスループット: ID による検索では、低遅延と高スループットをサポートする必要があります。 作成操作と更新操作は、読み取り操作よりも待機時間が長くなる可能性があります。
トランザクションのサポート: 不要。
推奨されるサービス: Azure Blob Storage
Azure Blob Storage には、写真やビデオなどのファイルを格納できます。 また、最も頻繁に使われるコンテンツをキャッシュし、それをエッジ サーバーに格納することにより、Azure Content Delivery Network で機能します。 Azure Content Delivery Network を使用すると、それらの画像をユーザーに提供するときの待機時間が短縮されます。
Azure Blob Storage では、ホット ストレージ層からクール ストレージ層またはアーカイブ ストレージ層に画像を移動することもできます。 これにより、コストを削減し、最も頻繁に見られる画像やビデオにスループットを集中させることができます。
他の Azure サービスにしない理由
画像を Azure App Service にアップロードして、アプリを実行しているのと同じサーバーでその画像を提供できます。 ファイルが多くない場合はこのソリューションでもかまいません。 しかし、ファイルが多い場合、およびグローバルなユーザーに対しては、Azure Blob Storage と Azure Content Delivery Network を使用することでパフォーマンスが向上します。
ビジネス データ
データの分類: 構造化。
操作: 複数のデータベースにわたる読み取り専用の複雑な分析クエリ。
待機時間とスループット: クエリの複雑さによっては、結果においてある程度の待機時間が予想されます。
トランザクションのサポート: 不要。
推奨されるサービス:Azure SQL Database
ビジネス アナリストはおそらく、自分が最も詳しいクエリ言語である SQL を使って、ビジネス データのクエリを実行するでしょう。 Azure SQL Database だけでもソリューションとして使用できます。 しかし、Azure Analysis Services と組み合わせると、データ アナリストは Azure SQL Database 内のデータに対するセマンティック モデルを作成できます。 データ アナリストがそのモデルをビジネス ユーザーと共有すると、それらのユーザーは任意のビジネス インテリジェンス (BI) ツールからモデルに接続するだけで、すぐにデータを調べて分析情報を取得できます。 Azure Analysis Services で OLAP がサポートされています。
他の Azure サービスにしない理由
Azure Synapse Analytics では OLAP ソリューションと SQL クエリがサポートされていますが、ビジネス アナリストは、Azure Synapse Analytics でサポートされていないデータベース間クエリを実行する必要があります。
Azure Stream Analytics はデータを分析して、それをアクション可能なインサイトに変換する優れた方法ですが、ストリーミングされるリアルタイム データに焦点を当てています。 このシナリオでは、ビジネス アナリストは履歴データのみを参照します。