本期嘉宾
陶建辉 :涛思数据创始人&CEO,专注时序空间数据的实时高效的处理,其自主研发的物联网大数据平台 TDengine,可广泛运用于物联网、车联网、工业大数据等领域。
TDengine :TDengine是涛思数据专为物联网、车联网、工业互联网、IT运维等设计和优化的大数据平台。除核心的快10倍以上的时序数据库功能外,还提供缓存、数据订阅、流式计算等功能,最大程度减少研发和运维的复杂度,且核心代码和集群功能全部开源。
「数据」是一个巨大的市场
TDengine 诞生的契机是什么?为什么选择了物联网/工业互联网或者时序数据库这个领域?
陶建辉: 因为我上一家创业公司快乐妈咪是做智能硬件的,我们开发了一个母婴大数据平台来处理各种健康医疗设备采集的数据。在公司被收购后,我与众多的智能硬件、物联网类型的公司交流过,发现大家都习惯性采用 Hadoop 这一套通用的大数据平台处理采集数据。而机器、传感器、智能硬件采集的数据是很有特点的,比如时序、结构化、很少删除等,我便想到应该充分利用这些数据特点,开发一个专用的大数据处理平台,来大幅提高系统的处理效率,大幅减少系统研发和维护的复杂度。
而且我个人判断,今后世界上 90% 的数据都是机器、传感器产生的,而不会是人产生的,因此这是一个巨大的市场,很有想象空间,而目前还没有哪家公司垄断这个市场,很适合 startup 来做,因此我决定再次创业,专注物联网、工业互联网领域,打造一个专用的高效物联网大数据平台。
当时为何选择用 C 语言来写?有什么特殊的考虑吗?
陶建辉: 因为我个人一直用 C 做研发,而且底层软件,包括几乎所有流行的数据库,都是 C 语言开发的,因此我就毫不犹豫地选择了 C。
从 TDengine 诞生至今,研发上遇到最大的困难是什么呢?您和您的团队是如何解决的?
陶建辉: 研发上遇到的最大困难是系统的稳定性。因为设计和编码时,很多场景并没有考虑到,因此一旦遇到新的场景,往往会遇到 Bug 甚至 Crash。
解决这个问题有两个手段,一是提早并快速发现问题,这个是我们开源的目的之一。通过开源,TDengine 能吸引大量的开发者的使用,我们可以很快获取用户的反馈,包括报告的各种 Bug。目前我们在 GitHub 上的 Issue 数已经超过 6000,这是任何一家公司的 QA 团队很难做到的。二是加强自动化测试,大幅提高测试覆盖率。目前我们产品的代码有 30 多万行,我们计划今年的测试代码行数要超过 100 万行,测试代码量将远超产品本身的代码量。
对于时序数据库来说,对存储的要求非常高,TDengine 针对存储问题的解决方案是什么?
陶建辉: 我们团队开发了自己的存储引擎,没有依赖任何第三方的存储引擎。我们的存储引擎是充分利用了物联网数据的特点来设计的,其中有两个技术创新。第一个是数据模型的创新,通过一个数据采集点一张表的方式,数据按块存储、块内采用列式存储,这样保证单个数据采集点的写入和查询效率是最高的。第二个创新是我们超级表的设计,通过将标签数据与时序数据分离存储,标签数据全内存而且建有索引,来支持海量设备或数据采集点的高效聚合。
国内市场开源数据库产品变得越来越多,您怎么看待这种现象?面对其他同类产品,尤其是同样是时序数据库的产品,TDengine 如何保持它在市场上的竞争力?
陶建辉: 产品越来越多,这是好事,说明有市场。在时序数据库市场,TDengine 有很大的优势,首先,他不仅仅是一款数据库,而且它包含了消息队列、缓存、流式计算、数据订阅等一系列功能,它是一个 All in One 的物联网大数据处理工具,用户不用再集成 spark、redis 等软件,这样大幅减少开发和维护成本。
生态构建是开源产品重要一环
对于开源商业化您是如何理解的?选择 AGPL-3.0 这样比较严格的许可证,会对 TDengine 的商业化产生什么影响吗?
陶建辉: 我们是一家需要盈利的商业公司,开源的同时,我们需要做商业化。我们采取的模式是 Open Core,将核心代码全部开源,但有少量的辅助功能,包括运维支持、安全加密等,是不开源的。而且我们通过技术服务和云服务也将有不错的营收。
采取 AGPL 的唯一目的是不想让任何云厂商来使用我们产品对外提供服务。
您是否认同开源产品发展中,生态构建是非常重要的一环?如果您认同,那么 TDengine 未来在开源生态构建方面是如何考虑的?如果不认同,能否分享一下不认同的原因?
陶建辉: 生态构建是很重要的一环,是 TDengine 是否成功的关键之一。首先,我们采取标准的 SQL 做接口,支持 JDBC, ODBC,这样便于与市场上流行的各类 BI,可视化工具无缝集成。我们也支持各种开发语言,支持所有的国产 OS,国产 CPU。另外一方面,在数据采集侧,我们将不断丰富各种连接器,比如 MQTT Broker,便于将各种采集数据写入 TDengine。
要保持优势和竞争力,我们能做的,就是跑得要快,产品需要能快速迭代,在功能、性能、稳定性、易用性方面全面超越其他产品。另外一方面,我们要大力推广,让众多的开发者了解我们,让他们去体验下载,而且让他们参与到我们项目中来。
「没有诀窍,就是不断学习」
在国内,您这个年龄段仍在坚持写代码的程序员屈指可数,为什么您没有像大部分技术从业者一样转型管理层,而是在一直坚持写代码?
陶建辉: 我自己就是一个十倍的程序员,对技术发展的趋势、对架构的设计有很好的把握,不能由于自己是 CEO 就不写代码,那否则是巨大的资源浪费。而且我一直坚信,技术能创造价值、颠覆世界。当然随着公司的发展,我自己不可能所有的精力放在代码上。
作为创始人,公司最关键的位置一定要自己上。公司发展初期,对于数据库这样的公司,技术是绝对的核心,CEO 必须上。到一定的阶段,如果市场推广是阻碍公司进一步发展的主要原因,那 CEO 就必须领头去做推广。如果某一阶段,销售是问题,那 CEO 就必须冲到销售的第一线。
面对每天都在更迭的新技术,您如何保证自己的技术水平和年轻人比不落下风呢?
陶建辉: 没有诀窍,就是不断学习,我每天都看很多 IT 技术方面的资讯,如果发现了新的知识,总想要了解学习一下。另外一方面,我坚持健身,每周跑步至少 30 公里以上,以保证自己有足够的体力和精力。
您对现在技术从业者群体中流行的「35 岁危机」的说法是怎么看的?您自己是如何保持生活与工作之间的平衡的?除了写代码,您平时有什么爱好吗?
陶建辉: 我不认同 35 岁危机的说法。因为 45 岁、55 岁甚至 65 岁都是可以写程序的,而且可以写得很好。但如果你自认为到了 35 岁,就应该做管理、做商务,不屑于写程序这些具体活,成为一个高不成低不就的人,那确实就有这个 35 岁危机。而且现在不是程序员太多,而是程序员太少,特别是中国整个社会化的数字化转型,需要大量的软件人才,供不应求,你很难找到比程序员收入更好的职业。
我自己除工作外,还喜欢健身、跑步,也喜欢陪家人旅游、摄影。
最后,对于绝大部分背景一般的普通开发者,您有什么建议或想说的吗?
陶建辉: 代码是最好的简历,是自己实力的最好证明。因此我建议大家,特别是背景一般的开发者参与到成功的开源项目中。一方面,你能与顶尖高手直接交流、过招,学习他们的设计、编程方法,直接提升自己的研发水平。另外一方面,自己改的任何 Bug、新增的任何功能,都会在 GitHub 上公开出来,让大家直接看到自己的能力,而且能打造出个人的品牌。这个时候,你不愁是 35 岁还是 50 岁,不愁是二本还是一本毕业,不愁是女生还是男生,因为你已经用公开的事实说话,我是出色的一名程序员。
转载:https://blog.csdn.net/ZicoChan/article/details/116449815