微软开源高性能内存流分析引擎Trill,它由微软研究员开发,基于时间数据(Temporal Data)和查询模型,专门处理实时和脱机数据,可应用于流引擎、轻量级内存关联引擎,以及渐进式查询处理器。
Trill是2012年微软研究院中的一个研究项目,使用的技术源自微软以前的服务StreamInsight,供开发人员开发和部署复杂的事件处理应用程序,而这两个系统都基于扩展查询和使用时间组件来扩展关联模型的数据模型。现在Trill以一个套件,就提供了所有这些功能。
微软提到,Trill是第一个集合技术和算法的流引擎,以用户可接受的延迟,处理小批次的数据,另外,Trill同时也是第一个以行格式,组织这些批次数据的引擎,能使查询执行更加有效率。对于开发者来说,使用Trill与使用任何.NET函数库相同,可以直接在.NET环境中开发,开发者可以将Trill嵌入至各种分布式处理基础架构中,如Orleans和微软的SCOPE数据处理基础架构的流版本。
无论在实时还是脱机数据集,Trill也都能发挥良好的功能实现最佳性能,微软表示,开发者只需要一个工具就能进行所有分析,Trill语言的高度表达能力,允许使用者执行先进的时间导向分析,并从流数据集中找寻复杂的模式。
在Trill发布后,项目从微软研究院转移到了Azure数据产品团队,成为微软内部一些大型流工作产品线的关键组件。Trill已经被微软大量部署于内部应用程序和外部的服务,参与规模覆盖数千名开发人员。微软提到,他们能够在10个月内,让Azure流分析服务从第一行代码到公开预览,就是在服务上使用Trill作为节点上的处理引擎。
Trill函数库的组成,方便的和分布式处理框架与输入输出适配器整合,微软利用SQL编译程序,将SQL查询编译为Trill的表达方式,以解决时间语意的复杂性。未来Azure预计还会发布Trill程序开发模型,供用户利用其强大的表达能力。
除此之外,微软也在自家搜索引擎Bing广告中使用Trill。透过Trill,微软能够在数分钟内,以接近实时的速度,处理数PB的大规模数据,微软提到,要获得这样的成果,在传统的方法中要花费超过24小时以上。
Trill现在已经成为Bing广告流处理系统的核心,其提供一致的数据模型和丰富的查询语言,让微软能够轻松的建构和执行复杂的业务场景,而且Trill高性能的设计,不只能处理每天数兆的事件,超大规模数据和数TB级的状态都不是问题。微软表示,现在开发者社区中没有与Trill相同功能的工具。
微软在GitHub中开源Trill,并邀请社区参与Trill的发展,微软提到,Trill的可扩展性之一,便是允许用户编写自定义聚合,Trill的内部聚合操作与使用者自定义的框架相同,每一个聚合都使用相同底层的高性能基础架构。即便Trill已经拥有各种聚合,但仍有许多可以增加的聚合,诸如金融等领域等待社区的积极参与。
留言与评论(共有 0 条评论) |