Tableau 10.5新機能:新データエンジン「Hyper」〜そもそもHyperって?編 #tableau

2018.01.11

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

こんにちは。DI部のtamaです。

ついにTableauのバージョン10.5がリリースされました! これまでもベータ版の10.5について情報発信を行ってきましたが、正式バージョンということで、10.5の新機能に関するエントリを投下していく予定です。

本エントリでは、10.5の目玉機能となる「Hyper」について見ていきたいと思います。まずは、Hyperとはそもそも何なのか?という視点で、Hyper自身について紹介します。

Hyperの概要

Hyper は、大規模で複雑なデータセットでのデータ取得および分析的クエリ処理を高速に行うために開発された Tableau の新しいインメモリデータエンジンテクノロジーです。Tableau 10.5 に搭載されている Hyper は、大量のデータの多角的な分析を数秒で実行でき、クエリの処理速度は最大 5 倍、抽出作成の速度は最大 3 倍高速になります。 抽出やクエリのパフォーマンスが向上し、これまでよりもさらに大規模なデータセットに対応したことで、ビジネスのニーズに応じてデータを抽出できるようになります。

※引用:Hyper | Tableau Software

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について

Tableau公式

TableauのHyper買収について

その他