BT

您是否属于早期采用者或者创新人士?InfoQ正在努力为您设计更多新功能。了解更多

LinkedIn Engineering发布SenseiDB 1.0.0

| 作者 Kostis Kapelonis 关注 0 他的粉丝 ,译者 曹如进 关注 0 他的粉丝 发布于 2012年3月21日. 估计阅读时间: 不到一分钟 | 硅谷人工智能、机器学习、互联网金融、未来移动技术架构 ,尽在QCon上海2017

LinkedIn Engineering发布并开源了其分布式、半结构化数据库SenseiDB。SenseiDB是LinkedIn背后搜索基础架构使用到的技术,LinkedIn主页、LinkedIn Signal以及其他搜索功能(如人员/公司搜索)均使用了SenseiDB。SenseiDB最初是因为公司需要,由内部人员开发,而现在它以开源方式发布在Search, Network, Analytics项目之下。

SenseiDB是一个NoSQL数据库,它专注于高更新率以及复杂半结构化搜索查询。熟悉Lucene和Solor的用户会发现,SenseiDB背后有许多似曾相识的概念。SenseiDB部署在多节点集群中,其中每个节点可以包括N块数据片。Apache Zookeeper用于管理节点,它能够保持现有配置,并可以将任意改动(如拓扑修改)传输到整个节点群中。SenseiDB集群还需要一种模式用于定义将要使用的数据模型。

从SenseiDB集群中获取数据的唯一方法是通过Gateways(它没有“INSERT”方法)。每个集群都连接到一个单一gateway。你需要了解很重要的一点是,由于SenseiDB本身没法处理原子性(Atomicity)和隔离性(Isolation),因此只能通过外部在gateway层进行限制。另外,gateway必须确保数据流按照预期的方式运作。内置的gateway有以下几种形式:

应用程序开发人员还可以自定义gateway。这里是一个gateway示例,它从Twitter更新中获取数据。

通过借助输入数据流将数据送入集群,SenseiDB允许使用定义好的模式进行多方位查询。为此,它还提供了一个可由任意HTTP客户端访问的REST API。该API的灵感来源于ElasticSearch's Query DSL。SenseiDb还为API提供了Java和Python封装,相信Ruby版本很快也会出现。

最后,SenseiDB提供了浏览查询语言(Browse Query Language,简称BQL)作为另一种查询方式。BQL类似SQL(目前仅包含SELECT语句),它可以用一种更方便的方式查询SenseiDB。此外,集群安装还附带了一个图形化Web控制台,用作对BQL查询进行检查和调试。

想要了解更多信息,请查阅文档JavadocsWiki。SenseiDB的源代码托管在GitHub上。

查看英文原文:LinkedIn Engineering Releases SenseiDB 1.0.0

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

这个名字是日本人起的吗 by wang yi

哈哈

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT