文明的升级依靠工具的升级:揭秘下一代云数据库引擎MyBase for PostgreSQL

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云原生数据库 PolarDB 分布式版,标准版 2核8GB
简介: 在MyBase中,PG引擎除了包含RDS所有的能力,还包含GIS、分词搜索、精准营销、复杂SQL、Oracle兼容扩展和图像识别等核心能力。

一、PostgreSQL引擎核心能力


640-24.png

PostgreSQL功能图


在MyBase中,PG引擎除了包含RDS所有的能力,还包含GIS、分词搜索、精准营销、复杂SQL、Oracle兼容扩展和图像识别等核心能力。


1.GIS


GIS是一个地理信息系统,随着移动的终端还有带GPS传感器的普及,实际很多的业务里都有经纬度的信息。


以共享单车为例,车内装有GPS系统,方便用户查看自己的行驶轨迹,同时后台可以做行为轨迹的分析,共享单车使用的热点等都与GIS相关。


针对GIS这块功能,我们有一个强大的时空内核研发团队在做支持,目前GIS相比较于开源的版本有50倍的性能提升,这里面主要体现在移动对象处理。


移动对象处理通常使用在公安缉查等方面,例如公安锁定了某位嫌疑人之后,可以通过移动对象信息查询到他的轨迹,根据嫌疑人的轨迹迅速锁定相似轨迹或有密切接触的对象,有效提高公安办案效率,是一个具有特殊社会价值的功能。


2.分词搜索


分词搜索是PG引擎里的一大特色。


分词搜索目前广泛存在于各个业务场景,如文档系统,社交聊天系统等。单独建一个搜索引擎需要很大的成本,包含硬件成本,软件成本,维护成本等。


对于企业来说,首先本身数据库的数据量并不算很大,其次单独建立一个搜索引擎,意味着要将数据库的数据同步到搜索引擎,将会引出许多问题,例如同步的延迟,如果是异构数据库的话可能导致数据不一致,因此单独建立一个搜索引擎对企业来说,性价比十分低。


PG引擎内置的分词搜索解决了企业的这个难题,且相较于传统关系型数据库,性能提升了1000倍。


3.精准营销


精准营销常见于销售业务相关场景。


精准营销通常涉及根据用户行为构造用户画像,然后查询用户的兴趣点,根据用户的兴趣点进行搜索,这里我们支持了向量相似的索引。


我们根据用户本身的特征或商品的特征进行数字化,就会储存浮点向量。然后我们基于浮点向量做相似检索,这种方式相较于全盘扫描,性能上有提升了1500倍,在千万级别的向量里可以做到毫秒级的相似召回。


4.复杂SQL


随着业务的发展,如今的业务已经不像以前那样 简单的增删改查,完全没有连表的查询。如今的业务,特别是企业上云,许多企业的ERP系统、CRM系统里的关系都特别复杂,可能存在几十上百张表的关联。


PG引擎针对这一块做出许多优化,相较于其他引擎,PG的性能提升20倍以上。


5.Oracle兼容扩展


目前PG在数据库领域的地位与Oracle旗鼓相当,是一个功能全面的产品,因此PG引擎内置Oracle兼容扩展包,可以兼容最常见的一些数据类型、函数和package。


6.图像识别


PG引擎与蚂蚁联合推出的图像识别插件:pase,这个插件相较于暴力计算的图像识别,性能提升了2万倍,已经被广泛应用于新零售商店、银行网点。



二、使用云数据库服务给DBA带来的问题


(一)问题一:架构、监控、优化等


  • 解决这些问题主要存在以下几个困难:
  1. 当无法解决架构问题时,许多用户会选择放弃原有数据库,选择其他类型的数据库产品重新构建数据库,这样往往导致原有的机器堆积,耗费高昂的人力、资源与精力,并且不一定能解决问题;
  2. 公司选择培养对应方面的人才来解决问题,但存在学习时间周期长,并且人才流失情况严重,对公司造成一定损失;
  3. 如果招聘相应的高端人才来解决问题,除了在招聘上的难度,还需要配备1对1的Backup防止特殊情况发生,这会造成工作强度不饱和,成本较高;
  4. 求助搜索引擎或者社区,响应时间过长,无法及时解决问题。


  • 针对以上问题,使用PostgreSQL有以下几个优点:
  1. 上千位资深PostgreSQL专家组成的资源池,7*24技术咨询;
  2. DBA可以将更多时间投入到业务优化、架构设计等关键事务,消除能效比较低的重复劳动,为企业创造更多价值。


(二)问题二:Bug


