Tableau 10.5新機能:新データエンジン「Hyper」〜そもそもHyperって?編 #tableau
はじめに
こんにちは。DI部のtamaです。
ついにTableauのバージョン10.5がリリースされました! これまでもベータ版の10.5について情報発信を行ってきましたが、正式バージョンということで、10.5の新機能に関するエントリを投下していく予定です。
本エントリでは、10.5の目玉機能となる「Hyper」について見ていきたいと思います。まずは、Hyperとはそもそも何なのか?という視点で、Hyper自身について紹介します。
Hyperの概要
Hyper は、大規模で複雑なデータセットでのデータ取得および分析的クエリ処理を高速に行うために開発された Tableau の新しいインメモリデータエンジンテクノロジーです。Tableau 10.5 に搭載されている Hyper は、大量のデータの多角的な分析を数秒で実行でき、クエリの処理速度は最大 5 倍、抽出作成の速度は最大 3 倍高速になります。 抽出やクエリのパフォーマンスが向上し、これまでよりもさらに大規模なデータセットに対応したことで、ビジネスのニーズに応じてデータを抽出できるようになります。
Hyperとは、OLTP(オンライントランザクション処理)システムやOLAP(オンライン分析処理)システムのデータを、パフォーマンスを落とすこと無く処理できるように設計された、インメモリデータベースシステムです。 Hyperは、 一つのシステムでトランザクションと分析を同時に行うことができます。 ドイツで誕生したこの技術は、2016年にTableau社が買収し、Tableauバージョン10.5でついに統合を果たしました。
Hyperの特徴
トランザクションと分析を同時に処理できる
今日、企業によるデータ分析は一般的となってきていますが、日夜多くのトランザクション処理が走るDBに対して、直接分析処理を実施する企業はそう無いと思います。ミッションクリティカルな本番DBに対して分析処理を行えば、多大な負荷がかかります。その結果、多くのトランザクション処理が遅延又は停止し、業務そのものに支障をきたしてしまいます。
なので、多くの企業はOLTP用DBとは別に、OLAP用DB(DWH)を別に構築しています。こうすることで、OLTPを安定稼働させることができます。しかし、それとは引き換えに、DWHへのデータ抽出によるデータ鮮度の低下や、2つの別のシステムを維持し続けるコストの問題が発生します。
Hyperは、OLTPとOLAPを同時に実行することができます。(MVCCという仕組みで同時処理を実現)この仕組によって、上記のデメリットを解消することに成功しています。
また、HyperのトランザクションはACIDに完全準拠しています。トランザクション処理の信頼性は保ちつつ、鮮度の高いデータ(リアルタイムのデータ)に対して、高速な分析処理を行うことができるようになっています。
※引用:Welcome, Hyper team, to the Tableau community! | Tableau Software
クエリを機械語に変換して実行する
Hyperは、SQLやPL/SQLライクな言語で処理を記述することができます。しかし、Hyper自身はこれらのクエリを処理しません。Hyperはクエリを機械語に変換します。(LLVMコードを生成→機械語にコンパイル)こうすることでクエリの実行時間を早めています。
CPUを効率的に使用し、最適な並列処理を行う
従来のDBシステムでは、いくらコア数の多いCPUを用意しても、並列処理に使用されるコアは数個止まりでした。
しかし、HyperはMorsel Drivenという仕組みを採用しており、処理を細かく分解し、それをCPUの全てのコアに割り振ることで、多数のコアを余すところなく使用します。(120個以上のコアに対応)
Hyper採用の経緯
ドイツ生まれの技術
Hyperは、ドイツのミュンヘン工科大学の2人の教授から始まったプロジェクトです。院生とともに研究を続け、開発されたのがHyperです。つまり大学発の技術ということになります。
Tableauとの統合
大学の研究プロジェクトから商業向けプロジェクトとしてスピンオフされ、Hyper社として活動を続けていましたが、2016年にTableau社によって買収されました。これにより、TableauにHyperの技術が組み込まれることになりました。
HyperでTableauはどうなる?
TDEファイルに代わる抽出形式として使用
Tableau10.5においては、抽出の形式にHyper形式(.hyper)が採用されています。 例えば、大容量で何かと処理が遅いTDEファイルをHyper形式に置き換えることにより、クエリの実行速度の向上が期待できます。(フィルタ等の各種操作の反応速度が向上する。) また、抽出処理自体のパフォーマンス向上も期待できると思います。
おわりに
今回は、Tableau10.5で登場したHyperについて、まずはHyper自身について見てきました。こうやって調べてみると、非常に魅力的に思えます。しかし、実際のところ、Tableauの使い勝手としてはどうなるのでしょうか?また、TDEファイルとの住み分け、使い分けはどのようにすればいいいのでしょうか?
次回以降、Hyperのその辺りについて触れていきたいと思います。お楽しみに。
参考
Hyperについて
- HyPer: Hybrid OLTP&OLAP High-Performance Database System
- Hyperの公式ページです。
Tableau公式
- Welcome, Hyper team, to the Tableau community! | Tableau Software
- Hyper | Tableau Software
- Tableau テクノロジー | Tableau Software
- Vimeo次世代のデータベースのパワーを体感: HyPer による Tableau の進化
- Tableau Conference On Tour 2017 Tokyo で行われたHyperに関するセッション動画です。
TableauのHyper買収について
- データ分析ツールのTableau Software、インメモリデータベース「HyPer」を買収。製品に統合へ - Publickey
- BIサービスのTableauがドイツのHyPerを買収してビッグデータ分析を高速化 | TechCrunch Japan
- Tableauがデータベースベンダー「HyPer」を買収:インメモリの高速DBで分析性能を強化 - @IT
- Tableau buys HyPer, to add R&D center in Munich | ZDNet
- Tableau makes another acquisition, swoops up HyPer to improve database computing – GeekWire