MongoDB平替数据库对比

背景

项目一直是与实时在线监测相关,特点数据量大,读写操作大,所以选用的是MongoDB。但按趋势来讲,需要有一款国产数据库可替代,实现信创要求。选型对比如下

1. IoTDB

这款是由清华大学主导的开源时序数据库,用于特联网交互场景为主,专注于处理时序数据问题。
主要特点如下:

  • 高效能读写:经基准测试,其读写性能优于 KairosDB、InfluxDB 等现有时序数据库。支持数以百万计的低功耗设备的强连接数据访问、高速数据读写,适用于智能网络设备和混合设备。
  • 部署方便:可实现端云一体化解决方案。轻量级
  • 高效存储:采用TsFile 文件系统,可用于大数据分析,磁盘压缩比高
  • 查询语义丰富:丰富的聚合操作支持,还支持SQL语言

API可参考: https://iotdb.incubator.apache.org/zh/UserGuide/V1.2.x/API/Programming-Java-Native-API.html
不考虑原因: 与Mongo 写法有一定差别,不支持文档类型,不考虑了

2. TapDB

TapDB是深圳钛铂数据有限公司旗下的产品,由前 MongoDB 大中华区首席架构师、MongoDB 中文社区主席唐建法创建。由游戏开发者团队打造。是一个以低延迟数据复制和实时数据处理为核心优势构建的现代数据平台。拥有完全自主知识产权的、管理海量文档数据对象,同时适应于事务和分析场景的国产分布式文档数据库。TapDB 是一套专注于解决游戏项目数据需求的分析工具,致力于帮开发者实现低成本、高效率的接入与查询体验。
主要特点

  • 低门槛接入: 服务产接入支持REST API ,可以在不依赖 SDK 的情况下直接将数据上报到 TapDB。
  • 无延时:官网原话描述:上报后可以立刻查到数据,时间就是生命
  • 免费使用
    API及接入方式可参考:https://www.tapdb.com/docs/aboutUs
    最大的缺点也是由于该产品应用场景决定,不可离线使用,只能联网接入游戏数据。
    不考虑原因:在线数据库,不能离线使用,不考虑了

3. SequoiaDB

3.1 概述

SequoiaDB 巨杉数据库 是一款分布式文档型 NoSQL 数据库,自研原生分布式存储引擎支持完整 ACID,具备弹性扩展、高并发和高可用特性。适用于历史数据平台、全量数据平台、实时数据中台和内容数据管理平台等各类应用场景。侧重应用场景为金融类。广泛应用于银行、保险、证券、新能源、政府等行业等。
主要物点

  • 兼容性:完全兼容传统关系型数据,数据分片对应用程序完全透明
  • 高性能与无限水平弹性扩展
  • 分布式事务与ACID能力
  • 同时支持结构化、半结构化、非结构化数据
  • 金融级安全性,多数据中心间容灾能力强
  • 多租户能力,去环境下支持多种级别的特量与逻辑隔离

API参考手册:https://doc.sequoiadb.com/cn/sequoiadb-cat_id-1558957223-edition_id-304

3.2 安装部署

SequoiaDB 巨杉数据库是一款金融级分布式数据库,可以轻松地部署和运行在主流框架的服务器及虚拟化环境。同时作为一款高性能分布式数据库,SequoiaDB 巨杉数据库支持绝大多数的主流硬件网络设备和主流的 Linux 操作系统环境.

3.2.1 硬件与操作系统要求

  • X86架构(Linux):通用X86硬件平台
    Red Hat Enterprise Linux (RHEL) 6/7/8、SUSE Linux Enterprise Server (SLES) 11 Service Pack 1/2/3、 Ubuntu 12/14/16.x、CentOS 6/7/8.x、国产统信 UOS、深度 Deepin、中标麒麟、银河麒麟、红旗 Linux】;
  • ARM64架构(Linux):华为 TaiShan 服务器(鲲鹏 920 处理器)、长城擎天服务器(飞腾 2000 处理器)
    Red Hat Enterprise Linux (RHEL) 7/8、 Ubuntu 16.x、CentOS 7/8.x、国产统信 UOS、深度 Deepin、中标麒麟、银河麒麟、华为 EulerOS(openEuler)】;
  • Power架构(Linux):浪潮(IBM) Open Power受支持的操作系统
    Red Hat Enterprise Linux Server release 7.5

