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

避免創(chuàng)業(yè)的大忌,我為何給 TDengine 只選擇了集群、高性能與 SQL 支持三大特點?

Jeff Tao

2022-02-27 /

有人在知乎上提問:“作為國產(chǎn)開源的時序數(shù)據(jù)庫,TDengine 的哪些優(yōu)點最吸引你?”。這促使我將自己對一些問題,包括創(chuàng)業(yè)本身的思考整理出來,分享給大家,希望能給眾多研發(fā)同學和創(chuàng)業(yè)者帶來一些啟發(fā)。

當我在 2016 年底開始啟動 TDengine 這個項目,瞄準時序數(shù)據(jù)庫(Time-Series Database)這個方向時,市場上已經(jīng)有很多時序數(shù)據(jù)庫,包括 InfluxDB、OpenTSDB、TimeScaleDB、KDB+、Prometheus、RRDTool 以及 Graphite 等。在傳統(tǒng)行業(yè)里,有實時數(shù)據(jù)庫,比如 PI、iHistorian 等。那如果我再做一個,到底有什么優(yōu)勢?怎么做出差異化,怎么推廣它?作為一個創(chuàng)業(yè)者,是必須認真思考的。我下面從幾個點來分析。 

1:分布式

從 2016 年底到現(xiàn)在,大部分時序數(shù)據(jù)庫都不是分布式的,換句話說,它們不支持水平擴展。即便是 InfluxDB,也只有企業(yè)版支持集群,開源版是不支持的。而傳統(tǒng)實時數(shù)據(jù)庫更是沒有一個支持水平擴展,最多是雙機熱備。但是隨著物聯(lián)網(wǎng)、車聯(lián)網(wǎng)的高速發(fā)展,IT 基礎設施規(guī)模的增大,數(shù)據(jù)的采集量越來越大,單機是沒有辦法解決問題的,底層數(shù)據(jù)庫必須具有水平擴展能力。 

很多企業(yè)使用的是開源時序數(shù)據(jù)庫的單機版,后續(xù)為了應對海量數(shù)據(jù)的處理,只好自己投入人力物力,在單機版的基礎上,開發(fā)自己的 Proxy,對數(shù)據(jù)進行分片處理。對于數(shù)據(jù)寫入,這種方法簡單而且有效。但是對于查詢,往往牽涉多個節(jié)點,那么 Proxy 就要做各種查詢的聚合,因此開發(fā)的工作量很大。有些公司為了避免麻煩,就選用 OpenTSDB,因為它把分布式版本也開源了。 

從使用的角度來看,OpenTSDB 底層的存儲引擎用的是 HBase,安裝維護極為復雜,存儲壓縮性能不夠,查詢效率也很低,不是一個優(yōu)秀的產(chǎn)品。但它仍然有相當多的用戶,這唯一的原因就是由于它支持分布式,可以水平線性擴展。

因此,在 2016 年底,整個 TDengine Database 的設計從第一天起,就是支持分布式的。為了便于更多使用開源版本的用戶用得更好,在 2020 年 8 月,我們將 TDengine 的分布式版本開源了。分布式版本開源后,TDengine 的用戶量持續(xù)增長,全球安裝實例數(shù)已經(jīng)超過 10 萬,每天新增實例都在 200 以上,這是一個相當可觀的數(shù)字。這證明了我們將 TDengine 分布式版本開源是非常明智的決定。 

2:高性能

時序數(shù)據(jù)及時序數(shù)據(jù)的應用有其典型特點(詳細請看官網(wǎng)博客 ),如果充分利用時序數(shù)據(jù)的特點,我們可以將數(shù)據(jù)寫入和查詢性能大幅提高,數(shù)據(jù)壓縮率也能大幅提高。 我之所以在 2016 年決定開發(fā) TDengine,其中一個核心原因是我認為 InflxuDB 并沒有充分利用時序數(shù)據(jù)特點。如果我充分利用,就能在性能上碾壓它。

在仔細研究之后,我提出了“一個數(shù)據(jù)采集點一張表”的設計,讓一個采集點來的數(shù)據(jù)按照時間順序一塊一塊的存,并且使用列式存儲。這樣就會使得寫入變成簡單的追加操作,而且一次讀的 IO 操作就能把一個數(shù)據(jù)采集點的數(shù)據(jù)點成片讀出。而時序數(shù)據(jù)的查詢分析往往是一個時間段,數(shù)據(jù)命中率一下提高很多,這樣就會使查詢效率極其之高,而且壓縮率也會極其之高。同時我提出“超級表”概念,來解決多個數(shù)據(jù)點數(shù)據(jù)高效聚合的問題。通過標簽將需要聚合的數(shù)據(jù)采集點先過濾出來,大幅減小需要掃描的數(shù)據(jù)集,從而大幅提升聚合速度。 

那么性能重要嗎?毫無疑問非常重要,因為如果用戶不關心性能,那選擇通用數(shù)據(jù)庫來處理時序數(shù)據(jù)就可以了。如果都是時序數(shù)據(jù)庫,用戶當然也會選擇性能或效率更高的產(chǎn)品。因此從研發(fā)的第一天起,我和整個團隊一直在追求極致的性能。 

3:SQL 支持

任何一款新產(chǎn)品,都有入門門檻。降低門檻最好的方法就是不改變用戶習慣。SQL 是全球最流行的查詢語言,學過計算機的人都會用 SQL 寫查詢語句。

時序數(shù)據(jù)庫并不新鮮,已經(jīng)有相當長的歷史,但相當多的時序數(shù)據(jù)庫或?qū)崟r數(shù)據(jù)庫都有自己的查詢語言,比如 InfluxDB、OpenTSDB、Prometheus 等都有自己的查詢語言,這樣大大增加了學習成本,而且也增加了應用的遷移成本。 

