データの仮想化とは
- 既存のデータベースに格納されているデータの仮想ビューを作成する。
- データを物理的に移動せず、新たな仮想データレイヤーで複数ソースからのデータを統合ビューとして表現する。
→この手法はしばしば「データフェデレーション」(または「仮想データベース」)と呼ばれる。
→基となる複数のデータベースがフェデレーションの対象(「フェデレート」と呼ばれる) - データの仮想化では、基となっているデータベースに対してクエリが実行される。
→新しいデータの仮想化技術の多くでは、データの読み取りだけでなく書き込みもできる。 - データの仮想化は、主にデータ分析用途で利用される。
メリット
- データを物理的に移動しないため、データへのクエリ前にやらなくてはならない作業やコストが少なく、既存のインフラへの影響も抑えることができる。
- 非構造化データソースと構造化データソースの両方に対してアドホックな(特定の目的の)SQLクエリを実行できる。
→データの仮想化ではこれが主なユースケース
デメリット
- 仮想データベースではデータがインデックス付けされず、インデックス格納用の独立したデータストレージもない。
→基となるソースシステムで付けられたインデックスに依存する。 - 仮想データベースでは、すべてのリクエストを、個々のソースシステム用の別のリクエストにマッピングしてから、すべてのソースシステムに対して実行する。
→ネットワーク全体でパフォーマンスの問題が発生する可能性があり、システムは常にネットワーク容量の問題に悩まされる。 - データのリネージや履歴をトラッキングできる場所がない。
→「single source of truth」(信頼できる唯一の情報源)は得られない。 - 一般に、仮想データベースではセキュリティ制御に制約がある(少なくとも実装が複雑)。
→例えば、仮想データベースでは、レコード単位ではなくテーブル単位でのみデータを保護できる。 - 仮想データベースの容量は、常に基となるソースシステムのデータ量に制限される。
参考