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

從 InfluxDB 到 TDengine,我們?yōu)槭裁磿龀鲞@個選擇

蔣京輝

2022-03-03 /

小 T 導讀:為了實現業(yè)務更好地發(fā)展,我們有時必須做出數據庫替換的決定,這時要特別慎重。想要真正了解一款數據庫產品,調研和測試必不可少,需要耗費大量時間和精力。在本篇文章中,作者描述了自己與 TDengine Database 從初識到了解再到深交的經歷,將自己從調研階段到實際應用之后的問題、效果等做成了經驗匯總,分享出來以作參考。

一、與 TDengine 的開始

實際上,我從事 Java 開發(fā)的時間只有三年左右,在這個階段中,因為我所涉及的業(yè)務場景和行業(yè)都用不到時序數據庫,所以我完全沒有接觸和了解過這種類型的產品,僅僅是聽說過而已。

2021 年 5 月我換了一個行業(yè),從公司的第一個項目中認識了時序型數據庫 InfluxDB ,也算是對這種類型的數據庫有了初步的了解。與 TDengine Database 的結識還要從下一個項目說起,這個項目是我全程參與的,項目類型和之前的類似,但技術選型發(fā)生了一些變化——要做時序數據庫的替換。

最初給我的任務是去調研了解一下 TDengine 是否能貼合我們的業(yè)務場景和使用需求,當時我還是比較忐忑的,因為最終調研的結果會直接影響到是否選用 TDengine 、選用結果的好壞、后續(xù)代碼編程是否會遇到一些不可預測的問題。為了更加了解 TDengine,我開始與濤思數據的小伙伴們打起了交道,與 TDengine 的故事也就此拉開序幕。

、對 TDengine 進行調研

就個人習慣而言,我首先會通過閱讀官網上的官方文檔來對一個全新的產品進行學習和了解,并嘗試使用。

但我出師不利,剛走到 TDengine 的安裝和啟動時,就遇到了一個麻煩事(下圖所示),這個問題我記在了使用筆記上,所以印象比較深刻。

"systemctl reset-failed toads.service" TDengine Database
問題記錄 TDengine Database

在此給大家還原下事情的經過,本次操作是在 Linux 環(huán)境下,按照文檔的提示,我先下載好 TDengine 的安裝包進行解壓安裝,安裝后點擊啟動,輸入 taos 命令,當時我進行了一下重新啟動(現在也想不清重啟的原因了),之后就一直會出現“啟動頻繁無法啟動”的提示,我運用了很多辦法都沒能解決,后面通過官網上的微信二維碼聯系上了 TDengine 官方小助手,把這些問題匯報給了技術人員,但不知道是不是我的電腦虛擬機配置機制有問題,反正依然沒有找到合適的解決方法,最后我還是選擇直接重置了虛擬機,重新安裝 TDengine,問題也就迎刃而解了。

做出重置的決定我也是下了很大決心的,由此也可以看出我對 TDengine 進行嘗試使用的堅定想法。

在 TDengine 的使用過程中,我遇到了第二個問題,起因是我想通過可視化工具對數據庫進行相應的操作,官網文檔提供的是利用 IDEA 進行可視化操作,我自己本身也是通過 IDEA 工具進行編程的,按理說應該很順暢,但我使用 IDEA 有報錯信息,無法成功進行可視化操作。其實無法進行可視化操作倒也不會影響我對數據庫的操作,但如果可視化實現了就可以更高效地操作數據庫了。

