当前位置: 首页 > news >正文

数据库管理-第六十九期 另一种累(20230422)

数据库管理 2023-04-22

  • 第六十九期 另一种累
    • 1 国产数据库沟通
    • 2 问题
    • 3 我的建议
    • 总结

第六十九期 另一种累

Oracle 23c的相关内容先缓缓,有些数据库管理相关的还是得正式版发布后才好去做实验。这周相较于之前那种割接较多的累还有点不一样,这周陪着客户交流了大把国产数据库厂商,每次1-2个小时,需要全神贯注,协助客户提问。

1 国产数据库沟通

为啥要沟通的背景就不说了,这周以线上和线下方式沟通了人KingBase、AntDB、GoldenDB、DM、MogDB、Gbase,算上有意向还未沟通的还有GreatDB、OceanBase,和以前沟通过的TiDB、PolarDB、TDSQL等。
其中分布式占了大多数(即使现在没有也在做)。
本周沟通的除了达梦是自研的以外基本都是基于MySQL、PostgreSQL(含OpenGauss)或Informix二次开发(通俗点叫包装or套壳)的,通过单个数据库架构基本都只能实现OLTP,如果要组合OLAP或实现HTAP大多需要叠加更加复杂的架构。
下面对部分国产数据库的基本信息做个汇总:

数据库名称厂商数据库内核部署模式数据库模态
KingBase人大金仓基于PostgreSQL集中式OLTP
AntDB亚信基于PostgreSQL集中式、分布式OLTP
GoldenDB中兴基于MySQL分布式OLTP
DM达梦自研集中式、分布式OLTP
MogDB云和恩墨基于OpenGauss集中式OLTP
GBase南大通用基于MySQL、PostgreSQL、Informix集中式、分布式OLTP
TiDBPingCap自研分布式HTAP
OceanBase蚂蚁金服自研分布式HTAP
PolarDB阿里巴巴基于MySQL/PostgreSQL分布式OLTP
TDSQL腾讯基于MySQL分布式OLTP
GreatDB万里开源基于MySQL分布式HTAP

上面本周沟通的信息还算比较准确。有些以前沟通或还未直接沟通的信息可能不大准,欢迎大家指正。还有就是这个表不代表排名!!!

2 问题

在沟通过程中,其实还是暴露出不少问题:

  • 云底层
    其实这周沟通的基本上都能实现独立部署,但是之前沟通过的某些数据库是必须依赖配套的云底层(说白了就是用附加条款的方式绑死),但是众所周知,我客户这是不让的。
  • 分布式
    绝大多数使用分布式架构的国产数据库厂商基本上都在有意无意的避开分布式改造这件事情,其中需要涉及的代码改造、业务逻辑改造、数据逻辑改造要么不提要么就一笔带过,其实集中式换分布式需要避的坑,我在第三十六期写过,有兴趣的可以去看看(可能往后还会重新总结一次)。
  • 售前
    虽然说绝大多数国产数据库厂商的售前还是不错,也会有研发之类的技术做补充。但是不得不说,某些数据库厂商的售前真是垃圾(根据就是销售转的完全没技术背景),除了照本宣科以外基本就是一问三不知或者open yellow gun。
  • PPT
    之前在DBA群里有人问过,国产数据库排名,我回了一句是按照PPT排还是实际使用,嘿嘿。不得不说大多数厂商的PPT做的还是很不错的,但是“吹”的成分还是偏高,比如:某些功能仅PPT实现、某些项目PPT中已达成、吾乃国产之光(其余都是垃圾)、性能突破天际、我们没有问题等等。
  • 混乱
    这里的混乱主要是某些数据库的技术架构混乱、产品构成混乱、发展方向混乱和沟通混乱。
  • 马内
    在很多国产数据库眼中,似乎客户都是不差钱的主,单从替换的硬件需求层面,很多就不考虑客户实际情况(往多往好的整),更不会考虑客户是不是要在业务改造上花钱。看起来license便宜(还有买断制的)其实可能花更多的钱。

3 我的建议

根据客户要求我也做了一个国产数据库选型的很粗的建议:

  • 实现尽可能平滑、安全的迁移
    – 双平面数据库支持能力,支持业务回切
    – 减少代码改动量,需要全面支持语法、存储过程与触发器
    – 减少数据库逻辑层面改造(暂时不选择分布式,选分布式的话还是建议重构)
  • 数据库能力
    – 全面的硬件、操作系统、数据库管理监控工具,实现集中化管理、调优、告警、自愈等功能
    – 需要具备横纵向扩展能力,支持未来业务发展
    – 性能测试满足各业务系统要求,业务响应不能慢于当前环境
    –异地灾备能力,满足支持读写分离的可切换灾备架构或双活架构,RTO、RPO满足条件
    – 多租户能力,支持数据库硬件资源隔离
    – 一定程度的HTAP能力
  • 其他
    – 硬件的全面支持,需要支持国产CPU及其他硬件
    – 国产操作系统全面支持,欧拉、龙蜥
    – 原有硬件的少量改造,包含10GE以上网络(25GE、40GE等)、SSD(NVMe、SAS等)等,控制成本