3.2.2 说明Note:

  • 操作系统需安装 glibc 2.15 和 libstdc++ 6.0.18,或安装其更高版本。
  • 如果用户需要将未在上述列表中列举的 Linux 操作系统应用于生产环境,建议联系 SequoiaDB 技术支持,以获得更详细的信息。

网址参考

  • 技术生态参考:https://blog.sequoiadb.com/cn/
  • spring data MongoDB操作参考:https://idea.sequoiadb.com/cn/d/1387
  • JAVA 原生驱动参考https://doc.sequoiadb.com/cn/index/Public/Home/document/304/api/java/html/index.html
  • Mongo协议兼容参考
    https://blog.csdn.net/weixin_53480635/article/details/115211814

3.3 SequoiaDB 与MongoDB命令兼容对比

在这里插入图片描述

3.4 社区版本和企业版本对比

待补充…

4. OceanBase

由蚂蚁集团完全自主研发的原生分布式关系型数据库,已连续 10 余年稳定支撑双 11,代码级可控,大规模金融核心场景 10 余年可靠性验证,稳定可靠真正实现数据强一致,数据不丢失。高度兼容 Oracle 和 MySQL。适用场景包括银行、保险、零售,也适用于电子商务、物联网,满足大规模数据存储和处理要求。
主要特点:

  • 稳定可靠:RPO(Recruitment Process Outsourcing,恢复数据的完整性指标)=0,RTO(Recovery Time Objective恢复所需时间指标代表了及时性)小于8秒故障自动恢复能务,满足严苛条件下的业务连续性。
  • 成本低:存储成本相比传统商业DB有显著优势,存储成本能降低70%-90%。基线加增加的存储引擎,增量存内存,基线存SSD盘,DML是内存操作。,LSM-Tree架构,数据存储压缩率能够相较传统数据库提升 10+ 倍。
  • 易用性:支持活跃事务的落盘保证用户的大事务/长事务的正常运行或回滚
  • 高性能:提供了多级 cache 加速来保证极低的响应延时
  • 高安全性:支持国密GCM完整性校验,完备的角色权限管理体系,数据存储和通信全链路透明加密。通过等保三级专项合规检测。
  • 高兼容性:高度兼容 Oracle 和 MySQL,全链路迁移工具及体系,支持新旧系统并跑提供更强性能,支持海光、鲲鹏、Intel 等多种芯片满足混合部署业务需求。
  • 水平扩展:支持透明水平扩展,集群节点可超过数千个,单集群最大数据量超过 3PB,最大单表行数达万亿级。

API可参考:https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000639550
不考虑原因:实现语义语法和Mongo区别很大,oceanbase仍为关系型数据库,可以很好地替换Mysql和Oracle,对于关系库单表数据量的查询瓶颈做了优化扩展,其Nosql主要是依靠其字符串的一些函数及其强大的查询做为支持实现。如果基于现有Mongo开的改造替换,工作量仍然不小

TiDB

TiDB是PingCAP公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP) 的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时 HTAP、云原生的分布式数据库、兼容 MySQL 协议和 MySQL 生态等重要特性。目标是为用户提供一站式 OLTP (Online Transactional Processing)、OLAP (Online Analytical Processing)、HTAP 解决方案。TiDB 适合高可用、强一致要求较高、数据规模较大等各种应用场景
参考文档https://docs.pingcap.com/zh/tidb/stable/overview
几乎完全兼容Mysql
不考虑因素:从数据模型和查询语言来看,MongoDB是文档型数据库,使用JSON格式的文档来存储数据,并使用MongoDB查询语言进行数据查询。而TiDB是关系型数据库,使用SQL作为查询语言。如果将现有的MongoDB应用程序迁移到TiDB,需要将MongoDB的查询语句改为TiDB的SQL语句。

KingbaseES

待更新…

GaussDB

待更新…
GaussDB(for Mongo)不支持离线使用

