合 TimescaleDB使用简介
Tags: 整理自官网TimescaleDB
简介
Timescale 是一个基于云的 PostgreSQL 平台,专为资源密集型工作负载而设计。我们帮助您构建更快的系统,扩展更远,并在预算内运行。Timescale 提供以下 PostgreSQL 数据库优化
- 时间序列数据: 一个针对您的时间序列和分析工作负载优化的 TimescaleDB 实例。获取自动动态数据分区、混合行列存储、高级压缩技术、增量最新物化视图和专用分析函数,以及云端独有功能,例如透明分层和低成本对象存储。
- 所有其他工作负载: 一个 动态 PostgreSQL 实例,您可以在其中选择一个计算范围,只为基础和扩展的 CPU 数量付费。
所有数据库都扩展了闪电般的快速向量搜索,并包含您在生产环境中所期望的所有云工具,包括自动备份、高可用性、只读副本、数据分叉、连接池、按使用量计费的存储以及更多功能。
Timescale 中的每个数据库实例称为服务。
https://docs.timescaledb.cn/self-hosted/latest/upgrades/upgrade-pg/
顶级时间序列数据库比较
数据库模型 | 可扩展性 | 部署 | 查询语言 | 定价模型 | |
---|---|---|---|---|---|
TimescaleDB | 关系数据库 | 垂直可扩展,具有自动分区、列式压缩、优化查询和自动更新的物化视图 | 自托管或托管云服务 | SQL | TimescaleDB 开源可以自托管并且是免费的Timescale for AWS 采用按需付费模式 |
InfluxDB | 自定义、非关系型 NoSQL、列式数据库 | 水平可扩展 | 自托管或托管云服务 | SQL、InfluxQL、Flux | InfluxDB 开源版可免费使用,InfluxDB Cloud Serverless 是一项采用按需付费定价模型的托管服务。InfluxDB Cloud Dedicated 和 InfluxDB Clustered 适用于大容量生产工作负载,成本取决于存储、CPU 和 RAM |
Prometheus | 基于拉取的模型,从目标抓取指标 | 垂直可扩展或通过联合可扩展 | 作为单个二进制文件部署在服务器上或 Kubernetes 等容器平台上 | PromQL | 开源:无相关许可证费用 |
Kdb+ | 具有自定义数据模型的列式数据库 | 水平可扩展,支持多节点和多线程 | 本地部署、云端或混合部署 | Q 语言 | 非商业用途的免费 32 位版本对于商业部署,定价取决于部署模型和核心数量 |
Graphite | Whisper(基于文件的时间序列)数据库格式 | 水平可扩展,支持复制和集群 | 本地部署或云端部署 | GQL | 开源:无相关许可证费用 |
ClickHouse | 列式数据库 | 水平可扩展 | 本地部署或云端部署也作为托管服务提供 | 基于 SQL 的声明式查询语言,与 ANSI SQL 标准基本相同 | ClickHouse 是开源的,没有相关的许可证费用ClickHouse Cloud 采用按需付费的定价模式 |
MongoDB | 具有类似 JSON 文档模型的 No-SQL 数据库 | 水平可扩展 - 支持自动负载均衡、数据分片和复制 | 自托管或托管云服务 | MQL(MongoDB 查询语言) | MongoDB 社区版是开源的,可以免费使用MongoDB 企业版:定价取决于您选择的功能MongoDB Atlas 采用按需付费的定价模式 |
InfluxDB
InfluxDB 是一款流行的时间序列数据库,以其高性能和可扩展性而闻名。它专为时间序列数据构建,提供无模式数据模型,可以轻松添加新字段,而无需修改模式或迁移数据。根据您使用的版本,它使用称为 InfluxQL 和 Flux 的专用查询语言(您也可以依赖标准 SQL)。
InfluxDB 可以处理指标数据的高吞吐量摄取,并广泛用于监控和警报、物联网数据存储和分析以及实时分析。它还适用于涉及分析和跟踪随时间推移的数据点的应用程序,以及用户需要在摄取后快速查询数据以进行实时分析的场景。
该数据库使用列式存储数据,使用 Apache Arrow 进行内存数据表示,并使用 Parquet 进行文件存储,这允许更快的查询和更好的数据压缩。此外,它允许您定义保留策略,以确定在自动删除数据之前存储数据的时间。
InfluxDB 的独特之处在于其架构,该架构包含四个关键组件(数据摄取、数据压缩、数据查询和垃圾回收),每个组件独立运行。通过将查询和摄取组件分离,可以根据工作负载需求轻松地独立扩展每个组件。InfluxDB 的集群功能还支持水平扩展,使其能够随着数据量和工作负载需求的增长而扩展。
Prometheus
Prometheus 是一款以可靠性和可扩展性著称的监控和警报工具包。它针对收集和查询与系统和应用程序指标相关的时间序列数据进行了优化。Prometheus 使用基于拉取的模型,服务器定期从目标收集指标,并将数据存储在自定义时间序列数据库中,该数据库针对低资源使用率和快速查询进行了优化。这种模型使其非常适合监控动态环境,因为它支持自动发现并允许监控新实例。
Prometheus 具有可扩展的模块化架构,包含服务发现机制和导出器等组件。但是,由于它不是分布式系统,因此无法水平扩展,并且缺少内置集群,尽管它支持联合,这允许多台服务器共享数据。
其查询语言 PromQL 允许用户对指标数据执行强大的查询和聚合。Prometheus 广泛用于云原生环境,并以其简单性、灵活性和稳健性而闻名。它与 Kubernetes 等容器编排平台无缝集成,使其成为监控微服务架构(包括 Docker 和 Kubernetes)的热门选择。其他用例包括应用程序性能监控和异常检测。
但是,请注意,Prometheus 不是通用的时间序列数据库,因此它可能不适合长期数据存储。
Kdb+
kdb+ 是一种高性能列式数据库,针对处理金融时间序列数据(如股票市场交易)进行了优化,尽管它也适用于其他类型的时间序列数据,包括物联网和传感器数据。kdb+ 由 Kx Systems 开发,以其速度、可扩展性和高级分析功能而闻名,使其适用于需要对海量数据进行高速查询和分析的应用程序。它使用一种称为 q 的专有语言来查询和操作数据,该语言专为处理金融领域的时间序列数据而量身定制。
该数据库在需要低延迟访问大量时间序列数据的场景中表现出色,例如算法交易、风险管理和逐笔数据分析。其架构允许磁盘和内存存储,并且可以跨多台机器水平扩展。其高效的数据存储和处理使其成为寻求从实时市场数据中获取洞察力的金融机构和贸易公司的首选。
Timescale
TimescaleDB 是一款强大的开源时间序列数据库,构建于 PostgreSQL 之上。它提供可扩展性、可靠性和高级时间序列功能。它使用块和超表自动对时间序列数据进行分区,从而提高查询性能并简化数据管理。