7月28日周日下午,大暑剛過的北京,熱得愈加肆意。編者來到在濤思數據聯合CSDN舉辦的「TDengine 和他的小伙伴們」的Beijing Meetup現場時,陶建輝正在答觀眾問。
突然,編者被一位20來歲的小姑娘熱心提醒可以坐下聽。攀談幾句,得知姑娘是留學倫敦的電子工程畢業生,趁放暑假來這里做志愿者。
不僅志愿者很高大上,濤思數據的團隊也很“高配”:3位博士,4位海歸。他們最近斬獲超級喜訊一枚:僅有十人的濤思數據團隊,在GitHub開源的TDengine,連續數天雄踞榜首。
那么,這是怎樣的一個項目?又是怎樣的一個團隊?團隊背后的創始人有著怎樣的經歷?創始人陶建輝親自撰寫本文,為你答疑解惑,趕快往下看吧!
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這套體系太重,至少對于物聯網大數據而言如此。
搭建一個平臺,居然要好多款開源軟件拼接在一起,研發、運維效率會很低,數據一致性很難保證,定位一個問題牽涉的環節太多,很不適合私有化部署。
將各種物聯網場景抽象出來,我總結出了物聯網數據的十二大特點:
-
數據是時序的,一定帶有時間戳;
-
數據是結構化的;
-
數據極少有更新或刪除操作;
-
數據源是唯一的;
-
相對互聯網應用,寫多讀少;
-
用戶關注的是一段時間的趨勢,而不是某一特點時間點的值;
-
數據是有保留期限的;
-
數據的查詢分析一定是基于時間段和地理區域的;
-
除存儲查詢外,還往往需要各種統計和實時計算操作;
-
流量平穩,可以預測;
-
往往需要有插值等一些特殊的計算;
-
數據量巨大,一天采集的數據就可以超過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”,繼續奔跑吧,伙伴們!
-
代碼
+關注
關注
30文章
4788瀏覽量
68617 -
GitHub
+關注
關注
3文章
471瀏覽量
16448
原文標題:三次創業,三次跨界,這次憑十萬行核心C代碼登上 GitHub Top 1!
文章出處:【微信號:mcuworld,微信公眾號:嵌入式資訊精選】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論