常見問題
本文介紹TSDB的常見問題。
如何選擇 TSDB 的實例規格?
您可根據以下兩個指標選擇 TSDB 的實例規格:
時間線數:對應設備上的采集點數。一個采集點可以是某個設備上需要上傳數據的一個傳感器。計算公式:設備規模(總設備數) × 單個設備的采集點數或傳感器數。
寫入效率:全局每秒需要寫入時序數據庫的平均數據點數(數據記錄數)。計算公式:時間線數 × 單條時間線每秒需要寫入的平均數據點數。
在多值模型中,數據點數 = 數據點的個數 × 每個數據點中的字段個數
TSDB 支持公網訪問嗎?
TSDB 支持公網訪問,但您需要先使用 VPC 網絡創建實例,然后在 TSDB 控制臺開啟公網連接,具體操作方式請參見網絡連接文檔的公網連接一節。
TSDB 如何進行數據可視化展示?
TSDB 目前支持通過接入 Grafana 對數據進行可視化展示。詳情請見可視化-接入Grafana。
實例訪問超時,顯示錯誤碼“Connection timed out”,如何解決?
由于 TSDB 實例默認是專有網絡 VPC 的模式,這種模式下如果訪問機器和 TSDB 實例不在同一個 VPC 環境內,會出現網絡不通,連接超時的錯誤。解決辦法如下:
如果寫入機器和實例在同一個區域 Region 內,可將寫入測試機器加入到 TSDB 所在實例的 VPC 網關下即可。具體操作方式請參見單ECS遷移示例。
請求返回:“Exceed Max TS counter xxxx”,如何解決?
返回這個結果表示 TSDB 實例的時間線(timelines or time series)總數量已經超過當前定義的產品規格
(請參見產品規格和定價),需進行擴容。
請求返回:“a null credential specified in the authorization field”, 如何解決?
返回這個結果表示TSDB實例開啟了用戶管理功能,但業務發起的請求中沒有帶上用戶認證信息。
建議在用戶管理功能開啟后,需要調整業務邏輯,保證向TSDB發起的寫入/查詢請求必須帶上對應的用戶認證信息。
TSQL 查詢返回錯誤 “INTERNAL: Missing start time.”
用戶在 TSDB 控制臺中的“TSQL數據開發”界面執行 SQL 查詢時,有可能會遇到執行報錯,錯誤信息如下:
Error in calling SQL restful api with error { "errorMessage" : "INTERNAL_ERROR ERROR: io.grpc.StatusRuntimeException: INTERNAL: Missing start time.\nTSDB query execution failure \n …… }
這種錯誤的原因是因為用戶執行的 SQL 語句中,未在 WHERE 語句中指定查詢起始時間,比如:
select * from metric_name
因為不帶時間范圍的 SQL 查詢會執行全表掃描,當數據量較大時可能會影響實例性能,因此我們在新版 TSDB (版本號 >= 2.5.14) 之中添加了這個查詢語句限制,要求 SQL 查詢像 HTTP 查詢接口一樣,也必須指定查詢的起始時間。
因此用戶需要在 SQL 語句中指定查詢起始時間,才可以正確執行查詢,比如:
select * from metric_name where `timestamp` >= '2020-01-01 00:00:00 +0800'