專訪濤思數據創始人陶建輝:比 Hadoop 快至少10 倍的大數據平臺是這樣煉成的

為促進社區發展,運維派尋求戰略合作、贊助、投資,請聯系微信:helloywp

2019年7月12日,濤思數據團隊對外正式宣布一款專為物聯網定制打造的大數據平臺軟件,此項目一經開源,引起強烈關注,連續兩天時間在 Github 全球趨勢榜上排名第一。截至發稿前,TDengine 在 Github 上獲得近 7000 的 star。

▲ 截至發稿前,TDengine?在 Github 上的 star 數近 7000

TDengine 背后的男人

這款大數據平臺背后的男人正是陶建輝,湖南人,一個健談,愛笑的大齡程序員。

在一個天氣炎熱的下午,我們來到陶思數據位于北京朝陽區望京的辦公樓,一起與創始人陶建輝老師聊一聊?TDengine 物聯網大數據平臺從研發到成功開源背后的故事。

▲ 陶思數據創始人陶建輝(Jeff)


高效運維社區(以下簡稱“社區”):陶建輝老師,您好,可否介紹一下您剛剛開源的這款軟件,它的名字是什么?應用在那些領域?

陶建輝:我們剛剛開源的這款軟件叫 TDengine。它主要是處理物聯網、車聯網、工業互聯網、包括運維檢測這種類型的數據,我們稱之為一個大數據平臺。

TD 的意思是 Time-series Data,也是 TAOS Data 的簡稱,也可以稱之為 Teradata,于是我們取了 TDengine 這個名字。這個產品不僅僅是一個數據庫,我們不想只做一個數據庫,而是想做一個大數據平臺,這里面除了數據庫,還有緩存、消息隊列、流式計算等一系列軟件,我們是想把這一系列軟件都包含在里面,提供一個全棧、完整的解決方案。

▲TDengine :專為物聯網而生的大數據平臺


社區:這一次您將整個平臺最核心的存儲引擎、計算引擎和成套的工具完全開源出來,是出于怎樣的考慮?

陶建輝:對于我們來說,這次終于跨出了重要的一步。TDengine 不管是自身的測試,還是現有的客服反饋,性能相當之好,至少插入速度和查詢速度秒殺所有的競爭對手,包括應用性上,比如安裝包大小、各種線上操作都有不俗的表現,一款優秀的產品研發出來后如何推廣?開源是一種方式,但怎么開源?我們自己也思考了很久。

一開始確實我們還是有很多糾結的,因為我以前不是做開源社區的,如果我以前是做開源軟件的,可能沒有多少糾結,那最終為什么下定決心做開源?我想有幾個原因。

第一,是 TDengine 確實有優異的性能,我并非傳統的銷售人員,那怎么才能快速獲得市場?開源是個很好的方式,能夠快速地擴大 TDengine 影響力并獲得市場。

第二,整個IT產業的兩大趨勢,不擁抱是絕對不行,一個是開源,另一個是云服務。不擁抱云服務和開源是成不了獨角獸,尤其是基礎軟件。我自己前面創過兩次業,這是第三次創業,我一心是想成為獨角獸的,如果不擁抱開源,不擁抱云服務,我是成不了獨角獸,不管成不成,必須開源,才能實現我的夢想。


社區:這樣就衍生了一個問題,開源要如何盈利?老師能否在這個問題上有過糾結?

陶建輝:盈利其實有很多方式,其中一種就是開源版本上有一個企業版,這兩個版本有什么區別?核心引擎是一模一樣的,但企業版上還有一部分是集群,企業一般需要高可用和更大規模的處理,這方面我們還沒有開源。

另外一方面的計劃是集群版也會開源,只是時機還沒有成熟。如果集群也是一個很重要的核心,一旦開源就像之前核心的地方都開源,那靠什么盈利?其實依然有很多盈利的方式。

任何一款產品一定是會有不足的,大型的企業在用軟件的時候,一定會購買服務,如果沒有原創團隊在背后支持,萬一某一天宕機,損失是非常大的。我們更多是給大型、中型企業提供一種保險,就是開源之后,我們讓企業用起來放心。

