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.mzph.cn/diannao/68627.shtml

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

相关文章

C语言------数组从入门到精通

1.一维数组 目标:通过思维导图了解学习一维数组的核心知识点: 1.1定义 使用 类型名 数组名[数组长度]; 定义数组。 // 示例: int arr[5]; 1.2一维数组初始化 数组的初始化可以分为静态初始化和动态初始化两种方式。 它们的主要区别在于初始化的时机和内存分配的方…

物联网智能项目之——智能家居项目的实现!

成长路上不孤单😊😊😊😊😊😊 【14后😊///计算机爱好者😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于物联网智能项目之——智能家居项目…

Nxopen 直齿轮参数化设计

NXUG1953 Visualstudio 2019 参考论文&#xff1a; A Method for Determining the AGMA Tooth Form Factor from Equations for the Generated Tooth Root Fillet //FullGear// Mandatory UF Includes #include <uf.h> #include <uf_object_types.h>// Internal I…

蓝桥杯模拟算法:蛇形方阵

P5731 【深基5.习6】蛇形方阵 - 洛谷 | 计算机科学教育新生态 我们只要定义两个方向向量数组&#xff0c;这种问题就可以迎刃而解了 比如我们是4的话&#xff0c;我们从左向右开始存&#xff0c;1&#xff0c;2&#xff0c;3&#xff0c;4 到5的时候y就大于4了就是越界了&…

VLLM性能调优

1. 抢占 显存不够的时候&#xff0c;某些request会被抢占。其KV cache被清除&#xff0c;腾退给其他request&#xff0c;下次调度到它&#xff0c;重新计算KV cache。 报这条消息&#xff0c;说明已被抢占&#xff1a; WARNING 05-09 00:49:33 scheduler.py:1057 Sequence gr…

HTML特殊符号的使用示例

目录 一、基本特殊符号的使用 1、空格符号&#xff1a; 2、小于号 和 大于号&#xff1a; 3、引号&#xff1a; 二、版权、注册商标符号的使用 1、版权符号&#xff1a;© 2、注册商标符号&#xff1a; 三、数学符号的使用 四、箭头符号的使用 五、货币符号的使用…

three.js用粒子使用canvas生成的中文字符位图材质

three.js用粒子使用canvas生成中文字符材质 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Three.…

STM32 PWM驱动直流电机

接线图&#xff1a; 代码配置&#xff1a; 根据驱动舵机的代码来写&#xff0c;与舵机不同的是&#xff0c;这次的引脚接到了PA2上&#xff0c;所以需要改一下引脚以及改为OC3通道。 另外还需在配置两个GPIO引脚&#xff0c;来控制电机的旋转方向&#xff0c;这里连接到了PA4与…

【外文原版书阅读】《机器学习前置知识》2.用看电影推荐的例子带你深入了解向量点积在机器学习的作用

目录 3.3 Where Are You Looking, Vector? The Dot Product 个人主页&#xff1a;Icomi 大家好&#xff0c;我是Icomi&#xff0c;本专栏是我阅读外文原版书《Before Machine Learning》对于文章中我认为能够增进线性代数与机器学习之间的理解的内容的一个输出&#xff0c;希望…

Conditional DETR for Fast Training Convergence论文学习

1. 写作背景 最近提出的 DETR 成功地将 transformer 引入到物体检测任务中&#xff0c;获得了很不错的性能。DETR 的重要意义在于去除了物体检测算法里需要人工设计的部分&#xff0c;比如 anchor 的生成和 NMS 操作。这大大简化了物体检测的设计流程。基本的结构还是沿用了以…

低代码产品表单渲染架构

在React和Vue没有流行起来的时候&#xff0c;低代码产品的表单渲染设计通常会使用操作Dom的方式实现。 下面是一个表单的例子&#xff1a; 产品层 用户通过打开表单&#xff0c;使用不同业务场景业务下的表单页面&#xff0c;中间的Render层就是技术实现。 每一个不同业务的表单…

