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

除了花開疫散,我最希望的是開源的TDengine能媲美SQLite

Jeff Tao

2020-02-23 /

雖然新冠狀病毒的疫情沒有結(jié)束,濤思數(shù)據(jù)團(tuán)隊(duì)都居家遠(yuǎn)程辦公,還是按期在2月10日線上發(fā)布了TDengine ARM 32位與64位版,而且100%開源,只是把原計(jì)劃的線下發(fā)布活動(dòng)取消了。大家現(xiàn)在就可以到GitHub下載所有源碼進(jìn)行編譯、運(yùn)行和測試了。雖然TDengine早開源了,但僅支持X86,這次ARM版的發(fā)布,了卻了我的一個(gè)心愿,就是利用TDengine體量小、性能高、資源占用少的優(yōu)勢,為邊緣計(jì)算、嵌入式系統(tǒng)提供一高效、高速、簡單易用的時(shí)序數(shù)據(jù)處理系統(tǒng),來解決流行的SQLite在物聯(lián)網(wǎng)、工業(yè)互聯(lián)網(wǎng)場景下的諸多不足。

SQLite這款產(chǎn)品在我心目中是神一樣的存在,是我3年前創(chuàng)立濤思數(shù)據(jù)時(shí)樹的一個(gè)學(xué)習(xí)標(biāo)桿。從創(chuàng)始人Richard Hipp 2000年開始開發(fā)起,SQLite現(xiàn)已經(jīng)有數(shù)千億份拷貝在各種設(shè)備里運(yùn)行,包括大家熟悉的Android、Apple手機(jī)、Firefox、Chrome、Safari瀏覽器,眾多的嵌入式盒子,包括物聯(lián)網(wǎng)網(wǎng)關(guān)等都裝有SQLite。它是全球裝機(jī)量最大的數(shù)據(jù)庫,遠(yuǎn)遠(yuǎn)超過大家熟悉的MySQL、Oracle數(shù)據(jù)庫。為何SQLite如此流行?一句話,產(chǎn)品做到了極致。看看這些亮點(diǎn):沒有服務(wù)器,僅僅一個(gè)C語言庫,整個(gè)數(shù)據(jù)庫存放于單一跨平臺(tái)的文件,支持ACID,零配置,而且體量可以僅為600KB。關(guān)鍵是,SQLite還是開源免費(fèi)的。在資源緊張的各種嵌入式設(shè)備里,不用它才怪呢。

做的這么好的產(chǎn)品,我們還有機(jī)會(huì)嗎?幸運(yùn)的是,我們有。因?yàn)殡S著物聯(lián)網(wǎng)的興起,各種大大小小的設(shè)備都在采集數(shù)據(jù),而這些采集的數(shù)據(jù)具有鮮明的特點(diǎn),比如帶有時(shí)間戳、結(jié)構(gòu)化、沒有更新、數(shù)據(jù)源唯一等。而且這些數(shù)據(jù)的應(yīng)用上,特點(diǎn)也很明顯,比如數(shù)據(jù)往往只保留一定的時(shí)長、需要做降采樣、插值、實(shí)時(shí)計(jì)算、聚合等操作,關(guān)心的是一段時(shí)間的趨勢而不是某一特點(diǎn)時(shí)間的值等等。隨著云平臺(tái)的普及,這些設(shè)備往往還需要將原始或加工后的數(shù)據(jù)同步到云端。目前在嵌入式的各種盒子里,大家都是采用SQLite來處理。而SQLite是標(biāo)準(zhǔn)的關(guān)系型數(shù)據(jù)庫,基本的存儲(chǔ)、查詢都沒有問題,但采集量偏大之后,性能成為瓶頸,而且還得自己開發(fā)很多功能,比如定期刪除數(shù)據(jù)、實(shí)現(xiàn)數(shù)據(jù)的斷點(diǎn)續(xù)傳、實(shí)現(xiàn)降采樣、聚合計(jì)算等等。對于開發(fā)者來講,用SQLite來處理這些采集的數(shù)據(jù),只是一個(gè)權(quán)宜之計(jì),不是最佳方案。這就是機(jī)會(huì),而且是巨大的機(jī)會(huì),因?yàn)樵絹碓蕉嗟脑O(shè)備在聯(lián)網(wǎng),在采集數(shù)據(jù)。