Bug分为社区内核Bug与插件Bug。


  • 常见的社区Bug解决方法:
  1. 报告给社区,用时1天左右;
  2. 等待社区修复,用时2~5天左右(理想情况);
  3. 下载社区Patch,自行验证,用时5天左右;
  4. 制定升级计划,升级,用时1天左右。


  • 常见的插件Bug解决方法:
  1. 报告插件作者,用时1天左右;
  2. 等待作者修复,用时5天以上,时长无法保证;
  3. 下载Patch,自行验证,用时5天左右;
  4. 升级插件,用时1天左右。


  • 针对Bug问题,使用阿里云PostgreSQL有以下好处:
  1. AliPG兼容开源PostgreSQL,阿里云专业内核团队为AliPG代码兜底;
  2. AliPG与公共云一套源码,大量商业用户应用的选择,有BUG尽早修复;
  3. 用户可在云端点升级版本按钮,或配置自动升级任务解决问题。


(三)问题三:无法满足业务需求


当前开源数据库在某些情况下可能无法满足业务需求,用户需要有内核研发能力才能自己添加功能,例如以下常见的社区版本无法满足的安全问题:

  1. DBA、SA有权查看、篡改、删除敏感数据;
  2. 普通用户可以通过Security Invoker属性来设置陷阱函数;
  3. 敏感信息(例如用户密码)可能明文出现在SQL审计日志、历史SQL命令、共享内存(例如会话状态、pg_stat_statements跟踪会话)、DBlink视图、外部表User Mapping的定义中。


  • 针对以上问题,使用PostgreSQL有以下几个优点:
  1. AliPG拥有大量商业用户,覆盖众多行业,AliPG围绕行业痛点,不断扩展实用功能;
  2. 自研插件18款(详见产品手册),覆盖GIS,冷热分离,分词搜索,图像识别,安全加固等场景。



三、PostgreSQL在MyBase的核心能力


阿里云提前洞察行业需求,用技术帮助客户突破商业边界。PostgreSQL核心能力主要体现在三个部分:更快的业务体验价值、更稳和更安全的核心业务必要能力,以下进行详细拆解分析。


(一)提升更快的业务体验价值:更快


阿里云在研发产品的同时一直与客户保持沟通与交流,了解行业场景存在的问题,阿里云基于这些场景问题做出如下优化:

  1. 图像识别、向量相似搜索
  2. 实时营销、用户画像
  3. 短视频、实时推荐
  4. GIS MOD移动对象处理


阿里云PostgreSQL使用了蚂蚁集团的人脸识别技术,在数据库里使用了新的索引结构。我们知道,如果要做到快速查询,需要在查询前做好预计算,或者让数据库存储适合查询。因此我们使用了两种图像搜索的算法,重新组织图像的特征值(即浮点),使得性能提升了20000倍。


我们通过与短视频或社交类行业的公司接触,根据用户的喜好在内核做了优化,在向量相似搜索方面取得了上千倍的性能提升。


实时营销中会有跟用户画像相关的数据组织,在移动对象的处理如协助公安办案等方面也有一个性能的大幅提升。


(二)核心业务必要能力:更稳


  • 更稳体现在Paas多租户场景:

大并发大量元数据、大量连接优化;

资源隔离优化。


在数据库中特别是在PG里面,如果连1万个连接再去跑TPCB的话,存在许多更新、插入的操作,导致性能直线下降。AliPG针对这个问题做了大量连接、进程内耗的优化。


所谓的租户业务场景如SaaS类的业务包含了许多企业,在这种数据库里会有上千万个Scheme,有许多原数据。这里可能出现资源之间相互争抢,某一企业使用时将资源全部用光,从而影响其他的企业。我们通过将资源隔离优化,从而使得企业在使用数据库时不会与其他企业产生资源争夺的情况。


(三)核心业务必要能力:更安全


  • 安全加固场景:

1)敏感信息加密, 函数调用陷阱规避;

2)SGX全加密;

3)最大保护、最高可靠、最高可用模式;

4)Slot Failover。


PG的社区版本存在函数调用陷阱的问题,例如某用户创建了一个视图,视图后面调用的Fuction设置为Security Invoke,表示判断这个函数的权限时是以调用这个函数的用户的权限判断的。当该用户为普通用户时,他执行Drop Database操作时,系统会报没有权限。但是如果用户将drop database封装到一个函数,并且把权限设置为上述模式,同时用户将它伪装为一个常见视图,当某位权限较大的用户,如DBA管理员上线看见这个视图并被迷惑且同意该操作后,则会完成Drop Database操作,造成重大损失。


阿里云PG解决了这样的问题,这样的函数陷阱在阿里云云端数据库是不存在的。


我们还支持保护模式,最高可靠、最高可用模式,这些在PG社区版本里面是不支持的。这意味着我们可以在两节点里实现全同步、半同步以及异步的效果,满足了不同行业对数据库可靠性的要求。


