TDengine 文檔
TDengine 是一個高效的存儲、查詢、分析時序大數(shù)據(jù)的平臺,專為物聯(lián)網(wǎng)、車聯(lián)網(wǎng)、工業(yè)互聯(lián)網(wǎng)、運維監(jiān)測等優(yōu)化而設(shè)計。您可以像使用關(guān)系型數(shù)據(jù)庫 MySQL 一樣來使用它,但建議您在使用前仔細(xì)閱讀一遍下面的文檔,特別是 數(shù)據(jù)模型 與 數(shù)據(jù)建模。除本文檔之外,歡迎 下載產(chǎn)品白皮書。
TDengine 介紹
立即開始
- 快捷安裝:可通過源碼、安裝包或 Docker 安裝,三秒鐘搞定
- 輕松啟動:使用 systemctl 啟停 TDengine
- 命令行程序 TAOS:訪問 TDengine 的簡便方式
- 極速體驗:運行示例程序,快速體驗高效的數(shù)據(jù)插入、查詢
- 支持平臺列表:TDengine 服務(wù)器和客戶端支持的平臺列表
- Kubernetes 部署:TDengine 在 Kubernetes 環(huán)境進(jìn)行部署的詳細(xì)說明
整體架構(gòu)
- 數(shù)據(jù)模型:關(guān)系型數(shù)據(jù)庫模型,但要求每個采集點單獨建表
- 集群與基本邏輯單元:吸取 NoSQL 優(yōu)點,支持水平擴(kuò)展,支持高可靠
- 存儲模型與數(shù)據(jù)分區(qū)、分片:標(biāo)簽數(shù)據(jù)與時序數(shù)據(jù)完全分離,按 VNode 和時間兩個維度對數(shù)據(jù)切分
- 數(shù)據(jù)寫入與復(fù)制流程:先寫入 WAL、之后寫入緩存,再給應(yīng)用確認(rèn),支持多副本
- 緩存與持久化:最新數(shù)據(jù)緩存在內(nèi)存中,但落盤時采用列式存儲、超高壓縮比
- 數(shù)據(jù)查詢:支持各種函數(shù)、時間軸聚合、插值、多表聚合
數(shù)據(jù)建模
- 創(chuàng)建庫:為具有相似數(shù)據(jù)特征的數(shù)據(jù)采集點創(chuàng)建一個庫
- 創(chuàng)建超級表:為同一類型的數(shù)據(jù)采集點創(chuàng)建一個超級表
- 創(chuàng)建表:使用超級表做模板,為每一個具體的數(shù)據(jù)采集點單獨建表
TAOS SQL
- 支持的數(shù)據(jù)類型:支持時間戳、整型、浮點型、布爾型、字符型等多種數(shù)據(jù)類型
- 數(shù)據(jù)庫管理:添加、刪除、查看數(shù)據(jù)庫
- 表管理:添加、刪除、查看、修改表
- 超級表管理:添加、刪除、查看、修改超級表
- 標(biāo)簽管理:增加、刪除、修改標(biāo)簽
- 數(shù)據(jù)寫入:支持單表單條、多條、多表多條寫入,支持歷史數(shù)據(jù)寫入
- 數(shù)據(jù)查詢:支持時間段、值過濾、排序、嵌套查詢、Union、Join、查詢結(jié)果手動分頁等
- SQL 函數(shù):支持各種聚合函數(shù)、選擇函數(shù)、計算函數(shù),如 AVG, MIN, DIFF 等
- 窗口切分聚合:將表中數(shù)據(jù)按照時間段等方式進(jìn)行切割后聚合,降維處理
- 邊界限制:庫、表、SQL 等邊界限制條件
- UDF:用戶定義函數(shù)的創(chuàng)建和管理方法
- 錯誤碼:TDengine 2.0 錯誤碼以及對應(yīng)的十進(jìn)制碼
高效寫入數(shù)據(jù)
- SQL 寫入:使用 SQL INSERT 命令向一張或多張表寫入單條或多條記錄
- Schemaless 寫入:免于預(yù)先建表,將數(shù)據(jù)直接寫入時自動維護(hù)元數(shù)據(jù)結(jié)構(gòu)
- Prometheus 寫入:配置 Prometheus, 不用任何代碼,將數(shù)據(jù)直接寫入
- Telegraf 寫入:配置 Telegraf, 不用任何代碼,將采集數(shù)據(jù)直接寫入
- collectd 直接寫入:配置 collectd,不用任何代碼,將采集數(shù)據(jù)直接寫入
- StatsD 直接寫入:配置 StatsD,不用任何代碼,將采集數(shù)據(jù)直接寫入
- EMQX Broker:配置 EMQX,不用任何代碼,就可將 MQTT 數(shù)據(jù)直接寫入
- HiveMQ Broker:配置 HiveMQ,不用任何代碼,就可將 MQTT 數(shù)據(jù)直接寫入
高效查詢數(shù)據(jù)
- 主要查詢功能:支持各種標(biāo)準(zhǔn)函數(shù),設(shè)置過濾條件,時間段查詢
- 多表聚合查詢:使用超級表,設(shè)置標(biāo)簽過濾條件,進(jìn)行高效聚合查詢
- 降采樣查詢值:按時間段分段聚合,支持插值
高級功能
- 連續(xù)查詢(Continuous Query):基于滑動窗口,定時自動的對數(shù)據(jù)流進(jìn)行查詢計算
- 數(shù)據(jù)訂閱(Publisher/Subscriber):類似典型的消息隊列,應(yīng)用可訂閱接收到的最新數(shù)據(jù)
- 緩存(Cache):每個設(shè)備最新的數(shù)據(jù)都會緩存在內(nèi)存中,可快速獲取
連接器
- C/C++ Connector:通過 libtaos 客戶端的庫,連接 TDengine 服務(wù)器的主要方法
- Java Connector(JDBC):通過標(biāo)準(zhǔn)的 JDBC API,給 Java 應(yīng)用提供到 TDengine 的連接
- Python Connector:給 Python 應(yīng)用提供一個連接 TDengine 服務(wù)器的驅(qū)動
- RESTful Connector:提供一最簡單的連接 TDengine 服務(wù)器的方式
- Go Connector:給 Go 應(yīng)用提供一個連接 TDengine 服務(wù)器的驅(qū)動
- Node.js Connector:給 Node.js 應(yīng)用提供一個連接 TDengine 服務(wù)器的驅(qū)動
- C# Connector:給 C# 應(yīng)用提供一個連接 TDengine 服務(wù)器的驅(qū)動
- Windows 客戶端:自行編譯 Windows 客戶端,Windows 環(huán)境的各種連接器都需要它
- Rust Connector: Rust 語言下通過 libtaos 客戶端或 RESTful 接口,連接 TDengine 服務(wù)器。
- PHP Connector: 給 PHP 應(yīng)用提供一個連接 TDengine 服務(wù)器的驅(qū)動,或 RESTful 接口,連接 TDengine 服務(wù)器。
TDengine 組件與工具
- taosAdapter: TDengine 集群和應(yīng)用之間的 RESTful 接口適配服務(wù)。
- TDinsight: 監(jiān)控 TDengine 集群的 Grafana 面板集合。
- taosTools: taosTools 是用于 TDengine 的輔助工具軟件集合。。
- taosdump: TDengine 數(shù)據(jù)備份工具。使用 taosdump 請安裝 taosTools。
- taosBenchmark: TDengine 壓力測試工具。
與其他工具的連接
- Grafana:獲取并可視化保存在 TDengine 的數(shù)據(jù)
- IDEA Database:通過 IDEA 數(shù)據(jù)庫管理工具可視化使用 TDengine
- TDengineGUI:基于 Electron 開發(fā)的跨平臺 TDengine 圖形化管理工具
- DataX:支持 TDengine 和其他數(shù)據(jù)庫之間進(jìn)行數(shù)據(jù)遷移的工具
- Awesome TDengine:與 TDengine 有關(guān)的精彩項目精選清單
TDengine 集群的安裝、管理
- 準(zhǔn)備工作:部署環(huán)境前的幾點注意事項
- 創(chuàng)建第一個節(jié)點:與快捷安裝完全一樣,非常簡單
- 創(chuàng)建后續(xù)節(jié)點:配置新節(jié)點的 taos.cfg, 在現(xiàn)有集群添加新的節(jié)點
- 節(jié)點管理:增加、刪除、查看集群的節(jié)點
- VNode 的高可用性:通過多副本的機(jī)制來提供 VNode 的高可用性
- MNode 的管理:系統(tǒng)自動創(chuàng)建、無需任何人工干預(yù)
- 負(fù)載均衡:一旦節(jié)點個數(shù)或負(fù)載有變化,自動進(jìn)行
- 節(jié)點離線處理:節(jié)點離線超過一定時長,將從集群中剔除
- Arbitrator:對于偶數(shù)個副本的情形,使用它可以防止腦裂(Split-brain)問題
TDengine 的運營和維護(hù)
- 容量規(guī)劃:根據(jù)場景,估算硬件資源
- 容錯和災(zāi)備:設(shè)置正確的 WAL 和數(shù)據(jù)副本數(shù)
- 系統(tǒng)配置:端口,緩存大小,文件塊大小和其他系統(tǒng)配置
- 用戶管理:添加、刪除 TDengine 用戶,修改用戶密碼
- 數(shù)據(jù)導(dǎo)入:可按腳本文件導(dǎo)入,也可按數(shù)據(jù)文件導(dǎo)入
- 數(shù)據(jù)導(dǎo)出:從 Shell 按表導(dǎo)出,也可用 taosdump 工具做各種導(dǎo)出
- 系統(tǒng)連接、任務(wù)查詢管理:檢查系統(tǒng)現(xiàn)有的連接、查詢、流式計算,日志和事件等
- 系統(tǒng)監(jiān)控:系統(tǒng)監(jiān)控,使用 TDinsight 進(jìn)行集群監(jiān)控等
- 性能優(yōu)化:對長期運行的系統(tǒng)進(jìn)行維護(hù)優(yōu)化,保障性能表現(xiàn)
- 文件目錄結(jié)構(gòu):TDengine 數(shù)據(jù)文件、配置文件等所在目錄
- 參數(shù)限制與保留關(guān)鍵字:TDengine 的參數(shù)限制與保留關(guān)鍵字列表
TDengine 的技術(shù)設(shè)計
- 系統(tǒng)模塊:taosd 的功能和模塊劃分
- 數(shù)據(jù)復(fù)制:支持實時同步、異步復(fù)制,保證系統(tǒng)的高可用性
- 技術(shù)博客:更多的技術(shù)分析和架構(gòu)設(shè)計文章
應(yīng)用 TDengine 快速搭建 IT 運維系統(tǒng)
- DevOps:使用 TDengine + Telegraf + Grafana 快速搭建 IT 運維系統(tǒng)
- DevOps:使用 TDengine + collectd/StatsD + Grafana 快速搭建 IT 運維系統(tǒng)
- 最佳實踐:OpenTSDB 應(yīng)用遷移到 TDengine 的最佳實踐
TDengine 與其他數(shù)據(jù)庫的對比測試
- 用 InfluxDB 開源的性能測試工具對比 InfluxDB 和 TDengine
- TDengine 與 OpenTSDB 對比測試
- TDengine 與 Cassandra 對比測試
- TDengine 與 InfluxDB 對比測試
- TDengine 與 InfluxDB、OpenTSDB、Cassandra、MySQL、ClickHouse 等數(shù)據(jù)庫的對比測試報告
物聯(lián)網(wǎng)大數(shù)據(jù)
- 物聯(lián)網(wǎng)、工業(yè)互聯(lián)網(wǎng)大數(shù)據(jù)的特點
- 物聯(lián)網(wǎng)大數(shù)據(jù)平臺應(yīng)具備的功能和特點
- 通用大數(shù)據(jù)架構(gòu)為什么不適合處理物聯(lián)網(wǎng)數(shù)據(jù)?
- 物聯(lián)網(wǎng)、車聯(lián)網(wǎng)、工業(yè)互聯(lián)網(wǎng)大數(shù)據(jù)平臺,為什么推薦使用 TDengine?
培訓(xùn)和 FAQ
- FAQ:常見問題與答案
- 技術(shù)公開課:開源、高效的物聯(lián)網(wǎng)大數(shù)據(jù)平臺,TDengine 內(nèi)核技術(shù)剖析
- TDengine 視頻教程 - 快速上手
- TDengine 視頻教程 - 數(shù)據(jù)建模
- TDengine 視頻教程 - 集群搭建
- TDengine 視頻教程 - Go Connector
- TDengine 視頻教程 - JDBC Connector
- TDengine 視頻教程 - Node.js Connector
- TDengine 視頻教程 - Python Connector
- TDengine 視頻教程 - RESTful Connector
- TDengine 視頻教程 - “零”代碼運維監(jiān)控
- 應(yīng)用案例:一些使用實例來解釋如何使用 TDengine