陶建輝:社區版和企業版都會升級,但我會第一時間把我解決的 BUG 開放出來,讓損失降到最低的程度,而且還有一些外圍的管理工具,尤其是運維的工具,會給企業客戶來使用,讓管理更方便、更可靠,這是我們今后的盈利點。包括已經付費的客戶,你買了我們產品好處是買了我們的服務和支持。


社區:TDengine 目前有哪些比較有代表性的客戶?

陶建輝:代表性的比如廣聯達的智慧城市使用了 TDengine 大數據平臺,還有數控機床、機器人全球最大企業 FANUC,也用了 TDengine,還有山西電力全省12個機房的 IT 運維都已經用了 TDengine。


社區:TDengine 最核心的技術有哪些與眾不同的特性,相比同類的產品,最大的優勢是什么?

陶建輝:我講一下 TDengine 相對于其他同類產品有六大特點。

第一,10倍以上的性能提升,插入、查詢速度極其之快,官網上宣傳的是10倍,其實還不止10倍,因為宣傳的原因,說10倍比較好記,對比有一些產品我們是快幾十倍。

第二,一站式解決了所有的問題。一些時序數據庫像 InfluxDB,還得用其他軟件,消息隊列、流式計算、緩存;我們把緩存、消息隊列、數據庫組合在一起,大幅降低了研發和運維的復雜度和成本。現在的運維真的越來越難做了,以前就是數據庫不宕機就行,現在要管 Kafka、Spark、Hbase、HDFS,我們把它合在一起,這就大幅降低運維和研發的成本。

第三,我們是能夠把硬件和云服務的成本大幅降低,為什么能降低?第一個是我們的性能特別高,以前可能要10臺服務器,現在可能只需要一臺或兩臺就夠了,那你采購的服務器就少多了,或者你到阿里云上去買虛擬機,用的虛擬機也少多了。

另外一方面我們整個存儲的成本也大幅節省,由于我們采用列式存儲,用格式化存儲之后,對不同的數據類型采取不同的壓縮算法,壓縮空間大幅節省。

比如說拿 TDengine 跟 Hbase 相比,我們在一個車聯網企業的應用里,壓縮以后只有 Hbase 存儲空間的7%,也就是說 100T 到 TDengine 這里只要7個T,節省了很多費用。

第四,就是歷史數據和實時數據處理是一套方法。在做 SQL 查詢時,不會到歷史庫去查,到實時庫去查,分成兩套,TDengine 就是一個 SQL 語句,只要改時間,也是一樣的查詢,這就很簡單。而且整個查詢可以通過 Python、MATLAB、R 來查,這個數據分析,尤其做機器查詢,不是同一個RESTful API來查。

第五,就是 TDengine 是有標準的 SQL,支持 JDBC、ODBC,那不是像很多大數據軟件都RESTful API之外,尤其是對to B的軟件,寫 Java 程序的程序員特別喜歡用 JDBC,所有學過計算機的人都會寫sql,即使沒寫過,可能他一聽就知道怎么用sql了。那因此我們這個學習成本就極其之低。

第六,TDengine 可以跟第三方工具無縫集成。舉個例子,我們要跟做運維相關的話,采集數據用Telegraf,TDengine 跟 Telegraf 無縫集成,只要在 Telegraf 里面把TDengine 的設備id地址配好,那采集的數據就自動升到 TDengine 引擎了。TDengine也跟Grafana 集成在一起,因此只要在 Grafana 里寫入 SQL 語句,就能把整個存在TDengine 的數據可視化并實時地顯示出來,這是一個很重要的事情。

▲ TDengine 與同類產品相比的六大特點


社區:相比于hadoop來說,您說至少快十倍,那其最大的優勢是什么?通過什么技術來實現?

陶建輝:比 hadoop 遠遠不止十倍,剛才講的優勢實際上我都講了。它主要是通過什么技術實現的,主要是我們充分利用了物聯網或運維數據的特點,我們的產品是基于這些特點開發的。