三年前,我在研究物聯(lián)網(wǎng)數(shù)據(jù)處理這個(gè)市場的時(shí)候,就仔細(xì)琢磨了云端和邊緣側(cè)的需求。云端是大數(shù)據(jù)平臺(tái),需要高并發(fā)、高吞吐率、高可靠,而單一嵌入式設(shè)備里,資源少,數(shù)據(jù)量小。但從功能來看,兩者需求又是幾乎一致的,都要有存儲(chǔ)、查詢、分析、計(jì)算、訂閱的功能。因此從讓開發(fā)者簡單易用的角度出發(fā),我決定將云端與邊緣側(cè)用同一套代碼、同樣的API接口實(shí)現(xiàn),只是集群與單機(jī)版的區(qū)別,以解決云端的大數(shù)據(jù)量與高可靠問題。

除了花開疫散,我最希望的是開源的TDengine能媲美SQLite - TDengine Database 時(shí)序數(shù)據(jù)庫
三年前我的設(shè)計(jì)草圖

首先,我認(rèn)為要學(xué)習(xí)SQLite的無依賴、體量小的優(yōu)點(diǎn)。因此TDengine的開發(fā)決定采用C語言,沒有使用任何第三方的庫,一切都是自己開發(fā),包括定時(shí)器、RPC等模塊等。雖然C語言開發(fā)有一系列頭疼問題,如內(nèi)存泄露、無效指針、多線程同步等,但我很慶幸當(dāng)時(shí)的決定,因?yàn)門Dengine  ARM版的安裝包不到1.3MB,而且內(nèi)存的需求不到1MB,遠(yuǎn)遠(yuǎn)小于InfluxDB、OpenTSDB等其他時(shí)序數(shù)據(jù)。在資源緊張的嵌入式系統(tǒng),TDengine一下成了時(shí)序數(shù)據(jù)庫的理想選擇。

采集的時(shí)序數(shù)據(jù)的處理往往不只是一個(gè)簡單的存儲(chǔ)和查詢,還需要做加工,最常用的是降采樣,需要將采集的原始數(shù)據(jù)按照固定的時(shí)間間隔在時(shí)間軸上做聚合。在資源豐富的服務(wù)器,可以采用Spark、Flink等流式計(jì)算等工具來實(shí)現(xiàn)。在資源緊張的嵌入式系統(tǒng),安裝一個(gè)Spark只是一種奢望。SQLite解決了數(shù)據(jù)存儲(chǔ)問題,但沒有提供緩存功能,因此如果一個(gè)嵌入式系統(tǒng)要對采集數(shù)據(jù)做實(shí)時(shí)緩存,就需要采用Redis這類工具,不然就需要自己開發(fā)??紤]到這些因素,我從一開始設(shè)計(jì),就決定要打造一個(gè)全棧的時(shí)序數(shù)據(jù)處理工具,不僅只是一個(gè)時(shí)序數(shù)據(jù)庫,還提供緩存、流式計(jì)算、消息隊(duì)列、訂閱等系列功能,最大程度地減少對系統(tǒng)資源的消耗,最大程度地減少系統(tǒng)設(shè)計(jì)和維護(hù)的復(fù)雜度。很慶幸,自己又做了一正確的決策,讓TDengine在資源緊張的嵌入式系統(tǒng)里能脫穎而出。

在物聯(lián)網(wǎng)發(fā)展起來之前,每個(gè)嵌入式盒子都是孤立的,還沒有云端的概念。但現(xiàn)在,由于通訊成本大幅降低,各種采集的數(shù)據(jù)要匯聚到云端做進(jìn)一步分析處理,為業(yè)務(wù)的運(yùn)營、預(yù)警、優(yōu)化等提供決策依據(jù)。因此邊云協(xié)同(邊緣計(jì)算-云端)概念應(yīng)運(yùn)而生,邊緣側(cè)需要源源不斷的將采集包括加工后的的數(shù)據(jù)發(fā)往云端。但因?yàn)榫W(wǎng)絡(luò)的穩(wěn)定性、數(shù)據(jù)權(quán)限等問題,邊云協(xié)同的實(shí)現(xiàn)不是一簡單的事情。2017年底,我認(rèn)為要通過數(shù)據(jù)訂閱的方式來解決這個(gè)問題,讓云端可以訂閱邊緣側(cè)的原始數(shù)據(jù)、或是符合指定過濾條件的數(shù)據(jù)。因此TDengine的第一個(gè)版本就帶有訂閱功能。在研究邊云協(xié)同的研發(fā)同學(xué)試試我說的訂閱功能,看是否能大幅減少你的開發(fā)成本。

