検証環境
今回ご紹介する検証結果は、スモール・スタートが可能な「InfiniDB」の特性を活かし、サーバ1台による最もシンプルなシングル構成(図1)で実施しています。また、検証で使用したデータとSQLは、第1回でも取り上げた「Star Schema Benchmark」(以下、SSB)を利用しており、SSBのファクト表は論理データ・サイズを100GBとしています。
検索性能
DWHシステムで重要視される検索性能からご紹介します。
①汎用DBMS製品との性能比較
図2は、SSBで提供されている12個のSELECT文(Q1~Q12)※ における実行時間を表したものです。SELECT文ごとに検索対象の列やデータのアクセス範囲が異なっていますが、InfiniDBは、垂直(列指向)&水平(エクステントマップ)パーティションによる効率的なデータ・アクセスで、非常に高速に処理できていることがわかります。
※Q1~Q12の詳細およびStar Schema Benchmarkの解説についてはこちらをご参照ください。
・「汎用DBMS製品A」(DWH用チューニング機能なし)
パラメータ・チューニングや索引によるチューニングは実施していますが、全体的に検索性能が低いことがわかります。また、索引による効果が一定しないため、クエリによって実行時間にバラツキがあります。
・「汎用DBMS製品B」(DWH用チューニング機能あり)
パラメータ・チューニングや索引によるチューニングの他、パーティションやパラレルSQLといったDWH用のチューニングも実施してテストしています。汎用DBMSでも、DWH用チューニング機能を使いこなせば、クエリの速度を短縮できていることがわかります。
・「InfiniDB」
「InfiniDB」はデータをロードするだけで高い検索性能を発揮します。本テストも、データをロードしただけの状態でSQLを実行しています。検索条件が異なる複数パターンの処理でも、検索性能は安定しています。
・「InfiniDB」(オンキャッシュ)
キャッシュにデータが読み込まれた状態での検索性能です。「InfiniDB」は、オンキャッシュやディスクI/Oに関係なく、汎用DBMSと比べて安定した性能を発揮していることがわかります。
②物理読み込みデータ・サイズの比較
図3は、図2のクエリ(Q1)をもとに、「InfiniDB」と「汎用DBMS製品A」で物理読み込みされるデータ・サイズを比較したグラフです。図2の実行時間では、「InfiniDB」の方が10倍程度の高い検索性能を示していました。このクエリ(Q1)では、「汎用DBMS製品A」が80GB程度のデータを読み込まなければならないのに対して、「InfiniDB」はその1/4の20GB程度しか読み込んでいないことがわかります。効率的なデータ・アクセスによるものも大きいですが、列指向はデータ圧縮が効果的に行われるため、そもそもデータ量が少なくなっていることの結果でもあります。