一文了解开放数据架构和时间序列数据
开放数据架构,简单来说它与供应商锁定的封闭系统环境截然相反。根据开放数据架构原则设计的系统支持不同应用程序之间的无缝数据流动,即使它们看似毫无关联,因为所有数据文件格式和标准都符合相同的要求。使用这种模式,开发人员和利益相关者就有机会选择最适合每个工作流程环节的工具。
开放式数据架构消除了“孤岛”现象,使数据团队能够就相同的数据开展协作,提供可靠的数据并轻松管理数据。这种架构对于大量数据(如时间序列数据)具有优势。
时间序列数据是带有时间戳的数据。其来源多种多样,包括制造业、DevOps 监控、金融科技、农业科技、应用监控等等。时间序列数据的一些常见例子包括股票价格、物联网数据(风速、压力、温度、湿度等)、可观测数据(指标、日志和跟踪)、网络安全和服务器健康数据。
考虑一个从风力发电机中提取的数据集,在一个开放数据架构中。数据科学家团队对数据集进行分析,并使用机器学习 (ML) 工具进行预测分析。与此同时,工厂操作员在实时仪表板上监控模型的性能和风车数据,以确保运营效率,这些风车数据很可能是时间序列数据。
构建开放数据系统
乍一看,封闭系统似乎很有吸引力。供应商能很好地提供您可能需要的所有工具(甚至一些您不需要的工具)。但随着时间的推移,限制也随之出现。在封闭系统中,添加新技术并不容易,因为架构已被锁定,如果供应商不添加新功能,那么唯一的选择就是在限制范围内生存,或者考虑新的供应商或开放式数据系统。
虽然与前者相比,开放式数据架构令人生畏,但在入门时还是有迹可循的,应用程序和工具之间无缝转换所需的组件已经存在。已经有技术基础设施对数据进行格式化和标准化,以满足互操作性、可扩展性和集成性的基本要求。
时间序列数据与开放数据架构的交叉点
在确定哪种系统最合适时,对项目范围的深刻理解非常重要。例如,为时间序列构建开放数据设计本身就存在挑战。时间序列摄取的速度和速度以及存储的大量数据都需要一个专门针对时间序列的解决方案。了解开放式数据架构及其与时间序列数据的交叉点,不仅可以为更顺畅的流程铺平道路,还能为开发人员团队带来无数好处。
互操作性
互操作性可以说是开放数据架构最重要的方面。互操作性是指应用程序、设备和产品之间的无缝数据交换。Apache基金会旨在提供标准化数据格式和传输协议,以促进开放数据工具之间的互操作性。
Arrow 和 Parquet 是 Apache 的开源列格式工具。Arrow 是一个定义内存列式数据的框架,每种处理语言都可以使用。它的目标是成为与语言无关的标准,帮助促进列式存储数据的互操作性。列式存储按列而不是行来组织数据。这种存储组织方式有利于时间序列数据,因为这种数据类型生成的行数通常多于列数。列式组织允许 Parquet 对每一列独立应用压缩和编码,从而大大降低了存储要求。
数据收集
收集时间序列数据比将数据发送到数据库更复杂。确定数据源(可能包括传感器数据、网络事件,甚至是向云端发送数据的边缘时间序列数据库)只是整个过程的一部分。确定这一过程所涉及的流程和机制也至关重要。其中可能包括清理、汇总和格式化数据,以确保数据在到达最终存储位置之前的质量和一致性。
例如,Telegraf 是一个开放源码数据收集代理,可促进多种来源的数据收集。Telegraf 基于插件,有 300 多个插件,而且是开源的,因此任何开发人员都可以编写定制插件(如果还没有的话)。
存储
安全、可扩展、专用的时间序列数据库是存储时间序列数据的最 佳场所。例如,基于 Apache 开放数据系统构建的数据库支持大规模存储。Arrow 和 Parquet 可与其他分析、机器学习和转换工具集成,从而带来更多价值。采用开放数据架构的时间序列数据库旨在优化时间戳数据。这种方法专为时间序列数据定制,在保持完整性的同时减少了存储空间占用和要求。
数据可视化
数据可视化可帮助用户了解隐藏在数据中的模式、趋势和见解。开放数据生态系统中常见的可视化工具包括 Grafana、Tableau 和 Apache Superset。这些开放数据工具通常具有广泛的兼容性,允许监控时间序列数据的开发人员实时跟踪并更好地理解时间序列数据。一些公司利用开放时间序列数据架构来监控、预警和可视化其时间序列数据。这些公司还将时间序列数据库作为其架构的一部分,但在其余技术堆栈方面则各不相同。
小结
使用开放式数据系统意味着可以从互操作性和工具组合的自由中获益,为每个独特的使用案例创建定制解决方案。数据收集、存储、可视化和数据分析是组成开放数据架构的拼图。
作者 Anais Dotis-Georgiou 是 InfluxData 的开发者