本文介紹TSDB的常見問題。
如何選擇 TSDB 的執行個體規格?
您可根據以下兩個指標選擇 TSDB 的執行個體規格:
時間軸數:對應裝置上的採集點數。一個採集點可以是某個裝置上需要上傳資料的一個感應器。計算公式:裝置規模(總裝置數) × 單個裝置的採集點數或感應器數。
寫入效率:全域每秒需要寫入時序資料庫的平均資料點數(資料記錄數)。計算公式:時間軸數 × 單條時間軸每秒需要寫入的平均資料點數。
在多值模型中,資料點數 = 資料點的個數 × 每個資料點中的欄位個數
TSDB 支援公網訪問嗎?
TSDB 支援公網訪問,但您需要先使用 VPC 網路建立執行個體,然後在 TSDB 控制台開啟公網串連,具體操作方式請參見網路連接文檔的公網串連一節。
TSDB 如何進行資料視覺效果展示?
TSDB 目前支援通過接入 Grafana 對資料進行可視化展示。詳情請見可視化-接入Grafana。
執行個體訪問逾時,顯示錯誤碼“Connection timed out”,如何解決?
由於 TSDB 執行個體預設是Virtual Private Cloud 的模式,這種模式下如果訪問機器和 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'