GaussDB(for Mongo)是华为云自主研发的兼容MongoDB4.0接口的文档数据库,它是基于云计算架构的分布式数据库服务,需要依赖华为云的基础设施和服务来运行。用户可以通过华为云提供的管理控制台、API等方式对GaussDB(for Mongo)进行操作和管理,包括创建实例、配置参数、监控运行状态等。
GaussDB(for Mongo)是华为云自主研发的兼容MongoDB4.0接口的文档数据库,以下是其详细介绍:

  1. 技术架构

    • 存算分离架构:采用计算存储分离的架构模式,计算节点和存储节点可分别独立部署,通过高速网络进行通信。这种架构使得资源可以灵活扩展,能够根据业务需求单独增加计算资源或存储资源,有效提高了系统的可扩展性和资源利用率。
    • 共享存储设计:基于共享存储的架构,多个节点可以同时访问和使用同一份数据存储空间。与传统的社区版MongoDB相比,在添加Secondary节点时不需要拷贝数据,添加动作可以秒级完成,大大提高了集群的扩展效率。
  2. 功能特点

    • 高可用性:支持副本集模式,通过数据的冗余备份和自动故障转移机制,确保在节点出现故障时,系统能够自动切换到其他正常节点继续提供服务,保证业务的连续性。
    • 弹性扩展:计算节点和存储节点都可以根据业务负载的变化进行弹性扩展,无需停机重启,对业务的影响极小。无论是应对业务高峰期的流量增长,还是长期的业务发展需求,都可以轻松实现资源的动态调整。
    • 数据一致性:在分布式环境下,能够保证数据的强一致性,确保不同节点上的数据始终保持一致,避免因数据不一致导致的错误和问题。
    • 兼容性:完全兼容MongoDB4.0接口,对于已经使用MongoDB的应用,可以无缝迁移到GaussDB(for Mongo),无需修改代码,大大降低了迁移成本和风险。
    • 性能优化:针对LSMTree的写压力来源进行了优化,将Compaction任务集中化管理,卸载到Compaction统一调度池,减少了用户计算节点的CPU和IO资源消耗,提升了整体性能。
  3. 应用场景

    • 互联网应用:适用于各种互联网应用的后端数据库,如社交网络、内容管理系统、在线游戏等,能够提供高性能、高可用的数据存储和处理能力,满足大量用户的并发访问需求。
    • 物联网领域:可以作为物联网设备数据的收集和存储中心,处理海量的物联网设备产生的数据,为物联网应用提供实时数据分析和决策支持。
    • 金融行业:在金融交易、风险管理、客户关系管理等场景中,GaussDB(for Mongo)的高性能和高可用性能够保障金融业务的稳定运行,同时满足金融行业对数据安全和合规性的要求。
    • 大数据与分析:适合用于大数据的存储和分析,能够与其他大数据处理工具和平台集成,为企业提供强大的数据分析能力,帮助企业挖掘数据价值,做出更明智的决策。

综上所述,GaussDB(for Mongo)是一款功能强大、性能优越的文档数据库产品,具有高可用性、弹性扩展、数据一致性等特点,广泛应用于互联网、物联网、金融、大数据等领域。
下图来源于官网
在这里插入图片描述

TDSQL

待更新…

归纳

国产的文档数据库主要有以下几种:

  1. SequoiaDB 巨杉数据库:原生支持 JSON API 操作,如增删改查,在扩展性、高可用和整体性能方面有明显优势。采用原生分布式架构,集群规模可弹性扩展,支持从 TB 到 PB 级的不同应用需求。数据库引擎原生支持多中心容灾,无单点故障。【官方客户一直没联系上,不知道后续运维如何】

  2. TapDB 分布式文档数据库:全面兼容 MongoDB 社区版,适配国产芯片鲲鹏、海光、海思以及麒麟等操作系统,满足信创要求,可应用于事务和分析场景。【用于在线且游戏应用场景】

  3. GaussDB(for Mongo):是华为推出的 MongoDB 替代产品,基于统一的架构设计,支持分布式集群部署,具备良好的兼容性和稳定性。

  4. OceanBase:虽然主要是关系型数据库,但也可以存储和管理一些半结构化和非结构化的数据,其强大的事务处理能力和分布式特性使其在一些场景下可作为文档数据库的替代品。

