今年早些时候,SAP首席技术官Vishal Sikka与欧洲一个主要消费类产品公司的CTO在柏林的一个咖啡厅座谈。而这一天是德国最热的一天,足有37摄氏度。
“我们需要预测到用户的需求”,Vishal看着广场炎热的天气感慨道。
他表示,如果一个公司能够在炎热的天气中监视冰激凌、水或防晒霜的销量,然后评估未来的需求,那么就有可能会改变公司的运作方式。
“也许每年只有6天这样的日子,但这会改变公司的盈利能力”,Sikka谈到。
真正的变革
“实时计算的需求将是真正的变革”,Sikka说道,用户提出的需求也正象实时数据一样快速更新,实时响应事件发生时的行为同时也正在改变世界。
智能手机让大家更加无缝的连接到互联网。基于位置的服务如Facebook Places和Foursquare可让其他人看到你确切的位置。
而在商业领域,新技术需要让企业看到他们的客户在做什么,并精确到毫秒范围。
金融领域引领技术创新
在技术术语中,软件允许这种情况发生,这被称为复杂时间处理(CEP)。该技术的发明者是Progress Software公司副首席技术官、Apama公司联合创始人Giles Nelson博士。
尽管Giles Nelson是该技术背后的创造者之一,但他并不完全喜欢这个词。在他看来,这会导致人们会认为它比实际上更复杂,从而导致人们望而却步。Nelson博士表示,其实很简单,各个行业的业务都需要加速处理。
CEP的首批用户是银行,当然它所涉及的领域不仅有股票交易,还有期货和其他衍生品。该软件使用数学算法来跟踪股票。例如两个石油股。银行将实时跟踪两股,假设在10秒的时间如果一个股票甚至跌落0.1个百分点,软件会提示自动购买其他股票。
这种算法在银行的交易过程中做出了很大的贡献,它使金融交易在过去10年中交易量大幅增加,并尽可能将其自动化处理。
在过去3年,货币市场的交易增长了20%,每天大约4万亿交易额,这也是世界上最大的交易枢纽。
而那些曾经在伦敦或纽约交易大厅现场盯大盘的做法已经结束了,那些已经是历史——Nelson表示。
此外,总部位于伦敦的博彩公司CMC Markets允许非专业的散户投资者对金融市场进行投注,平均每天100亿美元的交易。目前瑞士银行和瑞士信贷现已提供iPhone和iPad的应用程序供投资者做数据分析处理。
Nelson表示,过去银行交易只有不到10%用到数据分析算法,而现在50%至70%的交易都用到分析算法。三分之二的银行在使用CEP软件。但该软件也被指责加剧了金融危机。因为计算程序自动出售股票同时也意味着在市场中蔓延恐惧,因为在算法中内置了提示应该“卖出”的订单。
CEP在美国股市5月6日的大幅下跌中也受到影响。短短几分钟内道琼斯指数下跌了近1000点,该软件“功不可没”。目前伦敦证券交易所通过Turquoise交易平台(使用Apama)作为其金融服务管理,并使用Cohen博士的软件来监视欺诈。而汇丰则使用美国商业分析公司的SAS软件为每个实时信用卡交易审批。
未来使用场景
“我们很难想象到一个没有受实时计算影响的行业”,Palmer表示。
目前,实时处理软件已经发展到了华尔街之外的其他行业之中。
在荷兰鹿特丹是欧洲最大的港口,每年约有4亿吨货物通过这里物流,但船舶往往不能按时到达,也许会晚上几个小时。而港口还在等待货物的装卸,这浪费了燃油、时间和金钱。
电信公司正在使用实时数据分析软件来管理其网络上的应变。在意大利移动电话公司Three利用Apama来测试系统能否为歌库提供更快的音乐下载,当网络使用率较低的时候。
SAP公司的软件也被部署到海上石油钻井平台,甚至在世界各地的医院,帮助检测糖尿病患者的血糖水平和胰岛素数值。当监测到数值达异常时会立刻提醒医生。
Sikka表示,一个大型的英国天然气公司最近开始使用其软件分析从伦敦6万个客户智能电表的数据。并计算出在大约晚7点时是能源使用的高峰。
人们正在讨论实时计算在未来的应用。包括军事,如部队和坦克的实时监测,同时StreamBase已经被美国国家安全局用于检测安全威胁。
实时计算的处理原理
yiihsia在ITeye上的一篇博客指出了实时计算的处理原理。
当数据实时入库的时候,一般都需要对原始数据做一定的处理再入库。能在这个步骤计算尽量在这里完成。 这个类似数据的预算后入库,然后提供直接读取服务。对用户的延时性上最好。
然而有一些对数据的计算并不能通过预算解决全部问题,比如搜索。实时计算比较常在数据分析类应用中出现,由于数据分析时刷选条件多样性与多变性,使数据无法预算,所以只能通过后期的实时计算。
Facebook的实时系统中大量应用到了hadoop、hbase。
他们的项目需求主要有:
1. Elasticity(伸缩性)
2. High write throughput(高写吞吐量)
3. Efficient and low-latency strong consistency semantics within a data center(单个data center内高性能、低延迟的强一致性)
4. Efficient random reads from disk(disk的高性能随机读)
5. High Availability and Disaster Recovery(高可靠性、灾后恢复能力)
6. Fault Isolation(错误隔离)
7. Atomic read-modify-write primitives(read-modify-write原子操作)
8. Range Scans(范围扫描)
Facebook对HBase、HDFS做了大量优化,但毕竟是基于MapReduce(IO是硬伤),再优化也无法达到互联网应用级别的响应延时。用户搜索“2011手机” 又选择了属性:智能机、直板,想看这个月满足这些条件的交易在不同省份的分布。
因此,实时计算中大量用到了搜索技术。
与传统搜索的主要区别在于:
目的不同:搜索的目的是排序、实时计算的目的是汇总计算
结果不同:搜索返回的是list、实时计算返回的是计算的精确结果
读取数据不同:搜索可以根据权重取topN的数据做排序、实时计算需要获取所有满足条件的数据做计算。