TimescaleDB 是一個開源資料庫,旨在使 SQL 對於時間序列資料具有可擴展性。 它由 PostgreSQL 設計而成,並打包為 PostgreSQL 擴展,提供跨時間和空間的自動分區(分區鍵),以及完整的 SQL 支援。
如果您不想安裝或管理 TimescaleDB 實例,請嘗試 30 天免費試用 Timescale,這是我們完全託管的雲端產品。時間尺度是即用即付的。我們不會對您不使用的儲存、備份、快照、入口或出口收取費用。
要確定哪個選項最適合您,請參閱Timescale 產品,了解有關我們的Apache-2 版本、TimescaleDB 社區(自託管)和Timescale Cloud(託管)的更多信息,包括:功能比較、常見問題解答、文檔和支持。
下面是TimescaleDB的介紹。欲了解更多信息,請查看以下其他資源:
開發者文檔
鬆弛通道
時間刻度社群論壇
時間表發行說明和未來計劃
為了參考和清晰起見,此儲存庫中的所有程式碼檔案在其標頭中都引用了許可(Apache-2-開源許可證或 Timescale License (TSL))。可以透過將-DAPACHE_ONLY=1
傳遞給bootstrap
來建構 Apache-2 許可的二進位。
歡迎貢獻者。
(若要從原始程式碼建置 TimescaleDB,請參閱從原始程式碼建置中的說明。)
TimescaleDB 透過跨時間和空間的自動分區(分區鍵)來擴展 PostgreSQL 的時間序列數據,但保留了標準的 PostgreSQL 介面。
換句話說,TimescaleDB 公開了看起來像常規表的內容,但實際上只是包含實際資料的許多單獨資料表的抽象(或虛擬視圖)。這個單表視圖,我們稱之為超表,由許多區塊組成,這些區塊是透過在一維或二維上對超表的資料進行分區而創建的:按時間間隔和(可選)“分區鍵”,例如裝置 ID、位置、使用者 ID 等。
事實上,所有使用者與 TimescaleDB 的互動都是透過超表進行的。建立表和索引、更改表、插入資料、選擇資料等都可以(並且應該)在超表上執行。
從使用和管理的角度來看,TimescaleDB 看起來和感覺就像 PostgreSQL,並且可以像 PostgreSQL 一樣管理和查詢。
PostgreSQL 的開箱即用設定對於現代伺服器和 TimescaleDB 來說通常過於保守。您應該確保透過使用 timescaledb-tune 或手動調整您的postgresql.conf
設定。
-- 不要忘記建立 timescaledb 擴充CREATE EXTENSION timescaledb;-- 我們先建立一個常規 SQL 表CREATE TABLE 條件 ( time TIMESTAMPTZ NOT NULL, 位置文字不為空, 溫度雙精度空, 濕度 DOUBLE PRECISION NULL);-- 然後將其轉換為按時間分區的超表SELECT create_hypertable('conditions', 'time');
快速入門:建立超級表
參考範例
將資料插入超表是透過普通 SQL 命令完成的:
INSERT INTO 條件(時間、位置、溫度、濕度) VALUES (NOW(), 'office', 70.0, 50.0);SELECT * FROM 條件 ORDER BY time DESC LIMIT 100;SELECT time_bucket('15 分鐘', time) ASifth. , 位置,COUNT(*),MAX(溫度) AS max_temp,MAX(濕度) AS max_hum FROM 條件 WHERE 時間 > NOW() - 間隔“3 小時” GROUP BY 15_min,位置 ORDER BY 15_min DESC,max_temp DESC;
此外,TimescaleDB 還包含普通 PostgreSQL 中不存在的時間序列分析的附加函數。 (例如上面的time_bucket
函數。)
快速入門:基本操作
參考範例
時間刻度資料庫API
Timescale 是雲端中完全託管的 TimescaleDB,可透過免費試用取得。在預先安裝了 TimescaleDB 的雲端中建立 PostgreSQL 資料庫,以便您可以使用 TimescaleDB 為您的應用程式提供支持,而無需管理開銷。
TimescaleDB 還可以針對多種平台進行預先打包,例如 Linux、Windows、MacOS、Docker 和 Kubernetes。有關更多信息,請參閱安裝 TimescaleDB。
若要從原始程式碼構建,請參閱從原始程式碼建置。
TimescaleDB 基本功能
TimescaleDB 進階功能
測試TimescaleDB
timescaledb-tune:協助根據系統資源設定 PostgreSQL 設定設定。
timescaledb-parallel-copy:透過在多個工作進程中使用 PostgreSQL 的COPY
並行化初始批次載入。
為什麼要使用TimescaleDB?
從 PostgreSQL 遷移
寫入數據
查詢和資料分析
教程和範例數據
鬆弛通道
Github 問題
時間尺度支援:查看支援選項(社群和訂閱)
Timescale 發行說明:查看有關當前和過去版本的詳細信息,並訂閱以獲取有關新版本、修復和早期訪問/測試計劃的通知。
貢獻者說明
程式碼風格指南