ToB企服应用市场:ToB评测及商务社交产业平台

标题: 时序数据库TimescaleDB 功能介绍、单节点、集群安装部署、centos、linux [打印本页]

作者: 莫张周刘王    时间: 2023-8-28 21:52
标题: 时序数据库TimescaleDB 功能介绍、单节点、集群安装部署、centos、linux
简介

Timescale Documentation | Getting started with Timescale
Timescale是一个用于时间序列,事件和分析的PostgreSQL数据平台。 提供了PostgreSQL的可靠性,这是时间序列的超能力 TimescaleDB,。它提供 自动备份和还原、复制的高可用性等功能, 无缝缩放和调整大小等等
性能对比:TimescaleDB vs. InfluxDB:专为时间序列数据构建
优势

 
术语

Hypertables(超级表)
它将时间序列数据根据时间进行分区和组织,从而实现更高效的查询性能
distributed hypertable(分布式超表)
使用空间分区,将数据分布存储在多个数据节点上
Chunks(块)
TimescaleDB自动将Hypertable分割成块,每个块对应于一个特定的时间间隔和一个分区键。这些分区是不重合的,这有助于查询器进行查询
连续聚合
连续聚集表是TimescaleDB的一个重要特性,它可以在后台自动维护预定义的聚合数据。通过使用连续聚集表,可以极大地提高大规模时序数据的查询性能
核心概念

数据模型

PostgreSQL JSON和JSONB:如果您正在使用半结构化数据,例如来自 IoT 传感器的读数 如果收集不同的测量值,您可能需要灵活的架构。在此 在这种情况下,您可以使用PostgreSQL JSON和JSONB数据类型。
 
关系型:固定模式的关系数据结构
 


由于Timescale底层基于PostgreSQL做数据存储,不仅支持普通的PostgreSQL表,还支持超表,超表是Timescale对时间序列数据存储和查询的优化。
普通表
普通的PostgreSQL表
超表(Hypertables)
超表是专门为时间序列数据设计的,一个 超级表始终按时分区,但也可以在 其他列也是如此。超表的另一个特别之处在于 它们被分解为称为块的较小表
分布式超表
分布式超表是跨多个节点的超表,分布式超表用于多节点群集。每个集群都有一个 访问节点和多个数据节点。您可以使用 访问节点,并且数据存储在数据节点上

超级表的每个区块仅保存特定时间范围的数据。当你 插入尚未具有区块的时间范围(时间刻度)的数据 自动创建一个区块来存储它。
 
完整的 SQL

Timescale 支持完整的 SQL,因此无需学习自定义查询语言
数据插入

提供并行复制工具 ,支持多种数据导入:标准sql-insert写入、Prometheus 、Kafka 、.csv文件导入
连续聚合

连续聚集表是TimescaleDB的一个重要特性,它可以在后台自动维护预定义的聚合数据。通过使用连续聚集表,可以极大地提高大规模时序数据的查询性能
 
物化视图
是一个标准的PostgreSQL函数。 它们用于缓存复杂查询的结果,以便您可以重用它 后来。实例化视图不会定期更新,但您可以手动更新 根据需要刷新它们
连续聚合
自动更新的物化视图
实时聚合
即在查询时将聚合数据和原始数据结合起来,以获得新的结果,连续聚合视图默认开启了实时聚合,如果关闭,则在查询的时候,只会查询已经物化的数据。
聚合函数

函数允许您将数据聚合到 时间桶,例如:5 分钟、1 小时或 3 天。TimescaleDB提供了一系列内置的时间序列聚合函数,用于计算给定时间范围内的统计信息,如平均值、最大值、最小值等。
 
例子:在名为 的表中计算每日平均温度。该表具有一个名为的时间列和一列:weather_conditions、 time 、temperature
  1. SELECT time_bucket('1 day', time) AS bucket,
  2.   avg(temperature) AS avg_temp
  3. FROM weather_conditions
  4. GROUP BY bucket
  5. ORDER BY bucket ASC;
复制代码
 
超函数

超函数是一组专门的函数,允许您 分析时间序列数据。您可以使用超函数来分析任何内容 已存储为时间序列数据,包括物联网设备、IT 系统、营销 分析、用户行为、财务指标和加密货币。
超函数允许您快速执行关键的时间序列查询, 分析时间序列数据,并提取有意义的信息。他们的目标是 识别、构建和组合 SQL 需要执行的所有功能 将时间序列分析到单个扩展
 
存储管理

分区

 
时间分区:
当创建和使用超级表时,它会自动按时间对数据进行分区, 并可选择按空间分区
每个超级表都由称为块的子表组成。分配的每个块 时间范围,并且仅包含该范围的数据。默认情况下,每个区块包含 7 天,可以通过chunk_time_interval来进行设置。分布式超表默认使用空间分区。
 
空间分区
建议对分布式超级表使用空间分区,以实现高效的横向扩展性能。对于仅存 在于单个节点上的常规超表,额外的分区可用于特殊用例,不建议大多数用户使用
空间分区使用散列:每个不同的项目都被散列到 N 个存储桶之一。请记住,我们已经在使用(灵活的)时间间隔来管理块大小;空间分区的主要目的是在同一时间间隔内跨多个数据节点(在分布式超级表的情况下)或跨多个磁盘(在单节点部署的情况下)实现并行化
压缩

压缩时序数据可以进一步减少区块大小 超过90%。这样可以节省存储成本,并使查询保持运行 闪电般的速度。
支持按照时间进行自动压缩和手动压缩和解压,在查询期间,未压缩的块将被正常处理,而来自压缩块的数据将在查询时首先被解压缩并转换为标准行格式
 
数据保留

可帮助您通过删除旧数据来节省存储成本。您可以 将数据保留与连续聚合相结合,以降低您的采样数据。
在时间序列应用程序中,随着数据年龄的增长,数据通常变得不那么有用。如果 您不需要您的历史数据,您可以在达到一定数据后将其删除 年龄。Timescale 允许您设置自动数据保留策略以丢弃旧数据。你 还可以通过手动删除块来微调数据保留。
通常,您希望保留历史数据的摘要,但不需要 原始数据。您可以通过将数据保留与连续聚合相结合来对旧数据进行缩减采样。
 
数据分层(云端体验版)

通过将数据分层到低成本对象存储层(S3)来节省存储成本
 
 
备份还原

支持PostgreSQL提供的相关功能
 
复制和副本功能

TimescaleDB支持复制和副本功能,可以在多个节点上创建超级表的副本,实现数据冗余和高可用性
 
高可用

TimescaleDB 的多节点安装可以高度可用 通过为群集中的每个节点设置一个或多个备用节点,或者通过 在区块级别本机复制数据。
 
限制
局限性

虽然Timescale通常提供的功能超出了范围 PostgreSQL提供,使用超表有一些限制, 特别是分布式超表。本节文档 同时使用常规和分布式时的常见限制 超级表。
超表限制

分布式超表限制

常规超表的所有限制也适用于分布式 超级表。此外,以下限制特别适用 到分布式超表:
请注意,这些限制涉及访问节点的使用。一些 当前不支持的功能可能仍适用于单个数据节点, 但这种用法既未经测试,也未得到官方支持。未来版本 的时间尺度可能会消除其中一些限制。
安装单节点

添加 PostgreSQL 第三方存储库

 
  1. yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm
复制代码
创建 TimescaleDB 存储库

[code]tee /etc/yum.repos.d/timescale_timescaledb.repo




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4