• [技术干货] 华为云GaussDB期刊上线啦!点击详情下载
    近日,华为云GaussDB重磅推出了《华为云数据库GaussDB》专刊。在这里,我们将为您剖析数据库最前沿技术及方向,解读GaussDB全套解决方案,跨越数字化实践应用鸿沟,为千行百业持续提供稳定高效智能的数据服务。五大板块,全方位为您提供更丰富的数据库内容:产业观点:洞悉数据库前沿发展趋势,掌握数据库最新方向解决方案:全套GaussDB数据库迁移解决方案,让客户安心、省心、放心客户实践:成功在1500+大型客户规模商用,助力千行百业数字化转型开放生态:产学研用,汇聚创新力量,助推数据库产业生态发展最新动态:新品上市、产业动态、行业资讯、开发者活动等重大内容抢先知我们相信,未来一定会有越来越多的企业基于云数据库来构建更稳定可靠的数据底座服务,企业数字化进程也会在云数据库的助力下变得更快、更稳。想了解更多《华为云数据库GaussDB》专刊内容,欢迎点击下方【附件】下载哦!
  • [热门活动] 《数据库原理》MOOC第3季 春日携礼归来,MOOC免费学, 分享得更多!
    《数据库原理▪GaussDB云数据库》MOOC第3季 春日携礼归来【活动时间】2022年3月15日 - 7月15日【活动主题】《数据库原理▪GaussDB云数据库》MOOC—第3季 春日携礼归来,MOOC免费学, 分享得更多【活动内容】 活动一: MOOC免费学Step1:点击报名:《数据库原理•GaussDB云数据库》MOOCStep2:报名完成后,将MOOC报名学习页面截图,盖楼打卡即可Tips:每个ID抢楼不得连续超过3楼,总楼层数不得超过10楼盖楼内容:华为云账号+MOOC报名学习截图;活动二:分享得更多转发下方活动海报至朋友圈,+转发语:《数据库原理▪GaussDB云数据库》MOOC—第3季 春日携礼归来:课程由8位博导团队+华为云数据库技术专家共同打造,免费学习还有好礼哦,可别错过啦!公开可见保持2小时以上,将转发内容的朋友圈截图回复至下方评论区!Tips:一定要公开可见保持2小时哦~【中奖规则】踩中幸运中奖楼层【奖励】活动1【奖励】活动2【盖楼超50层】楼层5%、15%、25%、35%、45%、55%、65%、75%、85%、95%500码豆/人1000码豆/人楼层8%、38%、68%、88%雨伞/高硼玻璃杯/GaussDB字母笔价值69元的书籍《数据库原理及应用》 其他活动开年采购季,8000元见面礼+0门槛抽奖,云数据库包年18元起!【参与有奖】GaussDB(for MySQL) 关键特性发布和技术解读什么是码豆?会员中心入口:https://devcloud.huaweicloud.com/bonususer/home码豆奖励活动规则:1)码豆可在码豆会员中心兑换实物礼品。2)码豆只能用于会员中心的礼品兑换,不得转让,具体规则请到会员中心阅读“码豆规则”。3)为保证码豆成功发放,如果修改过账号名还请向工作人员提供修改前后的账号名。  活动规则 1)请务必使用个人账号参与活动(IAM、企业账号等账号参与无效)。2)所有获得华为奖项的获奖用户,请于获奖后3日内完成实名认证,否则视为放弃奖励。3)本次活动如一个实名认证对应多个账号,只有一个账号可领取奖励;一个实名认证账号只能对应一个收件人,如同一账号填写多个不同收件人或不同账号填写同一收件人,均不予发放奖励。4)活动结束且用户填写完成领奖信息后,15个工作日内发放奖品,发放时间根据实际情况动态调整,如有延期敬请见谅。5)本活动最终解释权归华为云所有。
  • [优秀博文] 如何从头到脚彻底解决一个MySQL Bug?华为云数据库高级专家带你看
    说明:本文中的MySQL,如果不做特殊说明,指的是开源社区版MySQL。 华为云数据库新版本在发布之前,会面临一系列严苛的测试规则,除了要求通过MySQL的所有测试用例之外,还需要通过由华为百万级更丰富、更贴近用户业务场景的测试用例构筑的测试防护网,以此充分验证新版本是否满足用户经典场景的稳定性。   正是在这样严苛的验证过程中,我们发现了MySQL的一个潜在Bug。   Bug描述测试环境: 基于相同的测试用例、数据集,分别测试MySQL 8.0.22, MySQL 8.0.26,与华为云GaussDB(for MySQL)的返回结果。  测试语句: select subq_0.c2 as c0 from (select ref_6.C_STATE asc0, case whenref_6.C_PHONE is not NULL then ref_5.C_ID else ref_5.C_ID end asc1, floor( ref_3.c_id)as c2 from sqltester.t0_hash_partition_p1_view as ref_0 right join sqltester.t4 as ref_1 on (EXISTS ( select ref_1.c_middle as c0 from sqltester.t1 as ref_2 where ((false) and ((true) or (true))) or (false) )) innerjoin sqltester.t0_range_key_subpartition_sub_view as ref_3 on(EXISTS ( select ref_0.c_credit as c0, ref_1.c_street_1 as c1, ref_4.c_credit_lim as c2, ref_3.c_credit as c3 from sqltester.t0_hash_partition_p1 as ref_4 where true )) left joinsqltester.t10 as ref_5 innerjoin sqltester.t11 as ref_6 on(true) on (((pi() isnot NULL)) and (false)) where (((ref_5.C_D_ID isnot NULL) or(ref_3.c_middle is not NULL)) )) as subq_0 where (EXISTS ( select subq_0.c0 as c0, pi() as c1, ref_11.c_street_1 as c2, ref_11.c_discount as c3, pi() as c4 from sqltester.t0_partition_sub_view_mixed_001 as ref_11)) group by 1 order by 1;返回结果: 如下图所示,MySQL 8.0.22、MySQL8.0.26与华为云GaussDB(for MySQL)的返回结果不一致,也就是说产生了Bug,如下图红色部分。 Bug分析首先确定哪一个执行结果是正确的。当前这个语句执行的execution plan是Hash Join,而MySQL8.0里面引入了Hash Join,由此推论开源版本可能存在问题。接下来我们从MySQL成熟版本以及非MySQL数据库两个方面来进行验证。   验证过程:使用相对成熟的版本MySQL 5.6进行验证,返回结果与GaussDB(for MySQL)相同,但与MySQL 8.0不同。使用PostgreSQL进行验证,执行结果与MySQL 5.6、GaussDB(for MySQL)相同,但与MySQL 8.0及更高版本不同。  由此可以确定:MySQL 8.0以及更高版本存在问题。   那么,是什么原因引起了这一Bug呢? 1.  首先精简查询,以方便后面分析。经过多次验证,将查询简化如下: SELECT count(*) FROM (SELECT 1 FROM sqltester.t4 AS ref_1 INNER JOIN sqltester.t4 AS ref_3 ON (EXISTS (SELECT 1 FROMsqltester.t4 AS ref_4 WHERE TRUE )) LEFT JOIN sqltester.t10 AS ref_5 ON (FALSE) WHERE (((ref_5.C_D_ID IS NOT NULL) OR (ref_3.c_middle IS NOT NULL))))AS subq_0 执行计划如下: -> Aggregate: count(0) (cost=2.75 rows=0) -> Filter: ((ref_5.C_D_ID is not null) or(ref_3.c_middle is null)) (cost=2.75 rows=0) -> Inner hash join(no condition) (cost=2.75 rows=0) -> Index scan on ref_3 using ndx_c_middle (cost=0.13 rows=50) -> Hash -> Inner hash join (no condition) (cost=1.50 rows=0) -> Index scan on ref_1 using ndx_c_id (cost=6.25 rows=50) -> Hash -> Left hash join (no condition) (cost=0.25 rows=0) -> Limit: 1 row(s) (cost=312.50 rows=1) ->Index scan on ref_4 using ndx_c_id (cost=312.50 rows=50) -> Hash -> Zero rows (Impossible filter) (cost=0.00..0.00 rows=0)从上面的执行计划可以看出,ref_5被优化器进行了优化,转换成了Zero rows,而且ref_5是Left Hash Join的内表。作为Left Join的内表,如果内表没有匹配条件的记录(这里已经是Impossible条件了,也就是说连接条件始终是False),则需要内表生成NULL行来和外表进行外表连接。   2.  在MySQL 8.0.22版本上执行问题查询,语句和执行结果如下: SELECT count(*) FROM (SELECT 1 FROM sqltester.t4 AS ref_1 INNER JOIN sqltester.t4 AS ref_3 ON (EXISTS (SELECT 1 FROM sqltester.t4 AS ref_4 WHERE TRUE )) LEFT JOIN sqltester.t10 AS ref_5 ON (FALSE) WHERE (((ref_5.C_D_ID IS NOT NULL) or(ref_3.c_middle IS NOT NULL))))AS subq_0; + + | count(*) | + + | 2500 | + + 1 row in set (0.00 sec)3.  对问题查询进行修改:去掉Where条件里面的另外一个条件(ref_3.c_middleis NULL)。 现在Where条件只包含了(ref_5.C_D_IDIS NOT NULL)一个条件,要求当前查询过滤掉所有ref_5没有匹配的连接记录。   则SQL语句和执行结果如下: SELECT count(*) FROM (SELECT 1 FROM sqltester.t4 AS ref_1 INNER JOIN sqltester.t4 AS ref_3 ON (EXISTS (SELECT 1 FROM sqltester.t4 AS ref_4 WHERE TRUE )) LEFT JOIN sqltester.t10 AS ref_5 ON (FALSE) WHERE (((ref_5.C_D_ID IS NOT NULL))))assubq_0; + + | count(*) | + + | 2500 | + + 1 row in set (0.01 sec)对比修改前后的语句和执行结果可以看出:执行结果与条件(ref_3.c_middle is NULL)没有关系,只与(ref_5.C_D_ID IS NOT NULL)这个条件有关。正常情况下对ref_5表来说,因为是Impossible条件,所以ref_5被优化成了Zero rows。那么如果只剩(ref_5.C_D_ID IS NOT NULL)这个条件,正常的结果应该是空集(count返回0)。但现在开源版本的结果集却不是,这再次说明了开源版本出现了问题。   对于Left Join来说,如果Join条件不匹配,内表需要设置为NULL行来连接外表。而这里执行计划使用的是Zero rows,也就是说MySQL 8.0使用的是ZeroRowsIterator来执行的。执行器需要调用ZeroRowsIterator::SetNullRowFlag来设置Nullflag。   4.  通过gdb来查看设置是否正确: Breakpoint 1, ZeroRowsIterator::SetNullRowFlag(this=0x7f92a413d510, is_null_row=false) at /mywork/mysql-sql/sql/basic_row_iterators.h:398 398 assert(m_child_iterator != nullptr); (gdb) n 399 m_child_iterator->SetNullRowFlag(is_null_row); (gdb) s std::unique_ptr<RowIterator,Destroy_only<RowIterator> >::operator-> (this=0x7f92a413d520) at/opt/simon/taurus/mysql-root/src/tools/gcc-9.3.0/include/c++/9.3.0/bits/unique_ptr.h:355 355 returnget(); (gdb) fin Run till exit from #0 std::unique_ptr<RowIterator,Destroy_only<RowIterator> >::operator-> ( this=0x7f92a413d520) at/opt/simon/taurus/mysql-root/src/tools/gcc-9.3.0/include/c++/9.3.0/bits/unique_ptr.h:355 ZeroRowsIterator::SetNullRowFlag (this=0x7f92a413d510,is_null_row=false) at/home/simon/mywork/mysql-sql/sql/basic_row_iterators.h:399 399 m_child_iterator->SetNullRowFlag(is_null_row); Value returned is $1 = (RowIterator *) 0x7f92a413d4d0 (gdb) s TableRowIterator::SetNullRowFlag (this=0x7f92a413d4d0,is_null_row=false) at/home/simon/mywork/mysql-sql/sql/records.cc:229 229 if(is_null_row) { (gdb) n 232 m_table->reset_null_row(); (gdb) 234 }从上面的gdb来看,断点处利用ZeroRowsIterator::SetNullRowFlag将表的Nullflag设置为了False。后面的gdb信息也证明了这一点。   可以确定,导致此Bug的原因是:ZeroRowsIterator::SetNullRowFlag设置为False这里是不正确的。因为如果把ZeroRowsIterator::SetNullRowFlag设置为False,那就会导致内表为ZeroRows的Left Join生成内表非NULL的结果集。 如何解决既然上面的Bug分析已经非常清楚了,那么修复起来也就比较简单了。只需要将ZeroRowsIterator::SetNullRowFlag始终设置为True就可以了。因为ZeroRowIterator只能产生两种结果,一种是空集,另一种就是作为外连接的内表产生NULL行。 对MySQL-8.0.26进行修复后,执行结果如下: 从返回的结果可以看出查询结果正确,也就是说问题得到了修复。   为了保障华为云GaussDB产品的可靠性,每一款产品发布前都要通过多轮严苛的测试用例。在发现问题后,华为云数据库团队以缜密的思路去逐步确定问题、分析问题,并第一时间修复Bug,解决问题,以确保客户的数据安全和业务结果的准确性。华为云数据库团队荟聚了业内50%以上的数据库内核专家,以专业技术实时保障客户业务安全,助力企业业务安全上云!
  • [热门活动] 【参与有奖】GaussDB(for MySQL) 关键特性发布和技术解读
    【活动时间】2022/3/7—3/31【直播时间】2022年3月22日 19:00~20:30【直播主题】GaussDB(for MySQL)关键特性发布和技术解读本次直播GaussDB(for MySQL)将正式发布HTAP混合负载特性,复杂查询效率提升百倍,让企业决策更加快速,准确【嘉宾简介】主讲老师:佳恩,华为云数据库高级产品经理10年技术运维,数据库管理经验,熟悉MySQL,SQL Server等数据库引擎原理,设计,商业运营,目前负责华为云数据库GaussDB产品管理工作【参与方式】 注:以下3个话题均可参与,且盖楼评奖相互独立,每个有效盖楼30层以上开奖活动一:  分享海报或活动帖  ,回帖盖楼送好礼【直播报名入口】点我马上报名,3月22日可以收看直播哟!直播报名后,转发分享下方“活动海报”或“本帖”至朋友圈,+转发语:3月22日19:00, GaussDB(for MySQL) 关键特性发布和技术解读,参与活动就能赢取数10种礼品,一起参与吧!公开可见保持2小时以上,将转发内容的朋友圈截图回复至下方评论区回帖内容:华为云账号+转发截图奖励如下:奖品数量发放规则开发者定制笔记本/GaussDB字母笔数量不限每6层随机抽取一个幸运用户米格系列移动电源2500mA数量不限有效盖楼层数≥100层,按回帖格式回帖的用户,每增加10层,增加一个中奖机会 活动二:看直播,惊喜多多哦 (3月22日 19:00-20:30 )  参与方式:>>>戳我观看直播<<<,直播期间发送小助手给出的口令,参与直播互动,就有机会参与抽奖奖励规则:登录直播平台观看本次直播,直播间有3轮抽奖:抽奖轮数中奖数量奖品第一轮2定制水杯/公牛插座第二轮2定制字母笔/平装套芯笔记本第三轮2GaussDB(for MySQL)书籍 活动三: 优质话题互动 ——分享学习感受(3月22日观看直播后再参与)回帖内容:结合本次直播内容,基于GaussDB(for MySQL),谈谈自己的认知、所感所想等。(视频制作前,请先联系小助手,1809232786,说明一下录制的内容,小助手可以帮忙把把关,避免跑题或者词不达意)呈现方式:视频,不短于3分钟录制要求:画质清晰,话题内容贴合要求,录制时组织好语言,视频时长3分钟左右【活动奖品&规则】奖品数量发放规则GaussDB(for MySQL)书籍 / 折叠烧水壶 / 荣耀智能体脂称23+若提交的视频被采用,即可获得左侧奖品其他活动开年采购季,8000元见面礼+0门槛抽奖,云数据库包年18元起!【参与有奖】GaussDB(for MySQL) 关键特性发布和技术解读【注意事项】1.获奖结果将在活动结束后7个工作日内进行公示,请报名和留言的伙伴关注社区内容,所有奖品将在活动结束后15个工作日内发放。2.活动奖品颜色随机,且部分奖品数量有限发完将用等值奖品代替;3.为保证活动的公平公正,华为云有权对恶意刷活动资源(“恶意”是指为获取资源而异常注册账号等**活动公平性的行为),利用资源从事违法违规行为的用户收回抽奖及奖励资格。4.本活动最终解释权归华为云所有。 
  • [行业资讯] 华为云数据库亮相2021PG中国技术大会并斩获4项大奖
    1月7日-9日,以“开源论道·数据驱动·共建数字化未来”为主题的第十一届PostgreSQL中国技术大会隆重举办。华为多位数据库专家出席并发表了重要演讲,分享了华为云数据库最新技术与实践,积极推动商业落地,使能企业智能升级。会上,华为云RDS for PostgreSQL荣获“数据库最具潜力产品奖”,华为流程IT DBA团队荣获“PostgreSQL中国最具价值团队奖”,华为数据库架构师陈华军和华为云数据库高级专家赵全明分别荣获“十周年卓越贡献特别奖”、“中国PostgreSQL最具价值专家MVP奖”。大会主会场,华为质量与流程IT数据库架构师陈华军分享了《华为集团IT PostgreSQL运用实践》主题演讲。他介绍到,流程IT作为服务华为公司19万员工的企业IT部门,支持华为公司全球业务、全球研发、全球协同,客户覆盖全球170多个国家、服务上亿消费者。为了应对日益增长的业务数据和海量并发问题,华为集团对交易库选择主要采用云数据库PostgreSQL去“O”,通过架构部署、参数调优、客户端配置、监控告警、性能诊断工具、闪回实现等能力,很好地解决了数据库兼容性、扩展性、数据一致性、性能等方面的问题。目前,华为集团IT去“O”和上云工作已完成一半。华为云数据库高级工程师刘志俊在分论坛分享了《Oracle迁移到PostgreSQL的挑战与突破》。他提到,近年来去“O”的呼声越来越大,大量的传统企业开始脱离“IOE”集中式架构,进行云端分布式改造。针对扩展性、技术不可控、高成本等去“O”难题,华为云GaussDB推出了数据库和应用迁移UGO+数据复制服务DRS专属组合解决方案,该方案从迁移评估、结构迁移、应用迁移、全量+增量数据迁移、数据一致性动态校验、流量回放等方面提供了一站式迁移上云方案,让客户上云更轻松、更高效。华为云数据库产品经理冯万里分享了《解锁华为云数据库PostgreSQL高速增长密码》。他表示,华为云数据库PostgreSQL连续3年保持5倍营收增长,持续为5000+客户创造了价值。取得这一重大成果的原因在于,华为云RDS for PostgreSQL具备卓越的高可靠、高安全、插件丰富、兼容开源、便捷上云、低成本等能力优势,并在国家地理信息服务平台天地图和中国一汽等企业中成功落地。华为云数据库高级工程师杨科伟在分论坛分享了《GaussDB(for Redis)的云原生存算分离架构实践》。他指出,存算分离的分布式架构是大势所趋,目前已经有越来越多企业选择将核心业务上云到该架构。华为云GaussDB(for Redis)基于该架构,完美避开了开源Redis的主从堆积、主从不一致、fork抖动、内存利用率只有50%等问题,构筑了强一致、高可用、冷热分离、弹性伸缩、高性能等极具竞争力的能力优势,极大促进了企业业务的发展。华为云数据库高级工程师党李飞分享了《华为云DDS数据库容灾关键技术》。他介绍到,华为云DDS是一款兼容MongoDB 3.4/4.0版本的文档数据库服务,目前支持分片集群、副本集和单节点三种部署架构。华为云DDS基于华为云数据复制服务DRS灾备技术,支持主备倒换,通过数据抓取和数据回放,保障数据一致性。通过优化原生Change Streams,华为云DDS支持更丰富的DDL语句,对于集合删除、数据库删除事件,日志拉取不中断,支撑近50000 ops,与社区版相比,性能得到大幅提升。技术不止步,服务更贴心,华为云数据库未来将会打造更优、更专业高效的数据库服务,赋能企业挖掘数据价值,推动业务革新,加速企业数字化转型。 错过直播不要怕,点击下面链接可直接回顾精彩:1月7日,华为数据库架构师陈华军演讲链接:https://live.csdn.net/room/postgresqlchina/1Ppndzfv?spm=1001.2014.3001.55011月8日,华为云数据库高级工程师刘志俊演讲链接:https://live.csdn.net/room/postgresqlchina/FS0reRwq?spm=1001.2014.3001.55011月9日,华为云数据库高级工程师杨科伟和党李飞、华为云数据库产品经理冯万里演讲链接:https://live.csdn.net/room/postgresqlchina/XB2Uc2AA?spm=1001.2014.3001.5501 【阅读原文】https://www.huaweicloud.com/product/dbs.html
  • [版主精选] 华为云数据库携手微鲤,打造数字技术与时间管理的强强联合!
    人总说,时间从来不语,却回答了所有问题。它将每一分秒凝成过去,镌史成册,几千年后的我们仍可与之对语。若说有什么能跨越千年,告知我们时间的答案,那想必,二十四节气必占一席之地。二十四节气,在国际气象界被誉为中国第五**明,从春秋时代的初现雏形,经历了战国后期《吕氏春秋•十二纪》中的积累延续,再到秦汉年间完全确立,经过人类智慧的创造,它已经不仅仅是准确反映自然节律变化那么简单,更蕴含着深厚的文化内涵和悠久的历史积淀。古时,人们用二十四节气记录时间,以此为标准来指导农耕生产,而经过几千年的传承,记录时间的方式已经有了更多元化的选择,比如——日历。在网络不发达的年代,老百姓们家里挂着的还是纸质日历,在我们的印象中,老人每天早上站在日历前,撕下旧的一页,展出新的一张,代表着新的一天到来了。随着网络的发展,科技的进步,手机日历融入到了我们的生活中,但已不单单是记录时间那么简单,它可以天气预报,提前预知温度变化;可以日程提醒,让工作和生活有条不紊;可以休闲阅读,让身心随时放松...... 这些都在中华万年历APP中得到了淋漓尽致的体现,一款日历软件,连接起了**的时间和有趣的事儿,成为了3亿人的共同选择。如果说中华万年历能让我们在生活中更便捷地规划时间,那么微鲤看看这款软件则让我们在时间的缓缓流逝中再一次爱上生活。作为一款创新型资讯社区APP,微鲤看看给了我们足不出户就可以看世界的机会,养生、音乐、美食等几十类资讯无所不有,社区互动带给我们更多志同道合的伙伴,让每个人在匆忙赶路的同时享受当下生活,让时间过得慢一些,再有趣一些。赶上云原生的早班车,也渴望新技术的更新换代让时光充满乐趣,是微鲤一直在做的事情。微鲤是一家移动互联网公司,一直专注于时间管理和软件开发,中华万年历和微鲤看看作为其旗下的知名APP,月活数千万,在业内影响力极大。随着云原生时代的演进,微鲤赶上了这趟早班车,成为最早一批的云原生使用者,在数字化变革的红利之下,其用户数快速增长,仅中华万年历一款APP的累计用户截至目前已经突破3亿,跻身千万级移动应用行业。业务量在日渐增长,一些问题也随之而来。例如中华万年历和微鲤看看两款软件的数据库实例都多达64个,中华万年历通过手动拆分进行分库分表,造成了明显的资源浪费,同时业务代码时有侵入,也需要大量的维护工作;微鲤看看日志主机的存量数据量较大,但随着业务调整,资源出现冗余,没有较好地整合。面对如此种种现状,对中华万年历数据库的分库分表改造和微鲤看看的资源整合问题迫在眉睫,于是,选择将业务迁移割接到新的数据库系统来彻底解决这些问题在微鲤的技术团队中形成共识。不过,原先使用的数据库实例较多,不同实例参数差异大,且不同APP之间的数据分别存在于不同的数据库之中,各APP对于迁移割接方案的要求也不尽相同,因此,将各业务都实现平滑迁移面临着较大的挑战。华为云数据库有的放矢,助力微鲤业务降本增效基于以上的业务需求,微鲤亟需一款可弹性伸缩和极致性能的数据库来解决资源冗余的问题,并保证迁移过程中业务不受影响。众里寻他千百度,在一众的数据库产品中,微鲤将眼光瞄向了华为云数据库。华为云数据库基于多年累积的数据库研发、搭建和维护经验,结合云化改造技术,大幅优化传统数据库,打造出了多款高性能、高可靠、高安全、可弹性伸缩的数据库,并拥有容灾、备份恢复、实时监控、在线迁移等全面的解决方案。经过多次业务交流,微鲤对华为云数据库表示高度认可,并选择华为云数据库作为长期合作伙伴,双方在数据领域展开了深入合作。针对微鲤业务上面临的挑战,华为云数据库团队快速响应需求,有的放矢提供了针对性的方案:迁移方案评估:在项目前期对整体业务和应用系统进行充分调研,梳理出所有业务的应用场景,针对不同APP对割接时间的要求进行分类,输出三种割接方案,进行多次DRS数据迁移测试和割接演练,确保各项业务平滑迁移至华为云上。中华万年历分库分表改造方案:当前中华万年历的业务存在分表不分库、分库不分表、分库分表三种场景,根据实际的业务场景需求和未来3-5年的发展规划,梳理出当前手动分库分表逻辑,统计分库分表的数据量,依据业务的常用查询条件,选择合适的分片键和实例规格数量,将近10亿的数据量同步到分布式中间件DDM+RDS for MySQL中。微鲤看看数据库合并方案:深入了解微鲤看看的业务应用场景,查看源端自建实例的监控指标,分析各个实例的读写压力,再结合数据量,按照业务的写入数据的模式,将64个自建MySQL实例优化合并为5个RDS实例。在华为云项目团队的高效运作下,仅两个多月的时间内,微鲤多项业务平滑迁移至华为云数据库RDS for MySQL中。中华万年历在不影响业务性能的前提下,近10亿的数据在高效同步的同时做到了0丢失,数据可靠性大大增强;不仅如此,使用DDM+RDS for MySQL替代原有复杂的分库分表方式既简化了业务代码,又提高了整个业务的读写性能。微鲤看看通过实例合并和数据均摊的方式有效均衡了业务读写压力,降低运维成本,减轻了后期维护压力。良好的开端是成功的一半。目前,针对微鲤业务的解决方案已经在实施中取得明显成效,微鲤剩余的业务量将会按计划陆续搬迁至华为云数据库,在保障业务稳定性的前提下进行业务切换,顺利完成业务迁移。着眼将来,华为云将继续携手微鲤,深化合作,不忘初心,以数字科技持续赋能时间管理和休闲方式,让每个人的清浅时光在白驹过隙之中都有迹可循。华为云数据库携手微鲤以数字科技重新定义时间管理让流逝的分秒尽可光芒万丈 近10亿数据量同步0丢失64个自建实例优化合并为5个RDS实例业务代码结构简化,读写性能大幅提升
  • [版主精选] 2021华为云GaussDB年度大盘点,感恩有你
    回首2021,我们探索数字化实践和前沿技术之路,深入产业发展与生态合作,勇攀一个个高峰;展望2022,我们怀抱更大的数字梦想,继续探索数字时代星辰大海。前行之路感谢相伴,华为云GaussDB 与您一起筑梦前行。https://www.huaweicloud.com/product/dbs.html
  • [行业资讯] 再获认可!华为云GaussDB数据库荣获年度优秀创新软件产品大奖
    12月27日,由中国电子信息行业联合会和盐城市人民政府联合主办的2021年度中国电子信息行业发展大会在盐城顺利召开。会上,华为云数据库GaussDB以显著的优势脱颖而出,揽获“2020-2021年优秀创新软件产品”大奖。近年来,随着新一代信息技术的高速发展,电子信息产业迸发出了蓬勃的生机,逐步成为国民经济的战略性、基础性和先导性产业。此次在盐城召开的中国电子信息行业发展大会作为业内的权威盛会,吸引了无数专业人士的目光,业内专家学者、企业家代表等汇聚一堂,在这里分享经验,深入交流,共商发展大计,共谋宏伟蓝图。同时,会上举办了2020-2021年度优秀创新软件产品发布会,对优秀的软件产品给予奖项肯定。在此次大会上获得“2020—2021年优秀创新软件产品”殊荣的GaussDB基于华为主导的开放生态openGauss而打造,是一款主打政企核心业务负载的企业级分布式数据库旗舰产品,在技术的创新性和先进性上都有着突出的优势,能够满足客户高可靠、高性能、高扩展等多方面的需求。GaussDB具备应对海量并发事务处理与复杂查询混合负载的能力,通过Numa-Aware技术与全并行架构的创新,性能大幅领先同行产品,并具备超过1000+节点的弹性扩展能力;同时,与金融客户的联创证明了它具备出色的金融级高可用商用能力,如同城AZ内高可用、跨AZ高可用、异地跨Region的两地三中心容灾方案等,能够满足金融级监管的高要求;在安全性上,应用了华为推出的全球首款纯软全密态技术来实现数据传输、计算、存储全链路的加密,从而实现数据全生命周期内的安全保护,轻松解决数据库云上隐私泄露及第三方信任问题;并通过将AI技术植入到数据库内核的架构和算法中,实现数据库智能调优、索引推荐、自诊断、自运维等多种能力,协助DBA降低运维难度,大幅提升管理效率。经过数十年的积累,GaussDB已经广泛适用于金融、政企、互联网、运营商等关键场景,经受住了各种严苛场景的锤炼。在对数据库要求最为苛刻的金融行业,已经有6大国有大型银行中的4家银行(包括工商银行,农业银行,建设银行,邮政储蓄银行),以及多家股份制银行和保险证券机构都选择了GaussDB作为其数字化转型的坚实数据底座。长期以来,华为云一直将技术研发作为重点,进行大量的投入,技术创新能力和水平都处于国内领先地位。放眼将来,华为云GaussDB将持续聚焦数据库根技术,联合更多合作伙伴,共创共赢,打造更多更贴合用户场景的数据底座服务能力,为企业的数字化转型保驾护航。
  • [行业资讯] 华为云GaussDB新产品特性亮相DTC2021,重磅新品开源预告
    12月23-24日,以“智能·创新·新生态——数据智领未来 生态共创价值”为主题的第十一届数据技术嘉年华(DTC2021)在线上盛大开启。华为云数据库产品部CTO庄乾锋携3位GaussDB技术专家线上分享了产品最新技术、优秀实践案例,以及透露了重大新品即将开源,以数据驱动业务发展,为企业数字化转型持续注入新动力。华为云数据库产品部CTO庄乾锋线上发表演讲华为云GaussDB深耕技术创新与生态开放,推进企业数字化转型23日上午主会场,庄乾锋分享了《深耕创新与开放合作——GaussDB企业级云原生架构演进与开放生态》主题演讲。他介绍到,华为云GaussDB基于统一的底层DFV分布式存储架构,围绕“金融级高可用、软硬深度协同、企业级混合负载、云原生多主架构、全密态数据库、AI-Native自治”等6大数据库基础研究方向,持续技术创新,打造根技术竞争力。华为云GaussDB基于融合开放理念,积极拥抱并兼容业界主流的数据库开源生态,并对外开源openGauss单机主备能力,积极推进openGauss开源社区“共建共享共治”。此外,还联合产业联盟与标准组织、高校、合作伙伴、开发者打造数据库开放生态,共同繁荣数据库产业。华为云GaussDB提供了全场景、全开放的数据库生态选择,为客户量身打造了“架构+应用+数据”一体化的数据库迁移方案,提供了高性能、高可用、极速扩展、稳定可靠的服务能力,帮助政企客户“选型安心、迁移放心、管理省心”,不断推进企业数字化转型。华为云GaussDB:内核存储引擎和同城双集群高可用方案揭秘内核技术作为数据库技术的灵魂,影响着系统的安全可靠,对业务发展至关重要。华为云GaussDB技术专家王磊在会上揭秘了GaussDB新一代内核存储引擎技术。GaussDB存储引擎分为磁盘引擎和内存引擎,磁盘引擎面向通用的、大容量业务场景,内存引擎面向容量可控的、追求极致性能的业务场景。通过对两者的结合,GaussDB提供了高性能/高扩展的并发控制事务系统、高可靠/高可用的日志系统、灵活的表级存储格式/引擎、统一的行存访存接口等能力,面对大容量、追求极致性能的业务场景表现更优。王磊还揭秘了GaussDB同城双集群高可用方案,通过提供金融级高可用服务,支持RPO=0 、RTO<60s的同城双集群切换,尽最大可能保障企业用户的核心业务7X24小时无中断,为企业业务保驾护航。华为云GaussDB(for MySQL):聚焦客户需求,构建五维一体的云原生数据库能力云原生在各领域逐渐成为主流,越来越多的企业应用基于云原生架构运行,云原生数据库也开始在各行各业核心系统应用实践。在服务客户过程中,华为云GaussDB总结了五个业界和客户最关心的问题,分别是海量数据存储与管理、高性能、高可靠、高扩展、易用易维。如何提升云原生数据库的能力,满足这五个维度的需求,是服务好企业应用上云的关键。华为云GaussDB系统架构以6点云原生设计理念为基础,在演进过程中不断地引入各种企业级高阶特性,针对不同场景提供各类解决方案,如并行查询、NDP、Faster DDL、多主、HTAP等。GaussDB原生设计和高阶特性都从若干个切入点解决上述提到的客户最关切的五个维度问题,并致力于从这五个维度持续演进,提供最佳的云原生数据库体验。华为云时序数据库GaussDB(for Influx):持续演进,即将开源时序数据存在于各行各业,体量也随着业务发展不断变大,随之而来的高成本、海量数据管理、复杂场景处理也逐渐困扰着企业用户。应对挑战,华为云数据库创新Lab技术专家徐然通过几个常见难题,针对性地提出了高效可靠的解决方案。比如成本高昂问题,GaussDB(for Influx)通过数据分区,单集群轻松管理PB级数据,同时自适应多级压缩算法,压缩率较开源提升50%~200%,极大减轻了存储和管理成本。再如多维聚合查询场景,GaussDB(for Influx)设计了一款面向多维聚合的查询引擎,大数据量聚合查询性能是开源的10倍以上,并支持多维条件组合查询。徐然还透露GaussDB(for Influx)已完成2.0版本的重构,写入和查询的性能都得到了大幅提升,后续有计划开源,将释放更多能力。未来GaussDB(for Influx)将使用社区版本制作商业发行版,并在支持更大规模时间线、支持更大规模集群、新增统计分析算子等方面发展演进,为更多客户提供高效可靠的服务。技术演进,创新不止,华为云GaussDB会持续开源开放,携手更多合作伙伴,打造更优、更专业高效的数据库服务,加速企业数字化转型,普惠千行百业。 【重磅活动推荐】12.12 华为云数据库专场火热来袭,云数据库MySQL 低至12.12元,爆款云数据库包年1折起,更多优惠详情,请前往华为云官网:https://activity.huaweicloud.com/dbs_Promotion/index.html
  • [版主精选] DTC大会收官!华为云GaussDB大咖金句新鲜“出炉”,快来一睹为快!
    今天DTC数据技术嘉年华迎来了完美收官华为云GaussDB大咖们又产出了哪些金句呢?快来一睹为快!
  • [行业资讯] DTC精彩议程抢先知!大咖云集分享华为云GaussDB技术创新与实践经验
    12月23-24日,2021年第十一届DTC数据技术嘉年华将盛大开启,大会采取线上形式,届时,华为云数据库四位技术专家将现身分享GaussDB数据库技术创新、探索实践经验以及未来在技术、生态方向的发展规划。精彩议程抢先知晓,让我们一睹为快!
  • [行业资讯] 权威认证!华为云GaussDB两大数据库通过信通院最新评测
    近期,中国信通院公布了第十三批数据库产品基础能力、性能和稳定性评审结果。在本次评审会的关系型云数据库基础能力评测项目中,华为云 GaussDB(for MySQL)数据库和 GaussDB数据库凭借卓越的产品特性,经过严格的产品资料审核、测试报告审核、参评厂商答辩、质询与答疑、集中评议五个环节,获得专家团队的一致认可。这不仅代表着该两款数据库达到行业公认水平,更是对华为云数据库多年来技术能力的高度认可。华为云GaussDB作为一款主打政企核心业务负载的企业级分布式数据库旗舰产品,基于华为公司的开放生态openGauss而打造,无论从生态还是代码都由华为自主研发,能够满足客户高安全、高可靠、高性能、高扩展的需求。它具备应对海量并发事务处理与复杂查询混合负载的能力,通过技术与全并行架构的创新,性能大幅领先同行产品,并具备超过1000+节点的弹性扩展能力;同时,与金融客户的联创证明了它具备出色的金融级高可用商用能力;还应用了华为推出的全球首款纯软全密态技术来保障数据传输、计算、存储全链路的安全;并通过将AI技术植入到数据库内核的架构和算法中,让数据库管理更加智能与高效。作为一款金融级数据库,GaussDB受到众多有高性能和高可用应用场景需求的企业的青睐。在对数据库要求最为苛刻的金融行业,已经有6大国有大型银行中的4家银行(包括工商银行,农业银行,建设银行,邮政储蓄银行),以及多家股份制银行和保险证券机构选择了GaussDB作为数字化转型的坚实数据底座。作为华为另一款自研的新一代高性能云原生分布式数据库,华为云GaussDB(for MySQL)在云原生业务场景有很明显的核心优势。GaussDB(for MySQL) 基于存算分离架构,完全兼容MySQL 8.0,最高支持128TB的海量存储,可实现超百万级QPS吞吐,支持跨AZ部署,数据0丢失,既拥有商业数据库的性能和可靠性,又具备开源数据库的灵活性。而全新推出的GaussDB(for MySQL)2.0版本更是在性能、可用性、扩展性等各方面都进行了创新和升级,2.0版本在原有的技术基础上深度整合了华为云计算堆栈的独特能力,通过并行查询PQ技术和算子下推NDP技术的融合,大大提升了查询场景的性能;并支持Serverless根据数据容量自动伸缩,轻松实现秒级伸缩和应用0感知;面对海量高并发数据处理场景,该版本通过分布式全并行架构及多节点写入来提供极致的吞吐量性能。GaussDB(for MySQL)数据库面向企业云原生赛道,在音视频、互联网电商、游戏、保险、汽车制造、物流、交通出行等多个行业场景得到广泛应用,包括助力永安保险重构核心业务系统,帮助电商富米科技打造领先的服装供应链电商平台,赋能中国一汽红旗和一汽大众数字化转型......数据库是需要长期持续战略投入和孵化门槛很高的产品。华为云GaussDB将继续凭借华为软硬件全栈协同优势和多年来的数据库内核技术积累,与客户一起积极探索,共同打造更贴合用户场景的数据底座服务能力,真正实现技术与业务的更好融合,并积极拥抱和兼容更多数据库生态,牵手更多合作伙伴、产业组织和高校,携手向前,共创未来!华为云数据库12.12专场来袭~助力千行百业加速上云!MySQL、DDS、GaussDB(for Redis)等多款产品免费试用,点击链接体验。cid:link_0
  • [热门活动] 【年终回馈】云数据库包年1折,新用户12元享6个月!
    华为云会员年末福利来袭~云数据库MySQL、GaussDB(for Redis)等产品新用户低至12元,包年1折起!领取万元红包,消费满额送华为保时捷设计手机!更多活动信息请前往云数据库专场:https://activity.huaweicloud.com/dbs_Promotion/index.html
  • [优秀博文] 性能提升100倍!GaussDB(for MySQL)近数据处理(NDP)解锁查询新姿势
    业务增长对数据库吞吐量和响应能力提出新挑战随着企业和政府机构将其应用程序迁移到云端,对基于云的数据库即服务(DBaaS)产品的需求也在迅速增长。传统上的DBaaS产品,是云服务提供商基于现有的数据库软件本身,将常规数据库部署在云端虚拟机上,使用的是本地或者云存储。这种方法易于实施,但是未能提供足够的性能和可扩展性,而且由于需要复制数据,存储成本也很高。为了应对这些挑战,云服务提供商开始构建新的云原生关系数据库系统,专门为云基础架构设计,通常采用将计算和存储分离到独立扩展的分布式层的设计。这种方法具有多种优势,包括数据库存储的自动扩展、按使用付费功能、跨多个AZ部署的高可靠性以及故障快速切换和恢复。这些云原生设计还有助于减少只读副本的数据更新时延,并提高硬件共享和可扩展性。华为云数据库GaussDB(for MySQL),正是具备上述优势的一款云原生分布式数据库。由于计算和存储节点通过网络通信,网络带宽和延迟往往成为瓶颈。为了克服这一挑战,GaussDB(for MySQL)通过从数据库节点中去除写页面的操作并将检查点操作向下推送到存储节点,以优化与写入相关的网络流量。GaussDB(for MySQL)数据库节点向存储节点发送REDO日志,而不是数据页。因为REDO日志(记录对数据页的修改)通常比修改的数据页小得多, 所以这种方法减少了网络流量。存储节点(也称为页面存储)能够根据REDO日志构建数据库页面,并可以响应数据库节点的请求,将页面返回到数据库节点。在传统数据库中,SQL执行引擎从存储中获取数据,并执行包括投影、谓词计算和聚合在内的步骤。对于经常涉及大型表扫描的分析查询,SQL执行引擎必须从存储中读取大量数据页。当存储节点与计算分离,通过网络通讯时,大表扫描会转化为增加的网络流量。一个典型的例子是对一个非常大的表进行计数查询,查询对象表的所有页面必须从页面存储池(Page stores)发送到要计数的数据库节点,之后,数据库节点将丢弃这些页面中的大部分,因为缓冲区池不能装载这么多数据页,这是对网络带宽资源的浪费。华为云创新的NDP(Near Data Processing,近数据处理,简称NDP)方案解决了这一问题。  GaussDB(for MySQL)近数据处理(NDP)详解 NDP的设计思路是避免在分布式系统中移动数据,并让数据处理在其所存储的地方进行。在云原生数据库中,存储节点通常由大量性能强大的服务器组成,这些存储节点上的CPU资源经常利用率较低,这就为近数据处理(NDP)提供了一个绝佳的机会。GaussDB(for MySQL)的NDP功能将选定的SQL操作下推到页面存储中,页面存储过滤掉不必要的数据,只将匹配的数据子集返回给数据库节点进一步处理。例如,要处理计数查询,页数据存储可以计数行,并将计数而不是实际数据页返回到数据库节点。这样就避免了大量的网络流量,使用此技术也提升了查询响应时间。GaussDB(for MySQL)可以将三种SQL操作推送到页面存储:列投影、谓词计算和聚合。列投影:页面存储通过仅保留查询所需的列并丢弃其余列,从而减少行的长度。谓词计算:页数据存储仅保留满足谓词的行,并丢弃不满足谓词的行。聚合:页面根据查询中聚合函数的要求,将多行聚合到单行中,并丢弃原始行。这三种SQL操作可以以任何组合出现在NDP中。例如,NDP操作可能仅包含列投影,也可能包含所有三个SQL操作。让我们看看一个示例SQL查询:sele ctsum(salary) from worker where age< 40 and join_date>= date ‘2010-01-01’ and join_date< date ‘2010-01-01’ + interval ‘1’ year对于“worker”表中的每一行,页面存储计算谓词“age < 40 and join_date >= date‘2010-01-01’ and join_date < date ‘2010-01-01’ + interval ‘1’ year”。如果行不满足谓词,则将立即丢弃。如果该行满足谓词,则将其聚合到sum(salary)值中,并丢弃原始行。如果页数据存储无法聚合行(由于某些内部处理要求),它仍然可以从行投影三列(salary, age, and join_date),并生成更窄的行。此后,原始行将被丢弃。最后,将一个显著减少的数据集返回到数据库节点。GaussDB (for MySQL)的 NDP特性架构如下图所示。数据库节点向页面存储发送NDP请求(请注意,通常有多个页面存储服务于每个数据库节点),为了降低IOPS(每秒IO数),将多个页面分组为一个NDP请求(批量页面读取请求),页面存储中的NDP运算符可以执行上述三种SQL操作,并将较小的数据集返回到数据库节点。数据库节点可以是主节点,也可以是只读副本节点,两者都支持NDP。NDP中的批处理读取和并行处理 在云原生数据库系统中,即使数据库节点和页面存储通过高速RDMA网络连接,但与传统数据库中的本地存储相比,延迟仍然很高,通过降低网络IOPS和并行执行多个IO可以减少延迟带来的负面影响。在NDP功能中,我们实现了“批处理读取”的概念。这个想法是在B+树叶数据节点中向前看,并将相邻的叶数据节点分组到一个批处理请求中,而这些B+树叶数据节点是正在进行近数据处理的查询所需要的。批量读取是降低IOPS的一个绝佳方法。如果我们在每个请求中发送一个页面,那么IO的数量将等于页面的数量。如果我们将1000个页面分组到一个请求中,IO的数量将减少1000倍。下图阐述了批处理读取的工作原理。数据库节点发送批量请求,SAL(存储抽象层)标识页面所在的页面存储,并将批处理读取拆分为多个子读取:每个页面存储一个子读取。然后,子读取将并行发送到页面存储。使用这种方法,可以同时使用多个页面存储来服务NDP请求。页面存储接收包含多个页面的NDP请求,而这些页面之间没有依赖关系,因此可以使用NDP以任何顺序处理。这样既提供了灵活性,又使页面存储能够将页面分配给多个线程并行处理。GaussDB(for MySQL)使用增强的SQL优化器自动判定NDP是否可能对特定查询有利。如果有利,它将自动启用NDP,SQL优化器查看扫描大小等因素,以及SQL运算如果推送到页面存储,是否可以显著降低数据集大小。一般来说,NDP并不有利于小扫描,例如,当可以用索引减少要扫描的数据量时。同时,NDP也有自己的资源诉求。在数据库节点中,NDP主要占用内存资源,因为它需要内存来保存NDP页面。在GaussDB(for MySQL)数据库节点中,NDP页面与常规页面共享相同的内存池(又名缓冲区池),没有专门为NDP保留的内存。这种方法的优点是,当系统中没有NDP时,整个缓冲池可用于常规处理。但是页面内存一旦被NDP操作占用,在NDP操作完成之前,不能被其他查询使用。这就是为什么必须控制分配的NDP页数,以避免常规页被剥夺内存。NDPQ(NDP+PQ),释放查询极致性能,定义分布式数据库新方向并行查询(PQ)是商业关系型数据库系统的事实标准,为分析工作负载提供高性能支持。PQ通常采用“leader-worker”设计,要处理的表被划分为非重叠的数据块,并把这些数据块分配给多个worker处理。每个worker都会产生中间结果,leader会累积这些结果并做进一步处理,以产生最终结果。PQ在数据库节点中提供并行性,利用多个CPU并发处理查询。华为云GaussDB(for MySQL)具备PQ特性,而且NDP和PQ可以协同工作,进一步提高查询性能。可以为PQ worker启用NDP。PQ worker执行的一些SQL操作可以推送到页面存储区,通过将NDP和PQ结合,我们在GaussDB系统的数据库节点、多个页面存储之间和一个页面存储内部这三层激活了并行处理的魔力,进一步提高查询性能。如何启用NDP?GaussDB(for MySQL)会自动判断NDP是否有助于查询,并为查询启用NDP。用户需要做的就是打开系统变量“ndp_mode”。ndp_mode可以为整个数据库打开,也可以仅为当前会话打开。要为整个数据库打开ndp_mode,请在“set”命令中添加“global”关键字,如下所示:set[global] ndp_mode = on您可以使用“explain”查询以了解是否为查询启用了NDP。例如,以下是树格式的TPC-H查询14的解释输出。为LINEITEM表扫描启用了NDP,投影和谓词计算都会推送到数据页面存储区。此外,还为LINEITEM表扫描启用了PQ。下面是另一个例子,在LINEITEM表上的计数查询,我们将此查询命名为Q002。谓词计算和聚合都会推送到页面存储区,PQ也已启用。下面我们通过在100GB的TPC-H数据库上运行多个查询,展示NDP和PQ如何提升查询效率。测试环境:上海-1区域的华为云GuassDB (for MySQL)CPU:16个,内存:64GB,缓冲池大小:20GB将join_buffer_size 和 sort_buffer_size增加到1MB,因为这两个缓冲区对于哈希连接和排序的性能很重要PQ并发度设置为16下图的y轴显示查询响应时间加速因子。加速因子定义:如果原始查询时间为100秒,而启用PQ后,查询时间变为50秒,则加速因子应为2。从下面的测试结果可以看出, NDP+PQ将Q002加速了100多倍。NDP将数据库节点和存储节点解耦,这一特性将成为未来云原生数据库系统的一个标准。大型扫描在OLAP工作负载中很常见,NDP将大大提升此类操作的效率。综上所述,NDP可以:减少网络带宽的使用量降低网络IOPS同时使用多个页数据存储来实现NDP并行处理提高需要大表扫描的SQL查询的性能降低数据库节点的CPU使用率,使数据库节点能够支持更多的OLTP工作负载
  • [全栈开发者] 课程进度打卡:+20 积分!
    数据库全栈成长计划—【课程进度】打卡你走的每一步都作数,让努力和成绩成正比做任务—得积分—赢奖品,请为心中的梦想冲刺吧!参与【课程进度】打卡,获双重奖励:奖励1:参与奖励报名后,完成【课程进度】打卡,即可获得200码豆(每个ID只有一次领取机会,参与其他活动/打卡帖不叠加)奖励2:终极奖励获得对应的20积分,根据积分值兑换奖品 如何获取【课程进度】:20积分?课程分为:数据库基础知识、专项进阶2个阶段。课程打卡共4周,每周按时打卡可获取5个积分,总共20积分。-全阶段课程一键报名: 点此报名/查看课程打卡有效期限:2021/11/15 - 2021/12/28 23:59结束参与方式:在本帖下方回复即可回复内容:华为云账号+课程名称+百分百完成进度
总条数:179 到第 页
上滑加载中