总的来说,这些数据库各具特色,在不同的应用场景中发挥着重要作用。

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

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

相关文章

动手学深度学习-卷积神经网络-3填充和步幅

目录 填充 步幅 小结 在上一节的例子(下图) 中,输入的高度和宽度都为3,卷积核的高度和宽度都为2,生成的输出表征的维数为22。 正如我们在 上一节中所概括的那样,假设输入形状为nhnw,卷积核形…

简易CPU设计入门:控制总线的剩余信号(二)

项目代码下载 请大家首先准备好本项目所用的源代码。如果已经下载了,那就不用重复下载了。如果还没有下载,那么,请大家点击下方链接,来了解下载本项目的CPU源代码的方法。 CSDN文章:下载本项目代码 上述链接为本项目…

【MySQL】 数据类型

欢迎拜访:雾里看山-CSDN博客 本篇主题:【MySQL】 数据类型 发布时间:2025.1.27 隶属专栏:MySQL 目录 数据类型分类数值类型tinyint类型数值越界测试结果说明 bit类型基本语法使用注意事项 小数类型float语法使用注意事项 decimal语…

深度剖析C++17中的std::optional:处理可能缺失值的利器

文章目录 一、基本概念与设计理念二、构建与初始化(一)默认构造(二)值初始化(三)使用std::make_optional(四)使用std::nullopt 三、访问值(一)value()&#x…

云计算架构学习之LNMP架构部署、架构拆分、负载均衡-会话保持

一.LNMP架构部署 1.1. LNMP服务搭建 1.磁盘信息 2.内存 3.负载信息 4.Nginx你们公司都用来干嘛 5.文件句柄(文件描述符 打开文件最大数量) 6.你处理过系统中的漏洞吗 SSH漏洞 7.你写过什么shell脚本 8.监控通过什么告警 zabbix 具体监控哪些内容 9.mysql redis查询 你好H…

[BSidesCF 2020]Had a bad day1

题目 这里有传参 文件包含使用伪协议读取flag 先读取index.php查看 /index.php?categoryphp://filter/readconvert.base64-encode/resourceindex 解码 index.php源码 <?php$file $_GET[category];if(isset($file)){if( strpos( $file, "woofers" ) ! false …

12 款开源OCR发 PDF 识别框架

2024 年 12 款开源文档解析框架的选型对比评测&#xff1a;PDF解析、OCR识别功能解读、应用场景分析及优缺点比较 这是该系列的第二篇文章&#xff0c;聚焦于智能文档处理&#xff08;特别是 PDF 解析&#xff09;。无论是在模型预训练的数据收集阶段&#xff0c;还是基于 RAG…

银行卡三要素验证接口:方便快捷地实现银行卡核验功能

银行卡三要素验证API&#xff1a;防止欺诈交易的有力武器 随着互联网的发展&#xff0c;电子支付方式也越来越普及。在支付过程中&#xff0c;银行卡是最常用的支付工具之一。然而&#xff0c;在一些支付场景中&#xff0c;需要对用户的银行卡信息进行验证&#xff0c;以确保支…

Lite.Ai.ToolKit - 一个轻量级的 C++ 工具包

&#x1f6e0;**Lite.Ai.ToolKit**&#xff1a;一个轻量级的 C 工具包&#xff0c;包含 100 个很棒的 AI 模型&#xff0c;例如对象检测、人脸检测、人脸识别、分割、遮罩等。请参阅 Model Zoo 和 ONNX Hub、MNN Hub、TNN Hub、NCNN Hub。 3700 Stars 711 Forks 0 Issues 6 贡献…

node.js 07.npm下包慢的问题与nrm的使用

一.npm下包慢 因为npm i 默认从npm官网服务器进行下包,但是npm官网服务器是海外服务器所以响应很慢. 于是我们通过npm下包的时候通常用淘宝镜像进行下包,下面是切换到淘宝镜像地址下包的操作. 二.nrm的使用 nrm是一个管理切换npm下包地址的工具,可以快速切换下包的地址. 安…

读书笔记--分布式服务架构对比及优势