為了解決這個問題,我先是進入 TDengine 的 GitHub 開源地址(https://github.com/taosdata/TDengine)尋找了下答案,尋找無果后通過郵件方式將這個問題遞交給 TDengine 的研發(fā)人員進行相關咨詢,所幸經過一系列溝通,這個問題得到了比較好的解決。

郵件截圖 TDengine Database

通過官方人員發(fā)給我的可視化工具(現在我們開發(fā)也在經常使用這個工具),可視化問題得到了解決。在我將 TDengine 升級為 2.1.0.0 后,就可以直接通過 IDEA 進行可視化操作了,由此可見,官方確實是在用心聽取用戶聲音,進行產品迭代。

值得一提的是,TDengine 的 SQL 語法還是很贊的,部分的 SQL 語法跟我經常使用的 MySQL 類似,學習成本比較低,很好上手,這部分都是后面根據實際業(yè)務場景編寫的,遇到問題的時候我們就會及時去官網看看語法,或者去咨詢相應的技術人員,不得不說,TDengine 的社區(qū)支持力度還是值得稱贊的。在這塊的學習上,就是超級表和普通表的概念需要我仔細研讀下,目前也已經很好地運用在我們的工業(yè)業(yè)務場景上了。

另外還有一個要解決的問題就是我們自身的 Java 如何和 TDengine 相結合去使用,最終我們是要通過 Java 編程和 TDengine 進行交互的,TDengine 的技術人員很完美的解決了這個問題—— 以 Spring Boot + MyBatis 結合 TDengine 和 JDBC,成功實現了 Demo ,這個在 TDengine 官網上有文檔,大家有需要可以直接參考。

最后就是性能方面的考量,從 TDengine 的官網上我們獲得了一個可以創(chuàng)建超多數據的 SQL ,首先基于此體驗了一下查詢速度,速度確實是很快,其次我們發(fā)現存儲如此龐大的數據量,占用的磁盤空間卻并不是非常大,節(jié)省了更多存儲空間。關于性能的體驗,后面我會輔以實際案例再詳細說明一下。

、最終的選擇

在進行這么多了解和嘗試后,我們也跟 InfluxDB 做了一個對比,綜合考量下來,就決定選擇 TDengine 了。

首先,超級表普通表的概念非常契合本次項目的業(yè)務場景。此前我們的項目是一個站點一個單元對應多個測點,現在是多站點多單元下面對應多個測點,利用超級表普通表就可以做到超級表對應某個站點某個單元,下面跟著 n 個普通表,普通表就是此站點此單元下對應的測點,業(yè)務在創(chuàng)建表時會更加便利。

其次,它可以很好地跟 Java 進行結合,通過 JDBC 連接,跟之前操作其他類型的數據庫類似,不需要學習太多就可以上手,讓沒有很深入了解過 TDengine 的人上手也比較快,學習成本顯著降低。

第三,搭建集群的成本更低廉。眾所周知,InfluxDB 集群功能是閉源的,如果后續(xù)業(yè)務發(fā)展需要用到集群時會帶來很大的不便,然而 TDengine 的集群功能是開源的,可以顯著降低集群的使用成本,從而減少項目上的使用成本。

第四,從更大的角度說,我們應該響應政策號召多支持國產開源,而且從技術支持的角度來說,選用國外的數據庫會讓我們非常被動,但是國內的開源數據庫是由國人開發(fā)和維護的,遇到問題時就可以直接通過微信/郵箱等工具進行交流,溝通上更加有效方便。

第五,性能表現突出,從之前的項目和現在的項目對比來看,部分使用能感受到明顯差異,此處表現放在后面的章節(jié)上詳說,整體上性能表現上是良好的。

、項目使用上的感受



1. 我們有一個歷史數據的查看功能,會直接在頁面展示一個歷史曲線。之前使用 InfluxDB 的時候,如果你的時間段和時間間隔選擇很龐大或者間隔非常細膩的時候,查詢數據會變得非常緩慢,更直接的表現就是會直接造成頁面的卡死,需要重新打開相應的瀏覽器。但是用了 TDengine 之后,目前的使用過程中暫時沒有發(fā)生過這樣的現象,并且查詢所需要花費的時間非常非常的短,很好地保證了接口的響應速度。

接口響應速度 TDengine Database

2. TDengine 能夠與 MyBatis 很好地結合,開發(fā)結合起來非常方便,我們也是寫了非常多的工具類的方法實現 TDengine 創(chuàng)建表、獲取數據等的便利性,超級表和普通表讓我們在創(chuàng)建表時,設計上變得更加簡單,也能讓測點之間更好地做出區(qū)分。

3. 我們的業(yè)務場景會涉及到對測點數據進行每秒數據新增和插入的觀察,只要通訊在,每秒都會有很多條數據的新增,以目前的表現看 TDengine 性能是 OK 的,后續(xù)還要看一下在實際的工作站運行是什么表現。

、不負彼此的努力

目前我們的項目已經接近尾聲,后面本項目會在實際工地進行部署使用,實際的效果需要實踐去證明。未來可能還有許多事情要做,比如是否需要搭建集群等。總的來說,因為選擇了 TDengine Database,我們的項目很平穩(wěn)地度過了測試階段,在 TDengine 的使用上也沒有遇到特別大的瓶頸,我相信在后面的合作中,我們對 TDengine 的了解也會更加深入。

整個過程是酸甜苦辣并存的,在這里非常感謝“羅格濤思”和“小 T ”的技術幫助和耐心解答,正是因為有他們的幫助,才讓我在此次調研過程中遇到問題能夠不慌不忙,最終這些問題也實現了較好地解決,衷心的感謝!

我們與 TDengine 的故事還在繼續(xù),敬請期待。