六月婷婷AV,国产偷窥猎奇福利二区,日韩三级片。,好吊色网站,日韩成人中文在线视频,国产亚洲午夜啪啪,亚洲欧美另类国产精品,国产成人av1,任你艹在线观看

我為何要開發(fā)一個(gè)專用的物聯(lián)網(wǎng)大數(shù)據(jù)平臺,還開源它?

Jeff Tao

2019-08-04 /

作者按:7月28日周日下午,在TDengine物聯(lián)網(wǎng)大數(shù)據(jù)平臺開源兩周后,濤思數(shù)據(jù)聯(lián)合CSDN舉辦了「TDengine 和他的小伙伴們」Beijing Meetup活動(dòng)。活動(dòng)后,我應(yīng)CSDN邀約,撰寫此文,講述了我開發(fā)TDengine的新路歷程,為什么我會想到要開發(fā)物聯(lián)網(wǎng)專用的大數(shù)據(jù)平臺?與眾多創(chuàng)業(yè)者和程序員們分享。

我為何要開發(fā)一個(gè)專用的物聯(lián)網(wǎng)大數(shù)據(jù)平臺,還開源它? - TDengine Database 時(shí)序數(shù)據(jù)庫
大家在看100億條記錄查詢的現(xiàn)場演示

7月12日,濤思數(shù)據(jù)宣布將TDengine開源,10多萬行C代碼,包括最核心的存儲引擎和計(jì)算引擎都上傳到了GitHub上。

整整兩周時(shí)間,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)場互動(dòng)十分熱烈。

我為何要開發(fā)一個(gè)專用的物聯(lián)網(wǎng)大數(shù)據(jù)平臺,還開源它? - TDengine Database 時(shí)序數(shù)據(jù)庫
線下活動(dòng)現(xiàn)場

很多人好奇,為什么一個(gè)從沒研發(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è)公司快樂媽咪被收購,一下就輕松下來。但總有很多朋友拉我去看項(xiàng)目,有想讓我投資的,有想讓我加入團(tuán)隊(duì)的。因?yàn)槲以谥悄苡布ψ永镉幸欢麣?,因此看的最多的還是智能硬件、物聯(lián)網(wǎng)相關(guān)的項(xiàng)目?;俗约翰簧贂r(shí)間仔細(xì)琢磨的有好幾個(gè)項(xiàng)目。

第一個(gè)是菜市場的智能秤,希望通過智能秤將菜市場的信息流完全打通,打造一個(gè)不亞于美團(tuán)的平臺出來;

第二個(gè)是養(yǎng)殖物聯(lián)網(wǎng),希望對投料機(jī)進(jìn)行自動(dòng)控制,對養(yǎng)殖的魚塘的環(huán)境進(jìn)行監(jiān)測,通過物聯(lián)網(wǎng)將飼料、養(yǎng)殖、水產(chǎn)銷售打通,形成平臺;

第三個(gè)是電梯物聯(lián)網(wǎng),系統(tǒng)通過監(jiān)測,由按期保修變成按需保修,而且建立全國性的電梯維保平臺。

還有智能家居等好幾個(gè),但最終沒有一個(gè)打動(dòng)我,讓我投入進(jìn)去。因?yàn)槲曳治鲞@些項(xiàng)目之后,發(fā)現(xiàn)他們成功的關(guān)鍵因素,都不是我或者現(xiàn)有團(tuán)隊(duì)具備的。但這些項(xiàng)目讓我看到了物聯(lián)網(wǎng)的前景,看到萬物互聯(lián)是不可阻擋的潮流,一定要抓住。我一個(gè)強(qiáng)技術(shù)背景,沒有多少行業(yè)資源的人,能在這股潮流里找到什么樣的機(jī)會?

