Smooks结构化事件流处理

概览

Smooks是一个开源的Java框架,用于处理“数据事件流”。它常常被认为是一个转换框架并以此被用于好几个产品和项目中,包括JBoss ESB(以及其它ESB)。然而究其核心,Smooks未提及“转换”或者其它相关的词汇。它的应用远不只这一点!

Smooks的工作是将结构化/层次化的数据流转变成“事件”流,然后交与“访问者逻辑(Visitor Logic)”进行分析,生成结果(可选的)。

源 ->结构化事件流(访问者逻辑) ->结果

那么,有哪些工作是这个工具可以完成,而sax和dom等工具不能完成的呢?鉴于Smooks构建于这些技术之上,所以简单的回答是“没有”。Smooks真正的价值在于能更方便地消费SAX和DOM(Smooks现在还不支持基于StAX的过滤器)。它提供了一个访问者API,以及一个配置模型,允许你轻易地将访问者逻辑的目标设定为具体的SAX事件(如果使用的是SAX过滤器)或DOM元素(如果使用的是DOM过滤器)。Smooks同时还以一种标准方式简化了对非XML源数据格式(EDI,CSV,JSON,Java等等)的消费,即由数据源产生的标准事件流变成了所有这些不同源数据格式的事实上的规范形式。这正是Smooks工作的关键!

使用Smooks的方式有两种,你可以使用其中之一或结合使用它们:

模式一:你可以完全投入到Smooks中,编写你自己的定制访问者逻辑事件处理器,将其用于处理一个数据源事件流中特定事件。使用这一模式,你必须熟悉核心的API。

模式二:你可以重用由Smooks发行版提供的开箱即用解决方案,其数目正在不断的增长中。在这种模式下,你只需要重用别人创建的组件即可,重新配置它们来处理你的数据源,例如,通过配置一些参数就可以由EDI数据源生成Java对象模型。

在这篇文章中,我们会快速地浏览一遍Smooks v1.1发行版提供的一些开箱即用的功能,即那些你不需要编写任何代码就可加以利用的功能(即模式二)。这包括:

多源数据格式:“轻易”地消费诸多流行的数据格式,包括XML,EDI,CSV,JSON和Java(是的,你可以以一种声明性的方式完成java到java的转换)。

转换:利用诸多选项消费由数据源产生的事件流,产生其它格式的结果(即,对源进行“转换”)。这包括能在过滤源数据流时对Smooks所捕获的数据模型应用FreeMarker和XSL模板。鉴于这些模板资源能被运用于源数据事件流内部的事件,因此它们能被用来执行“基于片断的转换(fragment based transforms)”。这意味着Smooks能被用于对数据源的片断执行转换,而不仅限于将数据源作为一个整体来施行转换。

Java绑定:以一种标准方式由所支持的数据格式(即不仅限于XML)创建和生成Java对象模型/图。由EDI数据源 生成某对象模型的配置与由XML数据源或JSON数据源生成对象模型所进行的配置几乎一模一样。唯一区别在于绑定配置的“事件选择器(event selector)”取值不同。

大型消息处理:Smooks支持多种处理大型消息(GBs)的方式,它是通过基于SAX的过滤器完成的。由于综合了 基于片断转换、Java绑定,以及使用节点模型混合DOM和SAX模型所带来的能力,Smooks可以使用较低的内存空间处理大型消息。这些能力允许你执 行直接的1对1转换,同时也支持对大型消息数据流执行1对多的分解、转换和路由。

消息修饰:使用数据库数据修饰消息。这可以按片断来完成,即你可以按片断来管理在一个片断上的修饰。与此相关的一个用例是一个包含了消费者ID列表的消息在发往另一个流程前需要从数据库提取消费者地址和概要数据来丰富。

基于可扩展XSD的配置模型:从Smooks v1.1开始,你可以用自己的可重用定制访问者逻辑配置模型来扩展Smooks XSD配置名字空间。创建这些定制配置扩展只是一项简单的配置工作,这个工作极大的增进了这些重用组件的可用性。所有的现有Smooks预置组件都利用了这一工具。

时间: 2024-11-28 23:01:15

Smooks结构化事件流处理的相关文章

Spark Summit EU重头戏:TensorFlow、结构化的流和GPU硬件加速

Spark Summit EU 2016 上星期在布鲁塞尔召开,其中大会中的重头戏是Apache Spark 集成深度学习库 TensorFlow.使用结构化的流进行在线学习和GPU硬件加速. 大会第一日最具特色的是预览了由Spark 2.0引入的一个创新.该API是针对DataFrames和Datasets简化了的接口,使其更容易去开发大数据应用.这个第二代的 Tungsten 引擎通过把MPP数据库的理念应用到数据处理查询使处理更接近于硬件了:针对中间数据和以节省空间的面向列方式保存在内存中

