企业正被各种来源的实时数据所淹没,包括来自网络和移动应用程序、物联网、市场数据和交易等。从理论上讲,企业应该可以利用这些大量信息改善客户体验、节省资金和创造利润。
这里的挑战是弄清楚如何利用这些数据流,以及应使用哪些分析类型。
有效的实时分析架构可以帮助业务经理和数据科学家快速测试新想法,以识别和扩展最佳用例。
传统的分析方法依赖于将数据结构化,并存储在数据库中,这些数据库需针对特定查询类别进行优化。实时分析可处理不断变化的数据,并且必须实时进行结构化。
IT咨询公司ITRenew的计算和存储解决方案高级副总裁Erik Riedel表示:“通过流分析,可以随时了解特定时刻企业中发生的事件并对其采取行动,以及利用这些信息做出更好的业务决策。”
同时,重要的是设计可以响应和扩展的实时分析架构,而不是仅仅构建一次性的流分析项目。
决定你的流数据架构的关键问题
所有流架构将具有相同的核心组件,其中包括流数据聚合器、代理-用于管理对这些数据访问权限,以及分析引擎。但是这些组件需要针对不同类型的企业和用例进行定制。
Riedel说:“流传输所需的特定数据架构将随数据大小、事务处理频率以及分析所提问题的复杂性而变化。”
例如,我们会看到,在大型企业中提供不同种类的实时分析,以及向企业总部的少数分析师提供实时分析数据以发现季度趋势,这两者可能存在很大差异。
应考虑的关键问题包括:
- 数据大小如何?
- 更新或事务频率如何?
- 查询复杂性如何?
- 所需要服务的分析师或应用程序有多少?
Riedel说,这些问题的答案将会影响系统设计一直到硬件级别–在数据存储、RAM和分布式内存访问方面。流数据的地理分布可能给系统带来额外的压力,因为即使适度的交易速率也需要仔细的系统设计。
实时分析架构构建块
国际IT咨询和软件开发公司ScienceSoft的数据分析部门负责人Alex Bekker表示,该公司使用以下模块来构建IoT实时分析架构:
- 事物—配备传感器以生成数据用于分析的对象;
- 网关—事物与架构的云部分之间的关键
- 数据湖—以数据原始格式存储数据的临时存储库;
- 大数据仓库—存储已处理和结构化数据的存储库,这些数据需要进一步分析以提供有意义的见解;
- 数据分析部分—即分析发生的地方;
- 控制应用程序—在该模块,自动命令和警报发送到应用程序或IoT应用程序中的实际执行期。
规划实时分析用例的增长
当有些实时分析应用程序取得成功时,对新型分析方法的需求就会淹没数据管理者和数据工程师。
Riedel说:“当分析的商业价值变得明确,对系统的使用和对丰富分析的需求就会迅速增长。”
他发现开放标准和开放框架可以帮助解决硬件和软件的关键基础架构可扩展性和适应性挑战,还可以消除供应商锁定等障碍。当数据管理者现场要求突然改变分析方法或工具,而需要全面更改基础结构,这一点很重要。
Riedel看到的常见挑战在于,当需求和分析复杂性增加时,如何有效地扩大分析规模,而在事务或分析放慢时,如何有效地缩减分析规模。通过从最低级别开始追求开放基础架构,可以更轻松地扩展应用程序。
明确目标
实时分析项目在处理太多流数据或关注错误目标时会出现问题。
AWS咨询合作伙伴FuseForward Solutions Group Ltd.的创始人兼CTO Mark Damm说,很多IT团队缺乏处理大型和复杂数据集的技能、资源或预算。其结果是,他们实际只利用了大约1%的数据。
他认为,从数据架构、基础设施或工具入手是错误的。相反,最好是尽可能清晰地了解企业的近期和长期目标。
接下来,确定可用的数据流。只有这样,才可能围绕基础架构和工具做出可行的信息选择。Damm发现,在云端部署实时分析可以提供灵活性和敏捷性,以快速创建和发展新的解决方案。
他说:“传统的本地架构面临的挑战是,提供流分析所需的适当存储、处理和快速响应。”
Damm认为雾计算是一种日益流行的方法,可处理复杂数据流以满足本地需求,因为它可更容易地将流处理移至边缘。
减少数据处理中的噪音
分析和数据管理工具提供商Information Builders的产品管理高级副总裁Keith Kohl说,在构建支持流的基础结构时,了解业务用例是的最重要的因素之一。这也可以更容易地构建反映业务功能的应用程序,并且应用程序更加模块化和可重用。
很多流行的流处理工具包含针对特定功能过滤掉流数据的功能。例如,Kafka流数据架构使你可以使用与特定用例相关的消息来创建主题。分析应用程序可以配置为订阅所需主题的适当子集。其他流行的工具也有类似功能,例如Apache Flink、Apache Spark和Apache Flume。
流分析组件
数据湖提取和转换工具提供商Upsolver的首席执行官Ori Rafael说,随着存储成本的下降,企业可以更好地存储流数据用于后续的分析应用程序。
传统的数据架构是围绕企业数据仓库而构建,数据仓库提供高性能SQL数据库用于报告分析。但是,对于流数据架构,将无模式数据从流转换为数据仓库所需的关系格式可能会非常昂贵。
现在企业开始采用流数据架构,其中他们将数据直接存储在消息代理中–使用Kafka持久存储等功能,或者存储在数据湖中–使用Amazon Simple Storage Service或Azure Blob等工具。这些工具减少了前期整理数据到表中的需求。但是,当需要新类型的分析时,数据管理者必须花费更多的时间来结构化这些数据。
企业备份工具提供商Sungard AS的CTO架构师Kiran Chitturi说,另一个可能影响架构选择的因素是不同类型的分析所需的查询类型。流行的用例包括使用分布式SQL引擎、数据仓库存储或文本搜索,或将低延迟流事件发送到业务应用程序。
保持数据来源也很重要,这样业务用户才能了解他们正在使用什么。生命周期管理软件提供商PTC的分析副总裁Ed Cuoco表示,这可以包括了解数据质量以及各种来源的数据量。这可以帮助业务用户确定数据适用性,以用于各种类型的描述性、诊断性和预测性分析。