我的第一反應(yīng)就是研發(fā)一個(gè)物聯(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了。心一下就涼了,這個(gè)物聯(lián)網(wǎng)平臺是絕不能做了,要做就是瞎折騰,唯一的可能性是緊靠一行業(yè)資源,靠行業(yè)特性和市場資源取勝,但我偏偏沒有多少行業(yè)背景和資源。

但在仔細(xì)看完很多物聯(lián)網(wǎng)平臺的資料后,終于發(fā)現(xiàn)了一絲曙光,那就是數(shù)據(jù)處理。物聯(lián)網(wǎng)平臺里模塊很多,但其中很重要的一塊就是數(shù)據(jù)處理,包括采集、存儲、查詢、分析和計(jì)算,是整個(gè)物聯(lián)網(wǎng)行業(yè)里面比較共性的部分,個(gè)性化程度不高。

再仔細(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等做流式計(jì)算,后面再接應(yīng)用、大屏展示等等。雖然我沒有真正接觸過大數(shù)據(jù)的處理,但了解這些通用的大數(shù)據(jù)框架后,我的第一反應(yīng)就是,Hadoop這套體系太重,至少對于物聯(lián)網(wǎng)大數(shù)據(jù)而言如此。搭建一個(gè)平臺,居然要好多款開源軟件拼接在一起,研發(fā)、運(yùn)維效率會很低,數(shù)據(jù)一致性很難保證,定位一個(gè)問題牽涉的環(huán)節(jié)太多,很不適合私有化部署。

將各種物聯(lián)網(wǎng)場景抽象出來,我總結(jié)出了物聯(lián)網(wǎng)數(shù)據(jù)的十二大特點(diǎn):

1.數(shù)據(jù)是時(shí)序的,一定帶有時(shí)間戳;2.數(shù)據(jù)是結(jié)構(gòu)化的;3.數(shù)據(jù)極少有更新或刪除操作;4.數(shù)據(jù)源是唯一的;5.相對互聯(lián)網(wǎng)應(yīng)用,寫多讀少;7.用戶關(guān)注的是一段時(shí)間的趨勢,而不是某一特點(diǎn)時(shí)間點(diǎn)的值;8.數(shù)據(jù)是有保留期限的;7.數(shù)據(jù)的查詢分析一定是基于時(shí)間段和地理區(qū)域的;9.除存儲查詢外,還往往需要各種統(tǒng)計(jì)和實(shí)時(shí)計(jì)算操作;10.流量平穩(wěn),可以預(yù)測;11.往往需要有插值等一些特殊的計(jì)算;12.數(shù)據(jù)量巨大,一天采集的數(shù)據(jù)就可以超過100億條。

總結(jié)出這些特點(diǎn)后,一下豁然開朗,覺得采用Hadoop這些開源軟件來處理物聯(lián)網(wǎng)數(shù)據(jù)完全是大錯(cuò)特錯(cuò)。

物聯(lián)網(wǎng)數(shù)據(jù)像日志數(shù)據(jù),幾乎沒有更新操作的可能,那數(shù)據(jù)庫中的事務(wù)處理的實(shí)現(xiàn)就完全多余;數(shù)據(jù)是時(shí)序的,時(shí)間戳自然可以作為主鍵,根本不需要復(fù)雜的索引結(jié)構(gòu);物聯(lián)網(wǎng)數(shù)據(jù)是結(jié)構(gòu)化的,像HBase、Cassandra那樣用Key-Value來存儲,計(jì)算效率和存儲效率大打折扣,應(yīng)該采用結(jié)構(gòu)化存儲才行;物聯(lián)網(wǎng)數(shù)據(jù)的冷熱程度是時(shí)間決定的,剛采集的數(shù)據(jù)是最熱的,而不是用戶點(diǎn)擊決定。因此用簡單的先進(jìn)先出的內(nèi)存管理就能很好的實(shí)現(xiàn)高效的緩存,根本就不需要Redis;物聯(lián)網(wǎng)數(shù)據(jù)從一個(gè)設(shè)備來看,就是一個(gè)數(shù)據(jù)流,實(shí)現(xiàn)滑動(dòng)窗口的流計(jì)算那不是一個(gè)最順其自然的事情,哪用得上Spark這么復(fù)雜的引擎;對于數(shù)據(jù)分區(qū),簡單的按設(shè)備分區(qū)按時(shí)間段分區(qū),就輕松解決,根本就不需要復(fù)雜的分區(qū)機(jī)制;物聯(lián)網(wǎng)數(shù)據(jù)流是相對平穩(wěn)的,而且物聯(lián)網(wǎng)設(shè)備本身一定有緩存能力,完全可以拋棄Kafka這些套件,實(shí)現(xiàn)一個(gè)簡單的消息隊(duì)列和數(shù)據(jù)訂閱來滿足需求。

隨后又發(fā)現(xiàn)有時(shí)序數(shù)據(jù)庫,馬上看他們文檔和代碼,發(fā)現(xiàn)他們利用了時(shí)序數(shù)據(jù)一些特點(diǎn),但還是沒有充分利用,而且只是定位為一個(gè)數(shù)據(jù)庫。后面又了解到工業(yè)界有實(shí)時(shí)數(shù)據(jù)庫,發(fā)現(xiàn)這些實(shí)時(shí)數(shù)據(jù)庫都是老古董產(chǎn)品了,基本上都還是Windows上研發(fā),價(jià)格貴,而且沒有標(biāo)準(zhǔn)SQL,水平擴(kuò)展幾乎沒有,大數(shù)據(jù)分析能力幾乎沒有,完全沒有能力應(yīng)對日益增長的大數(shù)據(jù)量和大數(shù)據(jù)分析需求,遲早會被淘汰。

我做完分析后很興奮,覺得找到了一空白點(diǎn)。但我自己有沒有能力研發(fā)這產(chǎn)品?仔細(xì)一琢磨,還是興奮。

2008年,我創(chuàng)辦和信,推送平臺除推送之外,一個(gè)重要的模塊就是消息隊(duì)列。2009年,我們就研發(fā)了一個(gè)分布式高可靠、持久化存儲的消息隊(duì)列,每臺手機(jī)需要推送的消息就放在一個(gè)隊(duì)列里。消息隊(duì)列與物聯(lián)網(wǎng)的時(shí)序數(shù)據(jù)有區(qū)別嗎?本質(zhì)上沒有。

一個(gè)是非結(jié)構(gòu)化的,一個(gè)是結(jié)構(gòu)化的;一個(gè)是簡單的進(jìn)和出,但另外一個(gè)是需要有分析和計(jì)算的;兩者在系統(tǒng)的架構(gòu)設(shè)計(jì)上沒有大的不同。

考慮到必須設(shè)計(jì)成分布式系統(tǒng),因?yàn)槎嗄晖ㄓ嵲O(shè)備研發(fā)背景,對我那是輕車熟路。因此,我應(yīng)該具備所需要的知識儲備和技能,自己多年積累的研發(fā)經(jīng)驗(yàn)全部能派上用場 。

因此我迅速定位了自己要做的產(chǎn)品,那就是物聯(lián)網(wǎng)大數(shù)據(jù)平臺,要把時(shí)序數(shù)據(jù)庫、緩存、消息訂閱、流式計(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ù)的特點(diǎn)后,我想到了兩個(gè)技術(shù)創(chuàng)新點(diǎn),一是“一臺設(shè)備一張表”的數(shù)據(jù)模型來極大提高單臺設(shè)備的數(shù)據(jù)插入和查詢效率,  二是給每張表打靜態(tài)標(biāo)簽,將靜態(tài)標(biāo)簽數(shù)據(jù)與采集的動(dòng)態(tài)數(shù)據(jù)完全分開存儲,來解決多表聚合查詢問題。

想明白這些后,2016年底,接近50歲的我決定親自寫程序開干。為什么不找人呢?幾個(gè)原因,1:自己做技術(shù)多年,有個(gè)心結(jié),就是希望自己寫的代碼能被無數(shù)的人使用;2:開發(fā)難度大,特別是分布式,如果我自己不把主要框架搭完,把存儲引擎寫好,那團(tuán)隊(duì)效率會很低;3:這個(gè)產(chǎn)品的核心是技術(shù),如果自己不重度參與研發(fā),那公司會很危險(xiǎn)。

我準(zhǔn)備動(dòng)手寫的時(shí)候,告訴太太,如果我寫的存儲引擎在數(shù)據(jù)插入、查詢速度上不比其他數(shù)據(jù)庫好五倍以上,就當(dāng)做我又寫了一段好玩的程序。如果能達(dá)到五倍以上,那我就要再折騰一次。 因?yàn)樵谖业难劾?,技術(shù)型的產(chǎn)品,要打敗市場上現(xiàn)有的廠商,如果沒有五倍以上的優(yōu)勢,那完全沒有必要做,因?yàn)閷Ψ接腥?、有錢,有客戶群,你憑什么與對方開戰(zhàn)?