拿 TDengine 跟 hadoop 對比,對 hadoop 有一點點不公平,hadoop是所有類型的數據都能處理,比如輿情大數據分析,用戶畫像、推薦系統,但我們不是。我們只能做物聯網、車聯網、工業互聯網、運維數據、金融數據,TDengine 不是個通用的,是個專用的。那么它到底有什么特點?我順便介紹一下物聯網或運維采集的數據有什么特點。

舉個例子,比如日志是按照時間產生的,agent 它是每一秒鐘采集服務器的狀態,內存、CPU、網絡;采集一下應用的狀態,如 Nginx,采集一下,的 DataBase 的狀態,它是定時采集的,是按照時間產生的,一定是時序的數據,而且是日志型的,采集了之后不會改,這是一個很大的區別。

第二,它是結構化的,我講個最簡單的例子,比如說CPU,它說我們就是個浮點數,CPU占比是80%,還是90%,我用的內存是用哪,當前的內存是用了16個G,過一會是16.5G,我的硬盤的狀態現在是幾個T,還是多少,它被它采集,它是個結構化的數據,對吧,就包括智能電表,我們跟電網合作的智能電表這里,就產生了電流電壓相位,你用不著畫結構化表說它就是個結構化的數據。

第三,這種數據一般不改,沒有人去改。

第四,不是不刪,是到了一定的時間要刪。舉個例子,運維監測數據只保留7天,保留一個月我就不要了。

還有一個特點,比如說寫多讀少的這種數據,人們是很少去看這種數據的,一般是通過算法統計、分析來看這個數據,靠程序去讀,不像微博、微信,是寫一條無數人看。就像我寫的那篇文章,好多人看,就寫了一次,但無數人讀。但運維監測的數據還包括物聯網、車聯網則不是這樣,這又是個不同的特點。

還有個特點,舉個例子,物聯網的流量比較平穩,我假設整個機房、超算中心、IDC中心有一萬臺服務器,每臺服務器采集三百個量,每五秒鐘采集一次,我可以把采集的流量估算出來,說每秒會產生多少監測的流量,到了“雙11”,京東、淘寶的流量要漲幾十倍都不止,但這個物聯網、車聯網都不存在,它是平穩的,它很有特點。

另外,物聯網、車聯網包括運維,它從來不看單個采集值,更多的是看一個時間段的趨勢,就看您炒股票,這個股票漲了還是跌了,它并不看我買的第一手價格是什么,更多的是看趨勢,看看過去的幾個分鐘,過去的幾秒鐘,過去的幾天,幾個月,整個的波動的趨勢是什么。

除了這些特點外,但是物聯網、車聯網包括運維,它的數據鏈特別地大,它單個點的價值很低,而微信、微博包括銀行記錄,它是單條價值特別高。

比如說微信,每條記錄都不能丟,丟了那是嚴重的BUG。那物聯網包括運維,你丟一分鐘的數據有什么關系?其實沒有什么關系,它不影響任何的判斷和決策,這就是物聯網數據跟這種通用大數據很大的一個區別,我們之所以比hadoop牛得那么多,跟別的牛得那么多,主要是我們充分利用了我剛剛講的這些數據特點做的。

比如說運維集成里面有很多人用 ElasticSearch 來做這種,ElasticSearch 做這種我們程序里的日志,做大個的分析特別好,但我認為如果來做運維的監測,那是完全錯誤的選擇,沒有考慮到這個數據的特點,因為 ElasticSearch 來做文本、分析、搜索引擎特別好,但是來做電表、車聯網、物聯網的數據處理那是完全錯誤的,不是說不能做,但是效率是極其之差。

因此我們是做了一個特殊化專用的大數據平臺。


社區:TDengine 大數據平臺沒有采取任何第三方的組件,1.5MB的安裝包就能將一個物聯網大數據平臺搞定,從下載、安裝、運行不會超過五秒鐘,這是如何做到的?

