近期,IDC 對物聯網支出作出預測,2019 年全球物聯網支出將達到 7450 億美元,IDC 報告表明,各行業的物聯網解決方案支出佔比持續提升,物聯網的預期增長仍然很高。物聯網的下一章剛剛開始,在 濤思數據 創始人陶建輝看來,未來 5 年內,世界上 90% 的數據都會是物聯網採集的數據,於是他們打造了 TDengine。這是一個專為物聯網、車聯網、工業網際網路、IT 運維等設計和優化的大數據平臺。除了高性能的核心時序資料庫功能,TDengine 還提供緩存、數據訂閱、流式計算等功能,旨在最大程度地減少研發和運維的工作量。從 7 月 12 日在 ArchSummit 全球架構師峰會(深圳站)2019 宣布開源至今兩周時間,TDengine 開源項目 在 GitHub 上已經收穫了超過 6800 個 Star,Fork 數超過 1700,在業內引發熱議。
開源地址:https://github.com/taosdata/TDengine
TDengine測試數據和報告詳見:https://www.taosdata.com/cn/
InfoQ 記者有幸在 ArchSummit 全球架構師峰會(深圳站)2019 現場採訪到了濤思數據創始人陶建輝,聽他分享 TDengine 性能做到 Hadoop 十倍背後的技術創新、TDengine 開源的初衷以及未來對 TDengine 商業化推廣和開源社區的規劃。
InfoQ:您好,非常感謝您參加 ArchSummit 全球架構師峰會(深圳站)2019 的視頻採訪,首先請您做一下簡單的自我介紹,包括您的工作經歷和創業經歷。
陶建輝:大家好,我叫陶建輝,我是濤思數據的創始人。今天很高興來到現場與大家互動。我是 86 年考上大學,94 年到美國留學,97 年開始在芝加哥摩託羅拉工作,後來又到了 3Com 公司。我在 2008 年回到北京創業,前面做過兩家創業公司,一個叫和信,做的是手機實時消息推送服務,後來這家公司被聯發科收購了;13 年我又重新創業,做了一家做智能硬體的公司,叫快樂媽咪,主要是做母嬰健康大數據服務平臺,這家公司在 16 年年初被太平洋網絡收購了。然後我休息了一年。我覺得物聯網一定會發展起來,隨著數據量越來越大,需要一個新的方式來處理物聯網採集的海量數據,這是一個機會。再結合我前面那家創業公司的經驗,我覺得我還沒老。那時候,我正好 49 歲,我覺得我可以自己做,而且我認為現在大家的處理物聯網數據的方法不太合適,我找到了一種更好的創新方法來存儲和處理這些物聯網數據,因此我就自己一個人寫了兩個月代碼,來證明我的想法是對的。然後我就開始融資、組建團隊,濤思數據就是在 17 年 5 月份正式成立的。
InfoQ:所以 TDengine 這款產品一開始的定位就是專門為物聯網而設計的嗎?
陶建輝:物聯網是一個很寬泛的概念,包含了車聯網、工業網際網路、IT 智能運維監測等,只要通過各種機器設備傳感器採集數據,都屬於這個範疇。因為我上一家創業公司做的是智能硬體,需要採集各種各樣的數據送到雲端,做健康數據的分析。後來我又了解了很多物聯網項目,包括工業網際網路、智能硬體、智能家居等項目,這裡面共性的東西實際上就是數據的處理,怎麼存儲、怎麼高效地查詢計算和分析。濤思數據這兩年多的時間,一直在做的就是這樣一件事情。
InfoQ:TDengine 是什麼時候正式對外推出可用產品的?從 TDengine 開始研發,到推出對外可用的產品,一共花了多長時間?
陶建輝:我們第一款產品真正可以交給用戶使用是在 2018 年 8 月份,從一開始研發到對外推出可用的產品大概花了一年半的時間。
InfoQ:在 TDengine 的研發過程中,團隊遇到最大的困難是什麼?這背後有什麼故事可以跟我們分享嗎?
陶建輝:最大的困難就是技術,技術挑戰相當大。我們這款產品看上去很簡單,不就是把各種採集的數據存儲起來再做查詢,實際上因為這屬於底層軟體,所以它的技術挑戰很大。比方說我們經常要做一百億條記錄的插入、查詢測試,這一百億條記錄如果中間丟了一條,你要找出丟的是哪一條、為什麼丟,涉及的模塊很多,技術挑戰相當大。
我可以分享一個我們在 TDengine 開發過程中的小故事。因為我自己在做這個產品,它主要強調性能和易用性這兩個方面。如果性能不夠好,那它就沒有代替其他軟體的可能,我就舉一個性能的例子。有一次我們團隊一個工程師,改了一行代碼,他改的那行代碼還是我寫的,大家都沒有意識到,這行代碼讓整個產品的性能下降了一半都不止。整個團隊都急死了,花了整整一天時間,回滾代碼查看,最後才找出原因並修復了問題。
InfoQ:在性能測試報告中,你們對比了 TDengine 和 MySQL、ClickHouse 等開源資料庫產品的讀寫性能,這是否意味著這些產品是 TDengine 的對標對象?
陶建輝:雖然 MySQL、ClickHouse 這些是大家更熟悉的開源資料庫產品,但我們真正對標的是測試報告上寫的 InfluxDB、OpenTSDB,包括阿里的 HiTSDB 等產品,這些才是我們真正對標的產品。但是也不完全公平,因為這些產品只是一個資料庫。TDengine 的核心功能也是個資料庫,但除了資料庫之外,TDengine 還支持很多其他功能,比如說大數據處理所需要的緩存、消息隊列、流式計算等一系列功能。我們的性能測試報告針對的是資料庫這項功能,因為資料庫測試相對標準化,一般看的就是插入速度、查詢速度,所以我們基於此做了對比。目前 TDengine 在大數據領域還沒有真正完全對標的對象,我們是全球第一個真正做物聯網大數據平臺的產品。 這也是為什麼我們不把自己叫做資料庫的原因。