MongoDB平替数据库对比

news2025/4/3 22:31:01

背景

项目一直是与实时在线监测相关,特点数据量大,读写操作大,所以选用的是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.coloradmin.cn/o/2284579.html

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

相关文章

SCRM在企业私域流量与客户管理中的变革之路探索

内容概要 在当今数字化高速发展的时代,SCRM(社交客户关系管理)作为一种新的管理工具,正逐渐成为企业私域流量管理和客户关系维护的重要基石。它不仅仅是一种软件工具,更是一种整合客户数据和关系管理的全新思维方式。…

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

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

2025多目标优化创新路径汇总

多目标优化是当下非常热门且有前景的方向!作为AI领域的核心技术之一,其专注于解决多个相互冲突的目标的协同优化问题,核心理念是寻找一组“不完美但均衡”的“帕累托最优解”。在实际中,几乎处处都有它的身影。 但随着需求场景的…

基于微信小程序的新闻资讯系统设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…

vim如何解决‘’文件非法关闭后,遗留交换文件‘’的问题

过程描述: 由于我修改文件时(一定得修改了文件,不做任何修改不会产生这个问题)的非法关闭,比如直接关闭虚拟机,或者直接断开远程工具的远程连接,产生了以下遗留交换文件的问题: 点击…

vue3+elementPlus之后台管理系统(从0到1)(day4-完结)

面包屑 创建一个面包屑组件 将路由导入然后格式化map对象 key-value 将当前路由的key和value获取然后存入list数组中 遍历list数据&#xff0c;渲染内容 <!--BreadcrumbCom.vue--> <template><el-breadcrumb separator">"><el-breadcrum…

基于Flask的旅游系统的设计与实现

【Flask】基于Flask的旅游系统的设计与实现&#xff08;完整系统源码开发笔记详细部署教程&#xff09;✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 该系统采用Python作为后端开发语言&#xff0c;结合前端Bootstrap框架&#xff0c;为用户提供了丰富…

【公因数匹配——暴力、(质)因数分解、哈希】

题目 暴力代码&#xff0c;Acwing 8/10&#xff0c;官网AC #include <bits/stdc.h> using namespace std; const int N 1e610; vector<int> nums[N]; int main() {ios::sync_with_stdio(0);cin.tie(0);int n;cin >> n;for(int i 1; i < n; i){int x;ci…

WPS数据分析000010

基于数据透视表的内容 一、排序 手动调动 二、筛选 三、值显示方式 四、值汇总依据 五、布局和选项 不显示分类汇总 合并居中带标签的单元格 空单元格显示 六、显示报表筛选页

RabbitMQ 架构分析

文章目录 前言一、RabbitMQ架构分析1、Broker2、Vhost3、Producer4、Messages5、Connections6、Channel7、Exchange7、Queue8、Consumer 二、消息路由机制1、Direct Exchange2、Topic Exchange3、Fanout Exchange4、Headers Exchange5、notice5.1、备用交换机&#xff08;Alter…

Spring--SpringMVC使用(接收和响应数据、RESTFul风格设计、其他扩展)

SpringMVC使用 二.SpringMVC接收数据2.1访问路径设置2.2接收参数1.param和json2.param接收数据3 路径 参数接收4.json参数接收 2.3接收cookie数据2.4接收请求头数据2.5原生api获取2.6共享域对象 三.SringMVC响应数据3.1返回json数据ResponseBodyRestController 3.2返回静态资源…

git Bash通过SSH key 登录github的详细步骤

1 问题 通过在windows 终端中的通过git登录github 不再是通过密码登录了&#xff0c;需要本地生成一个密钥&#xff0c;配置到gihub中才能使用 2 步骤 &#xff08;1&#xff09;首先配置用户名和邮箱 git config --global user.name "用户名"git config --global…

基于51单片机和ESP8266(01S)、LCD1602、DS1302、独立按键的WiFi时钟

目录 系列文章目录前言一、效果展示二、原理分析三、各模块代码1、延时2、定时器03、串口通信4、DS13025、LCD16026、独立按键 四、主函数总结 系列文章目录 前言 之前做了一个WiFi定时器时钟&#xff0c;用八位数码管进行显示&#xff0c;但是定时器时钟的精度较低&#xff0…

机器学习 ---逻辑回归

逻辑回归是属于机器学习里面的监督学习&#xff0c;它是以回归的思想来解决分类问题的一种非常经典的二分类分类器。由于其训练后的参数有较强的可解释性&#xff0c;在诸多领域中&#xff0c;逻辑回归通常用作 baseline 模型&#xff0c;以方便后期更好的挖掘业务相关信息或提…

拟合损失函数

文章目录 拟合损失函数一、线性拟合1.1 介绍1.2 代码可视化1.2.1 生成示例数据1.2.2 损失函数1.2.3 绘制三维图像1.2.4 绘制等高线1.2.5 损失函数关于斜率的函数 二、 多变量拟合2.1 介绍2.2 代码可视化2.2.1 生成示例数据2.2.2 损失函数2.2.3 绘制等高线 三、 多项式拟合3.1 介…

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

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

利用JSON数据类型优化关系型数据库设计

利用JSON数据类型优化关系型数据库设计 前言 在关系型数据库中&#xff0c;传统的结构化存储方式要求预先定义好所有的列及其数据类型。 然而&#xff0c;随着业务的发展&#xff0c;这种设计可能会显得不够灵活&#xff0c;尤其是在需要扩展单个列的描述功能时。 JSON数据…

极简壁纸js逆向

首先抓包&#xff0c;翻页可以看到数据储存在该包 可以看到随着页面变化&#xff0c;只有current在变化 而且载荷都没有加密&#xff0c;看来不用js逆向了 爬取代码 import os import asyncio import aiohttp import jsonheaders {"accept": "application/j…

JAVA 接口、抽象类的关系和用处 详细解析

接口 - Java教程 - 廖雪峰的官方网站 一个 抽象类 如果实现了一个接口&#xff0c;可以只选择实现接口中的 部分方法&#xff08;所有的方法都要有&#xff0c;可以一部分已经写具体&#xff0c;另一部分继续保留抽象&#xff09;&#xff0c;原因在于&#xff1a; 抽象类本身…

使用PC版本剪映制作照片MV

目录 制作MV模板时长调整拖动边缘缩短法分割删除法变速法整体调整法 制作MV 导入音乐 导入歌词 点击歌词 和片头可以修改字体&#xff1a; 还可以给字幕添加动画效果&#xff1a; 导入照片&#xff0c;自动创建照片轨&#xff1a; 修改片头字幕&#xff1a;增加两条字幕轨&…