物联网-高性能时序数据库QuestDB

高性能时序数据库QuestDB

开源地址:https://github.com/questdb/questdb

官网:https://questdb.io/ 当前 13.9k start

自带免费可视化管理界面

支持各种语言客户端

C & C++ .NET Go Java Node.js Python Rust

上手容易可兼容 Postgresql InfluxDB Rest HTTP 协议

吐槽下 TDEngine 客户端不忍直视,还搞一个 C 端 Client 真是奇葩(希望官方人员能看到,并重视这个问题)

存储模型

QuestDB 采用列存(column-based)存储模型,表里的数据按列存储到不同的文件,每次新的写入数据追加到文件末尾,保持跟写入顺序一致。

追加模型

QuestDB 采用列存模型,每个列存储到不同的文件,文件通过 mmap 方式映射到内存,每次写入直接在映射内存大末尾追加数据,非常高效,对于定长类型列,通过行号就能固定定位到数据位置;针对变长类型列,每个列除了对应一个数据文件,还要对应一个索引文件,索引文件的记录为定长,指向各个记录在数据文件的位置。

一致性和持久性

QuestDB 能保证每次写入的表级别的原子性,每张表会单独维护 last_committed_record_count(txn_count), 读取时 QuestDB 确保不会读到行号超过 txn_count 的记录,确保与正在写入事务的隔离性,当新记录的各个列都更新成功时,QuestDB commit 事务更新 last_committed_record_coun提交事务。数据的持久性级别可以在 commit 时指定不同的参数,是每次提交持久化还是周期性做持久化。

列存储模型

QuestDB采用面向列的存储方式,这种模型在处理分析型查询时,能够提供更高的效率和更低的I/O消耗。

实时分析

通过时间序列扩展的SQL,QuestDB能够协助进行实时数据分析,为需要快速响应的业务场景提供支持。

多协议支持

支持InfluxDB行协议、PostgreSQL协议和REST API,使得QuestDB可以无缝集成到现有的数据生态系统中。

高性能摄取

QuestDB为高吞吐量数据摄取进行了优化,能够快速处理大量数据流入,满足实时监控和分析的需求。

易于扩展

QuestDB设计为单机运行,但通过其REST API和支持的协议,可以轻松扩展以适应更大的数据量和查询需求。同时还兼容 PostgreSQL 、InfluxDB 等访问协议

相关推荐
ac.char2 小时前
github.com/lib/pq 数据库链接完整示例方式
数据库·postgresql·golang
菠萝016 小时前
分布式CAP理论
数据库·c++·分布式·后端
国际云6 小时前
腾讯云国际站性能调优
运维·服务器·数据库·云计算·腾讯云
ruanjiananquan997 小时前
MySQL 数据库调优指南:提升性能的全面策略
数据库·mysql·oracle
睡觉z11 小时前
MySQL数据库初体验
数据库·mysql·oracle
CC同学呀12 小时前
从0到1:多医院陪诊小程序开发笔记(上)
数据库·笔记
十年砍柴---小火苗12 小时前
gin使用Mysql连接池用法
数据库·mysql·gin
天河归来12 小时前
通过阿里云服务发送邮件
数据库·阿里云·云计算
Chasing__Dreams12 小时前
Redis--基础知识点--28--慢查询相关
数据库·redis·缓存
C1829818257512 小时前
小表驱动大表更快吗,不是
数据库