BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Bashoが時系列データベースRiak TS 1.3をオープンソース公開

Bashoが時系列データベースRiak TS 1.3をオープンソース公開

原文(投稿日:2016/07/15)へのリンク

 

Basho TechnologiesがRiak TS 1.3をオープンソース公開することを発表した。Riak TSは時系列データ操作に特化したソフトウェアである。時系列データの高速書き込みとクエリのサポートに加えて,データアグリゲータや算術操作,SparkコネクタによるApach Sparkとのインテグレーション,Java,Erlang,Python用のクライアントサポート,標準SQLに準拠したクエリシステムなどを備える。そのオープンソースバージョンをベースに開発されたRiak TS 1.3 EE (Enterprise Edition)では,さらにマルチクラスタレプリケーションもサポートする。包括的な機能一覧はリリースノートに記載されている。

CTOのDave McCrory氏に,今回の発表について話を聞いた。

InfoQ: Riakスイート製品の概要を簡単に説明して頂けますか?特にRiak TSに関して具体的にお願いします。スイートの各製品は,今後も個々に独立して開発されるのでしょうか?

McCrory: Riak製品ファミリの中心は,Bashoが7年前に開発したOSSのクラスタソリューションのRiak Coreです。

 

Riak KVは,そのRiak Coreの上で,レジエンスと可用性の極めて高いキーバリューストアを提供する製品です。データの正確性とデータ損失および破損の防止に重点を置いて,現在も開発が続けられています。

 

Riak TSはそのRiak KVから派生したもので,時系列データストア専用のデータストアです。Riak KVの長所をすべて継承しつつ,時系列データを扱うユーザの抱える問題の解決にそれらを適用します。具体的には次のような点を実現しています。
  • 高速化されたデータ書き込みパス
  • バケット用スキーマ
  • クエリプランナとクエリサブシステム
  • Vノードからの並列抽出
  • フレキシブルな復号キー

InfoQ: Riak TSは開発に約18ヶ月を費やしていますが,その経緯について話して頂けますか?

McCrory: 当社のユーザはそれまで,時系列データの保存をRiak KVを使用して行なっていました。その様子を見ている時,処理をスムーズに行なうために,多くのカスタマイズが必要であることに気付いたのです。それと並行して,時系列データストアの市場調査を行なったところ,ソリューションの数自体が非常に少ない上,どれも企業レベルのワークロードを処理する水準に達していないことが分かりました。スケーラブルなクラスタリング機能やレジデンスに欠ける,管理や操作が極端に難しいなど,既存の時系列ソリューションには適当な選択肢が存在しなかったのです。

 

私たちはアーキテクチャミーティングを開いて,この問題にどう取り組めばよいのか,議論を始めました。最終的に私たちのエンジニアのひとりが,定量(時間帯)によるハッシュリングを用いた分散型データという興味深いアイデアを提案し,POC(概念実証)の結果,うまくいきそうだと判断されたのです。ここから私たちの,時系列にまつわる数多くの難題を解決する旅が始まりました。

 

対処すべき制約は他にもありました。例えばパフォーマンスの面では,例えば8台のマシンによるクラスタで,1秒あたり数百万件というデータポイントのサポートが必要でした。この要件を達成するには,クラスタへの入り口からディスク上のストレージまでのデータフローと,そこからデータを読み出すパスのプロファイリングが求められます。この要件に取り組み始めて,パフォーマンスを集中的に扱う専門チームが必要であることが分かりました。そのためにパフォーマンスチームが結成されたのです。

 

パフォーマンスチームがかなり早い段階でエンドツーエンドをプロファイルする方法を見出すと,そのすぐ後に,初期段階から存在していた非効率な部分がいくつも見つかりました。この結果から,パフォーマンスの向上に関して,最大限の成果が期待できそうなアイデアをいくつも得ることができたのです。重要なもののひとつとして,エンコード/デコードが複数回行われていたことが分かりました。これがCPUサイクルを消費してレイテンシを増やしていたのです。そこで私たちは,これを排除する作業に取り組むことにしました。

 

