摘要:\u003C\u002Fp\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002FRXZajZt9B9SgYT\" img_width=\"1056\" img_height=\"744\" alt=\"三次创业,三次跨界,这次凭十万行核心C代码登上 GitHub Top 1\" inline=\"0\"\u003E\u003Cp\u003E涛思数据团队,左三为陶建辉儿子(00后一枚),TDengine项目其亦有贡献\u003C\u002Fp\u003E\u003Cp\u003E研发底层基础软件,开发难,推广更难。\u003C\u002Fp\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002FRXZajZU9g0MyFE\" img_width=\"1080\" img_height=\"720\" alt=\"三次创业,三次跨界,这次凭十万行核心C代码登上 GitHub Top 1\" inline=\"0\"\u003E\u003Cp\u003E线下活动现场\u003C\u002Fp\u003E\u003Cp\u003E很多人好奇,为什么一个从没研发过大数据,也没研发过数据库软件的人,能研发物联网大数据平台软件。

"\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002FR6Ay3Xl4IFwSVm\" img_width=\"640\" img_height=\"100\" alt=\"三次创业,三次跨界,这次凭十万行核心C代码登上 GitHub Top 1\" inline=\"0\"\u003E\u003Cp\u003E【CSDN编者按】7月28日周日下午,大暑刚过的北京,热得愈加肆意。编者来到在涛思数据联合CSDN举办的「TDengine 和他的小伙伴们」的Beijing Meetup现场时,陶建辉正在答观众问。\u003C\u002Fp\u003E\u003Cp\u003E突然,编者被一位20来岁的小姑娘热心提醒可以坐下听。攀谈几句,得知姑娘是留学伦敦的电子工程毕业生,趁放暑假来这里做志愿者。\u003C\u002Fp\u003E\u003Cp\u003E不仅志愿者很高大上,涛思数据的团队也很“高配”:3位博士,4位海归。他们最近斩获超级喜讯一枚:仅有十人的涛思数据团队,在GitHub开源的TDengine,连续数天雄踞榜首。\u003C\u002Fp\u003E\u003Cp\u003E那么,这是怎样的一个项目?又是怎样的一个团队?团队背后的创始人有着怎样的经历?应CSDN邀约,创始人陶建辉亲自撰写本文,为你答疑解惑,赶快往下看吧!\u003C\u002Fp\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002FRXZajZ2IWHM7BW\" img_width=\"1080\" img_height=\"720\" alt=\"三次创业,三次跨界,这次凭十万行核心C代码登上 GitHub Top 1\" inline=\"0\"\u003E\u003Cp\u003E大家在看100亿条记录查询的现场演示\u003C\u002Fp\u003E\u003Cp\u003E作者 | 陶建辉\u003C\u002Fp\u003E\u003Cp\u003E责编 | 胡巍巍\u003C\u002Fp\u003E\u003Cp\u003E7月12日,涛思数据宣布将TDengine开源,10多万行C代码,包括最核心的存储引擎和计算引擎都上传到了GitHub上。\u003C\u002Fp\u003E\u003Cp\u003E整整两周时间,GitHub上Star已经超过7\u003Ci class=\"chrome-extension-mutihighlight chrome-extension-mutihighlight-style-4\"\u003E30\u003C\u002Fi\u003E0,Fork数已经超过1800,在开发者社区中获得的反响远超预期。应开发者要求,7月28日在北京进行了一次线下交流,现场互动十分热烈。\u003C\u002Fp\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002FRXZajZU9g0MyFE\" img_width=\"1080\" img_height=\"720\" alt=\"三次创业,三次跨界,这次凭十万行核心C代码登上 GitHub Top 1\" inline=\"0\"\u003E\u003Cp\u003E线下活动现场\u003C\u002Fp\u003E\u003Cp\u003E很多人好奇,为什么一个从没研发过大数据,也没研发过数据库软件的人,能研发物联网大数据平台软件?\u003C\u002Fp\u003E\u003Cp\u003E而且你怎么想到要开发这样软件的?你三次\u003Ci class=\"chrome-extension-mutihighlight chrome-extension-mutihighlight-style-4\"\u003E创业\u003C\u002Fi\u003E,每次都在跨界,怎么能做到的?\u003C\u002Fp\u003E\u003Cp\u003E7月28日,我把\u003Ci class=\"chrome-extension-mutihighlight chrome-extension-mutihighlight-style-4\"\u003E创业\u003C\u002Fi\u003E过程中的思考和分析分享出来,供在\u003Ci class=\"chrome-extension-mutihighlight chrome-extension-mutihighlight-style-4\"\u003E创业\u003C\u002Fi\u003E路上的朋友特别是技术型\u003Ci class=\"chrome-extension-mutihighlight chrome-extension-mutihighlight-style-4\"\u003E创业\u003C\u002Fi\u003E者参考。\u003C\u002Fp\u003E\u003Cp\u003E2016年初,我上家\u003Ci class=\"chrome-extension-mutihighlight chrome-extension-mutihighlight-style-4\"\u003E创业\u003C\u002Fi\u003E公司快乐妈咪被收购,一下就轻松下来。但总有很多朋友拉我去看项目,有想让我投资的,有想让我加入团队的。\u003C\u002Fp\u003E\u003Cp\u003E因为我在智能硬件\u003Ci class=\"chrome-extension-mutihighlight chrome-extension-mutihighlight-style-4\"\u003E圈子\u003C\u002Fi\u003E里有一定名气,因此看的最多的还是智能硬件、物联网相关的项目。花了自己不少时间仔细琢磨的有好几个项目。\u003C\u002Fp\u003E\u003Cp\u003E第一个就是菜市场的智能秤,希望通过智能秤将菜市场的信息流完全打通,打造一个不亚于美团的平台出来;\u003C\u002Fp\u003E\u003Cp\u003E第二个就是养殖物联网,希望对投料机进行自动控制,对养殖的鱼塘的环境进行监测,通过物联网将饲料、养殖、水产销售打通,形成平台;\u003C\u002Fp\u003E\u003Cp\u003E第三个是电梯物联网,系统通过监测,由按期保修变成按需保修,而且建立全国性的电梯维保平台。\u003C\u002Fp\u003E\u003Cp\u003E还有智能家居等好几个,但最终没有一个打动我,让我投入进去。因为我分析这些项目之后,发现他们成功的关键因素,都不是我或者现有团队具备的。\u003C\u002Fp\u003E\u003Cp\u003E但这些项目让我看到了物联网的前景,看到万物互联是不可阻挡的潮流,一定要抓住。我一个强技术背景,没有多少行业资源的人,能在这股潮流里找到什么样的机会?\u003C\u002Fp\u003E\u003Cp\u003E我的第一反应就是研发一个物联网平台,但仔细一看,从IT巨头如微软、IBM、 Oracle、亚马逊,到工业巨头如GE、Siemens等等,无不有自己的物联网平台,特别是仔细看完GE的Predix,发现自己能想到的东西都被它做了。\u003C\u002Fp\u003E\u003Cp\u003E再看国内,做物联网平台的公司就更多了,海尔、三一、徐工、阿里、百度等等,就更不用提无数Startup了。心一下就凉了,这个物联网平台是绝不能做了,要做就是瞎折腾,唯一的可能性是紧靠一行业资源,靠行业特性和市场资源取胜,但我偏偏没有多少行业背景和资源。\u003C\u002Fp\u003E\u003Cp\u003E但在仔细看完很多物联网平台的资料后,终于发现了一丝曙光,那就是数据处理。物联网平台里模块很多,但其中很重要的一块就是数据处理,包括采集、存储、查询、分析和计算,是整个物联网行业里面比较共性的部分,个性化程度不高。\u003C\u002Fp\u003E\u003Cp\u003E再仔细一看,大部分物联网平台,尤其是国内的,几乎无一例外的用的是Hadoop生态搭建的,用的是互联网行业流行的大数据架构,采集进来的数据先进Kafka, 然后分流进HBase\u002FCassandra\u002FMongoDB等做持久化存储,进Redis做缓存,进Spark\u002FFlink等做流式计算,后面再接应用、大屏展示等等。\u003C\u002Fp\u003E\u003Cp\u003E虽然我没有真正接触过大数据的处理,但了解这些通用的大数据框架后,我的第一反应就是,Hadoop这套体系太重,至少对于物联网大数据而言如此。\u003C\u002Fp\u003E\u003Cp\u003E搭建一个平台,居然要好多款开源软件拼接在一起,研发、运维效率会很低,数据一致性很难保证,定位一个问题牵涉的环节太多,很不适合私有化部署。\u003C\u002Fp\u003E\u003Cp\u003E将各种物联网场景抽象出来,我总结出了物联网数据的十二大特点:\u003C\u002Fp\u003E\u003Col\u003E\u003Cli\u003E\u003Cp\u003E数据是时序的,一定带有时间戳;\u003C\u002Fp\u003E\u003C\u002Fli\u003E\u003Cli\u003E\u003Cp\u003E数据是结构化的;\u003C\u002Fp\u003E\u003C\u002Fli\u003E\u003Cli\u003E\u003Cp\u003E数据极少有更新或删除操作;\u003C\u002Fp\u003E\u003C\u002Fli\u003E\u003Cli\u003E\u003Cp\u003E数据源是唯一的;\u003C\u002Fp\u003E\u003C\u002Fli\u003E\u003Cli\u003E\u003Cp\u003E相对互联网应用,写多读少;\u003C\u002Fp\u003E\u003C\u002Fli\u003E\u003Cli\u003E\u003Cp\u003E用户\u003Ci class=\"chrome-extension-mutihighlight chrome-extension-mutihighlight-style-6\"\u003E关注\u003C\u002Fi\u003E的是一段时间的趋势,而不是某一特点时间点的值;\u003C\u002Fp\u003E\u003C\u002Fli\u003E\u003Cli\u003E\u003Cp\u003E数据是有保留期限的;\u003C\u002Fp\u003E\u003C\u002Fli\u003E\u003Cli\u003E\u003Cp\u003E数据的查询分析一定是基于时间段和地理区域的;\u003C\u002Fp\u003E\u003C\u002Fli\u003E\u003Cli\u003E\u003Cp\u003E除存储查询外,还往往需要各种统计和实时计算操作;\u003C\u002Fp\u003E\u003C\u002Fli\u003E\u003Cli\u003E\u003Cp\u003E流量平稳,可以预测;\u003C\u002Fp\u003E\u003C\u002Fli\u003E\u003Cli\u003E\u003Cp\u003E往往需要有插值等一些特殊的计算;\u003C\u002Fp\u003E\u003C\u002Fli\u003E\u003Cli\u003E\u003Cp\u003E数据量巨大,一天采集的数据就可以超过100亿条。\u003C\u002Fp\u003E\u003C\u002Fli\u003E\u003C\u002Fol\u003E\u003Cp\u003E总结出这些特点后,一下豁然开朗,觉得采用Hadoop这些开源软件来处理物联网数据完全是大错特错。\u003C\u002Fp\u003E\u003Cp\u003E物联网数据像日志数据,几乎没有更新操作的可能,那数据库中的事务处理的实现就完全多余;数据是时序的,时间戳自然可以作为主键,根本不需要复杂的索引结构;物联网数据是结构化的,像HBase、Cassandra那样用Key-Value来存储,计算效率和存储效率大打折扣,应该采用结构化存储才行;物联网数据的冷热程度是时间决定的,刚采集的数据是最热的,而不是用户点击决定。\u003C\u002Fp\u003E\u003Cp\u003E因此用简单的先进先出的内存管理就能很好的实现高效的缓存,根本就不需要Redis;物联网数据从一个设备来看,就是一个数据流,实现滑动窗口的流计算那不是一个最顺其自然的事情,哪用得上Spark这么复杂的引擎;对于数据分区,简单的按设备分区按时间段分区,就轻松解决,根本就不需要复杂的分区机制;物联网数据流是相对平稳的,而且物联网设备本身一定有缓存能力,完全可以抛弃Kafka这些套件,实现一个简单的消息队列和数据订阅来满足需求。\u003C\u002Fp\u003E\u003Cp\u003E随后又发现有时序数据库,马上看他们文档和代码,发现他们利用了时序数据一些特点,但还是没有充分利用,而且只是定位为一个数据库。\u003C\u002Fp\u003E\u003Cp\u003E后面又了解到工业界有实时数据库,发现这些实时数据库都是老古董产品了,基本上都还是Windows上研发,价格贵,而且没有标准SQL,水平扩展几乎没有,大数据分析能力几乎没有,完全没有能力应对日益增长的大数据量和大数据分析需求,迟早会被淘汰。\u003C\u002Fp\u003E\u003Cp\u003E我做完分析后很兴奋,觉得找到了一空白点。但我自己有没有能力研发这产品?仔细一琢磨,还是兴奋。\u003C\u002Fp\u003E\u003Cp\u003E2008年,我创办和信,推送平台除推送之外,一个重要的模块就是消息队列。2009年,我们就研发了一个分布式高可靠、持久化存储的消息队列,每台手机需要推送的消息就放在一个队列里。消息队列与物联网的时序数据有区别吗?本质上没有。\u003C\u002Fp\u003E\u003Cp\u003E一个是非结构化的,一个是结构化的;一个是简单的进和出,但另外一个是需要有分析和计算的;两者在系统的架构设计上没有大的不同。\u003C\u002Fp\u003E\u003Cp\u003E考虑到必须设计成分布式系统,因为多年通讯设备研发背景,对我那是轻车熟路。因此,我应该具备所需要的知识储备和技能,自己多年积累的研发经验全部能派上用场 。\u003C\u002Fp\u003E\u003Cp\u003E因此我迅速定位了自己要做的产品,那就是物联网大数据平台,要把时序数据库、缓存、消息订阅、流式计算等系列功能融合在一起,一站式的解决物联网大数据问题,这样才能将系统研发、维护的复杂度与成本大幅降低。\u003C\u002Fp\u003E\u003Cp\u003E前面两次\u003Ci class=\"chrome-extension-mutihighlight chrome-extension-mutihighlight-style-4\"\u003E创业\u003C\u002Fi\u003E,都是2C产品,让我养成了追求简单极致的习惯,马上又定下采用SQL接口,能通过JDBC接口与众多第三方工具无缝集成,安装部署要一键搞定的策略,目的是要让开发者用起来轻松,完全没有学习成本。\u003C\u002Fp\u003E\u003Cp\u003E研究物联网数据的特点后,我想到了两个技术创新点,一是“一台设备一张表”的数据模型来极大提高单台设备的数据插入和查询效率, 二是给每张表打静态标签,将静态标签数据与采集的动态数据完全分开存储,来解决多表聚合查询问题。\u003C\u002Fp\u003E\u003Cp\u003E想明白这些后,2016年底,接近50岁的我决定亲自写程序开干。为什么不找人呢?几个原因:\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli\u003E\u003Cp\u003E自己做技术多年,有个心结,就是希望自己写的代码能被无数的人使用;\u003C\u002Fp\u003E\u003C\u002Fli\u003E\u003Cli\u003E\u003Cp\u003E开发难度大,特别是分布式,如果我自己不把主要框架搭完,把存储引擎写好,那团队效率会很低;\u003C\u002Fp\u003E\u003C\u002Fli\u003E\u003Cli\u003E\u003Cp\u003E这个产品的核心是技术,如果自己不重度参与研发,那公司会很危险。\u003C\u002Fp\u003E\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp\u003E我准备动手写的时候,告诉太太,如果我写的存储引擎在数据插入、查询速度上不比其他数据库好五倍以上,就当做我又写了一段好玩的程序。\u003C\u002Fp\u003E\u003Cp\u003E如果能达到五倍以上,那我就要再折腾一次。 因为在我的眼里,技术型的产品,要打败市场上现有的厂商,如果没有五倍以上的优势,那完全没有必要做,因为对方有人、有钱,有客户群,你凭什么与对方开战?\u003C\u002Fp\u003E\u003Cp\u003E幸运的是,我2个月时间,写完一万八千多行代码,完全证明凭借我的两大创新,性能上可以秒杀市场上现有产品,因此就有了今天的TDengine。 \u003C\u002Fp\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002FRXZajZt9B9SgYT\" img_width=\"1056\" img_height=\"744\" alt=\"三次创业,三次跨界,这次凭十万行核心C代码登上 GitHub Top 1\" inline=\"0\"\u003E\u003Cp\u003E涛思数据团队,左三为陶建辉儿子(00后一枚),TDengine项目其亦有贡献\u003C\u002Fp\u003E\u003Cp\u003E研发底层基础软件,开发难,推广更难。即使功能、性能比现有产品好一个数量级,客户还是会以安全性和稳定性为由拒绝你,因此我想到应该用开源的方式,把最核心的代码和详细的设计都晒出来,让更多的程序员参与进来,将开发者社区建立起来。\u003C\u002Fp\u003E\u003Cp\u003E活跃的开发者社区能让所有大客户都感觉到所选的技术不会被抛弃,不会有重大安全漏洞, 可放心使用。\u003C\u002Fp\u003E\u003Cp\u003E另外一方面,很多中小企业客户数据量不大,技术上有很多选择,如果不开源,他们就会选择一些其他的开源方案。\u003C\u002Fp\u003E\u003Cp\u003E本来就赚不到他们的钱,那为何不开源给他们,让他们免费用呢?不仅要让大家免费用,我们还要组织一个不小的团队来运营,与各种背景的开发者互动,回答他们的疑问,让他们得到技术支持和帮助,更希望他们参与进来,有荣誉感和自豪感,他们才可能发自内心地传播。\u003C\u002Fp\u003E\u003Cp\u003E同时,通过开源,可以快速获得市场对产品的反馈,了解市场的需求,这是一件多好的事情,因此毫无犹豫的决定开源。\u003C\u002Fp\u003E\u003Cp\u003E大数据平台、物联网平台和数据库都已经有很多主流产品,挑战他们是一件困难的事情。而专为物联网打造的大数据平台,目前还没有,TDengine在全球是第一家。\u003C\u002Fp\u003E\u003Cp\u003E物联网的市场在高速增长,采集的数据量更是指数式的上升,5年的时间,世界上90%的数据都会是物联网类型的数据,这个细分市场一定会成为一个主流市场。\u003C\u002Fp\u003E\u003Cp\u003E只要涛思数据团队继续努力,抱着开放、合作的态度,充分利用开源打造出技术生态,同时与全球的系统集成商、独立软件开发商、渠道等合作,积极的构建出商业生态,那TDengine一定有成为独角兽的一天。\u003C\u002Fp\u003E\u003Cp\u003E喜欢丘吉尔说的一句话,“Success is not final, failure is not fatal, it is the courage to continue that counts”,继续奔跑吧,伙伴们!\u003C\u002Fp\u003E\u003Cp\u003E作者简介:陶建辉,1986年考入中国科大,1994年到美国印第安纳大学攻读天体物理博士,曾在美国芝加哥Motorola、3Com等公司从事无线互联网的研发工作,是高可靠分布式系统、即时通信、消息队列等方面的顶尖技术专家。2008年,回国创办和信,专注移动互联网IP Push和IP实时消息服务,2010年被\u003Ci class=\"chrome-extension-mutihighlight chrome-extension-mutihighlight-style-1\"\u003E台湾\u003C\u002Fi\u003E联发科收购。\u003Ci class=\"chrome-extension-mutihighlight chrome-extension-mutihighlight-style-2\"\u003E2013\u003C\u002Fi\u003E年再度\u003Ci class=\"chrome-extension-mutihighlight chrome-extension-mutihighlight-style-4\"\u003E创业\u003C\u002Fi\u003E,创办专注母婴智能硬件和母婴健康服务的快乐妈咪。2016年,快乐妈咪被太平洋网络收购。2017年,再次走向战场,创办涛思数据,专注时序空间数据的实时高效的处理,其自主研发的产品TDengine,性能优于其他业内标杆10倍以上,可广泛运用于物联网、工业大数据、车联网领域。2019年7月,TDengine开源,在GitHub全球趋势排行榜上连续几天排名第一。\u003C\u002Fp\u003E\u003Cp\u003E【End】\u003C\u002Fp\u003E\u003Cimg src=\"http:\u002F\u002Fp9.pstatp.com\u002Flarge\u002Fpgc-image\u002FRX2rtmzGSyNMZB\" img_width=\"960\" img_height=\"550\" alt=\"三次创业,三次跨界,这次凭十万行核心C代码登上 GitHub Top 1\" inline=\"0\"\u003E"'.slice(6, -6), groupId: '6718895113910616589
相关文章