这种列存储文件格式专为满足物联网的独特需求而设计,旨在减少网络传输和云计算资源的消耗。
翻译自 tsfile: A Standard Format for IoT Time Series Data,作者:Susan Hall。 tsfile 项目已达到 10,提交正在努力使其成为 Apache 软件协会内的一个独立项目。
TSfile 是一种列存储文件格式,专为时间序列数据而设计,采用先进的压缩技术,可最大限度地减少存储空间、高吞吐量读写能力,以及与 Apache 项目 Spark 和 Flink 等处理和分析工具的深度集成。 例如,随着工业物联网的发展,单个风力涡轮机会产生大量数据。 根据该项目的GitHub页面,“特别是当物联网进入工业互联网时,智能设备产生的数据比面向消费者的物联网多一两个数量级”,获得可操作的见解变得更加复杂。 它指出,TSfile 旨在支持“每秒多达数千万个数据点的高吞吐量摄取,仅用于稀疏更新以纠正低质量数据; 数据密集打包,长期历史数据深度压缩; 传统的顺序查询和条件查询、复杂的探索性查询、信号处理、数据挖掘和机器学习。 ”
TSfile 是 Apache IoT 时序数据库的基础存储文件格式。 iotdb代表了中国清华大学软件学院十多年的研究成果。 2020年成为Apache软件协会的顶级项目。 “在TSFILE出现之前,时间序列数据缺乏标准的文件格式,使数据收集和处理变得复杂。 项目委员会发言人郑鹏程在一封电子邮件中说。
通过TSFILE,用户可以在IoTDB中进行可移植的数据卸载和加载,使底层数据的管理和迁移更加灵活。 即使没有数据库,用户也可以直接使用 SDK 从 TSFILE 中读取数据,实现一些轻量级的数据读写场景。 ”
用户可以将数据写入终端设备或网关中的TSFILE,然后将其发送到云端,以IotDB或其他统一管理系统。 它本身不是一个数据库,而是一种通过压缩和高效存储来减少云端网络传输和计算资源消耗的格式。
TSfile 可以存储来自单个设备或多个设备的时间序列。 虽然来自多个设备的数据存储在一个 tsfile 中,但每个设备都有自己的存储引擎,因此与传统数据库一样在物理上是隔离的。 数据按时间维度索引,提高查询性能,实现时序数据的快速筛选和检索。
在 IotDB 中,它同时支持事务处理 (OLTP) 和分析处理 (OLAP),而无需将数据重新加载到不同的存储中。
IoT 原生数据模型将来自设备和传感器的时间序列数据组织到日志结构合并树中,以适应延迟的数据到达,使其适用于写入密集型工作负载。 对于较短的延迟,数据首先缓存在 memtables 中,然后刷新到 tsfiles 中。
TSfile 允许用户直接写入数据,无论是否预定义的架构和过滤器,而新版本增加了对更多数据类型和算法的支持。 尽管最初是用 J**a 编写的,但根据 Zheng 的说法,对多种语言的 tsfile 实现的需求正在增长,例如 C++、Go 和 Rust。 其用户通常在高效数据存储、快速访问和分析至关重要的场景中工作,例如物联网、智能控制系统、财务分析和日志分析。
他指出,TSFaffe 因其专注于时间序列数据的独特需求而脱颖而出。
过去,企业通常以各种用户定义的文件格式编写时间序列数据,缺乏统一性,或者使用常见的列式文件格式,如 [Apache Project] Parquet 和 ORC,这使得数据收集和处理变得复杂,没有标准。 “TSFafile 提供了诸如长期历史数据的深度压缩、高吞吐量和处理罕见更新等优势。 它与IoTDB和其他系统集成的能力进一步凸显了其优势。 用户可以在嵌入式设备或网关上写入 TSfile 数据,然后将 TSFILE 直接传输到云端,而无需传统的 ETL [提取、转换、加载] 过程。 这样,减少了云端的网络传输和计算资源需求。 “未来,委员会希望让 TSFaffe 成为一个独立的项目,拥有自己的 SDK 和更易于使用的文档,增加对更多语言的支持,在 TSBog 中集成更多的编码和压缩方法,并提供更多可视化、解析和修复工具等工具。 “然而,这些计划并不是不可撤销的,因为我们是以Apache的方式进行合作的,每次讨论新的见解时,都可能有助于修改和优化,”郑先生说。
苏珊·霍尔(Susan Hall)是《新堆栈》(The New Stack)的赞助编辑。 她的工作是帮助赞助商为他们的贡献获得尽可能广泛的读者群。 她从《新堆栈》的早期就开始写作,等等。 阅读更多关于苏珊·霍尔的信息。