BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース LinkedIn EngineeringがSenseiDB 1.0.0をリリース

LinkedIn EngineeringがSenseiDB 1.0.0をリリース

ブックマーク

原文(投稿日:2012/03/19)へのリンク

LinkedIn Engineeringはオープンソースの分散半構造化データベースであるSenseiDBリリースした。SenseiDBはLinkedInの検索インフラで利用されている技術であり、LinkedIn Signalやその他の検索関連技術(例えば、人や企業の検索)で利用されている。SenseiDBは同社の内部で開発され、Search, Network, Analyticsプロジェクトの下、オープンソースで公開された。

SenseiDBは高い更新頻度と、複雑な半構造化検索クエリに対処することに力点が置かれたNoSQLデータベースだ。LuceneやSolrに慣れているユーザならSenseiDBの背後にある考え方を認識できるかもしれない。SenseiDBは複数のノードから構成されるクラスタに配置される。各ノードはNのデータのシャードを持つ。ノードはApache Zookeeperによって管理される。Apache Zookeeperが現在の構成を保持し、構成の変更(トポロジの変更)を他のノードに転送する。また、ひとつのSenseiDBクラスタには扱うデータモデルを定義するためのスキーマが必要だ。

SenseiDBクラスタにデータを入れる場合、ゲートウェイ("INSERT"する方法はない)を使う。各クラスタはひとつのゲートウェイに接続されている。この点はSenseiDBを理解する上で重要だ。というのはSenseiDBは、不可分性と独立性を管理しないのだ。したがって、この2つの性質はゲートウェイのレベルで担保しなければならない。ゲートウェイはデータの流れが期待された振る舞いをするように動作する必要がある。組み込みで提供されるゲートウェイは、

開発者はカスタムのゲートウェイを実装できる。Twitterの更新からデータを取得するサンプルのゲートウェイも提供されている。

また、SenseiDBは定義されたスキーマに基づいたファセット問い合わせもサポートする。この問い合わせ用にHTTPクライアントからアクセスできるREST APIを提供する。このAPIはElasticSearchのQuery DSLから着想を得ている。このAPIのJavaとPythonのラッパーも提供する。Ruby版も提供される予定だ。

また、SenseiDBは問い合わせ方法のひとつとしてBQL (Browse Query Language)も提供する。BQLはSQLに似た言語(SELECT文だけしかない)で、簡便な方法でSenseiDBに問い合わせができる。クラスタのインストールにはBQL用のウェブコンソールが付属している。

更なる情報はドキュメントJavadocsWikiで得られる。ソースコードはGitHubにホストされている。

この記事に星をつける

おすすめ度
スタイル

BT