Azure で使用する分析データ ストアの選択Choosing an analytical data store in Azure

ビッグ データ アーキテクチャでは、分析ツールを使用してクエリを実行できる構造化された形式の処理済みデータを提供する分析データ ストアが必要になることがよくあります。In a big data architecture, there is often a need for an analytical data store that serves processed data in a structured format that can be queried using analytical tools. ホットパス データとコールドパス データの両方のクエリ処理をサポートする分析データ ストアは、まとめてサービス レイヤーまたはデータ サービス ストレージと呼ばれます。Analytical data stores that support querying of both hot-path and cold-path data are collectively referred to as the serving layer, or data serving storage.

サービス レイヤーは、ホットパスとコールドパス両方の処理済みデータを扱います。The serving layer deals with processed data from both the hot path and cold path. ラムダ アーキテクチャの場合、サービス レイヤーは、増分処理されたデータを格納する スピード サービス レイヤーと、バッチ処理された出力を含む バッチ サービス レイヤーに分割されます。In the lambda architecture, the serving layer is subdivided into a speed serving layer, which stores data that has been processed incrementally, and a batch serving layer, which contains the batch-processed output. サービス レイヤーは、短い待機時間のランダム読み取りを強力にサポートする必要があります。The serving layer requires strong support for random reads with low latency. このストアにデータのバッチ読み込みを行うと、望ましくない遅延が生じるので、速度レイヤー用のデータ ストレージはランダム書き込みもサポートする必要があります。Data storage for the speed layer should also support random writes, because batch loading data into this store would introduce undesired delays. 一方、バッチ レイヤーのデータ ストレージは、ランダム書き込みをサポートする必要はありませんが、代わりにバッチ書き込みをサポートする必要があります。On the other hand, data storage for the batch layer does not need to support random writes, but batch writes instead.

すべてのデータ ストレージ タスクに最適な 1 つのデータ管理方法はありません。There is no single best data management choice for all data storage tasks. 各データ管理ソリューションは、異なるタスクに合わせて最適化されています。Different data management solutions are optimized for different tasks. ほとんどの実際のクラウド アプリケーションとビッグ データ プロセスには、さまざまなデータ ストレージ要件があり、多くの場合、複数のデータ ストレージ ソリューションを組み合わせて使用します。Most real-world cloud apps and big data processes have a variety of data storage requirements and often use a combination of data storage solutions.

分析データ ストアを選択する場合のオプションWhat are your options when choosing an analytical data store?

Azure にはデータ サービス ストレージのオプションがいくつかあり、必要に応じて選択できます。There are several options for data serving storage in Azure, depending on your needs:

