数据库 | 时序数据库选型

选型目标

  • 高性能与低延迟:满足高频率数据写入与即时查询的需求。
  • 资源效率:优化存储空间使用,减少计算资源消耗。
  • 可扩展架构:支持数据量增长带来的扩展需求,易于维护。
  • 社区活跃度:有活跃的开发者社区,确保问题快速响应和持续更新。
  • 生态集成:良好地与现有工具链、监控系统及可视化平台集成。

市场主流时序数据库概览

排名参考:DB-Engines Ranking - popularity ranking of time Series DBMS

image.png

国内排名参考:中国数据库排行 - 墨天轮
image.png

1. InfluxDB(MIT)

  • 特点:专为时序数据设计,InfluxQL提供类SQL查询语法,支持集群模式。
  • 优势:写入与查询性能优秀,广泛应用于监控与IoT领域。
  • 局限性:高级特性与企业级支持需InfluxDB Cloud或企业版。

2. Prometheus(Apache License 2.0)

  • 特点:一套完整的监控与告警解决方案,PromQL查询语言强大。
  • 优势:轻量级,适用于微服务架构,生态丰富,与Kubernetes集成紧密。
  • 局限性:主要面向监控,复杂数据分析能力相对有限。

3. TimescaleDB(Apache License 2.0+TSL)

  • 特点:基于PostgreSQL的扩展,提供全SQL支持,自动扩展分区,自动过期清理。
  • 优势:强大的SQL查询分析能力,易于与关系型数据集成。
  • 局限性:相比原生时序数据库如InfluxDB、TDengine大数据量时性能略低,存储占用空间更大。

4. TDengine(GNU AGPL v3.0)

  • 特点:专为物联网优化,集成了数据库、缓存、流处理于一体。
  • 优势:极高性能,存储效率高,支持SQL查询,易于部署与管理。
  • 局限性:虽然生态在迅速成长,但相比一些成熟项目,社区规模和工具链可能较小。

5. IoTDB(Apache License 2.0)

  • 特点:面向工业互联网,轻量级,支持复杂查询与存储优化。
  • 优势:专为时序数据设计的存储模型,支持高效批量写入与查询。
  • 局限性:相较于某些成熟数据库,文档和社区支持可能不够丰富。

6. OpenGemini(Apache License 2.0)

  • 特点:华为开源的分布式时序数据库,聚焦海量数据存储与分析。
  • 优势:针对时序数据优化,简化架构,降低成本,提升效率。
  • 局限性:相对较新,社区与生态仍在发展中。

推荐方案

TimescaleDB(基础版Apache License 2.0协议,社区版Timescale License (TSL)协议,即可以企业内部部署用,不能作为云服务对外售卖。社区版比基础版多一些高级功能,比如分区压缩,集群部署功能。)

  • 灵活性:TimescaleDB支持标准SQL,对于习惯SQL的团队来说更容易上手,且能更好地与现有的分析工具和框架集成(我们的业务存在多指标关联分析行转列等需求可以方便处理)。
  • 扩展性:作为PostgreSQL的扩展,TimescaleDB继承了其强大的生态系统和可扩展性,适用于从小型到超大规模的数据集(比如大模型需要的向量数据库和搜索场景需要的倒排索引和相关性排序)。
  • 运维与学习成本:如果团队对PostgreSQL或Mysql熟悉,转向TimescaleDB的迁移成本相对较低。
  • 生产成本:同时支持关系表和时序表,不需要部署两套数据库。
    image.png
    image.png
    timescaledb性能初步测试

国产备选方案

IoTDB(Apache License 2.0协议)

  • **低成本、高性能:**数千万点写入吞吐量,压缩比高(官方数据1:10无损压缩,实测可以做到1:5),可大大节省服务器硬件成本。
  • **易用性,跨平台部署:**仅依靠 JDK/JRE,开箱即用,比较方便集群部署,降低运维成本。
  • **多样化的数据处理和分析方法:**与Apache PLC4X、Apache Pulsar、Apache Flink、Apache Spark、Apache Zeppelin、Grafana等集成,构建完整的开源软件生态,丰富的数据分析功能,如触发器、用户定义功能 (UDF)、选择进入、连续查询等。
  • 低成本迁移:通过适配器与各种TSDB(InfluxDB,Prometheus,KairosDB等)兼容
  • 相对比较新,文档比较少
  • SQL支持能力比较弱,一下复杂查询支持有限(比如不支持group by作为子查询)
    IotDB性能初步测试
    TDengine(Apache License 2.0协议)
  • 性能:TDengine设计之初就针对物联网和大规模时序数据进行了优化,能提供极高的写入与查询性能。
  • 集成度高:内置缓存、流处理功能减少了额外组件的部署与维护,简化架构。
  • 成本效率:高效存储机制有助于降低长期的存储成本。
  • 易用性:支持SQL查询,便于开发与维护,同时有较好的管理工具。
  • 性能对比:基于 TSBS 标准数据集时序数据库 TimescaleDB、InfluxDB 与 TDengine 的性能对比测试
    image.png
    image.png

