社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

三次创业,三次跨界,这次凭十万行核心C代码登上 GitHub Top 1!

CSDN • 4 年前 • 340 次点击  

【CSDN编者按】7月28日周日下午,大暑刚过的北京,热得愈加肆意。编者来到在涛思数据联合CSDN举办的「TDengine 和他的小伙伴们」的Beijing Meetup现场时,陶建辉正在答观众问。

突然,编者被一位20来岁的小姑娘热心提醒可以坐下听。攀谈几句,得知姑娘是留学伦敦的电子工程毕业生,趁放暑假来这里做志愿者。

不仅志愿者很高大上,涛思数据的团队也很“高配”:3位博士,4位海归。他们最近斩获超级喜讯一枚:仅有十人的涛思数据团队,在GitHub开源的TDengine,连续数天雄踞榜首。

那么,这是怎样的一个项目?又是怎样的一个团队?团队背后的创始人有着怎样的经历?应CSDN邀约,创始人陶建辉亲自撰写本文,为你答疑解惑,赶快往下看吧!

大家在看100亿条记录查询的现场演示

作者 | 陶建辉

责编 | 胡巍巍

7月12日,涛思数据宣布将TDengine开源,10多万行C代码,包括最核心的存储引擎和计算引擎都上传到了GitHub上。

整整两周时间,GitHub上Star已经超过7300,Fork数已经超过1800,在开发者社区中获得的反响远超预期。应开发者要求,7月28日在北京进行了一次线下交流,现场互动十分热烈。

线下活动现场

很多人好奇,为什么一个从没研发过大数据,也没研发过数据库软件的人,能研发物联网大数据平台软件?

而且你怎么想到要开发这样软件的?你三次创业,每次都在跨界,怎么能做到的?

7月28日,我把创业过程中的思考和分析分享出来,供在创业路上的朋友特别是技术型创业者参考。

2016年初,我上家创业公司快乐妈咪被收购,一下就轻松下来。但总有很多朋友拉我去看项目,有想让我投资的,有想让我加入团队的。

因为我在智能硬件圈子里有一定名气,因此看的最多的还是智能硬件、物联网相关的项目。花了自己不少时间仔细琢磨的有好几个项目。

第一个就是菜市场的智能秤,希望通过智能秤将菜市场的信息流完全打通,打造一个不亚于美团的平台出来;

第二个就是养殖物联网,希望对投料机进行自动控制,对养殖的鱼塘的环境进行监测,通过物联网将饲料、养殖、水产销售打通,形成平台;

第三个是电梯物联网,系统通过监测,由按期保修变成按需保修,而且建立全国性的电梯维保平台。

还有智能家居等好几个,但最终没有一个打动我,让我投入进去。因为我分析这些项目之后,发现他们成功的关键因素,都不是我或者现有团队具备的。

但这些项目让我看到了物联网的前景,看到万物互联是不可阻挡的潮流,一定要抓住。我一个强技术背景,没有多少行业资源的人,能在这股潮流里找到什么样的机会?

我的第一反应就是研发一个物联网平台,但仔细一看,从IT巨头如微软、IBM、 Oracle、亚马逊,到工业巨头如GE、Siemens等等,无不有自己的物联网平台,特别是仔细看完GE的Predix,发现自己能想到的东西都被它做了。

再看国内,做物联网平台的公司就更多了,海尔、三一、徐工、阿里、百度等等,就更不用提无数Startup了。心一下就凉了,这个物联网平台是绝不能做了,要做就是瞎折腾,唯一的可能性是紧靠一行业资源,靠行业特性和市场资源取胜,但我偏偏没有多少行业背景和资源。

但在仔细看完很多物联网平台的资料后,终于发现了一丝曙光,那就是数据处理。物联网平台里模块很多,但其中很重要的一块就是数据处理,包括采集、存储、查询、分析和计算,是整个物联网行业里面比较共性的部分,个性化程度不高。

再仔细一看,大部分物联网平台,尤其是国内的,几乎无一例外的用的是Hadoop生态搭建的,用的是互联网行业流行的大数据架构,采集进来的数据先进Kafka, 然后分流进HBase/Cassandra/MongoDB等做持久化存储,进Redis做缓存,进Spark/Flink等做流式计算,后面再接应用、大屏展示等等。

虽然我没有真正接触过大数据的处理,但了解这些通用的大数据框架后,我的第一反应就是,Hadoop这套体系太重,至少对于物联网大数据而言如此。