关于Slot Failover。用户在用一个开源数据库时,通常会用数据库的流复制做HA,在主节点里创建Slot做逻辑复制,例如业务里的某些表希望同步到另外的B业务中,只需要同步若干表而不是所有的数据。包括做增量的数据迁移、数据同步或异构同步,比如我要把你数据库里的数据同步到我们的消息队列,然后再通过消息队列同步到其他业务,这是目前业界非常通用的做法。


如果是以上情况,在PG社区版本一旦主备发生切换,Slot位点会丢失,因为在从库里没有那个位点,从而导致业务上的故障。


阿里PG在主库里面创建Slot会同步到从库,从而保证发生HA时Slot的信息不会丢失,从而解决了把数据库里的数据增量同步到其他业务的问题。


(四)MyBase


有些用户担心使用RDS后不过自由,那么PG引擎的MyBase是个不错的选择,它开放了OS权限,允许用户原来的系统整合到新系统,堪称RDS PLUS。


  • MyBase具备以下特点:

1)既要: 全自动(DB全生命周期管理,自动化运维、诊断),解放双手

-救DBA于水火


2)又要: 自主可控,随心所欲

-开放OS权限开放数据库ROOT用户

-开放调度策略,自定义超卖,实现超高性价比


3)还要:低成本、可定制、有内核兜(背)底(锅)

-内核Bug快速Fix,提新功能需求有研发支持。



相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
1月前
|
存储 关系型数据库 MySQL
一个项目用5款数据库?MySQL、PostgreSQL、ClickHouse、MongoDB区别,适用场景
一个项目用5款数据库?MySQL、PostgreSQL、ClickHouse、MongoDB——特点、性能、扩展性、安全性、适用场景比较
|
2月前
|
NoSQL 关系型数据库 MySQL
微服务架构下的数据库选择:MySQL、PostgreSQL 还是 NoSQL?
在微服务架构中,数据库的选择至关重要。不同类型的数据库适用于不同的需求和场景。在本文章中,我们将深入探讨传统的关系型数据库(如 MySQL 和 PostgreSQL)与现代 NoSQL 数据库的优劣势,并分析在微服务架构下的最佳实践。
|
9天前
|
关系型数据库 分布式数据库 数据库
PostgreSQL+Citus分布式数据库
PostgreSQL+Citus分布式数据库
40 15
|
2月前
|
SQL 关系型数据库 数据库
PostgreSQL数据库报错 ERROR: multiple default values specified for column "" of table "" 如何解决?
PostgreSQL数据库报错 ERROR: multiple default values specified for column "" of table "" 如何解决?
308 59
|
18天前
|
SQL 关系型数据库 数据库
PostgreSQL性能飙升的秘密:这几个调优技巧让你的数据库查询速度翻倍!
【10月更文挑战第25天】本文介绍了几种有效提升 PostgreSQL 数据库查询效率的方法,包括索引优化、查询优化、配置优化和硬件优化。通过合理设计索引、编写高效 SQL 查询、调整配置参数和选择合适硬件,可以显著提高数据库性能。
110 1
|
21天前
|
存储 关系型数据库 MySQL
MySQL vs. PostgreSQL:选择适合你的开源数据库
在众多开源数据库中,MySQL和PostgreSQL无疑是最受欢迎的两个。它们都有着强大的功能、广泛的社区支持和丰富的生态系统。然而,它们在设计理念、性能特点、功能特性等方面存在着显著的差异。本文将从这三个方面对MySQL和PostgreSQL进行比较,以帮助您选择更适合您需求的开源数据库。
82 4
|
1月前
|
SQL 关系型数据库 数据库
使用 PostgreSQL 和 Python 实现数据库操作
【10月更文挑战第2天】使用 PostgreSQL 和 Python 实现数据库操作
|
2月前
|
Oracle NoSQL 关系型数据库
主流数据库对比:MySQL、PostgreSQL、Oracle和Redis的优缺点分析
主流数据库对比:MySQL、PostgreSQL、Oracle和Redis的优缺点分析
384 2
|
2月前
|
缓存 关系型数据库 数据库
如何优化 PostgreSQL 数据库性能?
如何优化 PostgreSQL 数据库性能?
104 2
|
1月前
|
存储 关系型数据库 MySQL
四种数据库对比MySQL、PostgreSQL、ClickHouse、MongoDB——特点、性能、扩展性、安全性、适用场景
四种数据库对比 MySQL、PostgreSQL、ClickHouse、MongoDB——特点、性能、扩展性、安全性、适用场景

相关产品

  • 云原生数据库 PolarDB
  • 云数据库 RDS PostgreSQL 版
  • 云数据库 RDS