当然还要根据实际的业务类型、业务压力、数据量综合讨论。这个肯定没有某些数据库服务大厂写的完善,写的好,但是是我这里真真切切的一线需求。

总结

最后说一句,这周某大佬还说过一句话“国产数据库, PPT是啥都行的, 研发都是抄的, 文档是没有的, 上线是要俄罗斯轮盘赌的, 上线后的常态是通宵在线改bug的”。替换很难,尤其是Oracle,再尤其是Exadata环境。
老规矩,不知道写了些啥。

相关文章:

数据库管理-第六十九期 另一种累(20230422)

数据库管理 2023-04-22 第六十九期 另一种累1 国产数据库沟通2 问题3 我的建议总结 第六十九期 另一种累 Oracle 23c的相关内容先缓缓,有些数据库管理相关的还是得正式版发布后才好去做实验。这周相较于之前那种割接较多的累还有点不一样,这周陪着客户交…...

Cesium入门之六:Cesium加载影像图层(ArcGIS、Bing、Mapbox、高德地图、腾讯地图、天地图等各类影像图)

Cesium加载影像图层 一、ImageryLayer类常用属性常用方法 二、ImageryLayerCollection类常用属性常用方法 三、ImageryProvider类常用属性常用方法 四、ImageryProvider子类1. ArcGisMapServerImageryProvider加载ArcGIS地图服务 2. BingMapsImageryProvider加载BingMap地图服务…...

Redis系列--redis持久化

一、为什么需要持久化 redis本身运行时数据保存在内存中,如果不进行持久化,那么在redis出现非正常原因宕机或者关闭redis的进程或者关闭计算机后数据肯定被会操作系统从内存中清掉。当然,redis本身默认采用了一种持久化方式,即RD…...

在外Windows远程连接MongoDB数据库【无公网IP】

文章目录 前言1. 安装数据库2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射2.3 测试随机公网地址远程连接 3. 配置固定TCP端口地址3.1 保留一个固定的公网TCP端口地址3.2 配置固定公网TCP端口地址3.3 测试固定地址公网远程访问 转载自远程内网穿透的文章:公网远…...

学网络安全怎么挖漏洞?怎么渗透?

前言 有不少阅读过我文章的伙伴都知道,我从事网络安全行业已经好几年,积累了丰富的经验和技能。在这段时间里,我参与了多个实际项目的规划和实施,成功防范了各种网络攻击和漏洞利用,提高了安全防护水平。 也有很多小…...

KL散度和交叉熵的对比介绍

KL散度(Kullback-Leibler Divergence)和交叉熵(Cross Entropy)是在机器学习中广泛使用的概念。这两者都用于比较两个概率分布之间的相似性,但在一些方面,它们也有所不同。本文将对KL散度和交叉熵的详细解释…...

浪涌保护器:保护电子设备免受雷击侵害

引言: 随着电子设备在现代生活和工业领域的普及和广泛应用,雷击对电子设备的损害成为一个严重的问题。浪涌保护器作为一种重要的防雷设备,发挥着至关重要的作用。本文将介绍浪涌保护器的防雷作用、行业应用,并重点介绍浪涌保护器…...

js绘制的红心

看腻歪了粒子特效的红心&#xff0c;今天给各位整个线条的&#xff0c;效果图如下&#xff1a; 表白显圣神器&#xff0c;你值得拥有&#xff0c;代码如下&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"…...

十、Feign客户端

目录 1、在springcloud-order项目中引入Feign客户端的依赖 2、在server-order服务的启动类中添加注解EnableFeignClients 3、使用FeignClient注解声明Feign客户端需要调用的远程接口 3.1、server-pay服务提供远程接口Controller 3.2、server-member服务提供远程接口Contro…...

登录appuploader

转载&#xff1a;登录appuploader 常规使用登录方法 双击appuploader.exe 启动appuploader 点击底部的未登录&#xff0c;弹出登录框 在登录框内输入apple开发者账号 如果没有apple开发者账号&#xff0c;只是普通的apple账号&#xff0c;请勾选上未支付688 然后软件会提示…...

都别吹牛逼了,2个英语指令简单评测便知ChatGPT、博弈Ai、文心一言、通义千问、讯飞星火真实水平

一、博弈Ai&#xff1a;GPT3.5版 演示&#xff1a;https://chat.bo-e.com/ 1、充当英语发言助手 评分&#xff1a;10分 总结&#xff1a;完整满足了指令需求 2、充当英汉互译器 评分&#xff1a;8分 总结&#xff1a;基本满足了我的指令需求。但是有点啰嗦&#xff0c;扣…...

使用Spring Boot快速搭建项目:减少配置,提升开发效率

使用Spring Boot快速搭建项目&#xff1a;减少配置&#xff0c;提升开发效率 一、Spring Boot简介1 Spring Boot的起源2 Spring Boot的核心特点3 Spring Boot的优势 二、Spring Boot快速搭建项目1 Spring Boot的项目搭建方式使用Spring Initializr创建项目使用Spring Boot CLI创…...

(2)数码管