陶建輝:第一個,我們是用 C 語言編寫的,我們中間有一個模塊是用C++ 寫的,結果后來 C++ 都改成了C,因為有的客戶抱怨到平臺安裝 glib 版本不對,要重新下載,glib 版本一下載,安裝到 Centos 上一兩個小時都搞不定,而我們就希望用戶可以一鍵安裝幾下搞定,因此用 C 語言開發是我一個很正確的決定,它安裝包就是小,C 語言里面又沒有太多的庫可利用,我就自己開發了很多好用的工具,內存管理也是自己寫的,這樣就會很精煉,安裝包就極其小。我們給客戶都是用微信給的,安裝包就微信直接給,不利用第三方軟件就是我陶建輝從小到大養成的習慣。

就像我文章里分享,我2008年創辦和信的時候,那是個做免費短信、彩信的軟件,我希望大家能夠免費收發短信、彩信,免費在手機上收發郵件,因為那個時候有黑莓手機,黑莓手機每個月費都很多錢,我就希望把黑莓這些功能完全搬運到普通手機上,通過移動互聯網、wifi,來隨意收發短信、彩信。和信在 Windows moblie 的客戶端,你們猜猜多大?才18K,我的功能當然還沒有微信那么強,但主要功能是完全有,就是收發短信、彩信、照片、視頻,郵件還可以發,這些工具都具備,我不知道微信是現在有沒有一百兆,至少幾十兆是有吧,我是18K。

陶建輝:其實這是一個習慣的問題,每寫任何一行程序的時候,我都是想著項目,能不能少寫幾行,能不能效率更高一點,你養成這個習慣,包括我們團隊現在都養成這個習慣了,那你就一定會寫出很小的。因此這也是我們公司一個殺手锏的東西,為什么呢?到邊緣側優勢就顯示出來了。我們馬上就要ARM上二維的版本公開,那你邊緣側歷來都是嵌入式的盒子,資源極其有限,我這么小的體量,一定大受歡迎,其他時序數據庫都是幾十兆,就沒有辦法在ARM的盒子上跑,而 TDengine 就這么小,就可以。


社區:陶老師開發這款大數據平臺軟件的初衷是什么?期間經歷了什么有趣的事情?

陶建輝:開發的初衷是因為我在2016年有接近一年的時間在休整,期間被邀請很多VC,基本上都是物聯網、工業互聯網,包括智能硬件的相關項目,我們那時候很想搞菜市場的智能秤,就想把菜市場的秤完全革命掉,變成智能化。包括我看電梯物聯網、農業物聯網,包括一些醫療項目。

看完之后也看了一些物聯網平臺的公司,我很難確定某個物聯網到底什么時候起來,智能硬件到底會怎么樣,但發現了大家有個共性的東西,就是數據處理沒有太大區別。我當時做母嬰項目——快樂媽咪的時候,處理的是母嬰健康數據,其實它跟電梯物聯網的數據沒有本質的區別,農業物聯網數據的處理跟工業物聯網數據的處理跟手環、摩拜單車、滴滴數據處理本質上沒有區別。之后我發現,大家幾乎都是用 Hadoop 這套體系,Hbase、ElasticSearch、Hadoop是個體系,不僅是這個詞,它包含很多東西,就是大家熟悉的這些,Kafka、Spark,這些工具在處理。

我認為這完全搞錯了,因為物聯網這些數據采集,就像我講的,它很有特點,那為什么不做一個更好的,更專業化的?我自己認為在未來 5 到 10 年,最多不會超過10年,物聯網一定會起來,世界上 90% 的數據會是物聯網采集的數據。以前,大家都想不到自行車都會聯網,所有的交通工具、電器都會聯網,這個數據面能有多大?如果我能做一個極其高效的引擎來處理這些數據,那是多有意義的事情。于是,我就是決定做這個。


社區:TDengine 的成功離不開團隊的支持,您最想感謝的是誰?

陶建輝:毫無疑問感謝我們團隊,存儲引擎是我自己寫的,像我們團隊的廖博士,計算引擎幾乎是他一個人寫出來的;洪澤做壓縮,后來又解鎖整個存儲引擎,存儲引擎保證會有BUG,他接手處理了很多,包括勝亮他們,外圍的軟件很多,包括集群的管理,很多東西要做,我們整個代碼有十幾萬行,好多測試,case,那不是一個人做得到的,包括我們的女生都要感謝,她是我們團隊唯一一個不寫程序的,濤思數據所有跟程序不相關的事情都是她一個人做的。