搭建一个平台,居然要好多款开源软件拼接在一起,研发、运维效率会很低,数据一致性很难保证,定位一个问题牵涉的环节太多,很不适合私有化部署。

将各种物联网场景抽象出来,我总结出了物联网数据的十二大特点:

  1. 数据是时序的,一定带有时间戳;

  2. 数据是结构化的;

  3. 数据极少有更新或删除操作;

  4. 数据源是唯一的;

  5. 相对互联网应用,写多读少;

  6. 用户关注的是一段时间的趋势,而不是某一特点时间点的值;

  7. 数据是有保留期限的;

  8. 数据的查询分析一定是基于时间段和地理区域的;

  9. 除存储查询外,还往往需要各种统计和实时计算操作;

  10. 流量平稳,可以预测;

  11. 往往需要有插值等一些特殊的计算;

  12. 数据量巨大,一天采集的数据就可以超过100亿条。

总结出这些特点后,一下豁然开朗,觉得采用Hadoop这些开源软件来处理物联网数据完全是大错特错。

物联网数据像日志数据,几乎没有更新操作的可能,那数据库中的事务处理的实现就完全多余;数据是时序的,时间戳自然可以作为主键,根本不需要复杂的索引结构;物联网数据是结构化的,像HBase、Cassandra那样用Key-Value来存储,计算效率和存储效率大打折扣,应该采用结构化存储才行;物联网数据的冷热程度是时间决定的,刚采集的数据是最热的,而不是用户点击决定。

因此用简单的先进先出的内存管理就能很好的实现高效的缓存,根本就不需要Redis;物联网数据从一个设备来看,就是一个数据流,实现滑动窗口的流计算那不是一个最顺其自然的事情,哪用得上Spark这么复杂的引擎;对于数据分区,简单的按设备分区按时间段分区,就轻松解决,根本就不需要复杂的分区机制;物联网数据流是相对平稳的,而且物联网设备本身一定有缓存能力,完全可以抛弃Kafka这些套件,实现一个简单的消息队列和数据订阅来满足需求。

随后又发现有时序数据库,马上看他们文档和代码,发现他们利用了时序数据一些特点,但还是没有充分利用,而且只是定位为一个数据库。

后面又了解到工业界有实时数据库,发现这些实时数据库都是老古董产品了,基本上都还是Windows上研发,价格贵,而且没有标准SQL,水平扩展几乎没有,大数据分析能力几乎没有,完全没有能力应对日益增长的大数据量和大数据分析需求,迟早会被淘汰。

我做完分析后很兴奋,觉得找到了一空白点。但我自己有没有能力研发这产品?仔细一琢磨,还是兴奋。

2008年,我创办和信,推送平台除推送之外,一个重要的模块就是消息队列。2009年,我们就研发了一个分布式高可靠、持久化存储的消息队列,每台手机需要推送的消息就放在一个队列里。消息队列与物联网的时序数据有区别吗?本质上没有。

一个是非结构化的,一个是结构化的;一个是简单的进和出,但另外一个是需要有分析和计算的;两者在系统的架构设计上没有大的不同。

考虑到必须设计成分布式系统,因为多年通讯设备研发背景,对我那是轻车熟路。因此,我应该具备所需要的知识储备和技能,自己多年积累的研发经验全部能派上用场 。

因此我迅速定位了自己要做的产品,那就是物联网大数据平台,要把时序数据库、缓存、消息订阅、流式计算等系列功能融合在一起,一站式的解决物联网大数据问题,这样才能将系统研发、维护的复杂度与成本大幅降低。

前面两次创业,都是2C产品,让我养成了追求简单极致的习惯,马上又定下采用SQL接口,能通过JDBC接口与众多第三方工具无缝集成,安装部署要一键搞定的策略,目的是要让开发者用起来轻松,完全没有学习成本。

研究物联网数据的特点后,我想到了两个技术创新点,一是“一台设备一张表”的数据模型来极大提高单台设备的数据插入和查询效率,  二是给每张表打静态标签,将静态标签数据与采集的动态数据完全分开存储,来解决多表聚合查询问题。