实施计划与风险评估

实施步骤

  1. 技术验证:在隔离环境中搭建时序数据库,进行功能与性能测试。
  2. 迁移策略:设计数据迁移计划,包括数据格式转换和验证。
  3. 系统集成:与现有监控、分析工具对接,确保数据流转无阻。
  4. 培训与文档:组织内部培训,编写操作指南和故障排查手册。

风险评估

  • 技术迁移风险:需关注数据迁移过程中可能出现的数据一致性问题。
  • 性能匹配风险:实际应用中的性能需经过充分测试验证。
  • 社区支持风险:社区活跃度,特定问题的解决速度仍需评估。

结论

鉴于现用数据库MariaDB迁移到TimescaleDB成本低(TimescaleDB扩展于PostgreSQL,而MariaDB和PostgreSQL大部分兼容),TimescaleDB在性能方面能够满足业务需求同时支持关系数据库的业务场景,选TimescaleDB作为当前时序数据库比较合适。后续如果有部分场景对性能有极致要求可以考虑IoTDB等纯时序数据库。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/news/907464.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MobaXterm连接Docker Desktop中的容器(shell)

对于使用docker desktop的同学,想要直连docker容器不需要借助ssh协议,可以直接通过shell访问控制台,配置如下: 选择terminal shell类型,我选择的是powershell 。 输入terminal启动命令:docker exec -it [你…

两个Ubuntu机器(内网)免密登录设置

业务背景:现有两个机器;A(192.168.1.10)、B(192.168.1.20); 需要机器A可以免密登录B,具体操作如下: 1、首先在机器A中,上生成 SSH 密钥对(公钥和私…

支持selenium的chrome driver更新到136.0.7103.113

最近chrome释放新版本:136.0.7103.113 如果运行selenium自动化测试出现以下问题,是需要升级chromedriver才可以解决的。 selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only s…

SQL中各个子句的执行顺序

select、from、 join、where、order by、group by、having、limit 解释 1) FROM (确定数据源) 查询的执行首先从FROM子句开始,确定数据的来源(表、视图、连接等)。 2) JOIN (如果有JOIN操作) 在FROM子句之后,SQL引擎会执行连接操作(JOIN)&#xff0c…

若依微服务的定制化服务

复制依赖 复制依赖 复制system服务的bootstrap.yml文件,修改port和name 在nacos复制一个新的nacos配置,修改对应的nacos的配置 ,可能不需要修改,看情况。 网关修改 注意curd的事项,模块名称的修改

用 Python 模拟下雨效果

用 Python 模拟下雨效果 雨天别有一番浪漫情怀:淅淅沥沥的雨滴、湿润的空气、朦胧的光影……在屏幕上也能感受下雨的美妙。本文将带你用一份简单的 Python 脚本,手把手实现「下雨效果」动画。文章深入浅出,零基础也能快速上手,完…

纯数据挖掘也能发Microbiome?

