超高速処理
Zap-In Technology

概要

Zap-In technology の一番の特長は圧倒的な超高速処理です。超高速データベースの代表と言われる Spark の20倍以上も高速です。ビッグデータになるとその差はさらに飛躍的に大きくなります。
独自開発技術の「成分分解法」のデータ構造とアルゴリズムにより、従来にない超高速なデータベース処理ができます。

1.圧倒的な超高速

「成分分解法」のデータ構造とアルゴリズムによる Zap-In Technology のデータベース処理は、以下の様な性質を持っています。

・データベース処理が超高速

通常のデータベースシステムに比べて、10倍から1,000倍、JOINの処理では10万倍の処理速度が得られます。通常のデータベースシステムで一昼夜かかったところを1分以内に縮められた実施例もあります。
<ベンチマークへ>

・データ量と処理時間が比例関係

通常のリレーショナルデータベースシステムでは、データ量が増えると処理時間は急激に長くなる基本性質があります(データ量nに対して o(n*log(n)) )。 このため、データ量が巨大になるビッグデータでは処理時間が非常に長くなってしまいます。
これに対して Zap-In Technology では、処理時間はデータ量に比例になります(データ量nに対して o(n) )。ビッグデータでは、非常に大きな差がつきます。

・高速なデータ取り込み

CSVフォーマット等のデータファイルを取り込むスピードは、一般のデータベースよりも桁違いに高速です。独自データ構造による高速インデックス生成と、マルチコアCPUによる並列処理など独自技術の成果です。

2.速度比較

<速度ベンチマークへ>

処理 RDB(ディスク)型データベース RDB(インメモリ)型データベース NoSQL型データベース 全文検索型データベース ターボZap-In (注釈: Zap-Inの特徴)
CSVデータ取り込み 1 10 50 0.05 100
JOIN演算 1 10 1000-100,000 カーディナリティが大でも高速
SORT 1 10 100-100,000 カーディナリティが大でも高速
SEAERCH 1 10 100-1000
(キー項目完全一致の場合)
10-1000 データ量が大でも高速
BOM展開 1 10 500-700
カテゴライズ 1 10 10-1000,000 特に高速 O(n)
集計 1 10 1000-100,000 カーディナリティが大でも高速
計算・更新 1 10 0.1-10,000 1件ずつ更新は低速、まとめて更新は超高速
EXPORT 1 10 1
(キー項目完全一致データ1件の場合)
1-10
(ヒットしたドキュメントの取り出し)
100-1000 ヒット件数が大なら特に高速
全文検索 1 10 100-10000 10-1000 ヒット件数が大でも高速

注)カーディナリティ: 値の種類の数。その項目の値が「男か女か」ならカーディナリティは2。氏名などは大きくなる。数値データ等なら巨大になることも。一般のDBはカーディナリティ大の場合に速度低下する。

<速度ベンチマークへ>

3.超高速な理由

 データをハードディスクではなく全てメインメモリに置き、その高速性を活かすのがインメモリ型データベースです。インメモリ型データベースは各社から提供されています。データ構造や処理アルゴリズムが従来のままでも、インメモリ型にすればそれなりに高速なデータベースになります(~10倍程度)。しかし、これだけではメインメモリの高速性を充分に活かし切っているとは言えません。

・成分分解法(LFM)

 ターボデータは、インメモリ処理の有効性をさらに大きく活用できる独自の「成分分解法」を開発しました。さらに、それに基づく新しいデータ構造と処理アルゴリズムを用いて、超高速データベース技術 Zap-In Technology を完成させました。
成分分解法とそのアルゴリズムは、世界各国で特許化されています。

・マルチコアCPU を効率的に活用

 現在のPCには、演算コアが4~16機も搭載されたマルチコアCPUが使われています。この複数の演算コアを有効に活用すれば、データベース処理のスピードも大きく向上させることが出来ます。このためには、データベース処理を並列化して処理するようなソフトウェアにする必要があります。
しかし、一般のデータベースシステムでは、データ構造やアルゴリズムの点で、処理を並列化することが一般的には困難で、マルチコアを有効に活用できません。
それに対して成分分解法では、そのデータ構造とアルゴリズムの性質から、ほとんどのデータベース処理を並列処理化し高速に行えます。Zap-In Technology では、マルチコアを最大限に活用して、データベース処理ばかりでなくデータ取り込みなどの処理でも超高速を実現しています。

・全項目インデックス

 インデックス設計はシステム構築時のデータベース高速化の鍵です。従来のデータベースシステムでは、効率的で高速な処理をするために時間をかけてインデックス設計をする必要があります。データベースのどの項目にインデックスをつけて高速化するかが重要です。最適なインデックス設計をしても充分な速度が得られないことも多くありますし、運用開始後に新機能が必要になった場合にはインデックス設計を全面やりなおさないと充分な処理速度が得られないこともあります。
Zap-In Technology では、成分分解法の基本的性質から、全項目にインデックスが付いており、インデックス付加のための処理も不要です。このため、どの項目に対しても高速なデータベース処理を行うことができます。また、システム構築時にはインデックス設計が不要ですので、開発が短期間に行え、しかも運用開始後に新機能が必要になった場合にも、インデックス再設計が不要なため、素早いシステム改良ができます。

・アルゴリズム

 Zap-In Technology では、成分分解法による超高速データベース処理を実現していますが、この理論を実際のソフトウェア製品にするために、成分分解法を使いこなすためのさまざまなアルゴリズム・周辺技術・ソフトウェア技術が駆使されています。これらも、成分分解法とともに各国で特許化されています。

4.理論的背景

Zap-In Technology の中核技術である「成分分解法」については、こちらを参照してください。<技術詳細:成分分解法について>

<次ページ: 自動プログラミング機能へ>