想明白这些后,2016年底,接近50的我决定亲自写程序开干。为什么不找人呢?几个原因:

  • 自己做技术多年,有个心结,就是希望自己写的代码能被无数的人使用;

  • 开发难度大,特别是分布式,如果我自己不把主要框架搭完,把存储引擎写好,那团队效率会很低;

  • 这个产品的核心是技术,如果自己不重度参与研发,那公司会很危险。

我准备动手写的时候,告诉太太,如果我写的存储引擎在数据插入、查询速度上不比其他数据库好五倍以上,就当做我又写了一段好玩的程序。

如果能达到五倍以上,那我就要再折腾一次。 因为在我的眼里,技术型的产品,要打败市场上现有的厂商,如果没有五倍以上的优势,那完全没有必要做,因为对方有人、有钱,有客户群,你凭什么与对方开战?

幸运的是,我2个月时间,写完一万八千多行代码,完全证明凭借我的两大创新,性能上可以秒杀市场上现有产品,因此就有了今天的TDengine。 

涛思数据团队,左三为陶建辉儿子(00后一枚),TDengine项目其亦有贡献

研发底层基础软件,开发难,推广更难。即使功能、性能比现有产品好一个数量级,客户还是会以安全性和稳定性为由拒绝你,因此我想到应该用开源的方式,把最核心的代码和详细的设计都晒出来,让更多的程序员参与进来,将开发者社区建立起来。

活跃的开发者社区能让所有大客户都感觉到所选的技术不会被抛弃,不会有重大安全漏洞, 可放心使用。

另外一方面,很多中小企业客户数据量不大,技术上有很多选择,如果不开源,他们就会选择一些其他的开源方案。

本来就赚不到他们的钱,那为何不开源给他们,让他们免费用呢?不仅要让大家免费用,我们还要组织一个不小的团队来运营,与各种背景的开发者互动,回答他们的疑问,让他们得到技术支持和帮助,更希望他们参与进来,有荣誉感和自豪感,他们才可能发自内心地传播。

同时,通过开源,可以快速获得市场对产品的反馈,了解市场的需求,这是一件多好的事情,因此毫无犹豫的决定开源。

大数据平台、物联网平台和数据库都已经有很多主流产品,挑战他们是一件困难的事情。而专为物联网打造的大数据平台,目前还没有,TDengine在全球是第一家。

物联网的市场在高速增长,采集的数据量更是指数式的上升,5年的时间,世界上90%的数据都会是物联网类型的数据,这个细分市场一定会成为一个主流市场。

只要涛思数据团队继续努力,抱着开放、合作的态度,充分利用开源打造出技术生态,同时与全球的系统集成商、独立软件开发商、渠道等合作,积极的构建出商业生态,那TDengine一定有成为独角兽的一天。

喜欢丘吉尔说的一句话,“Success is not final, failure is not fatal, it is the courage to continue that counts”,继续奔跑吧,伙伴们!

作者简介:陶建辉,1986年考入中国科大,1994年到美国印第安纳大学攻读天体物理博士,曾在美国芝加哥Motorola、3Com等公司从事无线互联网的研发工作,是高可靠分布式系统、即时通信、消息队列等方面的顶尖技术专家。2008年,回国创办和信,专注移动互联网IP Push和IP实时消息服务,2010年被台湾联发科收购。2013年再度创业,创办专注母婴智能硬件和母婴健康服务的快乐妈咪。2016年,快乐妈咪被太平洋网络收购。2017年,再次走向战场,创办涛思数据,专注时序空间数据的实时高效的处理,其自主研发的产品TDengine,性能优于其他业内标杆10倍以上,可广泛运用于物联网、工业大数据、车联网领域。2019年7月,TDengine开源,在GitHub全球趋势排行榜上连续几天排名第一。

【End】

 热 文  推 荐 

☞我与“顶级工程师”距离有多远?

☞从微软到微信,“对方正在输入…”功能 20 年前的起源

☞“Hyperledger Fabric 是假区块链!

17 岁成为 iOS 越狱之父,25 岁造出无人车,黑客传奇!

抢程序员饭碗?自动写代码的Deep TabNine真如此神奇?

又是GAN!这个AI让周杰伦、罗永浩“变脸”古典画像

☞你硬盘里的那些电影都是如何被保存的?

孙宇晨深夜发文致歉: “我年轻, 涉世未深”……

☞中国第一程序员,微软得不到他就要毁了他!

点击阅读原文,查看TDengine的GitHub页面!

你点的每个“在看”,我都认真当成了喜欢
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/36699
 
340 次点击