实时看板开发最佳实践
其他贡献者
本文有6个部分:现实中的实时看板以及案例,挑战,设计模式,最佳实践,用REST API制作一个实时看板,总结。
1现实中的实时分析
变革中的机遇:信息爆炸,新视野-全世界90%的数据都在最近两年产生;向高速平价计算转移,按需计算—到2020年,全球45%的IT产业将会与“云”相关;精通数据的人才增加—善用数据分析的公司将会比竞争对手快5倍的速度做出决策。
数据的投资回报率公式:[数据+分析+人]@速度
关键机遇领域:生产力 6740亿美元,运营 4860亿美元,创新 2350亿美元,客户相关 1580亿美元,总计约1.6万亿美元!
实时分析有哪些“口味”——实时:所有处理(从事件接收到系统做出反应)只需要几秒、几毫秒甚至几纳秒;近实时:1分钟到几分钟;适时:随时可获得;按需:数据推送和数据拉出,没有定时刷新的报表。
哪里在用实时分析?欺诈检测,车联网,点击流量分析,金融投资组合预警,智能电网,CRM销售预警,数据和身份保护,销售追踪。
谁在用实时分析?在企业中,使用实时数据、商业智能或者分析法依次为:运营、客服和支持、销售、IT系统以及网络管理、市场营销… …
来看一个例子:对一座桥的交通分析。对这个看板有什么看法?敬请可后台留言。
接下来,看看实时分析在不同行业的应用。
市场营销——在对的时间给对的客户传递对的信息
思考这个问题:世界充斥着数据,但是市场营销可以获得他们需要的数据吗?他们可以有效地运用这些数据吗?例如,用SignalR做实时社交媒体分析。
金融——速度和透明度需求
金融领导面临着从所未有的压力,他们需要控制成本,降低风险,监控财务状况以及快速评估商业决策的影响。
销售——销售团队的竞争优势
你有大量关于你的客户以及前景的数据。那么如果你可以很容易地将这些数据与外部数据结合然后获得一个你的竞争对手没有的新视角,你觉得会怎么样?
体育——体育… (你知道的)
比赛现场的实时跟踪,数据的传递可以用以快速总结体育赛事,进行运动队和队员的比赛统计。
IT——打击网络犯罪
Botnet每天处理2亿以上的交易,从2500万不同的IP地址里产生566,773,255电话呼叫形成槽洞。[小编注:Botnet僵尸网络,是指采用一种或多种传播手段,将大量主机感染bot程序(僵尸程序),从而在控制者和被感染主机之间所形成的一个可一对多控制的网络。]
看一个例子:打击网络犯罪的新时代。有兴趣对读者可以仔细研究一下。
最常见的阻碍因素
成本是首要因素,构建复杂实时系统的困难以及数据质量分列第2、3名。排名第4和第5的分别是技能和知识的缺乏,以及仅基于历史数据而设计的数据、商业智能和分析系统。
你需要什么去克服这些阻碍?
一个ingestor服务,它能支持大数据,具有良好的特性,且负担得起。
大数据支持:多样性(>百万同时运行的设备)、高速度(>百万事件/秒)和大容量(>上百TB)。特性:缓存技术、耐用、低延迟、安全。
关于“事件容量”,看下“光环4”游戏的数据,可预测和不可预测的爆发
大数据分析不等于用更多数据的传统商业智能
• 大数据分析正在重新定义管理主数据、数据质量以及管理信息周期的过程。
• 大数据不是来取代企业数据仓库(EDW)和OLAP,而是对它们的补充。
• 大数据生态系统包括多种分析技术
• 列式数据库、JSON (JavaScript Object Notation,一种轻量级的数据交换格式)、以及非结构化文件储存
• Hadoop和NoSQL平台在增加SQL、搜索和流处理能力,同时NoSQL平台在增加对海量数据并行处理(MPP)和交易的支持
• 数据分层,可大量利用固态硬盘(闪存)以及动态随机存取存储器
启用实时分析
现时在用的关键技术:1)数据联合、复制、同步、消息总线、微批量;2)为高效而设计的功能,包括变化数据捕获、列式数据库、内存中处理、固态硬盘;3)真正的实时处理,使用复杂事件处理和连续的流数据挖掘。
从方法进化到分析法
传统:从联机事务处理系统,企业资源计划系统等里提取数据,利用ETL工具(如SSIS)来转换然后加载到企业的数据仓库。
现在:从多种多样的设备上提取源数据然后加载到一个可扩展的储存和计算的系统,例如HDFS(Hadoop分布式文件系统),然后在这个系统里在进行数据转换和加载到更高一级的数据系统。
相同点:都最终提交给上层应用。
数据仓库模式的改变。首先,大数据存储(亦称数据湖)具有三个重要特征:
1. 收集所有数据——包含所有数据,包括存在很长一段时间的原始数据源以及任何正在处理的数据
2. 可任意探索——支持用户贯穿多个业务单元来完成提炼、探索以及按用户自定义方式数据
3. 灵活的数据访问——在一个共享的结构上允许多种数据访问模式:批量、交互式、线上、搜索、在内存中、其它处理引擎
这一改变,还表现在现代大规模并行处理、列式以及可视化分析的革新:
1. 天生支持Hadoop数据访问——以前,查询Hadoop需要运行复杂的Java程序,运行结果出来得很慢;如今,批量处理改善类的工具加快了数据访问速度。
2. 外部表、压缩、HDFS、Hive以及其它手段——易用的可视化分析工具,使用对商业用户友好的方式来访问Hadooop数据,且常常将数据移到一个内存中的缓存,以实现快速数据分析。
3. 物化视图以及分析功能——大数据可视化分析工具通过将数据调入内存中或者芯片,并且智能地、自动地重复使用以及刷新那些视图,提高了传统视图技术。
Hadoop:将计算移入数据,是受到Google MapReduce的启发,其架构可以自动扩展存储系统,以及在商品化的硬件上进行分布式数据处理。
希望进一步了解Hadoop 在企业的应用,请参阅往期文章《一图以蔽之:Hadoop在企业大数据企业应用中的崛起》
另一种方式:使用虚拟机实现虚拟桌面,将Hadoop变成虚拟化的计算机
小编注:图中可以看到,多个桌面建立于一个(虚拟)硬件之上,而Hadoop下层有多个服务器。
有比较才有鉴别,看看“传统关系型数据库 vs. MapReduce”
容量:GB vs. PB,访问方式:交互和批量vs. 批量,更新方式:多次读写vs. 一次写、多次读,结构:静态vs. 动态,完整性:高vs. 低,扩展性:非线性vs. 线性,数据库管理员比例:1:40 vs. 1:3000
那么,从原有模式到新模式的转变,变化在哪里?
原有模式:数据到达->提取->清洗数据->转换->加载到企业数据仓库->分析
新的模式:数据到达->加载到Hadoop->分析->加载数据子集到企业数据仓库
这种转变,使得从数据中获取价值变得更快
相应的,数据仓库模式也需要改变。基本上是给大数据架了一个桥梁,将非关系型数据和关系型数据通过Hadoop分布式文件系统连接起来。
来分析一下这个变化的核心 ——“事件中心”。它完成“数据摄取”,通过(超大规模、完全受管理的、协同的、安全的、性价比高的)事件中心,从多个事件源摄取数据,并提供给云端服务。
它的规范架构是:事件生产者->收集->事件排队系统->转换->长期储存->呈现与行动
这个规范架构是怎么工作的呢?
其实,更关心的是,有哪些常用的技术?那就好好记住这张参考表吧。
那么,所说的最佳实践到底是啥呀?
实时数据最佳实践
• 用实时运营数据储存
• 用实时数据仓库
• 实施变化数据捕获
• 并排展现实时数据以及历史数据
• 定义可接受的临界值以及所有实体实时跟踪的业务规则
流数据最佳实践
• 持续的数据流挖掘
• 管理一个队列数据流
• 时间窗口
• Hadoop和Lambda数据架构
• 用其他企业数据来丰富流动数据
提供一些参考,包括Lambda架构、分析数据管道(和微软的数据管道的例子)。
总的来说,你需要处理数据流,这需要使用流处理查询语言。
处理的核心技能,是如何查询事件和时间。
每个事件流经系统的时候都有一个时间戳。
这里,你需要了解如何使用适当的时间窗口。
Tumbling Windows:重复、无重叠、固定间隔。如,告诉我每个时区每10秒的推特量。
Hopping Windows:通用窗口、重叠、固定大小。如,每5秒给我一个推特量以及过去10秒的情绪分数。
Sliding Windows:滑动一个很小的量(epsilon),在事件发生时产生结果。如, 告诉我在过去10秒里被推送超过10次所有话题的推特量。
还有,很重要的一步,连接多个(数据)流。如,列出所有在一分钟内改变了情绪的用户和话题。
得到结果数据后,用REST API完成推送。
到这里,你就真正实现了解锁数据的价值:
• 当前易用的视觉分析工具可以使人做出更聪明的决策,并产生更多的商业价值;
• 快速、直接、敏捷地访问大数据,进行适当的分析,结合企业数据仓库,联机分析技术以及个人数据源,减少长期积压从而获得更快捷可行的视角;
• 为了问新问题以及进行分析而在平台间移动大量数据的需要更少了。
最后,总结一下本文精华要点:
• 现实中的案例
• 常见的设计模式
• 最佳实践
• 流行的实时分析工具
原文发布时间为:2015-06-08
本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“BigDataDigest”微信公众号