LED数码管:数码管是一种简单、廉价的显示器&#xff0c;是由多个发光二极管封装在一起组成"8"字器件 51单片机是共阴极连接 74HC245这个芯片有什么作用呢&#xff1f;解&#xff1a;这个芯片被称之为双向数据缓冲器这个芯片的作用&#xff0c;用来进行数据缓冲(提高驱…...

赫夫曼树和赫夫曼编码详解

目录 何为赫夫曼树&#xff1f; 赫夫曼树算法 赫夫曼编码 编程实现赫夫曼树 编程实现赫夫曼编码 编程实现WPL 总代码及分析 何为赫夫曼树&#xff1f; 树的路径长度&#xff1a;从树根到每一结点的路径长度之和 结点的带权路径长度&#xff1a;从树根到该结点的路径长度…...

unity UGUI系统梳理 -交互组件

概述 unity 中的交互组件可用于处理交互&#xff0c;例如鼠标或触摸事件以及使用键盘或控制器进行的交互 1、按钮 (Button) Button详解 2、开关 (Toggle) Background&#xff1a;背景图片&#xff0c;控制toggle组件的背景颜色改变&#xff0c;从而展示此物体是否被选中的…...

HTTP第15讲——HTTP的连接管理

短连接 HTTP 协议最初&#xff08;0.9/1.0&#xff09;是个非常简单的协议&#xff0c;通信过程也采用了简单的“请求 - 应答”方式。 它底层的数据传输基于 TCP/IP&#xff0c;每次发送请求前需要先与服务器建立连接&#xff0c;收到响应报文后会立即关闭连接。 因为客户端与…...

深度剖析Mybatis-plus Injector SQL注入器

背景 在项目中需要同时操作Sql Server 以及 MySQL 数据库&#xff0c;可能平时直接使用 BaseMapper中提供的方法习惯 了&#xff0c;不用的话总感觉影响开发效率&#xff0c;但是两个数据库的SQL语法稍微有点差别&#xff0c;有些暴露的方法并不能直接使用&#xff0c;所以便想…...

【Mysql实战】使用存储过程和计算同比环比

背景 同环比&#xff0c;是基本的数据分析方法。在各类调研表中屡见不鲜&#xff0c;如果人工向前追溯统计数据&#xff0c;可想而知工作量是非常大的。 标题复制10行&#xff0c;并且每行大于10个字符【源码解析】SpringBoot接口参数【Mysql实战】使用存储过程和计算同比环比…...

ChatGPT的前世今生,到如今AI领域的竞争格局,本文带你一路回看!

73年前&#xff0c;“机器思维”的概念第一次被计算机科学之父艾伦图灵&#xff08;Alan Turing&#xff09;提出&#xff0c;从此&#xff0c;通过图灵测试成为了人类在AI领域为之奋斗的里程碑目标。 73年后的今天&#xff0c;在AI历经了数十年的不断进化、迭代后&#xff0c…...

如何在JavaScript中获取当前时间yyyymmddhhmmss? (六种实现方式)

## 介绍 在编写JavaScript代码时&#xff0c;我们经常需要获取当前日期和时间。在本文中&#xff0c;我们将介绍几种获取当前时间并将其格式化为 yyyymmddhhmmss 的字符串的方法。 方法一&#xff1a;使用Date对象 在JavaScript中&#xff0c;我们可以使用 Date 对象来获取当…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

Spring AI与Spring Modulith核心技术解析

Spring AI核心架构解析 Spring AI&#xff08;https://spring.io/projects/spring-ai&#xff09;作为Spring生态中的AI集成框架&#xff0c;其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似&#xff0c;但特别为多语…...

重启Eureka集群中的节点,对已经注册的服务有什么影响

先看答案&#xff0c;如果正确地操作&#xff0c;重启Eureka集群中的节点&#xff0c;对已经注册的服务影响非常小&#xff0c;甚至可以做到无感知。 但如果操作不当&#xff0c;可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同&#xff0c;结合所安装的tensorflow的目录结构修改from语句即可。 原语句&#xff1a; from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后&#xff1a; from tensorflow.python.keras.lay…...

JavaScript 数据类型详解

JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型&#xff08;Primitive&#xff09; 和 对象类型&#xff08;Object&#xff09; 两大类&#xff0c;共 8 种&#xff08;ES11&#xff09;&#xff1a; 一、原始类型&#xff08;7种&#xff09; 1. undefined 定…...

CSS | transition 和 transform的用处和区别

省流总结&#xff1a; transform用于变换/变形&#xff0c;transition是动画控制器 transform 用来对元素进行变形&#xff0c;常见的操作如下&#xff0c;它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...

并发编程 - go版

1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程&#xff0c;系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...

苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会

在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...

消息队列系统设计与实践全解析

文章目录 &#x1f680; 消息队列系统设计与实践全解析&#x1f50d; 一、消息队列选型1.1 业务场景匹配矩阵1.2 吞吐量/延迟/可靠性权衡&#x1f4a1; 权衡决策框架 1.3 运维复杂度评估&#x1f527; 运维成本降低策略 &#x1f3d7;️ 二、典型架构设计2.1 分布式事务最终一致…...