填补市场空白,Apache TsFile 如何重新定义时序数据管理

eadf67bf6d66c69ec9215a426a9632c6.png

欢迎全球开发者参与到 Apache TsFile 项目中。

刚刚过去的 2023 年,国产开源技术再次获得国际认可。

2023 年 11 月 15 日,经全球最大的开源软件基金会 ASF 董事会投票决议,时序数据文件格式 TsFile 正式通过,直接晋升为 Apache Top-Level 项目(TLP),成为继时序数据库 Apache IoTDB 之后,Apache 时序数据领域第二个 Top-Level 项目。

TsFile 由时序数据库 Apache IoTDB 项目团队开发,是一种专门用于时序数据管理的文件格式,同时也是 IoTDB 的底层存储格式。

自项目成立以来,TsFile 社区发展迅速,在来自天谋科技、清华大学、华为、eBay、东方国信、用友等企业贡献者的共同努力下,于今年 2 月 20 日正式发布了 1.0.0 版本。据悉,Apache TsFile 1.0.0 版本支持多种数据类型、编码算法、压缩算法以及多种写入、查询模式。

7ed862680466ed6fe649302af9ec9c29.png

(TsFile 1.0.0 版本内容,原文链接:https://github.com/apache/tsfile/releases/tag/v1.0.0)

事实上,TsFile 的意义,不仅仅在于其晋升为 Apache TLP 证明着国内开源项目的实力,更重要的是,TsFile 填补了时序数据领域的一项市场空白

01

TsFile:为时序数据管理提供统一格式

时序数据即时间序列数据,是指带时间标签(按照时间的顺序变化,即时间序列化)的数据,其来源多元、数据量庞大,可广泛应用于物联网、智能制造、金融分析等领域。在数据驱动的当下,时序数据的重要性不言而喻。

尽管时序数据如此普遍且重要,但长期以来,时序数据的管理都缺乏标准化的文件格式

当前企业会面临着多种时序数据的存储格式,如自定义格式的 CSV、自定义的二进制格式,或者使用 Parquet、ORC 等通用文件格式,这导致时序数据源的统一管理和汇聚十分复杂。

同时,通用文件格式没有针对时间、设备、测点等时序数据特有的数据概念,可能导致主键信息存储冗余,并缺乏时序数据场景常用索引,使得快速定位与查询数据性能受限。

这便是 TsFile 针对这一市场空白,希望实现的价值:为时序数据提供统一和标准化的格式。IoTDB 团队在构思 TsFile 结构时,便考虑了几个关键因素: 

•    时序模型:专门为物联网设计的数据模型,每个时间序列与特定设备相关联,所有设备通过分层结构相互连接;

•    高压缩比:为时间序列量身定制的列式存储格式,将数据按设备进行组织,并保证每个序列的数据连续存储,最小化存储空间;

•    高效写入:数据可以按块写入,能够达到最大吞吐;

•    高效访问:为时间、设备、物理量构建了相关索引结构,实现快速数据检索。

02

TsFile 的几大特性

下面具体了解一下 TsFile 的性能亮点。

相比其他文件格式,TsFile 通过自研实现了时序数据高效率管理、高灵活传输,并支持多类软件深度集成。其特性包括: 

•    可独立使用:可以使用 SDK 直接读写 TsFile,使得一些轻量级的数据读写场景成为可能。

•    高效存储和压缩:TsFile 采用先进的压缩技术,可最大限度地减少存储需求磁盘空间消耗并提高系统效率,从而减少磁盘空间消耗和优化数据管理。相比通用文件格式,压缩比可提升 20% 以上

•    灵活的元数据管理架构:与传统写入方式不同,TsFile 支持灵活的元数据管理,无需预定义元数据即可实现数据写入。这种适应性结合时序数据的动态特性,简化了数据写入和管理过程。结合列式数据写入模式,相比通用文件格式,写入吞吐可提升 2-3 倍

•    高查询性能:通过设备、传感器和时间维度索引,TsFile 实现了基于特定时间范围的时序数据快速过滤和查询。相比通用文件格式,查询吞吐可提升 2-10 倍

•    协同同步:TsFile 是时序数据库 IoTDB 的底层存储文件格式,可与 IoTDB 形成可插拔的存算分离架构。通过 TsFile,用户可对 IoTDB 中的数据进行便捷的加载与导出。同一个 TsFile 可以在嵌入式设备、边缘服务器和云节点中灵活部署和同步。

•    开放集成:TsFile 支持与 Spark、Flink 等大数据软件建立无缝生态集成,从而确保跨不同数据处理环境的兼容性和互操作性,实现时序数据跨生态深度分析。

93ec4b414128266645be09670512686f.png

TsFile 文件格式示意

03

基于时序数据特性的内核创新

在时序数据管理上,TsFile 之所以能实现上述这些功能,主要源于其在结构层面的多项创新。在此重点介绍 TsFile 采用的列式存储文件结构、编码和压缩技术。 

1. 列式存储文件结构

下图为 Apache TsFile 的文件结构。

•    Page:一段连续的时序数据,存储的基本单元,按时间升序排序,时间戳和值各有单独的列进行存储。

•    Chunk:由同一序列的多个连续的 Page 组成,一个文件同一个序列可以存储多个 Chunk。

•    ChunkGroup:由一个设备的一至多个 Chunk 组成,多个 Chunk 可共享一列时间存储(多值模型)。

•    Index:TsFile 末尾的元数据文件包含序列内部时间维度的索引和序列间的索引信息。

1631f51eabad4c5cd2bf410c05b02762.png

TsFile 文件结构

由于每列数据的同质性,TsFile 可实现更好的压缩比;通过仅将必要的数据列加载到内存中,TsFile 可加快查询速度;通过将数据组织成可管理的单元进行处理和检索,TsFile 可提高可扩展性

2. 编码和压缩技术

TsFile 通过采用二阶差分编码、游程编码(RLE)、位压缩和 Snappy 等先进的编码和压缩技术,优化时序数据的存储和访问,并支持对时间戳列和数据值列进行单独编码,以实现更好的数据处理效能。

其独特之处在于编码算法专为时序数据特性设计,聚焦在时间属性和数据之间的相关性。此外,TsFile 结合了频域编码,利用量化和位宽缩减来高效存储频域数据,在不会影响数据准确性的情况下节省空间占用。

567b54cbebf05c2c40c6fdac76712d7b.png

TsFile、Parquet 和 ORC 三种文件格式的比较

基于对时序数据应用需求的深刻理解,TsFile 有助于实现时序数据高压缩比和实时访问速度,并为企业进一步构建高效、可扩展、灵活的数据分析平台提供底层文件技术支撑。

04

共创 Apache TsFile,共赢数据时代

通过上述介绍不难看出,基于时序数据特性,为时序数据管理量身定制的 TsFile 不仅在存储方面具有优势,也可提升时序数据的写入、查询、分析等多个核心环节的性能表现。这不仅可以帮助企业更好地控制部署成本,同时可以保障时序数据管理的灵活性与易用性。

从 IoTDB 的基础组件到独立项目的发展历程,也从侧面证明着 TsFile 的国产技术研发成果,正在国际上对时序数据管理产生着重要影响力。此前,国际软件领域媒体平台 The New Stack 专门采访介绍了 TsFile 项目。(采访直达:https://thenewstack.io/tsfile-a-standard-format-for-iot-time-series-data/)

数据时代,时序数据作为千行百业数字化转型的核心要素,优化其管理方式势在必行。

未来,围绕时序数据管理,TsFile 将进一步优化性能和多语言支持,集成更多的编码和压缩方法,并开发更多基于 TsFile 的时序数据可视化、解析和分析工具。

同时,随着晋升为 Apache TLP 项目,TsFile 希望与全球更多开发者合作,从底层文件技术角度,重新定义可靠、高效的时序数据管理方案,推动更多企业以时序数据价值为驱动,实现产能飞跃与业务创新。

29f6785fec56d02e686e6f9455f31bcf.gif

d90ecaedbea77a1e3d7cc8d2a64fd4ea.png

547d041d217b7f99ba67453d45965824.png

ed08fd495963f42f6e7b53d6f38a124b.png

4b2448aa70d1dd3f46460d4c1fde130e.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/285469.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于傅里叶描述子的手势动作识别,Matlab实现

博主简介: 专注、专一于Matlab图像处理学习、交流,matlab图像代码代做/项目合作可以联系(QQ:3249726188) 个人主页:Matlab_ImagePro-CSDN博客 原则:代码均由本人编写完成,非中介,提供…

AI之Suno:Suno V3的简介、安装和使用方法、案例应用之详细攻略

AI之Suno:Suno V3的简介、安装和使用方法、案例应用之详细攻略 目录 Suno AI的简介 1、特点与改进: Suno AI的安装和使用方法 1、第一步,让国产大模型—ChatGLM4帮我写一个提示词 2、第二步,将提示词交给Suno v3,…

阿里云倚天服务器是什么?倚天服务器c8y、g8y和r8y详细介绍

阿里云倚天云服务器CPU采用倚天710处理器,租用倚天服务器c8y、g8y和r8y可以享受优惠价格,阿里云服务器网aliyunfuwuqi.com整理倚天云服务器详细介绍、倚天710处理器性能测评、CIPU架构优势、倚天服务器使用场景及生态支持: 阿里云倚天云服务…

FastAPI+React全栈开发02 什么是FARM技术栈

Chapter01 Web Development and the FARM Stack 02 What is the FARM stack and how does it fit together? FastAPIReact全栈开发02 什么是FARM技术栈 It is important to understand that stacks aren’t really special, they are just sets of technologies that cover…

脚本实现Ubuntu设置屏幕无人操作,自动黑屏

使用 xrandr 命令可以实现对屏幕的控制,包括调整分辨率、旋转屏幕以及关闭屏幕等。要实现 Ubuntu 设置屏幕在无人操作一段时间后自动黑屏,非待机,并黑屏后点击触摸屏可以唤醒屏幕,可以借助 xrandr 命令来实现。 首先,…

docker 本地机 互通文件

查询容器name 查询容器Id 进行传输

从相机空间到像素空间的投影和反投影原理和代码

目录 从相机空间到像素空间的投影 效果 ​编辑 公式 ​编辑 代码 像素空间到相机空间的反投影 记录一下从相机空间到像素空间的投影(3D-->2D)和像素空间到相机空间的反投影(2D-->3D)。 推荐blog:SLAM入门之视…

WSL下Ubuntu+RTX4090安装CUDA+cuDnn+Pytorch

安装驱动 首先需要明确的是,在WSL下安装Ubuntu,如果要使用主机的GPU卡,只需要在主机Windows上安装驱动,Linux中不需要安装驱动,可以在Linux中使用nvidia-smi命令查看驱动版本。 安装CUDA 避坑注意事项:如…

【框架】说一说 Fork/Join?

SueWakeup 个人主页:SueWakeup 系列专栏:学习Java框架 个性签名:人生乏味啊,我欲令之光怪陆离 本文封面由 凯楠📷 友情赞助 目录 前言 什么是 Fork? 什么是 Join? Fork/Join 的核心组件 F…

流畅的 Python 第二版(GPT 重译)(二)

第三章:字典和集合 Python 基本上是用大量语法糖包装的字典。 Lalo Martins,早期数字游牧民和 Pythonista 我们在所有的 Python 程序中都使用字典。即使不是直接在我们的代码中,也是间接的,因为dict类型是 Python 实现的基本部分。…

酷开系统让用户和电视双向传递,酷开科技实现商业变现

电视在我们的日常生活中扮演着重要的角色。虽然,作为客厅C位的扛把子——电视的娱乐作用深入人心,但是,它的涵义和影响力却因我们每个人的具体生活环境而存在着种种差异,而我们的生活环境又受到我们所处的社会及文化环境的影响。 …

毕业设计:日志记录编写(3/17起更新中)

目录 3/171.配置阿里云python加速镜像:2. 安装python3.9版本3. 爬虫技术选择4. 数据抓取和整理5. 难点和挑战 3/241.数据库建表信息2.后续进度安排3. 数据处理和分析 3/17 当前周期目标:构建基本的python环境:运行爬虫程序 1.配置阿里云pytho…

B端设计:如何让UI组件库成为助力,而不是阻力。

首发2023-09-24 15:42贝格前端工场 Hi,我是大千UI工场,网上的UI组件库琳琅满目,比如elementUI、antdesign、iview等等,甚至很多前端框架,也出了很多UI组件,如若依、Layui、bootstrap等等,作为U…

工具分享丨分析GreatSQL Binglog神器

在GreatSQL中,Binlog可以说是 GreatSQL 中比较重要的日志了,在日常开发及运维过程中经常会遇到。Binlog即Binary Log,二进制日志文件,也叫作变更日志(Update Log)。 详细Binglog日志介绍 Binglog主要应用…

包含多个段的程序

文章目录 包含多个段的程序在代码段中使用数据在代码段中使用栈将数据、代码、栈放入不同的段 包含多个段的程序 在代码段中使用数据 考虑这样一个问题,编程计算以下8个数据的和,结果存在ax 寄存器中:0123H,0456H,07…

性能测试-Jmeter中IF控制器使用

一、Jmeter控制器 分为两种类型: 控制测试计划执行过程中节点的逻辑执行顺序,如:循环控制器,if控制器等对测试计划中的脚本进行分组,方便Jmeter统计执行结果以及进行脚本的运行时控制等,如:吞…

Mysql数据库的SQL语言详解

目录 一、数据库的基础操作 1、数据库的基本查看和切换 1.1 查看数据库信息 1.2 切换数据库 1.3 查看数据库中的表信息 1.4 查看数据库或数据库中表的结构(字段) 1.5 数据类型 1.5.1 整数型 1.5.2 浮点型(float和double) 1.5.3 定点数 1.5.4…

【郭林保大夫】——这些事情做到了,想患上帕金森都难!

郭林保大夫说:帕金森病的发病原因尚不完全清楚,但可能与多种因素有关,包括遗传因素、环境因素、神经系统老化等。具体病因可能是这些因素相互作用的结果。病情后期,严重程度会因个体差异而异。一些患者可能出现严重的运动障碍&…

Gelato Network的创始人HILMAR ORTH确认出席HackSummit2024区块链开发者大会

随着Web3技术的日新月异,区块链领域正以前所未有的速度席卷全球。在这一变革的浪潮中,备受瞩目的区块链盛会——Hack.Summit() 2024区块链开发者大会,将于2024年4月9日至10日,在香港数码港隆重登场。这一里程碑式的大会不仅标志着…

栈、队列——练习题

1. ✌有效的括号 代码实现: 方法一:括号匹配 在任意一个位置上,左括号数量 > 右括号数量在最后一个位置上,左括号数量 右括号数量 方法二:栈 bool isValid(char* s) {char stack[10000];int top -1;while (*s) {i…