XSS 漏洞全面解析:原理、危害与防范

目录 前言​编辑 漏洞原理 XSS 漏洞的危害 检测 XSS 漏洞的方法 防范 XSS 漏洞的措施 前言 在网络安全的复杂版图中&#xff0c;XSS 漏洞&#xff0c;即跨站脚本攻击&#xff08;Cross - Site Scripting&#xff09;&#xff0c;是一类极为普遍且威胁巨大的安全隐患。随着互…

拒绝 Github 投毒,通过 Sharp4SuoBrowser 分析 Visual Studio 隐藏文件

近期的网络安全事件中&#xff0c;某提权工具被发现植入后门&#xff0c;攻击者使用 .suo 文件作为隐蔽攻击媒介。由于 .suo 文件是项目的隐藏配置文件&#xff0c;安全研究人员很少关注它的内容。 此次攻击事件被初步判断为东南亚地区的 APT 组织——海莲花&#xff08;Lotus…

shiro学习五:使用springboot整合shiro。在前面学习四的基础上,增加shiro的缓存机制,源码讲解:认证缓存、授权缓存。

文章目录 前言1. 直接上代码最后在讲解1.1 新增的pom依赖1.2 RedisCache.java1.3 RedisCacheManager.java1.4 jwt的三个类1.5 ShiroConfig.java新增Bean 2. 源码讲解。2.1 shiro 缓存的代码流程。2.2 缓存流程2.2.1 认证和授权简述2.2.2 AuthenticatingRealm.getAuthentication…

Edge-TTS在广电系统中的语音合成技术的创新应用

Edge-TTS在广电系统中的语音合成技术的创新应用 作者&#xff1a;本人是一名县级融媒体中心的工程师&#xff0c;多年来一直坚持学习、提升自己。喜欢Python编程、人工智能、网络安全等多领域的技术。 摘要 随着人工智能技术的快速发展&#xff0c;文字转语音&#xff08;Te…

python3+TensorFlow 2.x(二) 回归模型

目录 回归算法 1、线性回归 (Linear Regression) 一元线性回归举例 2、非线性回归 3、回归分类 回归算法 回归算法用于预测连续的数值输出。回归分析的目标是建立一个模型&#xff0c;以便根据输入特征预测目标变量&#xff0c;在使用 TensorFlow 2.x 实现线性回归模型时&…

HarmonyOS应用开发快速入门

本节内容将帮助开发者学习如何构建一个全新的HarmonyOS应用&#xff0c;学习使用DevEco Studio创建新项目、使用预览器预览页面、了解基础组件如Image、Text等。 文章目录 一、介绍二、创建一个新项目三、页面结构总览四、自定义文本视图五、创建Image组件 一、介绍 根据本教程…

高级编码参数

1.跳帧机制 参考资料&#xff1a;frameskipping-hotedgevideo 跳帧机制用于优化视频质量和编码效率。它通过选择性地跳过某些帧并使用参考帧来预测和重建视频内容&#xff0c;从而减少编码所需的比特率&#xff0c;同时保持较高的视频质量。在视频编码过程中&#xff0c;如果…

CUDA学习-内存访问

一 访存合并 1.1 说明 本部分内容主要参考: 搞懂 CUDA Shared Memory 上的 bank conflicts 和向量化指令(LDS.128 / float4)的访存特点 - 知乎 1.2 share memory结构 图1.1 share memory结构 放在 shared memory 中的数据是以 4 bytes(即 32 bits)作为 1 个 word,依…

「AI学习笔记」深度学习进化史:从神经网络到“黑箱技术”(三)

在这篇文章中&#xff0c;我们将探讨深度学习&#xff08;DL&#xff09;这一领域的最新发展&#xff0c;以及它如何从传统机器学习&#xff08;ML&#xff09;中独立出来&#xff0c;成为一个独立的生态系统。深度学习的核心思想与我们大脑中的神经网络高度相似&#xff0c;因…