抗生素滥用导致多重耐药微生物在全球蔓延,但新型抗生素的研发进展缓慢,亟需找到替代抗生素的新型防御策略。抗菌肽(AMPs)作为天然防御分子,具有低耐药潜力和广谱活性。德国小蠊(Blattella germanica&#x…

动态内容加载时,爬虫应如何处理?

处理动态内容加载是爬虫开发中的一个常见挑战。许多现代网站使用 JavaScript 动态加载内容,这意味着页面的某些部分可能在初始加载时并不存在,而是通过后续的 AJAX 请求或 JavaScript 执行动态生成的。为了处理这种情况,爬虫需要能够模拟浏览…

uni-app 安卓消失的字符去哪里了?maxLength失效了!

前情提要 皮一下~这个标题我还蛮喜欢的嘿嘿嘿【附上一个自行思考的猥琐的笑容】 前段时间不是在开发uni-app的一个小应用嘛,然后今天测试发现,有一个地方在苹果是没有问题的,但是在安卓上出现了问题,附上安卓的截图 在这里我是有限制maxLength=50的,而且,赋值字符串到字…

2025年5月蓝桥杯stema省赛真题——象棋移动

上方题目可点下方去处,支持在线编程~ 象棋移动_scratch_少儿编程题库学习中心-嗨信奥 程序演示可点下方,支持源码和素材获取~ 象棋移动-scratch作品-少儿编程题库学习中心-嗨信奥 题库收集了历届各白名单赛事真题和权威机构考级…

Cesium 实战 26 - 自定义纹理材质 - 实际应用之飞线(抛物线)

Cesium 实战 26 - 自定义纹理材质 - 实际应用之飞线(抛物线) 前言核心代码完整代码在线示例前言 之前总结了项目实战用常用的自定义纹理材质,包括扩散、预警、动态线等,后续还会不定期增加一些效果。 除了单个的自定义纹理材质介绍,文章系列后期会增加一些实际项目应用、…

Apache Airflow

目录 Apache Airflow是什么 CVE-2020-11978(Airflow 示例dag中的命令注入) CVE-2020-11981(Airflow Celery消息中间件命令执行) CVE-2020-17526(Airflow 默认密钥导致的权限绕过) Apache Airflow是什么 Airflow是一个以编程方式编写,安排和监视工作流的平台。 …

【Python Cookbook】迭代器与生成器(四)

目录 案例 目录 案例 迭代器与生成器(一)1.手动遍历迭代器2.代理迭代3.使用生成器创建新的迭代模式4.实现迭代器协议迭代器与生成器(三)9.排列组合的迭代10.序列上索引值迭代11.同时迭代多个序列12.不同集合上元素的迭代迭代器与生…

React 播客专栏 Vol.16|useRef 和 useMemo 是干嘛的?

👋 欢迎回到《前端达人 React 播客书单》第 16 期(正文内容为学习笔记摘要,音频内容是详细的解读,方便你理解),请点击下方收听 视频版 🎙 欢迎来到《前端达人 播客书单》第 16 期。 今天我们来…

漫谈英伟达GPU架构进化史:从Celsius到Blackwell

在英伟达官网,我们可以清晰地看到其从1999年Celsius到2024年Blackwell的20+代架构演进。这一历程犹如一部波澜壮阔的科技史诗,见证了英伟达在GPU领域的卓越创新与持续引领。 NVIDIA GPU架构变迁路线: 年份 NV GPU架构变迁 2025 Blackwell 2.0 2024 Blackwell 2023-2024 Hopp…

车载通信网络 --- CAN FD与CAN XL

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…

DM达梦数据库开启SQL日志记录功能

DM达梦数据库开启SQL日志记录功能 配置SQL日志(非必须的配置步骤,与主备集群配置无关,如果没有需求可以跳过配置SQL日志) sqllog.ini 配置文件用于SQL日志的配置,当且仅当 INI(dm.ini) 参数 SV…

【HW系列】—C2远控服务器(webshell链接工具, metasploit、cobaltstrike)的漏洞特征流量特征

文章目录 蚁剑、冰蝎、哥斯拉一、蚁剑(AntSword)流量特征二、冰蝎(Behinder)流量特征三、哥斯拉(Godzilla)流量特征 metasploit、cobaltstrike一、Metasploit流量特征二、CobaltStrike流量特征三、检测与防…

手机平板等设备租赁行业MDM方案解析

目录 引言:MDM 在租赁行业的重要性日益凸显 用户场景:租赁公司面临的主要挑战 1. 设备丢失、逾期未还 2. 手动配置和恢复效率低 3. 非授权使用频繁 4. 时区设置混乱影响运维 5. 缺乏实时监管能力 EasyControl MDM:租赁设备的远程管控…

前端面试核心考点全解析

前端面试常见问题及解析大纲 核心技术篇 HTML相关问题 1. HTML5新特性解析 语义化标签&#xff08;<header>、<section>等&#xff09;的作用与示例本地存储&#xff08;localStorage与sessionStorage&#xff09;的差异 localStorage.setItem(key, value); c…