幸運(yùn)的是,我2個(gè)月時(shí)間,寫完一萬八千多行代碼,完全證明憑借我的兩大創(chuàng)新,性能上可以秒殺市場上現(xiàn)有產(chǎn)品,因此就有了今天的TDengine。 

我為何要開發(fā)一個(gè)專用的物聯(lián)網(wǎng)大數(shù)據(jù)平臺,還開源它? - TDengine Database 時(shí)序數(shù)據(jù)庫
濤思數(shù)據(jù)團(tuán)隊(duì)在Meetup現(xiàn)場

研發(fā)底層基礎(chǔ)軟件,開發(fā)難,推廣更難。即使功能、性能比現(xiàn)有產(chǎn)品好一個(gè)數(shù)量級,客戶還是會以安全性和穩(wěn)定性為由拒絕你,因此我想到應(yīng)該用開源的方式,把最核心的代碼和詳細(xì)的設(shè)計(jì)都曬出來,讓更多的程序員參與進(jìn)來,將開發(fā)者社區(qū)建立起來?;钴S的開發(fā)者社區(qū)能讓所有大客戶都感覺到所選的技術(shù)不會被拋棄,不會有重大安全漏洞, 可放心使用。

另外一方面,很多中小企業(yè)客戶數(shù)據(jù)量不大,技術(shù)上有很多選擇,如果不開源,他們就會選擇一些其他的開源方案。本來就賺不到他們的錢,那為何不開源給他們,讓他們免費(fèi)用呢?不僅要讓大家免費(fèi)用,我們還要組織一個(gè)不小的團(tuán)隊(duì)來運(yùn)營,與各種背景的開發(fā)者互動(dòng),回答他們的疑問,讓他們得到技術(shù)支持和幫助,更希望他們參與進(jìn)來,有榮譽(yù)感和自豪感,他們才可能發(fā)自內(nèi)心地傳播。

同時(shí),通過開源,可以快速獲得市場對產(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年的時(shí)間,世界上90%的數(shù)據(jù)都會是物聯(lián)網(wǎng)類型的數(shù)據(jù),這個(gè)細(xì)分市場一定會成為一個(gè)主流市場。只要濤思數(shù)據(jù)團(tuán)隊(duì)繼續(xù)努力,抱著開放、合作的態(tài)度,充分利用開源打造出技術(shù)生態(tài),同時(shí)與全球的系統(tǒng)集成商、獨(dú)立軟件開發(fā)商、渠道等合作,積極的構(gòu)建出商業(yè)生態(tài),那TDengine一定有成為獨(dú)角獸的一天。

喜歡丘吉爾說的一句話,“Success is not final, failure is not fatal, it is the courage to continue that counts”,繼續(xù)奔跑吧,伙伴們!