これらのオプションは、タスクの種類に合わせて最適化されたさまざまなデータベース モデルを提供しています。These options provide various database models that are optimized for different types of tasks:

  • キー/値データベースは、各キー値に対して 1 つのシリアル化されたオブジェクトを保持します。Key/value databases hold a single serialized object for each key value. 指定されたキー値に対して 1 つの項目を取得し、項目の他のプロパティに基づいてクエリを実行する必要がない、大量のデータを格納する場合に適しています。They're good for storing large volumes of data where you want to get one item for a given key value and you don't have to query based on other properties of the item.
  • ドキュメント データベースは、値が ドキュメント であるキー/値データベースです。Document databases are key/value databases in which the values are documents. この文脈での "ドキュメント" とは、名前付きフィールドと値のコレクションです。A "document" in this context is a collection of named fields and values. 通常、データベースには XML、YAML、JSON、BSON などの形式でデータが格納されますが、プレーンテキストを使用することもできます。The database typically stores the data in a format such as XML, YAML, JSON, or BSON, but may use plain text. ドキュメント データベースでは、非キー フィールドに対してクエリを実行できます。また、クエリをより効率的にするためにセカンダリ インデックスを定義できます。Document databases can query on non-key fields and define secondary indexes to make querying more efficient. そのため、ドキュメント データベースは、ドキュメント キーの値よりも複雑な基準に基づいてデータを取得する必要があるアプリケーションに適しています。This makes a document database more suitable for applications that need to retrieve data based on criteria more complex than the value of the document key. たとえば、製品 ID、顧客 ID、顧客名などのフィールドに対してクエリを実行することができます。For example, you could query on fields such as product ID, customer ID, or customer name.
  • 列ファミリ データベースは、データ ストレージを、列ファミリと呼ばれる関連する列のコレクションに構成するキー/値データ ストアです。Column-family databases are key/value data stores that structure data storage into collections of related columns called column families. たとえば、国勢調査データベースには、個人の名前 (姓、名、ミドルネーム) 用の列のグループ、個人の住所のグループ、個人のプロフィール情報 (生年月日、性別のデータ) のグループが含まれる可能性があります。For example, a census database might have one group of columns for a person's name (first, middle, last), one group for the person's address, and one group for the person's profile information (data of birth, gender). このデータベースは、各列ファミリを個別のパーティションに格納し、さらに 1 人のすべてのデータと同じキーへの関連付けを維持することができます。The database can store each column family in a separate partition, while keeping all of the data for one person related to the same key. アプリケーションは、エンティティのすべてのデータを読み取らずに、単一の列ファミリを読み取ることができます。An application can read a single column family without reading through all of the data for an entity.
  • グラフ データベースは、情報をオブジェクトとリレーションシップのコレクションとして格納します。Graph databases store information as a collection of objects and relationships. グラフ データベースは、オブジェクトのネットワークとオブジェクト間のリレーションシップにまたがるクエリを効率的に実行することができます。A graph database can efficiently perform queries that traverse the network of objects and the relationships between them. たとえば、人事データベースではオブジェクトは従業員の可能性があります。また、"佐藤さんのために直接的または間接的に働いているすべての従業員を検索する" などのクエリを簡単にすることもできます。For example, the objects might be employees in a human resources database, and you might want to facilitate queries such as "find all employees who directly or indirectly work for Scott."
  • テレメトリ データベースと時系列データベースは、オブジェクトの追加専用のコレクションです。Telemetry and time series databases are an append-only collection of objects. テレメトリ データベースでは、さまざまな列ストアとインメモリ構造でデータのインデックスが効率的に作成されるため、膨大な量のテレメトリ データと時系列データを格納および分析するのに最適です。Telemetry databases efficiently index data in a variety of column stores and in-memory structures, making them the optimal choice for storing and analyzing vast quantities of telemetry and time series data.

主要な選択条件Key selection criteria

選択肢を絞り込むために、まず次の質問に答えてください。To narrow the choices, start by answering these questions:

  • データのホット パスに対応できるサービス ストレージは必要ですか。Do you need serving storage that can serve as a hot path for your data? "はい" の場合、スピード サービス レイヤーに合わせて最適化されたオプションに絞り込みます。If yes, narrow your options to those that are optimized for a speed serving layer.

  • クエリが複数のプロセスやノードに自動的に分散される、超並列処理 (MPP) のサポートは必要ですか。Do you need massively parallel processing (MPP) support, where queries are automatically distributed across several processes or nodes? "はい" の場合、クエリのスケールアウトをサポートするオプションを選択します。If yes, select an option that supports query scale out.

  • リレーショナル データ ストアを使用したいですか。Do you prefer to use a relational data store? "はい" の場合、リレーショナル データベース モデルを使用するオプションに絞り込みます。If so, narrow your options to those with a relational database model. ただし、一部の非リレーショナル ストアはクエリの SQL 構文をサポートしており、PolyBase などのツールを使用して非リレーショナル データ ストアに対してクエリを実行することができます。However, note that some non-relational stores support SQL syntax for querying, and tools such as PolyBase can be used to query non-relational data stores.

  • 時系列データを収集しますか。Do you collect time series data? 追加専用データを使用しますか。Do you use append-only data?

機能のマトリックスCapability matrix

次の表は、機能の主な相違点をまとめたものです。The following tables summarize the key differences in capabilities.

一般的な機能General capabilities

