BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Greg Young谈以读模式使用Event Store

| 作者 Jan Stenberg 关注 29 他的粉丝 ,译者 臧秀涛 关注 2 他的粉丝 发布于 2013年2月6日. 估计阅读时间: 2 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

Greg YoungEvent Store的首席架构师,他最近谈到了Event Store中的Projections Library,以及如何以读模式来使用它。Greg在讲座中解释了Projections Library及其主要用例。他还介绍了很多实用的例子。

Projections Library是一种流式数据库,主要关注时间化查询(Temporal Query)。当要将发生的事情与时间关联起来时,比如希望在Twitter上找出一分钟内说过“生日”的人中提到“礼物”的,使用时间化查询。据Greg介绍,时间化查询是业务系统中一种常见的查询类型,Event Store可以轻松处理。而使用SQL来解决此类问题往往非常复杂,而且所需的子查询数是呈指数级增长的。

Projections Library包含如下特性:

  • 取到一个事件流并将其转换为其他某种形式,比如从一个新客户事件组成的流中选取名字。
  • 将流划分到新的分组中(比如分解或连接流)。
  • 跨多个流的Projections使对大量事件的查询成为可能(例如,并发查询所有银行账户来查找特定的事务模式)。
  • 持续查询。Projections可以保持运行,新来的数据也会加入到查询结果中。
  • 发出新事件,比如查找超过一定规模的订单,并从这些订单创建大的订单事件,以便进行额外的信贷控制。

Projections Library是专门为大数据问题、持续查询和流式信息构建的。

Greg特别指出,Projections Library并不是NoSQL数据库(如文档数据库)的替代品,那与其主要用例相去甚远。

Projections通常以其默认语言JavaScript编写,这意味着使用Web浏览器就可以。此外也内建了使用浏览器调试的功能。

AtomPub是其主要接口。大多数平台都能够发送HTTP请求,因此可用于构建Event Store客户端,也可成为异构环境的一部分。

Event Store是根据Event Source的理念构建的数据库,这种理念保存的是事件,而不像今天的大多数数据库类型那样保存状态。Event Store是开源产品,也提供了可选的商业解决方案。它于2012年9月在伦敦的一场发布会中发布,最近刚刚发布了1.0.1版本。

查看英文原文Greg Young on using Event Store as a Read Model

评价本文

专业度
风格

您好,朋友!

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

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的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通知我

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

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

讨论

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


找回密码....

Follow

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

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

Like

内容自由定制

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

Notifications

获取更新

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

BT