十五年测试老手,长期负责WEB\APP 项目测试,目前主要负责团队管理工作。

Linkedin发布分布式数据库SenseiDB

上一篇 / 下一篇  2012-04-02 12:11:57 / 个人分类:其它

文章来源
  • 文章来源:【转载】

YT7W2i Q6^0  知名社交网站Linkedin在今年的一月份发布了分布式半结构化(semi-structured)数据库SenseiDB 1.0.0,并提交到开源社区。Sensei是日语“老师”的发音,不知道Linkedin这样命名的含义在哪,不过作为SNS的领军人物之一,Linkedin的技术能力在业内也是数一数二的。所以废话不多说,在这里分享一下SenseiDB作者Linkedin搜索架构师John Wang(王鉴)对于SenseiDB的介绍。

r] fUJ$~M0

o `9wbi%u)k1}0  SenseiDB是一个分布式数据系统,设计用来支持Linkedin网站的一系列搜索功能,包括Signal的实时分面搜索、news feed等。我们可以把SenseiDB看作是一个数据库或者是一个搜索引擎,可以查询和导航由非结构化和结构化数据构成的文档。

] ]yI L9SP d-^0

] g5w3`a1P0  SenseiDB的一些功能特色包括:51Testing软件测试网5D9PY`!wH4Qzy

2Q_aau)D1N0  保证高性能查询的同时能够支持大量的insert/updates操作

2Zqh`H&?051Testing软件测试网Bu,@ qC2w:~pL6E

  通过BQL查询语言和REST/JSON api来支持复杂查询51Testing软件测试网+y4_VO_Ov

7d xmu({Hm0  通过不同的Gateways ,如JDBC、JMS和Kafka来串流更新51Testing软件测试网8EF*?M DnV&r^8s

51Testing软件测试网`RutK e*P5A

  从Hadoop中引导指令,比如用Map-Reduce来批量构建索引并推送到SenseiDB集群

6E}T;Lm,KnO%Q051Testing软件测试网M;^{]k

  能够添加自定义插件以及复杂的逻辑,如社交图表等

4E6zm~x051Testing软件测试网9LF*akdG;c3|

  架构51Testing软件测试网 VUr'CX i%_

51Testing软件测试网&f\gb%f
51Testing软件测试网FRhL)\'kNw"Q8a

51Testing软件测试网` ?Aia3{%E|

  插入51Testing软件测试网Zka,G)wCf

51Testing软件测试网*l$SdTh BQ8l

  与其他一些数据库不同,SenseiDB获取数据的方法是通过所谓的gateway。在Linkedin网站中,SenseiDB是通过Kafka和Databus等获取数据流的。SenseiDB依靠外部数据流保障原子性和隔离性,在某种程度上,提交日志是在外部进行。这种设计能够让我们对更新率进行优化,同时最终能够通过复制来提供一致性,而不需要quorum。

2p)R,c2s'R051Testing软件测试网f jIg)I8O4v?

  查询51Testing软件测试网CrK!x:EuE `(\

3Lc1xX h)q`0  SenseiDB的执行引擎针对大型数据集进行了性能优化,并支持一个非常丰富的查询功能集:

I.lNcs~n.P051Testing软件测试网w:u v-o{

  · get/getAll,比如一个Key-value检索

P"_e KY3j\0g:f051Testing软件测试网:dn8TghJk%v2y$m

  · 全文搜索51Testing软件测试网iM |2n }

51Testing软件测试网~$H e+GNJ v

  · 类似于SQL的结构化的selects51Testing软件测试网Q U;`'f$H U+EI

#O^'j6E,SM]0  · 聚合,如facet counting和group-by51Testing软件测试网c-sz{Q

51Testing软件测试网vGRHF,WP8q&iv

  除一个REST/JSON API之外,SenseiDB还支持一个类似于SQL的查询语言——BQL(Browse Query Language)。下面就是BQL查询的使用:51Testing软件测试网rJ#]$d1IoR"x"?

51Testing软件测试网5c&TBZZ!Z rP&M

SELECT _uid,_score,color 51Testing软件测试网^cv M/hB
FROM members51Testing软件测试网f6GzNrI
WHERE color="red" AND 51Testing软件测试网c{@]6c"Z9e
      category IN ("van","exotic") AND 51Testing软件测试网_hR&@*QT
      MATCH(contents) 
H4]!C2EGim0k \0      AGAINST("cool leather seats")51Testing软件测试网 xjO"v(d'L H
GROUP BY color TOP 3
1r&U'xzK'kHX0BROWSE BY color,category
2v.e`,N1P0ORDER BY RELEVANCE51Testing软件测试网5oI5`$O!Y9c{
LIMIT 0,10

F w-og6}PC b3Ot051Testing软件测试网#l4Q` TKa-\j

  SenseiDB与关系型数据库的对比51Testing软件测试网ou)eJeS

9u Aqt V9A9[!`)]0  关系型51Testing软件测试网&sG*a6s8}'S

IL.B2e/J0  · 纵向扩展

Q HVGT1H(i:]0

OZm [ w5B9b1h4D0  · 高度的ACID51Testing软件测试网#Jj.aA&a,z

51Testing软件测试网4iP-b-DRTV

  · 支持关系型

gh!Mz7L+k swa0

o5V|m-b']$~%z:f0  · 全文整合造成性能损耗

$I`X X)s#~t:d0

1y,{.^:oJm7^0  · 大数据集有较高的查询延迟

W"l1I{@x-G0

8oW {$F*]:G~0  · 需要对所有sort possibilities构建索引51Testing软件测试网 b2D4Xs(F+m&n

_LS\;}1j5z:G0  SenseiDB

"ER dR1\0

*w#k$l;h1N0  · 水平扩展

i"uL_ji0

:hm~&nb3t P ew0  · 高持久性 低一致性51Testing软件测试网$y,_5ZdfT K$QP

.h]gJ6cX_l0  · 数据流形式,原子性和隔离性是由数据产生方控制

*b6W:|VrP1Lv051Testing软件测试网2cp;A'kjby&i

  · 深度的全文整合51Testing软件测试网s*Co7lV Lm;[ M

5R&Rc/A*p1JY0  · 任意大数据集保障低查询延迟

$\VCM(W9N0I7u0

G"X(K+_ q;@#snt Be0  · 动态排序,针对所有可排序字段及其组合都已构建索引51Testing软件测试网7{)\Y)N-oI'V

v4a%y+Y3Y8`0      原文地址:http://engineering.linkedin.com/open-source/introducing-senseidb-10-open-source-distributed-realtime-semi-structured-database51Testing软件测试网,^FPE$d*o,EBz,W


TAG: SenseiDB

 

评分:0

我来说两句

Open Toolbar