機能Capability SQL DatabaseSQL Database Azure SynapseAzure Synapse Azure Data ExplorerAzure Data Explorer HDInsight 上の HBase/PhoenixHBase/Phoenix on HDInsight HDInsight 上の Hive LLAPHive LLAP on HDInsight Azure Analysis ServicesAzure Analysis Services Cosmos DBCosmos DB
マネージド サービスかIs managed service はいYes はいYes はいYes はい 1Yes 1 はい 1Yes 1 はいYes はいYes
プライマリ データベース モデルPrimary database model リレーショナル (列ストア インデックスを使用する場合の列の形式)Relational (columnar format when using columnstore indexes) 単票形式ストレージのリレーショナル テーブルRelational tables with columnar storage リレーショナル (列ストア)、テレメトリ、および時系列ストアRelational (column store), telemetry, and time series store ワイド カラム ストアWide column store Hive/In-MemoryHive/In-Memory 表形式のセマンティック モデルTabular semantic models ドキュメント ストア、グラフ、キー値ストア、ワイド カラム ストアDocument store, graph, key-value store, wide column store
SQL 言語のサポートSQL language support はいYes はいYes はいYes はい (Phoenix JDBC ドライバーを使用)Yes (using Phoenix JDBC driver) はいYes いいえNo はいYes
スピード サービス レイヤーに合わせて最適化Optimized for speed serving layer はい 2Yes 2 いいえNo はいYes はいYes はいYes いいえNo はいYes

[1] 手動構成とスケーリングを使用。[1] With manual configuration and scaling.

[2] メモリ最適化テーブルとハッシュ インデックスまたは非クラスター化インデックスを使用。[2] Using memory-optimized tables and hash or nonclustered indexes.

スケーラビリティ機能Scalability capabilities

機能Capability SQL DatabaseSQL Database Azure SynapseAzure Synapse Azure Data ExplorerAzure Data Explorer HDInsight 上の HBase/PhoenixHBase/Phoenix on HDInsight HDInsight 上の Hive LLAPHive LLAP on HDInsight Azure Analysis ServicesAzure Analysis Services Cosmos DBCosmos DB
高可用性のための冗長リージョン サーバーRedundant regional servers for high availability はいYes はいYes はいYes はいYes いいえNo いいえNo はいYes
クエリのスケールアウトをサポートSupports query scale out いいえNo はいYes はいYes はいYes はいYes はいYes はいYes
動的スケーラビリティ (スケールアップ)Dynamic scalability (scale up) はいYes はいYes はいYes いいえNo いいえNo はいYes はいYes
データのメモリ内キャッシュをサポートSupports in-memory caching of data はいYes はいYes はいYes いいえNo はいYes はいYes いいえNo

セキュリティ機能Security capabilities

機能Capability SQL DatabaseSQL Database Azure SynapseAzure Synapse Azure Data ExplorerAzure Data Explorer HDInsight 上の HBase/PhoenixHBase/Phoenix on HDInsight HDInsight 上の Hive LLAPHive LLAP on HDInsight Azure Analysis ServicesAzure Analysis Services Cosmos DBCosmos DB
認証Authentication SQL / Azure Active Directory (Azure AD)SQL / Azure Active Directory (Azure AD) SQL / Azure ADSQL / Azure AD Azure ADAzure AD ローカル / Azure AD 1local / Azure AD 1 ローカル / Azure AD 1local / Azure AD 1 Azure ADAzure AD アクセスの制御 (IAM) によるデータベース ユーザー/Azure ADdatabase users / Azure AD via access control (IAM)
保存データの暗号化Data encryption at rest はい 2Yes 2 はい 2Yes 2 はいYes はい 1Yes 1 はい 1Yes 1 はいYes はいYes
行レベルのセキュリティRow-level security はいYes はい 3Yes 3 はいYes はい 1Yes 1 はい 1Yes 1 はいYes いいえNo
ファイアウォールをサポートSupports firewalls はいYes はいYes はいYes はい 4Yes 4 はい 4Yes 4 はいYes はいYes
動的データ マスクDynamic data masking はいYes はいYes はいYes はい 1Yes 1 はいYes いいえNo いいえNo

[1] ドメイン参加済み HDInsight クラスターを使用する必要があります。[1] Requires using a domain-joined HDInsight cluster.

[2] 保存データの暗号化と暗号化の解除には、Transparent Data Encryption (TDE) を使用する必要があります。[2] Requires using transparent data encryption (TDE) to encrypt and decrypt your data at rest.

[3] フィルター述語のみ。[3] Filter predicates only. 行レベルのセキュリティ」をご覧くださいSee Row-Level Security

[4] Azure Virtual Network 内で使用する場合。[4] When used within an Azure Virtual Network. Azure Virtual Network を使用した Azure HDInsight の拡張」を参照してください。See Extend Azure HDInsight using an Azure Virtual Network.