▲?TDengine 幕后團隊


社區:開源之后社區的反饋如何?

陶建輝:我覺得社區的反饋還是相當正面的,至少已經使用的人就是覺得 TDengine 真的很簡單,只有 1.5 MB,也有一些人發現了我們的 Bug,也有很多人提供了建議,比如希望 Windows 版本盡快開源,有人希望我們 dark,就是好幾個開發者都主要搞了一個 dark的版本讓大家用。最開心的事情就是連續兩天在 Github 全球趨勢榜上第一,目前在 github 上 Star 數已經超過6000,Fork 的數也已經超過1200,就這兩個數字已經超過另外一個有相當多用戶的開源時序數據庫,這個時候我很開心的,而且很多人在微信和微博上問我問題,反饋很強烈。

?


社區:TDengine 未來將向哪些方向發展?

陶建輝:初衷是我們想為整個物聯網提供一個全棧的大數據平臺,目前從 Roadmap 上來看,我們還有一些不足。一個最明顯的例子,就是我們在流式計算上,我們只做了一個滑動窗口的流式計算,但我們去計算,事件驅動,它的實時性會更高,而且事件驅動完了之后我們能做數據清洗之類的一系列的功能,而且還要做自定義函數,因為目前我們提供的函數,自定義聚合,計算的函數不可能滿足所有用戶的需求,但我希望自定義可以自己實現,即便如此,在自定義函數的這些方面我們永遠會采用 SQL,不用定性地腳本語言。

另外一方面 TDengine 還需要提供更多的數據協議接口,比如盡快提供 MQTT 和 OPC接口,這些都是工業物聯網最重要的協議,比如說我們有可能提供 Modbus 的接口,這樣的話我們的生態會漸漸更完善。

還有就是在應用側也要提供很多的接口,現在已經跟telegraf、grafana的這些軟件集成了,我們可能要跟很多流行的BI工具集成,現在已經有一個BI的公司讓 TDengine 跟他們集成在一起了,我希望能夠和很多BI工具無縫集成在一起,這個生態要建立起來。

?


社區:您認為 TDengine 大數據平臺對推動中國IT技術進步有哪些意義?

陶建輝:我覺得意義還是挺大的,中國 IT 產業已經享受了開源社區無數的回應,但是中國 IT 對世界的開源的貢獻還比較有限,中國已經有不少公司在為開源社區做貢獻,但目前開源社區里做得特別好的還很少,比如 pingCAP 的 tidb 分布式數據庫,還有像華為、阿里、騰訊的一些開源項目也不錯,但數量還是不多。

比如說數據庫,數據庫有好多的分支,那沖在排行榜前幾名沒有一家是中國的公司。說一句豪言壯語,在時序數據處理這一領域,我認為我們一年就能沖到全球排行榜前三名,時序數據庫的分支,我估計三年沖到第一名完全沒有問題,這樣的話,會給中國 IT 產業一個很大的信心,中國人照樣能做底層軟件,能把做開源做得很好,我相信會有很多IT公司像我一樣。

網友評論comments

發表評論

電子郵件地址不會被公開。 必填項已用*標注

暫無評論

Copyright ? 2012-2019 YUNWEIPAI.COM - 運維派 - 粵ICP備14090526號-3
掃二維碼
掃二維碼
返回頂部
qq宠物欢乐捕鱼怎么玩 体彩大乐透走势图山东 四川金7乐app下载 新浪围棋最新消息 股票指数期货合约的价值是股票指数与每点 体彩排列五走势图两元 最新棋牌游戏 排列5红球杀号专家预测 开心棋牌可以作弊吗 股票配资广告 哪个平台有辽宁十一选五开奖 新浪斗地主棋牌游戏 乐彩网排列五走势图 开元棋牌是真人游戏吗 天津时时彩开奖号码 北京11选5开奖结果一定牛 广东十一选五走势规律