本篇是在上一篇的基础上&#xff0c;主要对共享服务平台建设所依赖的分布式服务架构进行学习&#xff0c;主要记录和思考如下&#xff0c;供大家学习参考。随着企业各业务数字化转型工作的推进&#xff0c;之前在传统的单一系统&#xff08;或单体应用&#xff09;模式中&#…

基于ADS的电感和变压器的建模过程

1. 电感二端口建模 对于固定尺寸单圈电感&#xff0c;从0.5G-200GHz的仿真&#xff0c;并提取其模型 如果想要在50GHz前把模型建准&#xff0c;仿真可能要建到200G&#xff0c;因为需要高频的数据&#xff0c;频率越高信息也越多。首先要调用文件由于数据是存在一个文件夹里面的…

使用Maxscript定义纹理贴图的方法

在3ds Max中,MaxScript 是一种用于插件编写和自动化任务的强大工具。通过MaxScript,你可以创建和操作对象、材质、灯光等等。要为材质分配纹理贴图,你可以按照以下方法来编写脚本。直接代码: myBmp = bitmaptexture filename:"D:\map001.tga" meditmaterials[1]…

初阶数据结构:链表(二)

目录 一、前言 二、带头双向循环链表 1.带头双向循环链表的结构 &#xff08;1)什么是带头&#xff1f; (2)什么是双向呢&#xff1f; &#xff08;3&#xff09;那什么是循环呢&#xff1f; 2.带头双向循环链表的实现 &#xff08;1&#xff09;节点结构 &#xff08;2…

项目开发实践——基于SpringBoot+Vue3实现的在线考试系统(九)(完结篇)

文章目录 一、成绩查询模块实现1、学生成绩查询功能实现1.1 页面设计1.2 前端页面实现1.3 后端功能实现2、成绩分段查询功能实现2.1 页面设计2.2 前端页面实现2.3 后端功能实现二、试卷练习模块实现三、我的分数模块实现1、 页面设计2、 前端页面实现3、 后端功能实现四、交流区…

环境搭建--vscode

vscode官网下载合适版本 安装vscode插件 安装 MinGW 配置环境变量 把安装目录D&#xff1a;\mingw64 配置在用户的环境变量path里即可 选择用户环境变量path 点确定保存后开启cmd输入g&#xff0c;如提示no input files 则说明Mingw64 安装成功&#xff0c;如果提示g 不是内…

爱的魔力转圈圈,基于carsim与simulink模拟仰望u8原地调头

仰望U8原地转向的示意图如下&#xff0c;不动方向盘的情况下&#xff0c;车可以自己转圈圈&#xff1a; 原理也很简单&#xff0c;仰望u8是四轮驱动&#xff0c;四个轮子都单独由四个轮边电机驱动。主要我们将左右的车轮轮速控制成左右两边轮速相同&#xff0c;但是方向相反&am…

1.1第1章DC/DC变换器的动态建模-1.1状态平均的概念--电力电子系统建模及控制 (徐德鸿)--读书笔记

电力电子系统一般由电力电子变换器&#xff08;滤波电路和开关&#xff09;、PWM 调制器、驱动电路、反馈控制单元构成&#xff0c;如图1-1所示。由控制理论的知识&#xff0c;电力电子系统的静态和动态性能的好坏与反馈控制设计密切相关。要进行反馈控制设计&#xff0c;首先要…

6. 使用springboot做一个音乐播放器软件项目【1.0版项目完结】附带源码~

#万物OOP 注意&#xff1a; 本项目只实现播放音乐和后台管理系统。 不分享任何音乐歌曲资源。 上一篇文章我们 做了音乐播放器后台的功能。参考地址&#xff1a; https://jsonll.blog.csdn.net/article/details/145214363 这个项目已经好几天也没更新了&#xff0c;因为临近放…

WGCLOUD使用介绍 - 如何监控ActiveMQ和RabbitMQ

根据WGCLOUD官网的信息&#xff0c;目前没有针对ActiveMQ和RabbitMQ这两个组件专门做适配 不过可以使用WGCLOUD已经具备的通用监测模块&#xff1a;进程监测、端口监测或者日志监测、接口监测 来对这两个组件进行监控