【Spark Summit East 2017】不必犹豫,使用Spark 2.0结构化流

本讲义出自Michael Armbrust在Spark Summit East 2017上的演讲,在Spark 2.0中,引入了结构化的流,它允许用户不断地.增量地随着数据的增加而改变对于世界的看法,并且Spark 2.0仍然保持了Spark SQL的相同性,Michael Armbrust主要分享了他们在引入结构化的流之后,在在健壮性.延迟.表现力和可观察性所取得的进展.

IBM软件发布分析洞察战略应对非结构化数据激增

5月18日消息,http://www.aliyun.com/zixun/aggregation/13660.html">IBM软件正式发布了基于业务分析洞察(BAO)理论基础之上的IBM智慧的分析洞察(Smarter Analytics)战略,以帮助企业分析 复杂的数据. 该战略融合了IBM大量的软件产品,包括大数据平台.分析型数据仓库等解决方案.财务绩效管理.商业智能.预测分析.内容分析和风险分析等产品. 从2005年来,IBM收购了FileNet.Cognos.ILOG.SPSS.Op

Bigtable:一个分布式的结构化数据存储系统

Bigtable:一个分布式的结构化数据存储系统 本文的英文原文为Google在2006年发布的Google Bigtable paper 本文的翻译版本由Alex完成,原文地址为: http://blademaster.ixiezi.com/ 这是我很长时间以来一直想要翻译的文章,不过由于其文太长,以及本人精力有限,未能如愿,今天偶遇此文,感觉译者此文的翻译已远远超越本人,因此将此翻译版本转载于此. Bigtable:一个分布式的结构化数据存储系统译者:alex 摘要 Bigtable是一个分

了解采用结构化数据的Hadoop的利与弊

首先,我们来定义一下日志分析的含义.最常见的日志分析用例是运用 http://www.aliyun.com/zixun/aggregation/14417.html">Apache Hadoop 处理机器生成的日志(通常是指 Web 应用程序及支持 Web 应用程序的点击流).日志分析需要摄取大量半结构化信息,然后将这些信息汇集成更加易于使用的数据集,并从交互中总结重要信息.(广告位)日志处理是创造 Hadoop 的核心用例,因此它能够在这个场景中正常运转一点也不奇怪. Google.Ya

深入浅出事件流处理NEsper(一)

对实时信息分析和处理,常常需要客户应用程序的开发相应功能.一般地,这些功能需要提供以下的处理流程,分析获取的数据,筛选数据,提取出有用的信息,然后将其通过特定的形式展现出来.由于具体实时信息的高并发性和高吞吐量的需求,这就需要客户应用程序具有高度扩展性和响应能力,而在数据处理领域.NEsper就是一个.NET 开源的针对此类问题的事件流处理解决方案,其目的在于简化有此需求的客户应用程序的开发. 1.1.CEP与事件流 NEsper 的目的在于为应用程序提供分析和响应事件的要求.典型的应用需求如下

COM原理及应用---- 结构化存储

1.结构化存储 COM的结构化存储(structured storage)机制,也称为永久存储(persistent storage)机制.结构化存储可以说是软件存储技术的一个重要进展,COM针对组件软件的需要,在文件系统的基础上,提出了结构化存储的概念.利用结构化存储,组件程序之间可很好地协同工作,一个组件程序可以与另一个组件程序共享同一个文件,就如同一个应用程序与另一个应用程序共享同一个磁盘文件系统一样. COM定义了结构化存储的规范,包括一组接口和实现这些接口成员函数的一些规则:同时COM

通过SQL 2008管理非结构化数据

通过SQL Server 2008管理非结构化数据 SQL Server 技术文档 作者:Graeme Malcolm (内容主管) 技术审核员:Shan Sinha 项目编辑:Joanne Hodgins 发布日期:2007年8月 适用产品:SQL Server 2008 概述:数字化信息的增长为企业应当存储和访问业务数据的方法提供了启发.数据库作为业务应用程序的核心,必须能够同非结构化的数据进行集成,其中包括文档.图像.视频.以及其它多媒体格式.为了能够对信息生命周期进行管理,满足策略需求,

阿里HBase超详实践总结 | 一文读懂大数据时代的结构化存储

前言 时间回到2011年,Hadoop作为新生事物,在阿里巴巴已经玩得风生水起,上千台规模的"云梯"是当时国内名声显赫的计算平台. 这一年,Hadoop的好兄弟HBase由毕玄大师带入淘宝,开启了它的阿里之旅.从最初的淘宝历史交易记录,到去年的支付宝消费记录存储在线历史存储统一:从蚂蚁安全风控的多年存储演进,到HBase.TT.Galaxy的大数据激情迭代:HBase在阿里经历过年轻的苦涩,释放过青春的活力,也付出过成长的代价.几代人的不懈努力下,五年陈的HBase开始表现出更成熟.更