大規模な組織には大量のデータが保有されており、そのほとんどが多数の様々なシステムに分散されています。これは意図的にデータを分散させたわけではなく、現場の現実的な判断が積み重なり、結果として分散しているのです。データサイロは技術的負債であり、SaaS (Software as a Service) アプリケーションやその他のクラウドサービスが導入されるにつれて増加しています。これにより、ビジネスと IT の間で摩擦が高まっています。このようなデータサイロの解消は非常に困難であり、また従来のデータウェアハウスのアプローチでは問題があることは明らかです。そのため、IT 部門は (ビジネス部門から迫られる形で) この問題を解決できる現代的なアプローチを探してきました。
ここでは、データ統合の現代的なアプローチである、データレイク、データの仮想化 (フェデレーション)、データハブの3つを比較します。これら3つのアプローチのいずれの場合でも、既存のアプリケーションを妨げることなく、多様なソースのデータをシンプルなセルフサービスで利用できます。しかし、これらの現代的なアプローチのそれぞれにはトレードオフがあり、また、相互に排他的なものでもありません (データハブに基づくアーキテクチャを採用しながら、データレイクも使用し続ける組織もたくさんあります)。
データハブ | データレイク | データ仮想化 | |
---|---|---|---|
データの読み込み |
|
|
|
データモデル |
|
|
|
検索&クエリ |
|
|
|
オペレーショナル機能 |
|
|
|
キュレーション (ハーモナイズ、エンリッチ、マスター管理) |
|
|
|
セキュリティ |
|
|
|
スケーラビリティ |
|
|
|
パフォーマンス |
|
|
|
デプロイメント |
|
|
|
データレイクとは、あらゆる規模や構造のデータを保管できるセントラルレポジトリです。データレイクは、分散ファイルシステム Hadoop の台頭とともに人気を博すようになりました。Hadoop では、容易に生データをセントラルレポジトリに移動し、データを低コストで保管できます。データレイクでは、データのキュレーション (エンリッチ、マスター管理、ハーモナイズ) がなかったり、検索できないことがあります。データを分析および業務活用するには、Hadoop エコシステムの他のツールで複数ステップの処理を行う必要があります。しかし、データレイクには、データの読み込み時に事前の多くの作業が不要だというメリットがあります。
データレイクの利用目的としては、分析用サンドボックス、機械学習モデルのトレーニング、データ準備パイプラインへのフィード、あるいは単に低コストなデータストレージなどがあります。
数年前、Hadoop の分野においては、主に Cloudera、Hortonworks、MapR の3社が競合していました。現在では、Cloudera と Hortonworks の合併、そしてMapR の投げ売り的な事業売却により、Cloudera のみが残っています。
多くの組織にとって、Amazon S3 などのオブジェクトストアが事実上のデータレイクとなり、オンプレミスの Hadoop 環境からクラウドへの移行を後押ししています。
Apache エコシステムには、Hadoop コア以外にも多くの関連ツールがあります。例えば、イベントストリーミング用アーキテクチャでストリーミングデータの処理と分析を行う場合、Spark と Kafka の2つのツールがよく使用されます (それぞれ Databricks および Confluent としてマーケティングされています)。
今回の比較では、これらのツールの詳細なレビューは行いません。一般的に言うと、これらのツールは、ほとんどのユースケースにおいてデータハブを補完するものです。これらのツールはストリーミングデータを管理しますが、データベースが必要なことは変わりません。例えば、Kafka にはデータモデルやインデックスがなく、データへのクエリもできません。通常、イベントベースのアーキテクチャや分析プラットフォームは、データハブ上に構築した方が信頼性が高まり、よりオペレーショナル (業務活用可能) になります。
データ仮想化では、既存のデータベースに格納されているデータの仮想ビューを作成します。データを物理的に移動せず、新たな仮想データレイヤで複数ソースからのデータを統合ビューとして表現します。この手法はしばしば「データフェデレーション」 (または「仮想データベース」) と呼ばれます。基となる複数のデータベースがフェデレーションの対象 (「フェデレート」と呼ばれます) となります。
例えば、Oracle と SAP のデータベースがいくつか稼働しており、ある部門がこれらのシステムのデータにアクセスしたい場合を考えてみましょう。この際 ETL を使ってデータを物理的に移動し、さらに別のデータベース内に永続化 (格納) する代わりに、特定のチームや用途用に仮想的に(かつ素早く)データを取得し、統合できます。
データ仮想化では、基となっているデータベースに対してクエリが実行されます。最新の仮想化技術では、クエリ実行の計画と最適化がますます洗練されてきています。インメモリのキャッシュデータや、統合された超並列処理 (MPP) を利用し、クエリ結果をジョインおよびマッピングして、複合的なビューとして表示するものもあります。新しいデータの仮想化技術の多くでは、データの読み取りだけでなく書き込みもできます。新しいソリューションではデータガバナンスも進化しており、さまざまなロールやユースケースに応じたデータのマスキング、LDAP 認証などの機能も搭載されています。
データ仮想化の主なメリットの1つに、短時間での価値創出があります。データを物理的に移動しないため、データへのクエリ前にやらなくてはならない作業やコストが少なく、既存のインフラへの影響も抑えることができます。
データ仮想化のもう1つの大きなメリットとして、非構造化データソースと構造化データソースの両方に対してアドホックな SQL クエリを実行できる点があります。データの仮想化ではこれが主なユースケースです。
スタンドアロンのデータ仮想化ソリューションを提供している会社としては、SAS、Tibco、Denodo、Cambridge Semantics があります。Oracle、Microsoft、SAP、Informatica などその他のベンダーは、主力製品の一機能としてデータ仮想化を組み込んでいます。
データハブは、「ハブ&スポーク」アーキテクチャにおける統合ポイントとなるデータストアです。マルチ構造データを物理的に移動して統合し、基となるデータベースに格納します。
データハブにはこのようなメリットがあり、ガバナンスが効いたトランザクショナルなデータレイヤを提供することで、データレイクやデータ仮想化を強力に補完します。これについては後で詳しく説明します。
次のような場合は、アーキテクチャとしてデータハブを選択することをお勧めします。
MarkLogic のお客様は、ビジネスの全体像の把握、オペレーショナル分析、コンテンツの収益化、研究開発、製造業における IoT、規制遵守、ERP 統合、メインフレーム移行などの用途で MarkLogic データハブプラットフォームを活用しています。
データレイクはストリーミングデータに最適です。大量データ (構造化および非構造化データ) を低コストで格納したい場合のレポジトリに適しています。ほとんどのデータレイクは HDFS を基盤としており、広範な Hadoop エコシステムに簡単に接続できます。そのため、オープンソースのツールと低コストな分析用サンドボックスを必要とする大規模な開発チームに適しています。多くの組織では、データサイエンティストの作業用にデータレイクを活用しています。ここにトレーニングデータを格納し、Jupyter や Spark などのツールにフィードすることで、機械学習プロジェクトを推進しています。
データ仮想化は、分析に最適です (データ統合において必要となデータハブほどの堅牢性を必要としない場合)。迅速に導入でき、データを物理的に移動しないため、プロジェクト開始時におけるインフラのプロビジョニング作業がほとんどいりません。データ仮想化の一般的な利用例としては他に、データチームが、非リレーショナルなデータソースに対してアドホックな SQL クエリを実行するというものがあります。
「データハブ」と「データ仮想化」は、データ統合に対する2つの異なるアプローチであり、同一ユースケースにおいて競合することもあります。一般的に、データハブをすでに使用している場合、データ仮想化を導入する必要はありません。データハブでは、データ仮想化のメリットのほぼすべてが得られます。例えば、MarkLogic のお客様の多くは、MarkLogic データハブでメタデータ (またはコンテンツ) のレポジトリを構築することで、重要なデータアセットを仮想化しています。
そのため、他のデータソースと同様に、MarkLogic データハブをフェデレーション対象のデータソースとして扱うこともできます。例えば、複数のデータソースを統合した MarkLogic データハブをフェデレーション対象のデータソースとして扱い、Spark などのツールでアクセスして、機械学習モデルのトレーニングやスコアリングに使用できます。
「データレイク」は、「データハブ」をうまく補完します。MarkLogic Connector for Hadoop を使用して Hadoop から MarkLogic データハブへ、または MarkLogic データハブから Hadoop へデータを移行しているお客様が数多くいます。データレイク上にデータハブを置くことで、高品質、キュレーション済み、安全、重複排除済み、インデックス済み、かつクエリ可能なデータにアクセスできます。さらに、MarkLogic データハブには、巨大なデータを管理するための自動的なデータ階層化機能があります。これによりデータレイク内に安全にデータを格納しこれにアクセスできます。
最も一般的なのは、既存のデータレイクからデータを移行するというもの、また使用頻度の低いデータを低コストなストレージである Hadoop にオフロードするというもの、機械学習プロジェクトに利用するというものです。
アーキテクチャのプランニングにおける今後のステップとして、以下のオプションを考えてみてください。
多くのお客様が、データレイクまたはデータ仮想化を補うものとして、またはそれらを置き換えるものとして MarkLogic データハブを使用しています。ノーザン・トラスト、米空軍研究所 (AFRL)、Mitchell 1 の導入事例をご参照ください。
MarkLogic はデータアジリティを実現し、複雑なデータをシンプルに処理できます。