8000 GitHub - yuanxiaoming8899/timescaledb-cn: 一个开源时间序列 SQL 数据库,针对快速摄取和复杂查询进行了优化。打包为 PostgreSQL 扩展。
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

一个开源时间序列 SQL 数据库,针对快速摄取和复杂查询进行了优化。打包为 PostgreSQL 扩展。

License

Notifications You must be signed in to change notification settings

yuanxiaoming8899/timescaledb-cn

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Linux/macOS Linux i386 视窗 覆盖性 代码覆盖率 开放SSF
构建状态 Linux/macOS 构建状态 Linux i386 Windows 构建状态 Coverity 扫描构建状态 代码覆盖率 OpenSSF 最佳实践

时标数据库

TimescaleDB 是一个开源数据库,旨在使 SQL 对于时间序列数据具有可扩展性。它由 PostgreSQL 设计而成,并打包为 PostgreSQL 扩展,提供跨时间和空间的自动分区(分区键),以及完整的 SQL 支持。

如果您不想安装或管理TimescaleDB实例,请尝试 Timescale,这是我们完全托管的云产品(按需付费,开始免费试用)。

要确定哪个选项最适合您,请参阅Timescale 产品 ,了解有关我们的 Apache-2 版本、TimescaleDB 社区(自托管)和 Timescale Cloud(托管)的更多信息,包括:功能比较、常见问题解答、文档和支持。

下面是TimescaleDB的介绍。欲了解更多信息,请查看以下其他资源:

为了参考和清晰起见,此存储库中的所有代码文件在其标头中都引用了许可(Apache-2-开源许可证或Timescale License (TSL) )。-DAPACHE_ONLY=1Apache-2 许可的二进制文件可以通过传递到来构建bootstrap

欢迎贡献者。

(要从源代码构建 TimescaleDB,请参阅从源代码构建中的说明。)

使用TimescaleDB

TimescaleDB 通过跨时间和空间的自动分区(分区键)来扩展 PostgreSQL 的时间序列数据,但保留了标准的 PostgreSQL 接口。

换句话说,TimescaleDB 公开了看起来像常规表的内容,但实际上只是包含实际数据的许多单独表的抽象(或虚拟视图)。这个单表视图,我们称为 超表,由许多块组成,这些块是通过在一维或二维上对超表的数据进行分区而创建的:按时间间隔和(可选)“分区键”,例如设备id、位置、用户id等(架构讨论

事实上,所有用户与 TimescaleDB 的交互都是通过超表进行的。创建表和索引、更改表、插入数据、选择数据等都可以(并且应该)在超表上执行。

从使用和管理的角度来看,TimescaleDB 看起来和感觉就像 PostgreSQL,并且可以像 PostgreSQL 一样进行管理和查询。

在你开始之前

PostgreSQL 的开箱即用设置对于现代服务器和 TimescaleDB 来说通常过于保守。您应该确保postgresql.conf 通过使用timescaledb-tune 或手动调整您的设置。

创建超级表

-- Do not forget to create timescaledb extension
CREATE EXTENSION timescaledb;

-- We start by creating a regular SQL table CREATE TABLE conditions ( time TIMESTAMPTZ NOT NULL, location TEXT NOT NULL, temperature DOUBLE PRECISION NULL, humidity DOUBLE PRECISION NULL );

-- Then we convert it into a hypertable that is partitioned by time SELECT create_hypertable('conditions', 'time');

  <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon">
<path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path>

插入和查询数据

将数据插入超表是通过普通 SQL 命令完成的:

INSERT INTO conditions(time, location, temperature, humidity)
  VALUES (NOW(), 'office', 70.0, 50.0);

SELECT * FROM conditions ORDER BY time DESC LIMIT 100;

SELECT time_bucket('15 minutes', time) AS fifteen_min, location, COUNT(*), MAX(temperature) AS max_temp, MAX(humidity) AS max_hum FROM conditions WHERE time > NOW() - interval '3 hours' GROUP BY fifteen_min, location ORDER BY fifteen_min DESC, max_temp DESC;

  <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon">
<path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path>

此外,TimescaleDB 还包含普通 PostgreSQL 中不存在的用于时间序列分析的附加函数。(例如time_bucket上面的函数。)

安装

TimescaleDB 已针对多个平台(Linux、Docker、MacOS、Windows)进行了预打包。更多信息可以在我们的文档中找到。

要从源代码构建,请参阅 此处的说明。

Timescale是云中完全托管的 TimescaleDB,可通过免费试用获得。在预安装了 TimescaleDB 的云中创建 PostgreSQL 数据库,以便您可以使用 TimescaleDB 为您的应用程序提供支持,而无需管理开销。

资源

架构文档

有用的工具

附加文档

社区与帮助

发布和更新

贡献

About

一个开源时间序列 SQL 数据库,针对快速摄取和复杂查询进行了优化。打包为 PostgreSQL 扩展。

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 67.8%
  • PLpgSQL 25.0%
  • CMake 2.2%
  • Shell 1.7%
  • Ruby 1.6%
  • Python 1.2%
  • Other 0.5%
0