エッジコンピューティングによって高性能化したエッジ機器にデータが格納されるようになると、クラウドサービスにデータを集めないでエッジ機器のデータを直接検索したいとニーズが生まれてきました。そして、IoT(Internet of Things) システムでは広域に分散されたエッジ機器のデータ群を高速に検索するために、マルチデータベースにアクセスできる分散SQLエンジンが求められています。そこで代表的な分散SQLエンジンの Presto, Apache Drill, Dremio, PGSpider を調査して比較しました。
性能評価は、うちのメンバーがFOSDEM PGDay 2020で発表しています。
https://www.postgresql.eu/events/fosdem2020/sessions/session/2893/slides/281/FOSDEM2020PGDay_PGSpider.pdf
調査項目
時系列データベースの調査項目は以下の通りです。
調査項目 | 調査内容 |
---|---|
対応プログラム言語 | アプリケーションからデータベースを操作可能なプログラム言語 |
アクセス可能なDB | マルチDBアクセスツールからアクセス可能なデータベース |
クエリ言語 | データベースに対する問い合わせ言語。主にSQLの調査 |
マルチテナント | マルチテナント機能の有無 |
インデックス | 使用可能なインデックスの種類及び特徴 |
トランザクション | トランザクションの特性。ACID特性など。 |
ストアドプロシジャ | ストアドプロシージャ/ファンクションの有無、記述言語 |
dockerコンテナ | dockerコンテナイメージが提供されているかどうか |
性能拡張 | スケールアウトを中心にどのように性能拡張するのかを調査。主にシャーディング機能の調査。 |
高可用性 | 障害発生時に継続動作するためのメカニズムについて調査。主にレプリケーション機能の調査。 |
運用 | 運用時に必要なバックアップや監視ツールについて調査 |
通信暗号化 | DBサーバとクライアント間の通信暗号化機能の有無 |
DB格納領域の暗号化 | DBファイルなどの格納領域の暗号化機能の有無 |
認証機能 | ユーザーを識別するような認証機能の有無 |
権限管理 | DBオブジェクトに対する権限付与する機能の有無 |
DB監査 | 操作の履歴である監査証跡(ログ)機能の有無 |
調査結果比較
以下は、調査結果を比較した表です。
調査項目 | Presto | Apache Drill | Dremio | Dremio (製品版) | PGSpider |
---|---|---|---|---|---|
対応プログラム言語 | △ | 〇 | △ | △ | 〇 |
アクセス可能なDB | △ | △ | 〇 | 〇 | ◎ |
クエリ言語 | 〇 | 〇 | 〇 | 〇 | 〇 |
マルチテナント | X | X | X | 〇 | 〇 |
インデックス | X | △ | X | X | X |
トランザクション | X | X | X | X | △ |
ストアドプロシジャ | X | △ | X | X | 〇 |
dockerコンテナ | 〇 | 〇 | 〇 | 〇 | △ |
性能拡張 | 〇 | 〇 | 〇 | 〇 | ◎ |
高可用性 | X | X | 〇 | 〇 | 〇 |
運用 | X | X | 〇 | 〇 | 〇 |
通信暗号化 | 〇 | 〇 | X | 〇 | 〇 |
DB格納領域の暗号化 | X | X | X | X | 〇 |
認証機能 | 〇 | 〇 | X | △ | ◎ |
権限管理 | 〇 | 〇 | 〇 | 〇 | 〇 |
DB監査 | 〇 | 〇 | X | X | 〇 |
詳細の調査結果は以下に掲載しています。
まとめ
IoTデータのビッグデータ検索で分散型SQLクエリエンジンを使用することを考えると、マルチテナント機能は外せません。また実運用を考えると高可用性、運用、セキュリティを考慮する必要があります。この条件では、Dremio(製品版)と PGSpider という2択になります。Presto は、高可用性、運用面を自前で対応すれば、選択肢に挙がってきます。現時点では、あえて Apache Drill を選択する理由はないと考えます。
掲載内容は、(株)東芝 デジタルイノベーションテクノロジーセンター及びソフトウェア技術センターの見解です。コメント等は広くご意見を頂ければ幸いです。
また、記述について誤りがあったり、気になることがあれば、編集リクエストやコメントでフィードバックしていただけると助かります。