本文目录:
TDSQL TCA 分布式实例特点初探分布表和SQL透传
TDSQL分布式实例通过Proxy接口提供和mysql兼容的连接方式,用户通过IP地址、端口号以及用户名、密码进行连接:
(注意:公有云TDSQL需要在实例页面申请公网连接地址)
连接示例:mysql -h172.21.32.13 (proxy地址) -P3306(proxy端口) -utest (数据库账号) -p
与普通的mysql连接方法一致,分布式实例兼容mysql的协议和语法,支持SSL加密等功能。当然,您也可以使用navicat、 jdbc、 odbc、 php、 Python等来连接分布式TDSQL实例。
1、TDSQL分布式实例支持表的类型介绍
a、分布式表: 即水平拆分表,也成为“分表”,该表从业务视角是一张完整的逻辑表,但后端根据分表键(shardkey)的HASH值将数据分布到不同的物理节点组(SET)中。
b、普通表: 又名Noshard表,即无需拆分的表,和传统集中式数据库中的表一致,且没有做任何特殊处理的表,目前分布式实例将该表默认存放在第一个物理节点组(set)中。
c、广播表: 又名小表广播技术,即设置为广播表后,该表的所有操作都将广播到所有物理节点组(set)中,每个set都有该表的全量数据,常用于业务系统关联查询较多,修改较少的小表或配置表等。
表类型选用注意事项:
在分布式实例中,如果两张表分表键相等,这意味着两张表**相同的分表键对应的行**,存储在相同的物理节点组中。这种场景通常被称为组拆分(groupshard),会极大的提升业务联合查询等语句的处理效率。由于单表默认放置在第一个set上,如果在分布式实例中建立大的单表,则会导致第一个set的负载太大。除非特别需要,在分布式实例中尽量使用分布式表,这也是分布式实例的特点之一。
2、TDSQL分布式实例表的创建
接下来我们来看下分布式数据库TDSQL所支持的三种类型表的使用方法和注意事项。
a、分布式表的使用
简述:普通的分表创建时必须在最后面**指定分表键(shardkey)的值,该值为表中的一个字段名字,会用于后续sql的路由选择。连接到TDSQL分布式实例后,我们创建一个本次操作使用的数据库名为:testdb
mysql create database testdb;
mysqluse testdb;
接下来我们创建分布式表,命名以分布式拼音首字母命名
**建表语句1:**
MySQL testdb create table fbs ( a int, b int, c char(20),primary key (a),unique key u_1(a,c) ) shardkey=a;
Query OK, 0 rows affected (0.07 sec)
**建表语句2:**
MySQL testdb create table fbs2 ( a int, b int, c char(20), primary key (a,b) ) shardkey=a;
Query OK, 0 rows affected (0.09 sec)
b、广播表的创建
简述:支持建小表(广播表),此时该表在所有set中都是全部数据,这个主要方用于跨set的join操作,同时通过分布式事务保证修改操作的原子性,使得所有set的数据是完全一致的 。
**语句:**
MySQL testdb create table gbb(a int,b int key) **shardkey=noshardkey_allset;**
Query OK, 0 rows affected (0.03 sec)
c、传统普通表
简述:支持建立普通的表,语法和传统mysql完全一样,此时该表的数据全量存在第一个set节点中,所有该类型的表都放在第一个set中。
MySQL testdb create table ptb(a int ,b varchar(10));
Query OK, 0 rows affected (0.03 sec)
注意事项:
1、在分布式实例中,分布式表shardkey对应后端数据库的分区字段,因此必须是主键以及所有唯一索引的一部分, 否则可能无法完成建表操作。
2、分布式表shardkey字段的值不包含中文, 否则proxy会转换字符集可能会出错。另外SQL语法上如:shardkey=a 一般放在SQL语句最后来写。
3、TDSQL分布式实例表的数据操作
为了更好的发挥分布式架构的优势,在进行SQL操作时和传统数据库还是有部分差异。接下来我们从数据库的插入,更新,删除方面分别来看有哪些注意事项。
======INSERT插入操作=======
**插入语句1:**
MySQL testdb insert into fbs(a,b) values(10,1000);
Query OK, 1 row affected (0.00 sec)
**插入语句2:**
MySQL testdb insert into fbs values(1,10,1000);
或
MySQL testdb insert into test1 (b,c) values(100,"record3");
ERROR 810 (HY000): Proxy ERROR:sql is too complex,need to send to only noshard table.Shard table insert must has field spec
注意:语句2报错的原因insert时字段需要包含shardkey,否则会拒绝执行该sql,因为Proxy不知道该sql发往哪个后端分片节点。
=====UPDATE、DELETE更新、删除操作=====
更新语句1:
MySQL testdb update fbs set b=2000 where a=10;
Query OK, 1 row affected (0.00 sec)
更新语句2:
MySQL testdb update fbs set b=2000 ;
ERROR 658 (HY000): Proxy ERROR: Join internal error: update query has no where clause
删除操作:
MySQL testdb delete from fbs;
ERROR 913 (HY000): Proxy ERROR:Join internal error: delete query has no where clause
注意事项:
1、出于数据操作安全上和减少人为误操作导致数据丢失情况的出现,TDSQL禁止update 无 where 条件的更新动作。
2、同样的delete操作无where条件也会被禁止执行,如果确认要删除表数据或表,建议备份后用truncate或drop方式操作。
3、同样的update操作时尽量避免更新shardkey字段,因为影响Proxy中的路由更新,会导致错误。
1、TDSQL透传功能介绍
对于分布式实例,会对SQL进行语法解析,有一定的限制,如果用户想在某个set中获取单个节点数据,或在指定节点执行SQL,可以使用TDSQL的透传SQL的功能。
使用透传功能,我们需要重新连接登录TDSQL分布式实例时指定 **- c选项**。普通登录方式,不支持指定节点执行SQL的透传功能。
登录如下:
mysql -h172.21.32.13 (proxy地址) -utest -P3306 -p -c(透传必须指定-c)
2、TDSQL透传操作演示
首先我们重新登陆TDSQL分布式实例: mysql -h172.21.32.13 -utest -P3306 -p -c
仍旧切换使用testdb数据库。
a、查看分布式实例set节点
使用/*proxy*/show status 查看当前的TDSQL分布式实例的节点信息,共有两个set ,分别为set_1605181898_1、set_1605181972_3
MySQL testdb /*proxy*/show status ;
+-----------------------------+-------------------------------------------------------------------+
| status_name | value |
+-----------------------------+-------------------------------------------------------------------+
| cluster | group_1605181791_302290 |
| **set_1605181898_1:ip | 10.53.179.14:4322;s1@10.53.178.227:4322@1@IDC_GZ_YDSS0301_79263@0 |
| set_1605181898_1:hash_range | 0---31 |
| **set_1605181972_3:ip | 10.53.179.14:4323;s1@10.53.178.227:4323@1@IDC_GZ_YDSS0301_79263@0 |
| set_1605181972_3:hash_range | 32---63 |
| set | set_1605181898_1,set_1605181972_3 |
+-----------------------------+-------------------------------------------------------------------+
6 rows in set (0.00 sec)
b、演示数据插入
我们针对之前创建的fbs分布式表进行数据的插入
MySQL testdb insert into fbs(a,b,c) values(10,1,'AAA'),(20,2,'bbb'),(30,3,'ccc'),(40,4,'dddd'),(50,5,'eee'),(60,6,'fff'),(70,7,'ggg'),(80,8,'hhhh');
MySQL testdb select * from fbs order by 1;
+----+------+------+
| a | b | c |
+----+------+------+
| 10 | 1 | AAA |
| 20 | 2 | bbb |
| 30 | 3 | ccc |
| 40 | 4 | dddd |
| 50 | 5 | eee |
| 60 | 6 | fff |
| 70 | 7 | ggg |
| 80 | 8 | hhhh |
+----+------+------+
8 rows in set (0.00 sec)
c、透传查看数据在各个节点的分布情况
MySQL testdb /*proxy*/show status;
+-----------------------------+-------------------------------------------------------------------+
| status_name | value |
+-----------------------------+-------------------------------------------------------------------+
| cluster | group_1605181791_302290 |
| **set_1605181898_1:ip | 10.53.179.14:4322;s1@10.53.178.227:4322@1@IDC_GZ_YDSS0301_79263@0 |
| set_1605181898_1:hash_range | 0---31 |
| set_1605181972_3:ip | 10.53.179.14:4323;s1@10.53.178.227:4323@1@IDC_GZ_YDSS0301_79263@0 |
| set_1605181972_3:hash_range | 32---63 |
| set | set_1605181898_1,set_1605181972_3 |
+-----------------------------+-------------------------------------------------------------------+
6 rows in set (0.00 sec)
查看数据在set_1605181898_1 节点上的分布
MySQL testdb /*sets:set_1605181898_1*/select * from fbs order by 1;
+----+------+------+------------------+
| a | b | c | info |
+----+------+------+------------------+
| 10 | 1 | AAA | set_1605181898_1 |
| 30 | 3 | ccc | set_1605181898_1 |
| 40 | 4 | dddd | set_1605181898_1 |
| 50 | 5 | eee | set_1605181898_1 |
| 80 | 8 | hhhh | set_1605181898_1 |
+----+------+------+------------------+
5 rows in set (0.00 sec)
查看数据在set_1605181972_3节点上的分布
MySQL testdb /*sets:set_1605181972_3*/select * from fbs order by 1;
+----+------+------+------------------+
| a | b | c | info |
+----+------+------+------------------+
| 20 | 2 | bbb | set_1605181972_3 |
| 60 | 6 | fff | set_1605181972_3 |
| 70 | 7 | ggg | set_1605181972_3 |
+----+------+------+------------------+
3 rows in set (0.00 sec)
d、通过shardkey分片号查看数据
MySQL testdb /*shardkey:2*/select * from fbs order by 1;
+----+------+------+
| a | b | c |
+----+------+------+
| 20 | 2 | bbb |
| 60 | 6 | fff |
| 70 | 7 | ggg |
+----+------+------+
3 rows in set (0.00 sec)
支持透传种类和格式:
1、set名字可以通过/*proxy*/show status查询
2、/*sets:set_1名称*/ 透传指定节点
3、/*sets:allsets*/ 透传所有节点
4、/*shardkey:10*/ 透传到shardkey分片对应的set
5、支持透传sql到对应的一个或者多个set
分布式表的DDL部分的语句限制:
暂不支持CREATE TABLE ... LIKE
暂不支持CREATE TABLE ... SELECT
暂不支持CREATE TEMPORARY TABLE
暂不支持CREATE/DROP/ALTER SERVER/LOGFILE GROUP/
暂不支持ALTER对分表键(shardkey)进行重命名,不过可以修改类型
分布式表的DML部分的语句限制:
暂不支持SELECT INTO OUTFILE/INTO DUMPFILE/INTO LOAD DATA导出
暂不支持INSERT ... SELECT
暂不支持UPDATE 分布式shardkey列的值
本操作主要是面向传统数据库的开发者或者DBA用户,让大家能够初步入手了解分布式数据库的特点。另外分布式数据库在架构上提供了灵活的读写分离模式,在SQL上支持全局的order by, group by, limit操作,支持聚合函数,跨set节点的join、子查询、支持分布式事务,传统数据库所支持的大部分操作在分布式数据库中得到继承。分布式数据库是在传统数据库的基础之上发展起来的,对传统集中式的数据库有较好的兼容性,对SQL语句语法的使用上兼容大部分SQL1999,SQL2003标准,且对SQL的ACID特性都予以支持。分布式数据库在逻辑上是一个独立完整的数据库,但在架构上和物理上采用 多节点分片方式,经过内部算法将数据打散分布来到不同节点存储数据,对前端业务屏蔽后端的复杂架构,并且自身具备数据的最终一致性访问,可用性和分区容灾等特性的数据库。希望本次操作能给大家带来一些对分布式数据库TDSQL的一些认识和收获。
*禁止转载,可转发(转发文章请注明出处)
TDPub企业级分布式关系数据库
gbase哪个证书要花钱
国产数据库浪潮之下,学习国产数据库的人越来越多,国产数据库认证的含金量也越来越高。获得国产数据库相关认证的小伙伴,在求职、晋升等方面都具有极大的优势。小编整理了国产数据库免费认证汇总,想要完善知识体系,系统学习并获得免费认证的朋友,看这一篇就够了!
目录
TiDB
认证介绍
学习方式
OceanBase
认证介绍
学习方式
GBase
认证介绍
学习方式
腾讯云
认证介绍
学习方式
国产数据库认证考试指南汇总
TiDB
TiDB是 PingCAP 公司自主设计、研发的开源分布式关系型数据库,目前PingCAP Education 共推出了 PCTA PCTP 两门在线认证考试,两门在线认证都可以免费获得。
认证介绍
PCTA ( PingCAP Certified TiDB Associate )是 PingCAP 公司认证 TiDB 数据库专员的缩写。 PCTA 要求具备安装部署及日常运维分布式关系型数据库的能力。PCTA 需要学习并熟练掌握 TiDB 架构原理、安装部署、周边工具等基础知识。
PCTP ( PingCAP Certified TiDB Professional )是 PingCAP 公司认证 TiDB 数据库专家的缩写 。PCTP 要求具备管理大型分布式关系型数据库集群的能力。 PCTP 需要学习并熟练掌握 TiDB 的深度原理及高级 Feature、性能调优、SQL 优化、故障排除和高可用架构等进阶内容。 要成为 PCTP 必须先获得 PCTA 认证。
PCTA考取后,才可以考 PCTP,PCTP难度大于 PCTA。顺利通过 PCTA / PCTP 认证考试,即可获得相应认证证书。
学习方式
直接在官网: 报名,课程进度达到一定值,即可报名考试。
1、PCTA 认证考试。 学习《301 TiDB 系统管理基础》课程,学习进度达到60%及以上即可报名考试。考试时长 60 分钟,共 60 道题(单选 30 道,多选 30 道,每题 1 分)满分 60 分, 36 分为及格 。认证证书(电子版)将于考试结束后 1 个工作日内发放,一经发放,长期有效。
最近报名时间: 2022-06-04 00:00至2022-06-20 00:00
最近考试时间: 2022-06-23 20:00至2022-06-23 21:05
2、PCTP 认证考试。 PCTP 认证考试为远程闭卷考试,学习《302 TiDB 高级系统管理》课程进度达到80%及以上即可报名参加考试,考试时长 90 分钟,共 70 道题(单选 35 道,多选 35 道,每题 1 分)满分 70 分, 42 分为及格 。 认证证书(电子版)将于考试结束后 2 个工作日内发放。证书一经发放,长期有效。六月PCTP考试已结束,大家可以在官网关注七月认证时间。官网报名费900元,可以通过以下两种方式获得免费考试兑换码:
1)4000 社区积分可兑换 1 个 PCTP 考试兑换码。
2)成为 TiDB 社区版主,版主任职满 6 个月,可获得 1 个 PCTP 认证考试兑换码。
OceanBase
OceanBase是由蚂蚁集团完全自主研发的企业级分布式关系数据库,目前推出了OBCA、OBCP 以及OBCE三种认证,其中OBCA(OceanBase 数据库认证专员)目前限时免费,可在官网: 报名。
认证介绍
OBCA 认证主要讲解 OceanBase 的发展历程、应用案例、产品架构、核心功能、部署安装等知识。帮助您理解多副本一致性协议、数据可靠及高可用、在线水平扩展、分布式事务等 OceanBase 的重要特性。OBCA 认证主要面向具备 IT 通用基础能力的学员,了解至少一门关系型数据库(MySQL 或者 Oracle),对分布式系统或分布式事务有基本了解,适合初级数据库管理员,初级应用开发人员,合作伙伴驻场服务人员等。
学习方式
在OceanBase官网平台注册登录,进行个人实名认证后,点击OBCA认证考试,即可免费报名。目前OBCA 认证培训有线上、线下两种方式参与,线上学习有六章视频课程。OBCA的考试题目一共50道题(从题库中随机抽取)。其中15道判断题(每题1分)、20道单选题目(每题2分)、15道多选题目(每题3分),总分为100分,通过分数为60分。
OBCA考试现阶段为每位考生提供3次免费考试机会,考生每天限考1次。考试通过以后,可以在OceanBase官网查询领取OBCA证书,证书终身有效。
GBase
GBase是南大通用数据技术有限公司推出的自主品牌的数据库产品,GBASE继续在今年暑假期间,举办“千人优学-GBase数据库大学生专场实训”培训,专为在校大学生量身定做、全程免费的GBase 8s GDCA认证培训。
认证介绍
面向对国产数据库感兴趣、有意愿未来从事数据库交付运维、售前支持的在校学生,通过课程,了解国产数据库,掌握GBase 8s原理及基本运维开发。考试通过者免费获得GBase管理工程师认证证书(电子)。
学习方式
整个课程分为学习和考试2个阶段,14天学习(内含1次模拟考试),2次认证考试机会,整个课程以在线学习平台组织培训考试,通过群内专业老师答疑,2次直播说明答疑,通过科学合理的安排,循序渐进、轻松掌握国产数据库基础知识。认证考试成绩60分(含)以上课程及格,可获得实训学分;80分(含)以上获得GBase 8s GDCA认证证书(电子版);低于60分的同学可申请1次补考。
学习日期:6月20-7月3日 每天解锁一节课
考试日期:7月7日 19:00-21:00 (答题时长60分钟)
补考日期:7月9日 19:00-21:00 (答题时长60分钟)
具体报名方式:
腾讯云
腾讯云推出的“云梯计划”,为学生开发者及高校提供全面的腾讯云学习、实战资源,助力未来开发者登上筑梦云梯。学生群体完成学生认证后,可以免费上认证课程、免费获得动手实验课程,最后能获得8折优惠券报名认证考试,认证证书两年内有效。具体四项认证如下图所示:
认证介绍
腾讯云从业者认证是云计算行业从业者的初级技能认证,通过该认证可有效验证是否具备掌握云计算基础知识以及理解腾讯云基础产品的功能和使用场景的能力。适用于初入云计算行业,计划从事售前工作,或逐步向运维、架构等角色提升的人员。
腾讯云开发工程师认证是针对云上业务应用开发工程师的技能认证。通过该认证,可有效验证是否具备将传统应用重构并迁移上云的能力,以及基于腾讯云进行云原生应用和分布式微服务的设计和开发能力。适用于腾讯云开发工程师,负责云应用程序开发的人员。
腾讯云运维工程师认证是针对腾讯云产品运维人员的技能认证,通过该认证,可有效验证是否具备腾讯云基础产品的部署、监控、运维能力。适用于从事运维腾讯云产品和服务的人员,负责在云上部署业务的技术人员,保障云上业务正常稳定运行的维护人员。
腾讯云架构工程师认证是针对云解决方案架构师的技能认证,通过该认证,可有效验证是否具备设计中小型云架构的能力,根据业务规划高可用、高安全、成本优化的云架构方案。适用于腾讯云架构设计师,负责分析业务特性,并进行云上业务架构设计的技术人员。
学习方式
您想获得相关认证,需要按照下列步骤操作:
1、在官网认证页面: 完成学生认证。
2、领取相关课程以及实验资源,并学习。
3、获得8折优惠券,报名参与认证考试。
考试时间 90分钟
考试总分 100分
考试题型 60单选 + 20多选 + 不计分测试
通过条件 70分及以上
国产数据库认证考试指南汇总
目前国产数据库绝大多数都是付费认证培训,也有一部分免费认证是限时的,大家可以多多关注国产数据库各官网动态。国产数据库认证考试可参考下方表格:
厂商 等级 认证名称 培训认证费用
达梦 入门 DAE认证——达梦助理工程师
达梦 初级 DM8-DCA认证——达梦认证管理员 4800元
达梦 中级 DM8-DCP认证——达梦认证专家 7800元
达梦 高级 DCM认证——达梦认证大师
PingCAP 初级 PCTA认证——TiDB认证数据库专员 限时免费
PingCAP 中级 PCTP认证——TiDB认证数据库专家 1200元
华为 初级 HCIA-GaussDB 认证——华为认证GaussDB数据库工程师 200USD
华为 初级 OGCA认证——openGauss初级管理员认证 2100元(限时优惠)
华为 中级 OGCP认证——openGauss中级管理员认证 待上线
华为 高级 OGCE认证——openGauss高级管理员认证 待上线
华为 中级 HCIP-GaussDB-OLAP 认证——华为认证GaussDB OLAP数据库高级工程师 300USD
华为 中级 HCIP-GaussDB-OLTP 认证——华为认证GaussDB OLTP数据库高级工程师 300USD
蚂蚁金服 初级 OBCA 认证——OceanBase 数据库认证专员 限时免费
蚂蚁金服 中级 OBCP 认证——OceanBase 数据库认证专家 6000元
阿里云 初级 ACA认证——阿里云云原生数据库PolarDB助理工程师 600元
阿里云 中级 ACP认证——阿里云云原生数据库PolarDB工程师 1200元
阿里云 高级 ACE认证
腾讯云 初级 TCA认证—— 腾讯云TBase数据库交付运维初级工程师 1200元
腾讯云 初级 TCA认证—— 腾讯云TDSQL数据库交付运维初级工程师 1200元
腾讯云 中级 TCP认证——腾讯云TBase数据库交付运维工程师 1800元
腾讯云 中级 TCP认证——腾讯云TDSQL数据库交付运维工程师(MySQL/PostgreSQL) 1800元
腾讯云 高级 TCE认证——数据库交付运维级工程师-腾讯云TDSQL(MySQL/PostgreSQL) 2400元
人大金仓 初级 KCA认证 200元
人大金仓 中级 KCA认证 200元
人大金仓 高级 KCM认证 待添加
巨杉 初级 SCDA认证——巨杉数据库助理工程师 599元
巨杉 中级 SCDP认证——巨杉数据库中级工程师 1599元
巨杉 中级 SCDD认证——巨杉数据库开发工程师 1599元
云和恩墨 初级 MGCA 1800元
云和恩墨 中级 MGCP 1800元
云和恩墨 高级 MGCE 1800元
👉点击: 查看国产数据库认证考试指南汇总。👏👏欢迎各位墨友在评论区补充其他国产数据库免费/付费认证,让我们一起学习,一起成长!
更多阅读:
《国产数据库认证考试指南汇总》:
《国产数据库考试资料汇总》:
国产数据库
免费
tidb
oceanbase
gbase
最后修改时间:2022-06-16 16:19:17
「喜欢文章,快来给作者赞赏墨值吧」
赞赏
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
惭愧小七
软考(计算机技术与软件专业技术资格(水平)考试),国家级的考试,不存在包过、题库这种情况,很值得考的;
2022-11-26
点赞
回复
严少安
PCTA认证 -- 10月起收费
OBCP -- 下周开始升级为V3,考试内容和形式都有所变化
2022-07-11
1
2
墨天轮福利君 : 感谢补充!
严少安 : @墨天轮福利君 GBase 还有 GBase 8a 认证
相关阅读
墨天轮2022年度数据库获奖名单
2022年中国数据库排行榜年终盘点
2023年1月中国数据库排行榜:OceanBase 持续两月登顶,前四甲青云直上开新局
2022年墨天轮数据库大调查中奖名单火热出炉!
收官!OceanBase x 墨天轮第五届技术征文大赛获奖名单公布!
PingCAP 合作伙伴学习加速营第四期开始招募啦!
TiDB 荣获日本“你未来想用的数据库”第一名
OceanBase 社区版 4.0 离线方式升级bp1至bp2 指南(含避坑总结)
【DBA100人】白鳝:一直往上走,从程序员到数据库专家
方案精讲丨TiDB 多业务融合方案(上)
对话阿里云李飞飞:关于云原生数据库的五大预判
作者:王慧贤
数据存储、数据分析、数据安全......如今,围绕“数据”的话题越来越多,离人们的生活也越来越近。
从陌生到熟悉,数据不仅“出圈”,甚至已然站在了C位。去年,中央发布的《关于构建更加完善的要素市场化配置体制机制的意见》中明确表示,继土地、劳动力、资本、技术后,数据成为第五大生产要素。
步入信息化时代后,数据库、操作系统与中间件作为计算机最基础的三大软件,支撑着企业的正常运行。
当数据成为生产要素后,必然会迎来爆发式增长,企业的数据存储和处理需求将进一步释放。更重要的是,疫情加快了数字化转型的脚步,更加速了企业的上云速度。
从信息化到数字化,时代的变革,总会带来商业世界的变化。如何在云原生架构下使用数据库,成为企业的痛点和云厂商的机会,亚马逊AWS的CTO Werner Vogels曾多次强调:“数据库是云计算的终极之战。”
在数智化时代,云原生到底意味着什么?云原生数据库和传统数据库相比,核心优势是什么?是否把数据库搬上云就是云原生?基于这些问题,雷锋网与阿里巴巴集团副总裁、阿里云数据库产品事业部负责人李飞飞展开一场对话。
国产云原生数据库,摆脱「切肤之痛」
如今,数据库的商业世界,因为云的出现与发展,分成了两大派系。
一派是以Oracle为代表的传统商用数据库,一派是以国外AWS、国内阿里云为代表的云原生数据库,去“IOE革命”下的产物。
其实,早期较为火热的数据库种类有三种,层次式数据库、网络式数据库和关系型数据库。
在《浪潮之巅》一书中,作者吴军写下了这样的观点:“Oracle 的兴起很大程度上靠的是它最早看到关系型数据库的市场前景,并且在商业模式上优于 IBM。”
因此,在云原生数据库“入世”之前,数据库的天下一直是Oracle的,国内大部分互联网公司都不得不采用Oracle+IBM小型机+EMC的模式来维持正常运营。
高昂的费用,使得对于数据库需求较大的互联网巨头“忍无可忍”。
2009年,阿里巴巴的Oracle RAC 集群节点数达到了创记录的20个。可由于Oracle并没有弹性扩展的功能,只能按照峰值流量购买小型机和数据库,导致阿里将业务上涨带来的大部分利润,都支付给了Oracle。
第二年,阿里便开始走上了去“IOE”之路,根据开源MySQL搭建了AliSQL,并顺利经过了淘宝双11的考验,国产云原生数据库算是正式摆脱了“切肤之痛”,逐渐受到市场的真正认可。
另一边,国外的AWS在2015年公布了基于云计算的自研数据库Amazon Aurora。Aurora是一个关系型数据库,可以跨3个可用区域复制6份数据,其最大的特性就是高性能和高可用性。
云计算巨头的入局,让云原生数据库在国内外一步步成为主流。据Gartner预测,到了2021年,云数据库在整个数据库市场中的占比将首次达到50%,到2023年,75%的数据库都要跑在云平台之上。
关于云原生数据库,随着逐步的出圈,也让人们关心的焦点从“是啥?”转变为“还能解决哪些问题?”
但云原生数据库存在着数据孤岛的问题,无法打通多个数据系统的情况下,企业在数据加工和数据管理上就会“压力较大”,甚至在数据安全方面还存在隐患。
传统数据仓库一般基于T+1数据集成构建离线数仓,以支撑企业各项分析与服务。传统方案不但会影响线上业务稳定性,且难以支持企业的实时需求。
因此,在李飞飞看来,云原生数据库已经走到2.0阶段。这个阶段要解决的问题,就是上述存在的痛点。
9月26日,在阿里云数据库创新上云峰会上,阿里云发布了首个一站式敏捷数据仓库解决方案。该方案结合一站式数据管理平台DMS及云原生数据仓库AnalyticDB(简称:ADB),实现了库仓一体的技术架构,提供在线数据实时入仓、T+1周期性快照、按需建仓等能力,数据延时低至秒级,持续赋能业务在线化,使企业的在线数据可以释放出更大的价值。
相较于传统方案,阿里云一站式敏捷数据仓库解决方案有4大核心优势:
1、对业务侧影响小,不会因为数据汇聚集中和实时加工影响业务侧正常运行,CPU、内存占用低于5%;
2、事务顺序和数据准确性有保障,且处理链路短,支持在线数据实时处理落仓,效率更高。数据传输效率100m/s,数据延时在10秒内;
3、支持复杂实时数据加工、计算逻辑;
4、低代码操作,能够大大降低实时数仓的构建难度,提升构建效率的同时,支撑企业数字化转型过程中的各类实时场景。
除了实时统计分析场景外,企业为满足周期性数据分析需求,需建设周期性全量快照。
传统数仓的周期性全量集成方案会对生产业务造成稳定性影响、全量集成时效性差、且无法满足客户针对任意时间点进行数据回溯的业务诉求。
针对T+1周期性集成场景,一站式敏捷数据仓库解决方案支持基于拉链表的T+1全量数据快照,用户通过简单几个步骤,即可按需生成各种周期的全量或增量快照。
此外,业务还可按需进行任意时间点的数据回溯,以快速解决数据异常问题。
谈起未来数据库的发展趋势,李飞飞提到以下五点:
1、云原生+分布式一定是数据库的标配,分布式已经是必选项。分布式数据库由多个相互连接的数据库组合而成,面向用户则是以单个数据库的形态出现。云原生分布式数据库具备易用性、高扩展性、快速迭代、节约成本等特征,从资源池化到弹性扩展,再到智能运维,再到离在线一体化,解决企业用户的核心诉求。
2、AI for DB(database,指数据库)和 DB for AI 将是主流趋势。用AI将数据库运维管控智能化,尤其在云原生+分布式这个前提下更重要,因为数据库不仅是内核的能力弹性高可用、可拓展性,更重要的是部署后应用和运维的复杂度要大大降低。在数据库里,面对越来越多非结构化的数据,分析能力十分重要。
3、数据的安全可信,在今天这个大环境下变得愈发重要,如何确保整个数据库系统,在处理数据全链路过程中提供加密能力、多方安全计算能力、隐私保护的能力,也是很重要的趋势。
4、多模数据处理能力将越来越重要。比如,新型数据库多模态的处理能力,在新能源 汽车 企业打标签、智能电池化预测等应用场景中,将发挥越来越重要的作用。
5、一份数据,多个数据处理引擎:实现仓库一体、仓库联动、仓库打通,数据之间无缝流转。
以上判断,也从侧面反映出阿里云数据库的走向,这点毋庸置疑。但除此之外,业界最关心的,还有开源。
近半年,国内很多厂商相继提出开源战略,背后缘由显而易见,为了打造生态。就在今年的阿里云峰会上,阿里云智能总裁、达摩院院长张建锋(花名行癫)将2021年阿里云的发展关键词归纳为:做好服务、做深基础、做厚中台、做强生态。
做好服务与生态,成为如今厂商们不约而同的目标,而开源,就是最好的选择。
当雷锋网问到:“未来,阿里云数据库会不会把所有能力都开源?”这一问题时,李飞飞给到的回答是:“不会。”
之所以有这样的回答,是因为对于开源,他有着一些判断和看法。
李飞飞表示,这些部分,本就是阿里云数据库的商业化版本。
事实上,业界大多数的数据库厂商都不会针对自身的核心能力开源,如TiDB的核心管控组件、TiFlash。
与像MongoDB,、Cassandra、CouchDB这些以开源起家的数据库厂商不同,开源只是阿里云数据库的战略,不是阿里云数据库的命脉。
前几年,有业内人士表示,在面向开源时,国产数据库首先需要解决信任以及开源知识产权等问题。“开源会让厂商更加认真思考版权还有专利的问题,事实上,选择开源后,对于数据库厂商提出了更高的要求。”
李飞飞认为,开源只是一种选择,数据库开源成功并不代表着商业化就能够成功,不开源也不能代表厂商不先进。
更准确的说,开源只是一种有效手段。
最终,阿里云数据库希望客户能够通过开源版本把阿里云数据库产品技术快速用起来,并能够参与到技术产品的迭代过程中,在一些高阶能力上,借鉴团队专业能力和阿里云的服务能力,成为良好的商业合作伙伴,这是李飞飞以及阿里云数据库对于开源的一些基本思考。雷锋网雷锋网雷锋网
【云原生数据库TDSQL-C】内容来源于网络,若引用不当、侵权,请联系我们修正或者删除!
![优质vps](https://vps.cmy.cn/zb_users/avatar/0.png)
评论已关闭