Apache IoTDB 诞生记:学术圈出来的数据库,有啥不一样?
上周,《国产数据库圈,为啥那么多水货?》的讨论热度甚高,今天我们总结了一下直播嘉宾乔嘉林的看法,一起来看看工业界的情况有啥不同?
分享嘉宾:
乔嘉林
天谋科技联合创始人& CTO、Apache IoTDB PMC 及初创成员、清华大学博士、中国通信学会开源技术专委会委员、学术秘书。
从头参与建设物联网时序数据管理领域的首个 Apache 顶级项目 IoTDB,及第二个顶级项目 TsFile。
获 Apache Member(Apache 基金会委员)、中国开源先锋人物、清华大学水木学者、开放原子基金会银牌讲师,并作为 10 位基础软件的领军人物之一,荣获 2023 优秀软件工程师。相关成果获北京市科技进步奖一等奖。
Apache IoTDB 是一款低成本、高可用的物联网原生时序数据库,采用端边云协同的轻量化结构,支持一体化的物联网时序数据收集、存储、管理与分析。
01 创业启于开源
2016年我读博士期间,在学校参与了这个数据库的项目开发。这个项目在实验室酝酿了几年,2017年正式开源。一年之后,这个项目和里面的一些技术点、一些专利都捐给了 Apache 基金会,它成为了一个全球开源的项目。
开源之后,我就不仅仅是研发了,我也参与到了开源社区的运营里面,做开源用户的技术支持,一些用户线上实施的维护,等等。大概两年后,数据库从 Apache 的一个孵化器项目毕业,成为了一个顶级项目。
在学校做开源的好处,就是没有金钱压力,我们可能想的更多是互联网场景到底需要一款什么样的数据库?数据库的架构需要是什么样子的?现在的开源技术有哪些是比较好的?我们可以做更多的选择、更多的技术方案的论证、设计和实现。
我毕业之后,开始成立这个商业化的公司,去做 Apache IoTDB 的企业版,来为一些用户提供更加专业的产品服务。这就是我和数据库一起成长的过程。
02 数据库花样繁多,是不可避免的
要问为什么国内有这么多数据库,我觉得可以先看看数据库是干啥的?它是管数据的。这个是大家公认的:把数据管起来,查得好,查的快。那我们就看看有多少种类型的数据:有向文档、关系、时序、键值、图、向量。如果我们把数据库当做一个归纳师,那我们要归纳的物体种类其实是蛮多的。
在这个基础上进一步,有多少应用场景?像金融,是一个典型的场景,然后物联网它又是一个典型的场景,这每一个场景下面又会有细分的行业,他们对数据的使用方式可能也都不一样。所以这是导致大家在做数据库的时候设计理念和目标不一样的地方,也是现在数据库为什么这么多的一个比较大的原因。
在这个背景下,时序也是其中的一个数据类型,我们做的 IoTDB,就是一个针对物联网场景的数据库,这也决定了我们是针对物联网场景的时序数据管理。这两个点结合起来,如果你是刚好处在这两个点上,那么我们的产品是一个比较好的选择。
03 一个好的数据库,得学会克制
我导师说得最多的一句话,就是要控制数据库的复杂度,不该数据库做的不用它做。代码的简洁度才是一个数据库长久的生命力来源。如果我们把很多功能都加进去,短期可能收获了一两个用户,但是长期来说,这个代码就不可维护了。
那我们为什么能做到这一点?我觉得可能有前面开源的积累。因为我们经过了大概五年的开源的打磨之后才正式做商业化,我们出去的时候,这个产品基本已经能够满足很多开源用户、包括企业用户的需求了。这个产品它足够标准,用户就不太会给我们提一些稀奇古怪的需求。但是,因为我们做的是工业物联网的数据库,工业这个场景也够复杂,我们想跟工业用户平等交流他的业务场景的需求的话,确实也是需要多学习的。
像我跟工业用户去沟通的时候,不单单会聊数据库管哪些数据,还有数据是怎么从传感器来的、怎么采到数据库里面去的......这整个过程。学完这些,我就能够结合数据的来龙去脉,把这个原理给他说清楚。加上有清华这个背景因素,大家也会发现我们确实是一个比较专业的团队,在这方面更好商量。
04 中外市场,各有优势
我们的产品第一步的规划就是一个国际化的项目。因为我们开源了,所以不光是国内的用户,美国、欧洲、甚至澳洲的一些用户都在用我们的这个数据库去管海外的工业数据,像钢铁的数据、风力发电的数据,等等。
因为在制造业方面,还是中国更强,场景更多,数据量也更大,起码从我们遇到的场景里面、管理的数据的复杂度来看,国内的这些复杂度是远远超过国外的。所以我们也更能够做出比外国更先进的产品,这是国内市场的一个优势。
不过,在工业互联网,技术迭代是最慢的。互联网行业替换一个运营商的组件,可能一年就行;但工业里面去做这样一款架构的升级,有可能是规划一年,实施一年,验证一年,三五年就过去了,才完成了一两轮的技术迭代。这个行业,可能五年前做出的成果,推广一些案例之后,才能慢慢得到逐家的跟进。
不过如今,Apache IoTDB 在时序数据库行业,已经是比较 Top 的产品了。我现在读论文,会发现学者们在综述里都会提到 Apache IoTDB。而且,已经有一部分的教科书包含 Apache IoTDB 了。CMU 有一个数据库的排行榜,里面收录了海内外的各种数据库,也把 Apache IoTDB 收录进去了,作为时序数据库领域一个比较典型的数据库。所以,假以时日,我相信 Apache IoTDB 在时序数据库领域,会有更高的领导地位。
更多直播内容,扫码看看回放吧↓↓↓
【开源漫谈】
OSCHINA 视频号畅聊栏目【开源漫谈】,每期一个技术话题,三五位专家围坐,各抒己见,畅聊开源。给大家带来最新的行业前沿、最热门的技术话题、最有趣的开源项目、最犀利的思想交锋。如果你手上也有新点子、好项目,想要跟同行交流分享,欢迎联系我们,讲坛随时开放~

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
“不知今夕是何年”的周基年解法 | 得物技术
2024年1月5日,周五,本来是个美好的日子,期待着马上到来的周末。可是下午1点多,接到产品一个问题反馈,经过一番排查,23年7月份上线的功能,对于跨年场景的处理有问题,其核心在于“周的年”获取方式不正确。 举个🌰 (1)前端:页面按照周来选择,例如 2024-12-30,返回给后端的是 Year:2025 -Week:1。 2)后端:根据前端传递的 Year-Week 去DB中查询 数据开发回流的历史离线数据,神奇的事儿就发生了。如下图,数据中 Year字段,就不太正常,2024-12-30,应该是2025年的第一周。 同样的问题,也会出现在1月的开始几天,year字段不太正常。 这是出了什么问题呢? 因为不知今夕是何年啊!!! ISO-8601标准 ISO-8601是国际标准化组织(ISO)发布的日期和时间表示法的标准,它定义了一种统一的日期和时间格式。ISO-8601标准的目的是提供一种易于理解、易于比较和易于存储的日期和时间表示方法,以便在不同的计算机系统和地区之间进行交互和共享。 周的定义ISO-8601标准还定义了一种标准的周定义,用于表示周数。该定义基于一年中的周数,以...
- 下一篇
AutoMQ 1.1.0-RC0 更新:内核升级至 Apache Kafka 3.7.0
AutoMQ 在 2024.02 正式发布了基于 Apache Kafka 3.4.0 的云原生重构版本 1.0.0,AutoMQ 1.0.0 版本相比原版提供了Serverless、自动负载均衡、秒级分区迁移和 All in 对象存储能力,让 Kafka 用户能充分利用云的弹性能力和廉价存储,实现十倍成本优势。 AutoMQ 基于 Apache Kafka 3.4.0 版本开始进行 Kafka 云原生重构,在此期间 Apache Kafka 社区在 trunk 分支上提交了 1700+ 个 Commits,版本也从 3.4.0 演进到 3.7.0,新增了大量的特性、优化和修复。 AutoMQ 为了保障 100% 与 Apache Kafka 兼容,在 AutoMQ 1.0.0 版本稳定后,就立刻开始了对 Apache Kafka 最新代码的合并工作。得益于 AutoMQ 存算分离的架构,对 Apache Kafka 的修改主要限制在存储切面,存储代码仅占整个项目不到 2%,因此 AutoMQ 合并跟进 Apache Kafka 的代码成本很低。 3.7.0 代码合并后,经过评审、Ch...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- 设置Eclipse缩进为4个空格,增强代码规范
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8安装Docker,最新的服务器搭配容器使用
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS7设置SWAP分区,小内存服务器的救世主
- Linux系统CentOS6、CentOS7手动修改IP地址