同時に私たちは,どうすればセカンダリインデックスに依存することなく,すべてのクエリに迅速に応答できるか,という点にも注目していました。その結果として,データにスキーマを適用することにしました。時系列データには固有のデータ構造があったからです。この決定によって,クエリエンジンと言語の実装方法などに,非常に多くの選択肢が生まれることになりました。最終的に私たちはSQLを使用することにしましたが,状況を複雑化させないため,他のベンダのように独自のSQLを作ることはしませんでした。さらに,データを保持するノードのセットのみを対象とする場合と,データを含む全ノードないしクラスタ全体のすべてのノードを対象とする場合という,2種類のデータ要求を行なうためのクエリパーザとプランナを開発する必要がありました。これは難しい作業でしたが,その成果はレジリエンスとパフォーマンスの高さに表れています。

 

InfoQ: IoT以外に,Riak TSを使用する好例となるものはありますか?

McCrory: 情報の報告や監査,スコアと掛け金の記録,測定値の記録など,時間基準のデータという共通の問題を抱えているユーザや潜在的ユーザはたくさんいます。ほとんど毎週のように,Riak TSの新しいアプリケーションが見つかっている状況です。

InfoQ: BashoがRiak TSの最大のコントリビュータなのでしょうか?他にはどのような企業がありますか?コードをオープンソースにしたのには,どのような目的があったのでしょう?

McCrory: Bashoが中心的なコントリビュータであることは事実です。主な理由としては,時系列ソリューションの構築という目的のために,多数の変更や追加をしなければならなかったことがあります。現在は,時系列の分野において,より大きな問題を解決するための一連の機能をRiak TS上で開発すべく,さまざまな企業に声を掛けているところです。

 

コードをオープンソースにした目的としては,分散システムにおける革新的なアプローチやアイデア,リーダシップに関してコミュニティに多くのものを提供したい,よりよりソリューション開発に協力したいという,私たちの考えがあります。手段としてオープンソースを活用することは,そのプロセスを促進するための確実な方法なのです。ソフトウェアをオープンソース公開してコミュニティからのサポートを獲得し,より優れたソリューションを構築するという点において,当社は長いキャリアを持っています。

InfoQ: Riak TSをビッグデータソリューションとして使用する上で,Apache Sparkコネクタが重要な部分だと思うのですが,このコネクタはどのようなものなのか,他のNoSQL用Apache Sparkコネクタと比べた場合どうなのかという点について,話して頂けますか?

McCrory: ビッグデータ解析に関して言うならば,当社のユーザの大部分において,Apache Sparkが中心的存在であることに疑いはありません。Apache SparkなしでビッグデータソリューションにRiak TSを使っているユーザもいますし,Apache Sparkで実現するようなディープアナリティクス(deep analytics)や機械学習などを必要としないユースケースもあるのですが,当社のビッグデータユーザの大半は,Spark ConnectorとApache Sparkを使ってRiak TSを使用しています。

 

当社がRiak Spark Connectorの開発に取り組み始めてかなり経ちますが,現在の位置に到達するまでに,少なくとも3回のイテレーションを経験してきました。これまでに行なってきたことのひとつが並行抽出機能の開発で,Spark Connetorではこれを活用することができました。これによって要求されたすべてのデータを,すべてのノードから,並行的に抽出することが可能になっています。当社の開発した書き込みパフォーマンスの向上と合わせて,Sparkへのデータ挿入が高速化したことが,Apache SparkとSpark Connectorを活用したApache Aparkを,極めて優秀なソリューションにしています。

InfoQ: HTTP APIセキュリティのサポートやIoTに関してなど,Riak TSのロードマップについて教えてください。

McCrory: 次期1.4リリースではたくさんの機能を追加する予定ですが,特にHTTP APIセキュリティを実現したいと思っています。その他の機能としては,サポートするSQLコマンドの追加や,結果のストリーミングを新たにサポートすることなどを計画しています。

 

IoTの重視という点に関しては,時系列データの操作や利用をいかに容易にするか,ということを中心に置いています。一貫してサイズの小さなデータをさらに高いスループットで処理する,というIoTデータの要件を重視することによって,パフォーマンスの最適化,さらには他の無償テクノロジとのインターフェース拡張を,今後も継続して進めていきます。現在注目している領域のひとつはデータの可視化です。オープンソースや業界で普及している可視化ソリューションとの協業や,Riak TSの対応をいかに行なうかを考えています。IoTデータのすべてを収集し格納する場合,一般的には,実行すべきアクションを特定することがポイントになります。

入門のための資料は,Basho docsに公開されている。

 
 

この記事を評価

関連性
スタイル
 
 

この記事に星をつける

おすすめ度
スタイル

BT