SQLite是超級(jí)成功的軟件,但開發(fā)團(tuán)隊(duì)很小,其官網(wǎng)公布的開發(fā)者僅僅三個(gè)人。創(chuàng)始人Richard Hipp是1984年從美國喬治理工本科畢業(yè)的,2000年時(shí)開始啟動(dòng)SQLite的開發(fā),已經(jīng)20年,難得的是他現(xiàn)在仍然是整個(gè)項(xiàng)目的架構(gòu)師和負(fù)責(zé)人,貢獻(xiàn)了大部分代碼。因此從組建濤思數(shù)據(jù)團(tuán)隊(duì)的第一天起,我就牢牢的記住一個(gè)原則,底層工具的成功不依賴于團(tuán)隊(duì)的規(guī)模,而是要有一支能全心身投入的精干隊(duì)伍,并且創(chuàng)始人自己要參與設(shè)計(jì)與編碼工作。因此,時(shí)至今日,即使在獲得GGV紀(jì)源資本、紅杉中國的投資后,TDengine研發(fā)團(tuán)隊(duì)的成員還不到10人。我想,隨著業(yè)務(wù)的開展,也許我們會(huì)組建不小的外圍應(yīng)用開發(fā)和技術(shù)支持隊(duì)伍,但是TDengine這個(gè)核心工具本身,研發(fā)人員一定會(huì)控制在10人以內(nèi)。而且希望20年之后,我雖然已過70,還能參與TDengine的研發(fā),還能debug代碼。

TDengine不是要代替SQLite,只是要在時(shí)序數(shù)據(jù)處理的這個(gè)細(xì)分市場里提供一更強(qiáng)大的工具。TDengine是否能像SQLite這樣成功,在數(shù)億臺(tái)設(shè)備上使用,取決于TDengine能否一直保持性能高、體量小、功能全、資源占用少的特色,取決于我自己還有整個(gè)團(tuán)隊(duì)能否十年如一日的堅(jiān)持和專注。更重要的是,我們必須開源,100%的開源,而且將開源進(jìn)行到底。如果不開源,我想象不出任何途徑能讓TDengine獲得SQLite這樣的成功,讓全球數(shù)千萬開發(fā)者受益。如果你能去GitHub下載我們的源碼,測試體驗(yàn),就是對我們開源最大的支持,就能讓我們離目標(biāo)更近一步。如果你使用過程中遇到任何問題,歡迎通過GitHub遞交給我們,哪怕在疫情期間,也都能得到我和團(tuán)隊(duì)的及時(shí)回復(fù)和反饋。隔離病毒,不隔離開源的熱情!

一個(gè)程序員,如果一輩子能夠開發(fā)出一款媲美SQLite的軟件,讓全球開發(fā)者受益,那一件最自豪、最幸福的事情。受上帝的垂青,50歲的我,在一個(gè)早被IT行業(yè)淘汰的年齡,找到了一個(gè)這樣的機(jī)會(huì),而且很幸運(yùn),組建了一個(gè)精干的團(tuán)隊(duì),還獲得了不小的風(fēng)險(xiǎn)投資?,F(xiàn)在版本已經(jīng)發(fā)布,剩下的是要細(xì)細(xì)地磨,持續(xù)地磨,不斷優(yōu)化,解決各種實(shí)際應(yīng)用中遇到的問題,而且除X86、ARM之外,適配更多的系統(tǒng)。愿TDengine能像SQLite一樣流行,在數(shù)百億的設(shè)備里安裝上。

希望TDengine ARM版的發(fā)布能夠減輕一下技術(shù)人和創(chuàng)業(yè)者在疫情和寒冬中的焦慮,能夠溫暖你、振奮你。人類抵擋了一次又一次的疫情,新冠病毒也將很快被人類征服。疫情會(huì)過去,寒冬會(huì)過去,春天會(huì)來,蝴蝶也會(huì)來,讓我們一起靜待春暖花開!

陶建輝

2020年2月23日于北京望京家中