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) AS Fifth_min , 位置,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 发行说明:查看有关当前和过去版本的详细信息,并订阅以获取有关新版本、修复和早期访问/测试计划的通知。
贡献者说明
代码风格指南