采用 SQL 還有一個好處,就是能與眾多的 BI、可視化工具對接,生態(tài)豐富很多。如果采用自己研發(fā)的查詢語言,所有工具都要定制化開發(fā),難度一下大了很多。kdb 就是最典型的例子,完全是自有語法,因此雖然很多性能指標相當不錯,但十幾年過去,還是不溫不火。 

從 TDengine 研發(fā)的第一天起,我就決定采用標準 SQL 做查詢語言,并且采用關系數(shù)據(jù)庫模型,而不是 InfluxDB、OpenTSDB 和 Prometheus 等數(shù)據(jù)庫的 tag-set 模型。其根本原因就是想降低學習成本。目前看來,這個策略是極其正確的。 

濤思數(shù)據(jù)團隊還將在查詢分析上投入相當大的研發(fā)力量,希望 TDengine 具有強大的時序數(shù)據(jù)分析功能。 

4:開源

基礎軟件在開源大勢所趨的情況下,如果不將代碼,特別是核心代碼開源,想要贏得市場是完全不可能的。因此,我們才將 TDengine 完全開源。開源使?jié)紨?shù)據(jù)獲得了高速增長,這是一個完全正確的決定。 

但從產(chǎn)品角度來看,開源是 TDengine 的一大優(yōu)勢嗎?看起來是,但細想一下,其實不是,它只是取得成功的一個必要條件。因為全球市場上開源的的時序數(shù)據(jù)庫產(chǎn)品很多,中國本土開源的時序數(shù)據(jù)庫也不止 TDengine 一家,大家不會由于 TDengine 是開源的就選擇它,而是有其他特點才會選用它。 

如果市場上還沒有開源的時序數(shù)據(jù)庫,那么開源就是 TDengine 最大的亮點。我決定將集群開源,根本的原因是由于 InfluxDB 沒有把集群開源,這給了我們高速增長的機會。只有別人做不到或比不上你的功能或性能,那才是你需要宣傳的特點。功能或性能指標的跟隨者永遠不值得做任何推廣。 

5:其他

TDengine 還有很多其他優(yōu)點,比如 All in One 的特性,TDengine 自身帶有緩存、流計算、數(shù)據(jù)訂閱等功能,因此在很多場景下,用戶不再需要集成 Kafak, Redis, Spark, Zookeeper 等軟件,TDengine 就可以作為一個大數(shù)據(jù)平臺來使用,能大幅降低整個系統(tǒng)的復雜度和運維成本。與大部分研發(fā)同學一樣,我也喜歡羅列各種開發(fā)的功能和亮點,我還可以羅列 TDengine 的很多很多其他優(yōu)點。 

但是作為一個連續(xù)創(chuàng)業(yè)者,很清楚無論是產(chǎn)品還是市場宣傳,必須做減法。研發(fā)出身的創(chuàng)業(yè)者最喜歡的就是不斷加功能,在宣傳上胡子眉毛一把抓,不突出重點,這是創(chuàng)業(yè)者的大忌。用戶能看上你的產(chǎn)品,往往不是你功能全,而是產(chǎn)品的某一個亮點打動了他,特別是早期的用戶,完全是喜歡產(chǎn)品的某項功能才容忍了諸多其他方面的不足。宣傳上也是,眾多的特點無法讓人記住,能記住一個就相當不錯。我們要做的是,把真正的亮點做到極致,而且做最大程度的傳播,讓人人都知道它,喜歡它。 

做減法對于研發(fā)同學是極其困難的,因為不將自己花精力沒日沒夜開發(fā)的功能宣傳出去,太讓自己沒有成就感。但作為創(chuàng)業(yè)者,就是與要習慣思維做斗爭。只有聚焦,你才會真正思考產(chǎn)品在市場的獨特定位,把某個亮點做到極致。只有獨特,才能真正吸引用戶,才能真的受人喜歡。 

因此過去的幾年,我們一直強調(diào) TDengine 是一個物聯(lián)網(wǎng)大數(shù)據(jù)平臺,聚焦在物聯(lián)網(wǎng)細分市場,強調(diào)的是 All in One 的特性,這樣就能與其他時序數(shù)據(jù)庫做出差異化來。 

但 TDengine 開源 2 年多時間,大部分用戶還是把我們當做時序數(shù)據(jù)庫來使用,而且不僅是物聯(lián)網(wǎng)行業(yè)用戶在用,金融、IT 運維、能源、汽車、工業(yè)互聯(lián)網(wǎng)等行業(yè)的用戶也在用。經(jīng)過很多思考之后,我決定將 TDengine 重新定位為時序數(shù)據(jù)庫。

TDengine新網(wǎng)站
TDengine 新網(wǎng)站 www.tdengine.com

6:三大優(yōu)點

那么作為時序數(shù)據(jù)庫,怎么與眾多的時序數(shù)據(jù)庫 PK 或差異化,我個人認為就是:高性能、分布式與 SQL 支持。這三個特點足以讓我說服 InfluxDB, OpenTSDB, TimeScale 的客戶切換到 TDengine 上來。因此在我們最近的網(wǎng)站改版時,大膽地將 TDengine Database 的 Slogan 定為:高性能、分布式、支持 SQL 的時序數(shù)據(jù)庫。 

貪多嚼不爛,用戶沒法記住你那么多特點優(yōu)點,因此我們列出高性能、分布式、支持 SQL 這三個優(yōu)點足夠,其他優(yōu)點由用戶自己去總結(jié)和體會,讓他們有驚喜。只要將三個優(yōu)點做實做得足夠好,TDengine 與其他時序數(shù)據(jù)庫就會有足夠的差異化,就一定能贏得開發(fā)者的信賴,贏得市場。


陶建輝

2022 年 2 月 26 日