7月28日周日下午,大暑剛過的北京,熱得愈加肆意。編者來到在濤思數(shù)據(jù)聯(lián)合CSDN舉辦的「TDengine 和他的小伙伴們」的Beijing Meetup現(xiàn)場時,陶建輝正在答觀眾問。
突然,編者被一位20來歲的小姑娘熱心提醒可以坐下聽。攀談幾句,得知姑娘是留學(xué)倫敦的電子工程畢業(yè)生,趁放暑假來這里做志愿者。
不僅志愿者很高大上,濤思數(shù)據(jù)的團隊也很“高配”:3位博士,4位海歸。他們最近斬獲超級喜訊一枚:僅有十人的濤思數(shù)據(jù)團隊,在GitHub開源的TDengine,連續(xù)數(shù)天雄踞榜首。
那么,這是怎樣的一個項目?又是怎樣的一個團隊?團隊背后的創(chuàng)始人有著怎樣的經(jīng)歷?創(chuàng)始人陶建輝親自撰寫本文,為你答疑解惑,趕快往下看吧!
7月12日,濤思數(shù)據(jù)宣布將TDengine開源,10多萬行C代碼,包括最核心的存儲引擎和計算引擎都上傳到了GitHub上。
整整兩周時間,GitHub上Star已經(jīng)超過7300,F(xiàn)ork數(shù)已經(jīng)超過1800,在開發(fā)者社區(qū)中獲得的反響遠(yuǎn)超預(yù)期。應(yīng)開發(fā)者要求,7月28日在北京進(jìn)行了一次線下交流,現(xiàn)場互動十分熱烈。
線下活動現(xiàn)場
很多人好奇,為什么一個從沒研發(fā)過大數(shù)據(jù),也沒研發(fā)過數(shù)據(jù)庫軟件的人,能研發(fā)物聯(lián)網(wǎng)大數(shù)據(jù)平臺軟件?
而且你怎么想到要開發(fā)這樣軟件的?你三次創(chuàng)業(yè),每次都在跨界,怎么能做到的?
7月28日,我把創(chuàng)業(yè)過程中的思考和分析分享出來,供在創(chuàng)業(yè)路上的朋友特別是技術(shù)型創(chuàng)業(yè)者參考。
2016年初,我上家創(chuàng)業(yè)公司快樂媽咪被收購,一下就輕松下來。但總有很多朋友拉我去看項目,有想讓我投資的,有想讓我加入團隊的。
因為我在智能硬件圈子里有一定名氣,因此看的最多的還是智能硬件、物聯(lián)網(wǎng)相關(guān)的項目?;俗约翰簧贂r間仔細(xì)琢磨的有好幾個項目。
第一個就是菜市場的智能秤,希望通過智能秤將菜市場的信息流完全打通,打造一個不亞于美團的平臺出來;
第二個就是養(yǎng)殖物聯(lián)網(wǎng),希望對投料機進(jìn)行自動控制,對養(yǎng)殖的魚塘的環(huán)境進(jìn)行監(jiān)測,通過物聯(lián)網(wǎng)將飼料、養(yǎng)殖、水產(chǎn)銷售打通,形成平臺;
第三個是電梯物聯(lián)網(wǎng),系統(tǒng)通過監(jiān)測,由按期保修變成按需保修,而且建立全國性的電梯維保平臺。
還有智能家居等好幾個,但最終沒有一個打動我,讓我投入進(jìn)去。因為我分析這些項目之后,發(fā)現(xiàn)他們成功的關(guān)鍵因素,都不是我或者現(xiàn)有團隊具備的。
但這些項目讓我看到了物聯(lián)網(wǎng)的前景,看到萬物互聯(lián)是不可阻擋的潮流,一定要抓住。我一個強技術(shù)背景,沒有多少行業(yè)資源的人,能在這股潮流里找到什么樣的機會?
我的第一反應(yīng)就是研發(fā)一個物聯(lián)網(wǎng)平臺,但仔細(xì)一看,從IT巨頭如微軟、IBM、 Oracle、亞馬遜,到工業(yè)巨頭如GE、Siemens等等,無不有自己的物聯(lián)網(wǎng)平臺,特別是仔細(xì)看完GE的Predix,發(fā)現(xiàn)自己能想到的東西都被它做了。
再看國內(nèi),做物聯(lián)網(wǎng)平臺的公司就更多了,海爾、三一、徐工、阿里、百度等等,就更不用提無數(shù)Startup了。心一下就涼了,這個物聯(lián)網(wǎng)平臺是絕不能做了,要做就是瞎折騰,唯一的可能性是緊靠一行業(yè)資源,靠行業(yè)特性和市場資源取勝,但我偏偏沒有多少行業(yè)背景和資源。
但在仔細(xì)看完很多物聯(lián)網(wǎng)平臺的資料后,終于發(fā)現(xiàn)了一絲曙光,那就是數(shù)據(jù)處理。物聯(lián)網(wǎng)平臺里模塊很多,但其中很重要的一塊就是數(shù)據(jù)處理,包括采集、存儲、查詢、分析和計算,是整個物聯(lián)網(wǎng)行業(yè)里面比較共性的部分,個性化程度不高。
再仔細(xì)一看,大部分物聯(lián)網(wǎng)平臺,尤其是國內(nèi)的,幾乎無一例外的用的是Hadoop生態(tài)搭建的,用的是互聯(lián)網(wǎng)行業(yè)流行的大數(shù)據(jù)架構(gòu),采集進(jìn)來的數(shù)據(jù)先進(jìn)Kafka, 然后分流進(jìn)HBase/Cassandra/MongoDB等做持久化存儲,進(jìn)Redis做緩存,進(jìn)Spark/Flink等做流式計算,后面再接應(yīng)用、大屏展示等等。
雖然我沒有真正接觸過大數(shù)據(jù)的處理,但了解這些通用的大數(shù)據(jù)框架后,我的第一反應(yīng)就是,Hadoop這套體系太重,至少對于物聯(lián)網(wǎng)大數(shù)據(jù)而言如此。
搭建一個平臺,居然要好多款開源軟件拼接在一起,研發(fā)、運維效率會很低,數(shù)據(jù)一致性很難保證,定位一個問題牽涉的環(huán)節(jié)太多,很不適合私有化部署。
將各種物聯(lián)網(wǎng)場景抽象出來,我總結(jié)出了物聯(lián)網(wǎng)數(shù)據(jù)的十二大特點:
-
數(shù)據(jù)是時序的,一定帶有時間戳;
-
數(shù)據(jù)是結(jié)構(gòu)化的;
-
數(shù)據(jù)極少有更新或刪除操作;
-
數(shù)據(jù)源是唯一的;
-
相對互聯(lián)網(wǎng)應(yīng)用,寫多讀少;
-
用戶關(guān)注的是一段時間的趨勢,而不是某一特點時間點的值;
-
數(shù)據(jù)是有保留期限的;
-
數(shù)據(jù)的查詢分析一定是基于時間段和地理區(qū)域的;
-
除存儲查詢外,還往往需要各種統(tǒng)計和實時計算操作;
-
流量平穩(wěn),可以預(yù)測;
-
往往需要有插值等一些特殊的計算;
-
數(shù)據(jù)量巨大,一天采集的數(shù)據(jù)就可以超過100億條。
總結(jié)出這些特點后,一下豁然開朗,覺得采用Hadoop這些開源軟件來處理物聯(lián)網(wǎng)數(shù)據(jù)完全是大錯特錯。
物聯(lián)網(wǎng)數(shù)據(jù)像日志數(shù)據(jù),幾乎沒有更新操作的可能,那數(shù)據(jù)庫中的事務(wù)處理的實現(xiàn)就完全多余;數(shù)據(jù)是時序的,時間戳自然可以作為主鍵,根本不需要復(fù)雜的索引結(jié)構(gòu);物聯(lián)網(wǎng)數(shù)據(jù)是結(jié)構(gòu)化的,像HBase、Cassandra那樣用Key-Value來存儲,計算效率和存儲效率大打折扣,應(yīng)該采用結(jié)構(gòu)化存儲才行;物聯(lián)網(wǎng)數(shù)據(jù)的冷熱程度是時間決定的,剛采集的數(shù)據(jù)是最熱的,而不是用戶點擊決定。
因此用簡單的先進(jìn)先出的內(nèi)存管理就能很好的實現(xiàn)高效的緩存,根本就不需要Redis;物聯(lián)網(wǎng)數(shù)據(jù)從一個設(shè)備來看,就是一個數(shù)據(jù)流,實現(xiàn)滑動窗口的流計算那不是一個最順其自然的事情,哪用得上Spark這么復(fù)雜的引擎;對于數(shù)據(jù)分區(qū),簡單的按設(shè)備分區(qū)按時間段分區(qū),就輕松解決,根本就不需要復(fù)雜的分區(qū)機制;物聯(lián)網(wǎng)數(shù)據(jù)流是相對平穩(wěn)的,而且物聯(lián)網(wǎng)設(shè)備本身一定有緩存能力,完全可以拋棄Kafka這些套件,實現(xiàn)一個簡單的消息隊列和數(shù)據(jù)訂閱來滿足需求。
隨后又發(fā)現(xiàn)有時序數(shù)據(jù)庫,馬上看他們文檔和代碼,發(fā)現(xiàn)他們利用了時序數(shù)據(jù)一些特點,但還是沒有充分利用,而且只是定位為一個數(shù)據(jù)庫。
后面又了解到工業(yè)界有實時數(shù)據(jù)庫,發(fā)現(xiàn)這些實時數(shù)據(jù)庫都是老古董產(chǎn)品了,基本上都還是Windows上研發(fā),價格貴,而且沒有標(biāo)準(zhǔn)SQL,水平擴展幾乎沒有,大數(shù)據(jù)分析能力幾乎沒有,完全沒有能力應(yīng)對日益增長的大數(shù)據(jù)量和大數(shù)據(jù)分析需求,遲早會被淘汰。
我做完分析后很興奮,覺得找到了一空白點。但我自己有沒有能力研發(fā)這產(chǎn)品?仔細(xì)一琢磨,還是興奮。
2008年,我創(chuàng)辦和信,推送平臺除推送之外,一個重要的模塊就是消息隊列。2009年,我們就研發(fā)了一個分布式高可靠、持久化存儲的消息隊列,每臺手機需要推送的消息就放在一個隊列里。消息隊列與物聯(lián)網(wǎng)的時序數(shù)據(jù)有區(qū)別嗎?本質(zhì)上沒有。
一個是非結(jié)構(gòu)化的,一個是結(jié)構(gòu)化的;一個是簡單的進(jìn)和出,但另外一個是需要有分析和計算的;兩者在系統(tǒng)的架構(gòu)設(shè)計上沒有大的不同。
考慮到必須設(shè)計成分布式系統(tǒng),因為多年通訊設(shè)備研發(fā)背景,對我那是輕車熟路。因此,我應(yīng)該具備所需要的知識儲備和技能,自己多年積累的研發(fā)經(jīng)驗全部能派上用場 。
因此我迅速定位了自己要做的產(chǎn)品,那就是物聯(lián)網(wǎng)大數(shù)據(jù)平臺,要把時序數(shù)據(jù)庫、緩存、消息訂閱、流式計算等系列功能融合在一起,一站式的解決物聯(lián)網(wǎng)大數(shù)據(jù)問題,這樣才能將系統(tǒng)研發(fā)、維護(hù)的復(fù)雜度與成本大幅降低。
前面兩次創(chuàng)業(yè),都是2C產(chǎn)品,讓我養(yǎng)成了追求簡單極致的習(xí)慣,馬上又定下采用SQL接口,能通過JDBC接口與眾多第三方工具無縫集成,安裝部署要一鍵搞定的策略,目的是要讓開發(fā)者用起來輕松,完全沒有學(xué)習(xí)成本。
研究物聯(lián)網(wǎng)數(shù)據(jù)的特點后,我想到了兩個技術(shù)創(chuàng)新點,一是“一臺設(shè)備一張表”的數(shù)據(jù)模型來極大提高單臺設(shè)備的數(shù)據(jù)插入和查詢效率, 二是給每張表打靜態(tài)標(biāo)簽,將靜態(tài)標(biāo)簽數(shù)據(jù)與采集的動態(tài)數(shù)據(jù)完全分開存儲,來解決多表聚合查詢問題。
想明白這些后,2016年底,接近50歲的我決定親自寫程序開干。為什么不找人呢?幾個原因:
-
自己做技術(shù)多年,有個心結(jié),就是希望自己寫的代碼能被無數(shù)的人使用;
-
開發(fā)難度大,特別是分布式,如果我自己不把主要框架搭完,把存儲引擎寫好,那團隊效率會很低;
-
這個產(chǎn)品的核心是技術(shù),如果自己不重度參與研發(fā),那公司會很危險。
我準(zhǔn)備動手寫的時候,告訴太太,如果我寫的存儲引擎在數(shù)據(jù)插入、查詢速度上不比其他數(shù)據(jù)庫好五倍以上,就當(dāng)做我又寫了一段好玩的程序。
如果能達(dá)到五倍以上,那我就要再折騰一次。因為在我的眼里,技術(shù)型的產(chǎn)品,要打敗市場上現(xiàn)有的廠商,如果沒有五倍以上的優(yōu)勢,那完全沒有必要做,因為對方有人、有錢,有客戶群,你憑什么與對方開戰(zhàn)?
幸運的是,我2個月時間,寫完一萬八千多行代碼,完全證明憑借我的兩大創(chuàng)新,性能上可以秒殺市場上現(xiàn)有產(chǎn)品,因此就有了今天的TDengine。
濤思數(shù)據(jù)團隊,左三為陶建輝兒子(00后一枚),TDengine項目其亦有貢獻(xiàn)
研發(fā)底層基礎(chǔ)軟件,開發(fā)難,推廣更難。即使功能、性能比現(xiàn)有產(chǎn)品好一個數(shù)量級,客戶還是會以安全性和穩(wěn)定性為由拒絕你,因此我想到應(yīng)該用開源的方式,把最核心的代碼和詳細(xì)的設(shè)計都曬出來,讓更多的程序員參與進(jìn)來,將開發(fā)者社區(qū)建立起來。
活躍的開發(fā)者社區(qū)能讓所有大客戶都感覺到所選的技術(shù)不會被拋棄,不會有重大安全漏洞, 可放心使用。
另外一方面,很多中小企業(yè)客戶數(shù)據(jù)量不大,技術(shù)上有很多選擇,如果不開源,他們就會選擇一些其他的開源方案。
本來就賺不到他們的錢,那為何不開源給他們,讓他們免費用呢?不僅要讓大家免費用,我們還要組織一個不小的團隊來運營,與各種背景的開發(fā)者互動,回答他們的疑問,讓他們得到技術(shù)支持和幫助,更希望他們參與進(jìn)來,有榮譽感和自豪感,他們才可能發(fā)自內(nèi)心地傳播。
同時,通過開源,可以快速獲得市場對產(chǎn)品的反饋,了解市場的需求,這是一件多好的事情,因此毫無猶豫的決定開源。
大數(shù)據(jù)平臺、物聯(lián)網(wǎng)平臺和數(shù)據(jù)庫都已經(jīng)有很多主流產(chǎn)品,挑戰(zhàn)他們是一件困難的事情。而專為物聯(lián)網(wǎng)打造的大數(shù)據(jù)平臺,目前還沒有,TDengine在全球是第一家。
物聯(lián)網(wǎng)的市場在高速增長,采集的數(shù)據(jù)量更是指數(shù)式的上升,5年的時間,世界上90%的數(shù)據(jù)都會是物聯(lián)網(wǎng)類型的數(shù)據(jù),這個細(xì)分市場一定會成為一個主流市場。
只要濤思數(shù)據(jù)團隊繼續(xù)努力,抱著開放、合作的態(tài)度,充分利用開源打造出技術(shù)生態(tài),同時與全球的系統(tǒng)集成商、獨立軟件開發(fā)商、渠道等合作,積極的構(gòu)建出商業(yè)生態(tài),那TDengine一定有成為獨角獸的一天。
喜歡丘吉爾說的一句話,“Success is not final, failure is not fatal, it is the courage to continue that counts”,繼續(xù)奔跑吧,伙伴們!
-
代碼
+關(guān)注
關(guān)注
30文章
4722瀏覽量
68234 -
GitHub
+關(guān)注
關(guān)注
3文章
465瀏覽量
16359
原文標(biāo)題:三次創(chuàng)業(yè),三次跨界,這次憑十萬行核心C代碼登上 GitHub Top 1!
文章出處:【微信號:mcuworld,微信公眾號:嵌入式資訊精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論