kdb+は、Kx Systemsにより開発および販売されているインメモリデータベース(IMDB)かつカラムベース・リレーショナル・タイムシリーズ・データベース(a column-based relational time series database (TSDB) )である。 一般的に、TSDBは高頻度取引(HFT)において大量のデータを高速に蓄積、分析、処理および検索するために用いられる。 kdb+は内部で数十億のレコードを処理および分析が可能なデータベースである。 Windows、MacOS、Linuxなど向けに32ビット版および64ビット版がリリースされている。 金融機関では、証券取引データや商品取引データをはじめとする時系列データの分析にkdb+が利用されている。 また、kdb+は金融市場のみならず、電力売買、情報通信、センサーデータ、ログデータ、機械やコンピュータネットワークの使用状況データなどの時系列データの処理・分析にも利用されている。
概要 kdb+は、大量のデータを処理および蓄積することができるようにデザインされた高性能なカラムナー・データベースである。一般にアクセスされたデータは、ハードディスクよりも高速にアクセスが可能なメインメモリ(RAM)上に保持される。金融機関での使用を想定し、kdb+は数十億のレコードのリアルタイム分析およびそれらレコードの蓄積が可能なセントラルリポジトリとして開発された 。 またkdb+では、SQL(Structured Query Language)に似たクエリが使用可能である。
カラムナー・データベースは、いくつかのクエリーについてローベース・データベースより効率的な方法で処理を行う。kdb+ではディクショナリー、テーブルおよびナノ秒単位のタイムスタンプがネイティブなデータ型として用意されており、時系列データを格納するために使用される。
kdb+の中核は、簡潔で表現力豊かなクエリ配列言語であり、APLのひとつであるビルトイン・プログラミング言語のqである。 qは、ストリーミングデータ、リアルタイムデータおよびヒストリカルデータを処理できる。kdb+は、qを用いてデータの集計と分析、統計関数の実行、データセットの結合、SQLクエリーのサポートを行う。vector languageであるqは速度と表現力を兼ね備えている。kdb+には、C、C++、Java、C#、Pythonのインタフェースが含まれる。
歴史 1998年は、によって開発された言語Kで構築されたデータベースkdbをリリースした。 2003年にkdb+はkdbの64ビット版としてリリースされた。 2004年には、ニューヨーク証券取引所(NYSE)のTAQデータのローダーであるkdb+ taqとともに、kdb+ tick market database frameworkがリリースされた。 kdb+はArthur Whitneyによって開発されたため、配列言語としての特性を備えている。
2007年4月Kx Systemsは、Mac OS X用のkdb+のバージョンをリリースした。その時点で、kdb+はオペレーティングシステムのLinux、Windows、SolarisおよびMac OS Xで利用可能となった。
2012年9月にバージョン3.0がリリースされた。バージョン3.0は、WebSocket、GUID(Globally Unique Identifier)およびUUID(Universally Unique Identifier)をサポートするインテルのプロセッサーに最適化されている。 Sandy Bridgeプロセッサ上のIntelのAVX(Advanced Vector Extensions)とSSE4.2(Streaming SIMD Extensions 4.2)により、kdb+システムへのサポートが強化された。2013年6月にバージョン3.1がリリースされ、ベンチマークは旧バージョンよりも最大8倍速くなっている。
参考文献
外部リンク