-
【功能模块】华为鲲鹏920 Robox【操作步骤&问题现象】1、将robox 搭配的安卓7自己升级到安卓9,请问下,转码程序需要升级吗?【截图信息】【日志信息】(可选,上传日志内容或者附件)
-
8月18日,华为云TechWave云原生数据库峰会在深圳举办。华为云与中国信通院云计算与大数据研究所共同发布了业界首个《云原生数据库白皮书》,梳理云原生数据库全流程概念及方法。华为云还与沃趣科技、明源云发布基于华为云云原生数据库GaussDB的联合解决方案,助力客户激活数据价值。会上,华为云CTO张宇昕表示:“数据库经历了线下部署和云化部署阶段,进入到云原生时代,云原生数据库已成为云上数据库使用的标准范式。华为云GaussDB践行云原生思维,将围绕Serverless、Regionless、Modeless三大方向构建核心能力,实现极致弹性、全域可用和极简体验,以满足企业上云和智能升级对时效性、可用性、混合负载等方面的诉求,打造企业核心业务云化的智能数据基座。1、云原生数据库持续演进 支撑客户随时、随地、随心使用如今,企业数字化已经进入深水区,业务数据总量呈现爆发式增长,新业务、新场景对数据库的时效性、可用性、混合负载以及性价比等提出了新的挑战。中国信通院云计算与大数据研究所副所长魏凯表示:“为应对上述挑战,数据库技术正朝着降低成本提升易用性、保障数据安全可信、提升功能增强性能、满足新兴业务需求四大目标演进,云原生数据库则是数据库技术发展的主要方向之一。”云原生数据库是为云架构而设计和构建的数据库,具备更高的扩展性,支持多租户、分布式部署等能力。张宇昕指出:“云原生数据库Serverless的特性增强了弹性、降低了成本,Regionless特性提高了可用性和扩展性,而Modeless特性提升了易用性和效率,在新场景和新应用中能够支撑企业业务的高效运转。Serverless让资源极致弹性传统的烟囱式建设模式会导致响应慢、资源利用率低、系统能力缺乏弹性等问题,难以应对业务突发情况及满足业务快速上线需求。华为云云原生数据库GaussDB具备存算分离、资源池化能力,能够提供多维度的弹性服务,将资源弹性速度从分钟级缩短至秒级,随时响应业务需求。Regionless让数据库全域可用随着出海趋势的到来,中国企业正蓄势跳跃到一个全新发展阶段,跨区域访问和7*24小时线上化成常态。在该背景下,客户存在时延高、体验差、投入成本大等问题,且数据安全与业务连续性面临挑战。华为云云原生数据库GaussDB支持跨AZ、跨Region的全球部署,业务可以在任意地方进行接入和访问,同时带来跨地域的高可用。Modeless带来数据库极简体验传统的数据库只能支持单一负载(TP 或者AP)或者单一模式(KV、文档、时序、宽表等),难以做到一体化的数据处理分析,在线化、实时化地发挥数据价值。华为云云原生数据库GaussDB分别采用HTAP和多模数据库技术,一个入口处理多样负载、一个入口处理多种数据类型,实现一站式处理,业务接入效率可从数月缩短至数天。华为云数据库服务产品部总经理苏光牛表示:“云原生数据库能够让客户更高效地使用数据库,从而构建起敏捷智能的企业数字化业务。特别是进入云原生2.0时代,新应用、新场景驱动数据库实现三大转变,即从以资源为中心到以应用为中心、从以地域为中心到以流量为中心、从以负载为中心到以数据为中心。云原生数据库与生俱来的优势与特征,促使越来越多的用户更加坚定地选择云原生数据库。”为加速企业拥抱云原生数据库,华为云与中国信通院云计算与大数据研究所联合撰写《云原生数据库白皮书》,系统阐述了云原生数据库的发展趋势与现状,从云原生数据库应用场景、技术架构、关键技术以及不同场景下的生产实践,详细介绍了云原生数据库的技术模式,并结合当前应用现状及问题,指明未来云原生数据库的技术方向,力求梳理云原生数据库全流程概念及方法。2、联合生态伙伴发布创新解决方案 让云原生数据库走进千行百业目前华为云已与80多家数据库领域的ISV建立合作关系。华为云与沃趣科技联合打造的QFusion平台在能源、机场等多个行业为客户创造价值。华为云与明源云联合打造的行业ERP解决方案,以数据库为抓手,盘活数据资产,让数据成为血液流动,加速不动产工程数字化。在落地实践中,华为云云原生数据库GaussDB已在2500多家客户规模商用,覆盖金融、政企、游戏、互联网、制造、电商等行业。在游戏行业,华为云为迷你创想成本降低60%,数据库承载量提升3倍,轻松应对1亿多月活;在音视频行业,华为云凭借超高性能和极致弹性能力,提升了多多视频用户的观看体验,为2.6亿用户打开新视界;在互联网行业中,华为云高效支撑华为终端7.3亿月活用户的日常使用,万亿级数据记录,百万级QPS,数据库资源与运维成本整体下降30%。数字化转型是一项复杂的长期工程,不仅需要多方技术力量的配合,更需要大胆创新。华为云践行“一切皆服务”的理念,持续深耕数据库技术和解决方案创新,推动更多企业安心上云、轻松用云,为企业数字化转型提供无限可能。
-
过去五十年里,数据库产品形态经历漫长的变迁与更迭。从大型机集成、封闭的数据库服务,到小型机时代经典的IOE数据库架构,再到互联网带来的MySQL开源数据库浪潮,直至云计算兴起开启了云数据库的时代。究其原因,数据库的发展始终与用户需求变迁紧密相关。如今,云原生数据库又脱颖而出,不仅成为AWS、华为云等一众厂商们力推的数据库发展方向,更有望书写数据库市场的新格局。从云数据库到云原生数据库,其中产生了哪些关键变化?为何数据库厂商们纷纷瞄准云原生数据库?云原生数据库会是用户们的真命天子么?面对种种疑问,华为云数据库服务产品CTO庄乾锋直言:“从用户商业应用需求的变化角度看,云原生数据库会成为用户必然的选择。”01云原生数据库为何备受关注要了解云原生数据库为何备受关注,首先需要知道云原生近年来巨大的影响力。云原生,被认为是以容器、微服务和DevOps等技术为基础而建立的一套云技术产品体系,可以充分发挥云计算弹性、分布式等优势,实现快速部署、按需伸缩和灵活交付。可以说,云原生被认为是云计算最重要的发展方向,也是企业数字化转型和上云的必经之路。如今,云原生技术已从单一容器技术发展到庞大的全栈化云原生技术体系。以CNCF社区(云原生计算基金会)为例,经过六年发展,其已经囊括了数据库、中间件等20多类的技术群。那么,从云数据库到云原生数据库,数据库到底有哪些不同?对此,庄乾锋表示道,“云原生数据库不再是简单的资源供给,而是在架构和技术上能感知应用特征。云原生数据库的一切设计围绕用户应用需求出发,目标是让应用能更智能、更高效地使用数据库。”事实上,云数据库更像是传统数据库按照云模式来提供的数据库服务,存在诸如存储空间浪费、系统性能有限、业务应用受限等缺点,并且这些缺点往往会在当前新的业务场景中得到放大。以保险行业为例,随着互联网保险的兴起,保险公司的业务迅速从线下转向线上,业务场景走向规模化、碎片化和实时化,保险公司业务随时需要经受考验,“水滴筹的一个热点事件,可能就会瞬间给保险公司巨大的业务量。因此,从商业上考虑,用户也在逼着自己走向云原生数据库。”随着企业上云成为大势所趋,各大云服务商们最早意识到云原生数据库的重要性,并且近年来纷纷推出相应的云原生数据库服务。其中,中国各大云服务商在市场中颇为抢眼,其中华为云又尤为表现突出。早在2019年,华为云就推出了云原生数据库GaussDB for MySQL,并且进行多项技术变革,使之成为市场的优秀代表。从2020年开始,华为云结合自身的经验总结与行业实践,又提出了云原生2.0理念,从理念层面、技术层面来推动包括云原生数据库在内的云原生服务在传统行业落地。据悉,针对用户在电商秒杀大促、爆款游戏、政务核心业务、实时供应链扥新业务场景带来的各种诉求,华为云云原生数据库GaussDB再次进行架构升级,以满足各行各业数字化转型的新需求。02架构升级带来什么如今,业务应用的变化一日千里。以大促为例,几年前还是互联网巨头的专属,如今则成为零售、垂直媒体、银行等客户的核心业务,这些业务不可预测性强、极端流量峰值高,相比于互联网巨头丰富的资源与人才配置,很多传统企业并无太多经验,面对时效性、可用性、混合负载、成本等一系列新挑战而“捉襟见肘”。在庄乾锋看来,很多新的业务跟大促类似,真正从需求的角度推动数据库的转变,具体而言就是以资源为中心到应用为中心、从地域为中心到流量为中心,以及从负载为中心到数据为中心,“云原生数据库一能够带来极致弹性,让用户按需使用,二则安全可靠和易可扩展,保障业务规模化的安全运行;三则是降低企业门槛,应用在架构设计、业务处理与切换等方面透明,满足企业多元化需求。”不仅如此,华为云GaussDB在几大关键技术进行了迭代升级,包括NDPQ、ALT、HTAP和多模架构等在业界中具备核心竞争力的技术,全面满足用户各种应用场景的需求。首先是NDPQ(Near-Data Parallel Query)近数据并行查询。云原生数据库的存算分离架构随着业务规模的提升,计算与存储节点通过网络通信,往往会存在网络带宽和延迟的制约。为此,华为云GaussDB NDPQ采用近数据计算下推的设计,避免在分布式系统中移动数据和大量网络流量的产生,并让数据处理在其所存储的地方进行,极大节约了网络带宽资源。“目前NDPQ是华为云数据库所独有的特性,通过近数据计算下推+并行查询,不仅可以将数据查询性能发挥到极致,更可以极大提升数据库的资源利用率。”庄乾锋补充道。其次是ALT(应用无损透明倒换)。在数据库日常进行的主备倒换、小版本升级和规格变更时,可能会造成实际业务中用户会话中断,对于业务连续性造成一定的影响,而ALT则以用户连接为颗粒度,当用户进行主备切换、小版本升级或者规格变更时,系统可以打包用户的会话上下文状态,在达到安全的事务边界后,确保会话上下文状态被完整重放至目标节点并与原会话一一关联保证业务持续性,不受各种操作的影响。第三则是HTAP。众所周知,随着数据驱动型场景的井喷,数据产生方式、规模、速度与过去大不同,数据消费的人群、规模和场景丰富场景迅速增加,数据库OLTP场景和OLAP场景开始加速融合,也推动了数据库HTAP架构的崛起。与SAP HANA这种混合负载的内存数据库不同,新一代的HTAP架构数据库具备显著的特点就是分布式+云原生。以华为云GaussDB的HTAP架构为例,将OLAP和OLTP能力深度融合、统一入口和自动分流,达到数据准实时一致,支持各种混合负载的应用场景。庄乾锋表示:“当前HTAP存在着各种技术路线,华为云则根据当前用户实际需求,打造了HTAP架构,实现统一入口和应用透明,架构在业界云厂商中具有领先性。”最后则是多模态。当前在很多业务场景中,用户除了使用关系型数据库能力之外,还会用到诸如图数据库、时序数据库等能力,如果数据需要转换、导出,不仅容易产生安全问题,多套数据库的维护和开发还将提升成本。因此,多模数据库架构统一数据访问和维护接口,可以大幅简化运维和开发人员的工作,还能确保安全性。以华为云云原生数据库GaussDB的多模架构为例,用户既可以使用MySQL、PostgreSQL等SQL接口访问数据库,还可以使用Redis、MongoDB等NoSQL接口访问,支持KV模型、时序模型和文档存储模型等,用户可以自由地在不同的云数据库之间迁移,满足业务的多样性需求和数据的自由流动。“华为云希望通过GaussDB架构的升级,第一、Serverless化,真正让用户实现以应用为中心,按需使用,TCO更低;第二、Regionless化,通过Global Database、全域分层式索引、全域一致性集群等技术,帮助数据自动流动,满足用户因为业务地域性发展的需求,业务流量在哪里,GaussDB就能部署在哪里,迅速响应客户的业务需求;第三、Modeless化,简化业务的复杂度,通过一个入口,实现应用的透明,以及数据自由流动。”庄乾锋总结道。03全栈技术创新华为云数据库后劲十足放眼全球,在开源和云的驱动下,云原生数据库正在迅速颠覆传统的数据库市场。在中国市场,数据库云化的趋势正在加速。IDC最新数据显示,2021全年中国关系型数据库市场规模达到27.7亿美元,同比增长36%;其中,公有云关系型数据库规模达15.4亿美元,同比增长49%,公有云模式占比提升至55.6%。面向未来,云原生数据库将成为市场竞争的持续焦点。Gartner 预测,到2025 年,基于云原生平台的数字化业务比例将达到95%,将带来云原生数据库市场的快速增长。面对潜力如此巨大的市场,除了华为云等云服务商之外,亦有传统老牌数据库巨头、各种初创数据库公司加入竞争之中。那么,华为云如何看待未来的市场机会,自身的竞争优势在哪里?对此,庄乾锋认为,云原生数据库将成为云上数据库使用的标准模式,华为云在从用户需求、全栈技术创新和开放生态三个角度发力,持续构筑自身的核心竞争力,引领云原生数据库市场的发展。华为云首先会持续聚焦数据库的主流生态,以用户业务需求为导向进行产品/服务的创新。“无论环境或者业务如何发展,全球用户一定会走向云原生的时代。华为云核心思路就是打造符合市场发展规律和需求的具有竞争力的云原生数据库。”另外,华为云会聚焦数据库全栈技术的创新。事实上,数据库作为三大根技术之一,与其他技术紧密联系。比如ARM服务器的兴起、处理器走向多核化、SCM新介质的兴起、AI技术的融入等,进一步要求厂商能够具备全栈技术的创新能力,打造出更加优秀的云原生数据库产品。不同于其他厂商,华为云正是业界少有的具备全栈技术能力的厂商。例如,基于内存池的HTAP是一个重要的创新方向,它需要将内存池技术和HTAP进行结合,充分发挥软硬件协同的能力,彻底解决内存池化的各种数据挑战,而华为云云原生数据库GaussDB已经在该领域走在业界的前列;又如,利用AI技术来实现数据库的自动驾驶也是业界重要的方向,华为云GaussDB融入AI技术,数据库管理智能高效,具备自动检测、自诊断、自调优和自运维等功能。第三则是开源开放,华为云携手合作伙伴实现共赢。华为云将GaussDB单机主备核心能力开源,打造openGauss开放生态,积极同时对主流开源数据库提供广泛的支持,与合作伙伴一起为客户提供创新数据库解决方案,满足用户不同场景的数据库应用需求。信通院调研数据显示,80%以上的企业认为云原生数据库是未来的发展方向。可以说,云原生数据库已经成为燎原之势,受到多个行业用户的关注和使用。面向未来,随着各行各业用户数字化转型的深入,新场景、新应用所迸发出来的新需求,将会推动云原生数据库市场持续壮大,也会驱动云原生数据库成为数据库市场的创新高地,而像华为云这种具备全栈创新能力、聚焦主流生态和用户需求导向的厂商,有望迎来更大的舞台。
-
《中华人民共和国国民经济和社会发展第十四个五年规划和2035年远景目标纲要》(简称“十四五”规划)中提出要加快推动数字产业化,年初发布的《“十四五”数字经济发展规划》中再次提出要大力推进产业数字化转型。数据作为生产要素在企业数字化转型的进程中扮演着重要的角色。激活数据要素价值,是促进我国发展数字经济、优化领域资源配置、驱动企业降本增效的关键一招。云原生数据湖支持异构数据灵活存储、计算资源弹性伸缩,能够帮助企业应对当前数据结构愈发复杂、数据处理分析时效性要求不断提高的业务环境,进而加速数据价值变现。云原生数据湖目前仍处于发展初期,技术路线不统一,业内产品能力良莠不齐。为进一步规范云原生数据湖技术体系,中国信通院依托中国通信标准化协会大数据技术标准推进委员会(CCSA TC601),联合腾讯云、阿里云、华为、星环、百度、海康威视、亚信、中国移动云能力中心等企业的二十余位专家共同参与编制完成了《云原生数据湖技术要求与测试方法》,旨在帮助大数据产品供应商及用户方评估云原生数据湖的技术能力和研发方向。云原生数据湖首批评测已于2022年上半年展开,并于6月份的“大数据产业峰会”上颁发了证书。本次评测涉及云原生数据湖的存储能力、计算能力、安全能力、数据管理能力、兼容能力、运维能力、湖应用能力和高可用能力,共计28个必选项和18个可选项。首批共有7款产品参与评测(详见:中国信通院公布第十四批“可信大数据”评估评测结果,34家企业完成),从测评中可以发现,云原生数据湖容器化、Serverless能力有待提升。目前,第二批云原生数据湖评测正式启动! 报名网站:http://databench.cn/index来源:中国信通院
-
感谢大家对本次直播的支持与参与,恭喜以下获奖的童鞋,请于8月29日前反馈您邮寄信息,以便准时收到奖品,我们将于15个工作日左右寄出。邮寄信息填写地址:cid:link_0逾期未反馈信息则视为自动放弃获奖资格,请知悉。有疑问可咨询蛋花(微信号:Huawei-danhua)<优质提问获奖公示>:评选以下3个优质问题送华为定制无线鼠标。<视频号观看top3获奖公示>:关注视频号,且观看直播时长top 3(≥20min)用户送华为定制T恤。<直播观后有感获奖公示>:评选以下3个最有价值内容送华为定制T恤。直播简介【专家简介】茆正华 派拉软件研发总监、CZTP零信任专家程泽 华为云DTSE技术布道师【直播简介】本期直播分享云原生架构下的身份管理平台,为企业、机构、开发者构建云安全数字身份入口,赋能用户全场景下的数字身份治理与链接服务。参与互动交流还有华为周边好礼等你领!【直播时间】2022年8月25日 19:00-20:30直播链接:cid:link_1活动介绍【互动方式】您可以在本帖分享直播观后感(直播收获或直播感受),结束后讲师会评选3个最有价值内容。【活动时间】8月25日 19:00—8月26日 24:00【奖励说明】评奖规则:8月25日 19:00开始,您可以在本帖分享300字以上直播观后感(直播收获或直播感受),评选3个最有价值内容送华为定制T恤。奖品:更多有奖活动:cid:link_3【注意事项】1、为保证您顺利领取活动奖品,请您在活动公示奖项后2个工作日内私信提前填写奖品收货信息,如您没有填写,视为自动放弃奖励。2、活动奖项公示时间截止2022年8月29日,如未填写视为弃奖。本次活动奖品将于奖项公示后15个工作日内统一发出,请您耐心等待。3、活动期间同类子活动每个ID(同一姓名/电话/收货地址)只能获奖一次,若重复则中奖资格顺延至下一位合格开发者,仅一次顺延。4、如活动奖品出现没有库存的情况,华为云工作人员将会替换等价值的奖品,获奖者不同意此规则视为放弃奖品。5、其他事宜请参考【华为云社区常规活动规则】。
-
zhangwei0721+邀请者账号hw21098757
-
云原生数据库峰会获奖公示本次活动因前期论坛升级等原因,导致统计数据有误,8月25日15点之前给各位发的收货问卷链接作废,给大家带来不便,深感不安和抱歉。中奖名单最新公示时间为2022年8月25日晚6点50分,公示时间至8月29日0点,以此版本为准。用户无疑议后,8月30日进行收货问卷链接发放,9月2日12点停止收集问卷,过期不候,望周知。获奖活动获奖回帖ID获奖奖品盖楼打卡活动yd_270337844折叠支架/罗技鼠标/公牛电源/帆布袋(4选1)Erik_long折叠支架/罗技鼠标/公牛电源/帆布袋(4选1)这个地方是昵称折叠支架/罗技鼠标/公牛电源/帆布袋(4选1)DragonCurry折叠支架/罗技鼠标/公牛电源/帆布袋(4选1)ziyuwei折叠支架/罗技鼠标/公牛电源/帆布袋(4选1)mayingjdzx折叠支架/罗技鼠标/公牛电源/帆布袋(4选1)huaweiqiujie折叠支架/罗技鼠标/公牛电源/帆布袋(4选1)上帝之眼折叠支架/罗技鼠标/公牛电源/帆布袋(4选1)hwzhaoyuhua折叠支架/罗技鼠标/公牛电源/帆布袋(4选1)zgx1636964790折叠支架/罗技鼠标/公牛电源/帆布袋(4选1)xuexiaozhaoyh折叠支架/罗技鼠标/公牛电源/帆布袋(4选1)wangyuyanhw折叠支架/罗技鼠标/公牛电源/帆布袋(4选1)王毛毛折叠支架/罗技鼠标/公牛电源/帆布袋(4选1)xiexinlian折叠支架/罗技鼠标/公牛电源/帆布袋(4选1)hwwangyuy折叠支架/罗技鼠标/公牛电源/帆布袋(4选1)天意不可违、折叠支架/罗技鼠标/公牛电源/帆布袋(4选1)yd_54817690折叠支架/罗技鼠标/公牛电源/帆布袋(4选1)Gezelligheid折叠支架/罗技鼠标/公牛电源/帆布袋(4选1)shao1112折叠支架/罗技鼠标/公牛电源/帆布袋(4选1)ty32折叠支架/罗技鼠标/公牛电源/帆布袋(4选1)home520折叠支架/罗技鼠标/公牛电源/帆布袋(4选1)以上中奖名单中,使用微信抽奖重新随机抽取一个中奖用户加赠Hlink保温杯,恭喜Erik_long,想查看抽奖过程的用户,请联系微信:zhangyuxiao6012,以示公正邀请报名活动yd_270337844 折叠支架hw21098757罗技鼠标M275linshan6408折叠支架suifeng1324折叠支架yaoyao15折叠支架zero766 25HiLink智能保温杯ziyuwei 50HUAWEI FreeBuds 4i 无线耳机活动时间:2022/8/10-8/18活动内容:活动1 峰会"预约报名",回帖盖楼奖励奖励及规则:盖楼层数X中奖用户数中奖楼层奖品名称XX/10所有楼层尾数6的楼层的用户 1.折叠支架/罗技鼠标/公牛电源/帆布袋(随机发)X≥50X/10+1所有楼层尾数8的楼层的用户 2.在1奖品基础上,随机抽1位加赠GaussDB纪念T恤一件X≥100X/10+1所有楼层尾数2的楼层的用户 3. 在1奖品基础上,随机抽1位加赠HiLink智能保温杯1个参与方式:完成《华为云TechWave云原生数据库峰会》预约报名,将报名成功截图进行回帖盖楼,>>>峰会报名入口回复格式:华为云账号+报名成功截图(重复盖楼不超过3次) 活动2 呼朋引伴,回帖盖楼奖励奖励与规则:相互填写对方的华为云账户不算邀请哦!有效邀请人数X奖品礼品数量X≥2价值29元手机支架200X≥10价值79元罗技鼠标M275/纪念T恤(随机发)100X≥20价值139元HiLink智能保温杯20X≥50价值499元HUAWEI FreeBuds 4i 无线耳机 3X≥200价值1488元华为WATCH GT2运动款1参与方式:分享活动海报,邀请好友报名参会,好友完成报名,参与盖楼回帖回复格式:华为云账号+邀请者华为云账号+报名成功截图
-
在上一篇基于docker的安装中,我们使用enmotech的最新镜像完成了安装和启动。容器部署非常方便,卸载更是简单。但是这个特点如同一柄双刃剑,带来便利的同时,也会有一些缺点。容器一旦删除,容器内的所有数据和配置都会丢失。即使重新运行一个新的容器,得到的不过是一个崭新的初始状态的数据库。所以,对于数据库这种需要持久化的数据来说,还需要看下如何才能防止因为容器的删除或损坏导致数据的丢失。在openGauss数据库中,通过指定相关参数来实现此功能。数据库持久化启动我们本次持久化测试的环境基于上一篇在docker部署openGauss。我们先把上次启动的容器实例删掉。[root@pekphisprb70593 docker]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 573ea1edffb8 enmotech/opengauss:3.0.0 "entrypoint.sh gauss…" 3 days ago Up 3 days 5432/tcp opengauss [root@pekphisprb70593 docker]# docker stop 573ea1edffb8 573ea1edffb8 [root@pekphisprb70593 docker]# docker rm 573ea1edffb8 573ea1edffb8以下命令使用原opengauss镜像启动一个容器:docker run --name opengauss --privileged=true -d -e GS_PASSWORD=Enmo@123 -v /enmotech/opengauss:/var/lib/opengauss -p 15432:5432 enmotech/opengauss:3.0.0其余参数的解释可以参考上一篇安装。这里我们主要关注下 -p -v两个参数。-p参数:openGauss的默认侦听启动在容器内的5432端口上,如果想要从容器外部访问数据库,则需要在docker run的时候指定-p参数。比如以上命令将允许使用15432端口在容器外访问数据库。上述命令正常启动容器数据库之后,可以通过外部的gsql进行数据库访问。-v 参数:指定Docker中openGauss的所有数据文件,容器内是/var/lib/opengauss目录 ,宿主机是/enmotech/opengauss目录。如果宿主机的/enmotech/opengauss如果不存在,docker会自动创建,但是必须是绝对路径。Docker对其拥有读写权限。在容器内部查看数据库目录。如下图,已在容器内/var/lib/opengauss创建了data目录。[root@pekphisprb70593 docker]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 89747134cd4d enmotech/opengauss:3.0.0 "entrypoint.sh gauss…" About a minute ago Up About a minute 0.0.0.0:15432->5432/tcp, :::15432->5432/tcp opengauss [root@pekphisprb70593 docker]# docker exec -it 89747134cd4d /bin/bash root@89747134cd4d:/# cd /var/lib/opengauss/data/ root@89747134cd4d:/var/lib/opengauss/data# ls asp_data gs_gazelle.conf pg_audit pg_errorinfo pg_location pg_notify pg_snapshots PG_VERSION postmaster.opts undo base gs_profile pg_clog pg_hba.conf pg_log pg_perf pg_stat_tmp pg_xlog postmaster.pid gaussdb.state gswlm_userinfo.cfg pg_csnlog pg_ident.conf pg_logical pg_replslot pg_tblspc postgresql.conf postmaster.pid.lock global mot.conf pg_ctl.lock pg_llog pg_multixact pg_serial pg_twophase postgresql.conf.lock sql_monitor 我们在宿主机上查看下数据库目录。如下图,已在宿主机上/enmotech/opengauss创建了data目录。可以看到容器中的数据已存储到操作系统中。数据持久化验证下面我们通过建表、插入数据查看是否可以完成数据的持久化存储。进入容器,登录数据库。[root@pekphisprb70593 docker]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 89747134cd4d enmotech/opengauss:3.0.0 "entrypoint.sh gauss…" About a minute ago Up About a minute 0.0.0.0:15432->5432/tcp, :::15432->5432/tcp opengauss [root@pekphisprb70593 docker]# docker exec -it 89747134cd4d /bin/bash root@89747134cd4d:/var/lib/opengauss/data# su - omm omm@89747134cd4d:~$ gsql omm=# 是个新的数据库实例,看下我之前安装时测试创建的用户wxx在不。不出所料,就是不存在的。因为之前操作的时候并没有进行持久化的启动。创建表test1,然后插入数据。create table test1(id int,name varchar(20)); INSERT INTO test1 VALUES (1, 'oligei');关闭数据库。omm@89747134cd4d:~$ gs_ctl stop -D /var/lib/opengauss/data/ [2022-07-19 02:46:25.253][423][][gs_ctl]: gs_ctl stopped ,datadir is /var/lib/opengauss/data waiting for server to shut down....[root@pekphisprb70593 docker]#启动数据库。[root@pekphisprb70593 docker]# docker start 89747134cd4d 89747134cd4d [root@pekphisprb70593 docker]# docker exec -it 89747134cd4d /bin/bash root@89747134cd4d:/# su - omm omm@89747134cd4d:~$ gsql验证一下容器重启后,原来的数据还在。只是重启的话,那数据没丢一点都不意外。我们更多关注的是容器删除这种情况。[root@pekphisprb70593 docker]# docker stop 89747134cd4d 89747134cd4d [root@pekphisprb70593 docker]# docker rm 89747134cd4d 89747134cd4d [root@pekphisprb70593 docker]# docker exec -it 89747134cd4d /bin/bash Error: No such container: 89747134cd4d可以看到原容器已删除成功。现在重新启动,看下是否持久化成功。这里还是需要使用之前指定的存储路径的。[root@pekphisprb70593 docker]# docker run --name opengauss --privileged=true -d -e GS_PASSWORD=Enmo@123 -v /enmotech/opengauss:/var/lib/opengauss -p 15432:5432 enmotech/opengauss:3.0.0 [root@pekphisprb70593 docker]# docker ps [root@pekphisprb70593 docker]# docker exec -it 74b94a7bda80 /bin/bash root@74b94a7bda80:/# su - omm omm@74b94a7bda80:~$ gsql omm=# select * from test1;结果上个图。由上图也可以看出,原来的表记录依然存在,数据库持久化成功。
-
Docker是一个开源的应用容器引擎,让开发者可以把应用及依赖包打包到一个可移植的容器中,然后发布到流行的Linux或Windows机器或虚拟机上。openGauss是一款高性能、高安全、高可靠、高智能的企业级开源关系型数据库。openGauss 3.0.0 发布后,云和恩墨制作了docker版本。基于此, 我们可以不需要使用原始安装包和一系列安装配置,可以直接运行docker镜像的版本。本文主要介绍通过Docker安装openGauss 3.0.0,方便DevOps用户的安装、配置和环境设置。1.安装Docker首先准备一台x86_64已安装了CentOS 7.6的服务器。我用的还是上次centos安装时找小伙伴申请的华为云ECS服务器,不过卸载掉了已安装的openGauss。(可选)配置yum源。yum是centos下更新、管理软件的命令,yum源是yum命令去哪里取安装包的地图,yum命令查询yum源也就是repo文件上配置的地址去取相应的rpm包进行安装。常见的yum源:华为云、网易、阿里云等。我使用的是华为云的镜像 https://mirrors.huaweicloud.com/home ,需要先注册。然后按照图片指示和网站描述的步骤和命令进行操作,注意换一下CentOS的版本。执行wget 获取repo的时候,如果执行失败, 可以尝试把https 换成http。如果你可以直接执行 yum search zlib-devel 而没有报错的话就说明无需额外配置,可以直接下一步了。有些公司内无法连接公网的需要自己配置相应的公司内部的yum源。然后下载需要的安装包。yum install -y yum-utils等待下载完成。设置镜像的仓库 。这里我还是使用的是华为云的镜像,然后按照图片指示和网站描述的步骤和命令进行操作,注意根据OS切换页签到Fedora/CentOS/RHEL这里。 PS: 这个也可以是其他网站的源,网上有很多,这里我就不再赘述。这里第2步执行wget 获取repo的时候,如果执行失败, 可以尝试把https 换成http。执行 sudo yum install docker-ce 的时候要根据提示输入y ,等到提示Complete ! 就安装好了。启动Docker,状态为active(running)就OK。systemctl enable docker systemctl start docker systemctl status docker2. 配置Docker设置docker加速。由于国内直接访问docker hub网速很慢,拉取镜像的时间很长。通常我们使用镜像加速或者从国内的一些平台镜像仓库上拉取。创建 /etc/docker/daemon.json 新增内容 。cd /etc/docker/ vi daemon.json配置几条国内的加速地址。我这分别是Docker中国区的、网易的和中国科技大学的。{ "registry-mirrors": [ "https://registry.docker-cn.com", "http://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn"] }重启docker。systemctl daemon-reload service docker restart执行 docker info 命令查看最后是否有新加的registry-mirrors部分。拉取hello world验证下,如图所示表示成功。docker pull hello-world3 拉取openGauss镜像openGauss 3.0.0 有企业版和轻量版。轻量版定位是在软硬件资源受限场景下仍可使用openGauss,但是保留了企业版大部分的特性,轻量版通过参数默认关闭的特性:Ustore、Asp、增量检查点、双写、列存、段页式存储等,还有些不支持的特性如ORC文件访问、Kerberos安全校验、AI、全密态数据库、CM、OM。工具也进行了精简,保留了用户常用的gsql、gs_ctl、gs_guc、gs_dump、gs_restore等工具,和安装部署、升级的工具liteom。但是对于个人或者实验环境也足够了。前两部稍微繁琐一丢丢,但是配置好了一劳永逸,可以随意拉镜像了。openGauss镜像这里我们用的云和恩墨的镜像。从3.0.0版本开始(包括3.0.0版本)容器使用Lite版安装包,基础镜像的大小进一步降低到100MB以下;默认启动后的空载内存占用小于200MB;在容器内部的操作系统级别添加vi,ps等基础命令。因为3.0.0是最新版本,所以latest就是3.0.0。这里,直接用的指定版本。docker pull enmotech/opengauss:3.0.0执行docker images查看下我们的已有镜像,enmotech/opengauss:3.0.0 也在此列。4. 开启实例镜像拉取后就可以一条命令启动实例。GS_PASSWORD=Enmo@123 可以修改成自己熟悉的密码。docker run --name opengauss --privileged=true -d -e GS_PASSWORD=Enmo@123 enmotech/opengauss:3.0.0GS_PASSWORD:设置openGauss数据库的超级用户omm以及测试用户gaussdb的密码。如果要从容器外部(其它主机或者其它容器)连接则必须要输入密码。GS_NODENAME:数据库节点名称,默认为gaussdb。GS_USERNAME:数据库连接用户名,默认为gaussdb。GS_PORT:数据库端口,默认为5432。除了GS_PASSWORD外都可以使用默认值。若要设定非默认值,和GS_PASSWORD一样使用 -e 设定。进入容器,测试连接[root@pekphisprb70593 dockerfiles]# docker ps --获取CONTAINER ID [root@pekphisprb70593 dockerfiles]# docker exec -it 1d54ee4a5f40 /bin/bash --把这个命令里的 1d54ee4a5f40 修改为实际的ID然后就和在普通服务器一样操作了。openGauss镜像配置了本地信任机制,因此在容器内连接数据库无需密码。root@1d54ee4a5f40:/# su - omm omm@1d54ee4a5f40:~$ gsql使用docker安装确实简单又快捷。5. Q&A.Q:docker 启动实例的时候报错“docker: Error response from daemon: Conflict. The container name "/opengauss" is already in use by container”,但是docker ps又查不到,而且也连不上 ?A:先执行docker ps -a 查看所有进程,看到处于Exited 状态。之前已经启动过opengauss这个名字的实例了,再次执行的话就会报冲突。至于查不到,原因很可能是启动后重启了docker。解决办法有两个,一是创建实例的时候修改实例名,如opengaussNew;二是删除原来的opengauss实例,然后重新启动实例。docker rm 实际的CONTAINER IDQ:如果不需要了,要怎么卸载?A:如果不需要了,就可以不需要卸载啊后处理,直接通过删除容器的方式删除数据库。−删除容器docker ps -a docker rm 实际的CONTAINER ID−删除镜像docker rmi -f 镜像ID
-
华为伙伴暨开发者大会 2022期间,华为云在线上举办“创新无限,一切皆服务”技术论坛。会上,华为云CTO张宇昕宣布云原生2.0全景图全面升级,从基础设施即服务、技术即服务、经验即服务三个维度带来多项全新云服务,并发布《云原生2.0架构白皮书》。同时,华为云开源分布式云原生内核、开源华为云GaussDB时序时空数据库内核,推出D-PLAN计划,打通AI模型变现通路,构建持续创新、开放的技术生态。华为云CTO张宇昕发表主题演讲华为云CTO张宇昕表示:“华为云围绕一切皆服务,持续践行云原生。通过应用开发生产线、数据治理生产线、AI开发生产线和数字内容生产线的融合,让应用、数据、模型经验和数字内容的呈现和交互有机结合。使得企业不断通过新技术、新生产线构建新生产方式,快速获取新的能力,创造新价值。”一切皆服务,华为云云原生2.0全景图再升级为赋能云原生企业智能升级,实现“资源高效、极致体验、万物互联、应用敏捷、业务智能、安全可信、行业使能”,华为云云原生2.0全面升级。匹配华为云“一切皆服务”业务战略,在基础设施即服务方面,华为云进一步打造一致体验的分布式云原生基础设施;通过安全云脑,把AI融入云原生安全体系,提升检测能力和运营效率,让安全更智能。在技术即服务方面,为了企业能够更好的快速构建新型生产方式,华为云整合打造了四大生产线及多种云原生技术,让企业快速获取新的技术能力,提升生产效率,从而支撑企业的持续创新和快速发展。在经验即服务方面,华为云继续增强基础aPaaS能力,将华为积累的更多基础能力开放出来。本次全新发布的《云原生2.0架构白皮书》,总结云原生2.0的十大典型架构特征,分享华为云原生架构设计方法,详细解读基于华为云云原生产品的架构设计模式,华为云首次向产业界从软件架构设计角度分享对企业云化、数字化转型的系统化思考、建议与展望,加速云原生在全行业的落地。四大生产线服务“长剑出鞘”,助力开发者高效创新华为云认为,数字化、智能化时代,企业的IT资产主要包含三方面:软件资产、数据资产、AI模型资产。同时,这些资产不只需要服务于物理世界,还需要支撑企业面向未来的虚拟数字世界构建能力。比如企业生产线、城市信息的建模、仿真、交互。基于此,华为云持续打造技术即服务,在去年发布了三大生产线服务,并在此次大会期间推出了全新的数据治理生产线DataArts,实现一站式数据入湖、数据准备、数据分析、数据资产等全流程的数据治理,同时融合智能化治理能力,帮助数据开发者大幅提升效率。如今的华为云四大生产线服务包含软件开发生产线DevCloud、数据治理生产线DataArts、AI开发生产线ModelArts以及数字内容生产线MetaStudio。软件开发生产线DevCloud把华为的全流程软件开发经验放到华为云上,提供给开发者使用;数据治理生产线DataArts帮助企业更便捷高效地管理和使用数据,释放数据价值;AI开发生产线ModelArts让AI开发更加简单高效;数字内容生产线MetaStudio让各行业可以便捷地在云上生产数字内容、开发3D应用,打造虚拟演唱会、虚拟展会、办公协作、工业数字孪生等各种元宇宙应用场景,让海量用户在其中实时无缝沟通。四大生产线可以帮助各行各业的软件开发更简单快速地完成SaaS化,在云上创造更多新价值。多个重磅新品发布,所见即所得大会期间,华为云推出多个全新云服务,数字人直播和视频制作服务也全面上线。开发者可直接调取对应的接口API,快速上线直播及视频内容制作,5秒生成风格化数字人。值得一提的是,华为云MetaStudio还将提供写实数字人服务,整个制作周期从业界2个月可缩短至7天以内,极大减少艺术家制作写实数字人的周期和成本,有望在综艺、影视等行业广泛运用。AI应用开发框架ModelBox可以实现AI应用一次开发、全场景部署。基于盘古驱动的代码大模型,华为云智能化应用构建平台,重新定义应用构建流程,彻底打通从需求-设计-开发的全链路,根据目标场景的业务需求,沉淀行业Know-how,生成既有静态内容、样式、布局,又有业务逻辑,数据与交互表达的行业应用,同时在人机协同的理念下, 引入多模态AI与NLP大模型,进行启发式的端到端零代码构建行业应用。软件开发方面,桌面IDE CodeArts,内置了华为云开发套件,可以快速连接220多个云服务和4500多个华为云API,让开发更便捷。此外,华为云还推出了测试自动化工厂,在国内首创了通过思维导图进行测试设计,加载速度相比业界有5倍提升,同时也是业界首家支持亿级用例管理的厂商,加快业务迭代上线。创新二进制软件成分分析服务,无需依赖源码,就能快速检查产品软件的开源合规风险、安全漏洞及信息泄露风险,实现了上架合规问题小时级的全自动检测、可以大幅提升移动应用App上架效率提前识别合规风险。此外,融合计算引擎方面,华为云GaussDB(for MySQL)也迎来了全新能力升级,HTAP正式商用,支持一站式数据处理,让应用使用更加透明,及时精准的数据分析,轻松助力商业决策。开源开放,实现技术生态商业闭环产业共建方面,华为云也秉承持续开放,贡献开源社区的原则。从2015年与业界厂商共同创立CNCF后,华为云先后向CNCF贡献了KubeEdge、Volcano、Karmada等多个项目,也开源了服务器操作系统EulerOS。基于UCS的成功实践,本次论坛,华为云构建了开源的分布式云原生套件Kurator, 其中包括新增的开源分布式云原生服务中心 Kappital,可以帮助业界实现云原生应用服务化,并构建全生命周期管理平台,助力企业快速搭建分布式云原生平台,实现企业业务跨云、跨边分布式化升级开发。同时开源的还有华为云GaussDB时序时空数据库内核,命名为openGemini,它面向物联网、运维监控等业务场景,具备创新的架构设计、卓越的读写性能、高效的数据分析能力和数据压缩能力,是企业数字化转型升级,海量数据处理的最佳选择。希望与开发者、企业一起,共同推动时序数据库的技术创新,共建开放生态。基于昇腾、MindSpore、ModelArts这些全栈服务能力,华为云正式推出了D-PLAN计划。目前D-PLAN依托华为云的AI Gallery,已经汇聚了5万多个AI相关的资产,已经有70多所高校通过AI Gallery进行经验分享和交流,涉及六大行业,25个细分场景。下一阶段,华为云将打通AI Gallery和华为云市场,在技术交流的基础上,提升商业闭环的效率。过去的一年,是华为云与伙伴、开发者共同加速成长的一年。越来越多的伙伴和开发者加入了华为云。华为云的伙伴数量从20000家增加到38000家;开发者数量从180万增加到302万,伙伴在华为云云市场上架的商品数量从4000个增加到7400多个。继往开来,华为云将继续和合作伙伴、开发者一起,通过经验即服务、技术即服务、基础设施即服务,实现一切皆服务,共创新价值。
-
与以磁盘存储为主的普通数据库相比,内存数据库的数据访问速度可以高出几个数量级,能大幅提高运算性能,更适合高并发、低延时的业务场景。不过,当前大部分内存数据库仍然采用 SQL 模型,而 SQL 缺乏一些必要的数据类型和运算,不能充分利用内存的特征实现某些高性能算法。仅仅是把外存的数据和运算简单地搬进内存,固然也能获得比外存好得多的性能,但还没有充分利用内存特征,也就不能获得极致的性能。下面我们来看看,有哪些适合内存特征的算法和存储机制,可以进一步提升内存数据库计算速度。指针式复用我们知道,内存可以通过地址(指针)来访问。但 SQL 没有用内存指针表示的数据对象,在返回结果集时,通常要把数据复制一份,形成一个新的数据表。这样不仅多消耗 CPU 时间(用于复制数据)而且还会占用更多昂贵的内存空间(用于存储复制的数据),降低内存使用率。除了 SQL 型的内存数据库外,Spark 中的 RDD 也有这个问题,而且情况更严重。为了保持 RDD 的 immutable 特性,Spark 在每个计算步骤后都会复制出新的 RDD,造成内存和 CPU 的大量浪费。所以,即使耗用了巨大资源,Spark 也仍然做不到高性能。相比之下,SQL 型的内存数据库通常还会优化,在 SQL 语句中的计算会尽量使用内存地址,通常要比 Spark 的性能更好。但是,受到理论限制,实现 SQL 的逻辑时,返回的结果集就必须复制了。如果涉及多步骤的过程运算,要多次在上一步的结果集(临时表)基础上进一步计算,SQL 的劣势就会很明显了。事实上,如果没有改变数据结构,我们可以直接用原数据的地址形成结果集,不需要复制数据本身,仅仅多保存一个地址(指针),同时减少 CPU 和内存的消耗。SPL 扩展了 SQL 的数据类型,支持这种指针式复用机制。比如,对订单表按照订单日期(odate)范围过滤后,分别求出订单金额(amount1)大于 1000 和运货费(amount2)大于 1000 的订单,再计算出两者的交集、并集和差集,最后将差集按照客户号(cid)排序。SPL 代码大致是这样:A B1 =orders.select(odate>=date(2000,1,1) && odate<=date(2022,1,1)) 2 =A1.select(amount1>1000) =A1.select(amount2>1000)3 =A2^B2 =A2&B24 =A2\B2 =B2\A25 =A4.sort(cid) =B4.sort(cid)以上代码中有好几个步骤,有的中间结果也被用了多次,但由于使用的都是订单表记录的指针,所以内存占用增加的很少,也避免了记录复制的耗时。 外键预关联外键关联是指用一个表(事实表)的非主键字段,去关联另一个表(维表)的主键。比如订单表中的客户号和产品号分别关联客户表、产品表的主键。现实运算中这种关联可能多达七八个甚至十几个表,还可能出现多层的关联。SQL 数据库通常使用 HASH JOIN 算法来做内存连接,需要计算和比对 HASH 值,过程中还会占用内存来存储中间结果,关联表很多时计算性能就会急剧下降。其实,我们也可以利用内存指针引用机制事先做好关联。在系统初始化阶段,把事实表中的关联字段值转换为对应维表记录的指针。因为维表的关联字段是主键,所以关联记录唯一,将外键值转换成记录指针不会引起错误。在后续计算中,需要引用维表字段时,可以用指针直接引用,无需计算和比对 HASH 值,也不需要再存储中间结果,从而获得更优的性能。SQL 没有记录指针这种数据类型,也就无法实现预关联了。SPL 则从原理上支持并实现了这种预关联机制。例如,完成订单表和客户表、产品表预关联的代码大致是这样:A1 =file(“customer.btx”).import@b().keys@i(cid)2 =file(“product.btx”).import@b().keys@i(pid)3 =file(“orders.btx”).import@b().switch(cid,A1;pid,A2)4 >env(orders,A3)A1、A2 加载客户表和产品表。A3:加载订单表,将其中的客户号 cid、产品号 pid 转换为对应维表记录的指针。A4:将完成预关联的订单表存入全局变量,供后续计算使用。系统运行时,按照产品供应商过滤订单,再按客户所在城市分组汇总的代码大致是下面这样:A1 =orders.select(pid.supplier==“raqsoft.com”).groups(cid.city;sum(pid.price*quantity))订单表中的 pid 已经转换为产品表记录的指针,所以可以直接用“.”操作符引用产品表记录。 不仅书写更简单,而且运算性能也快得多。只是两、三个表关联时,预关联和 HASH JOIN 的差别还不是非常明显。这是因为关联并不是最终目的,之后还会有其它很多运算,关联本身运算消耗时间的占比相对不大。但如果关联情况比较复杂,涉及的表很多,以及有多层的时候(比如订单关联产品,产品关联供应商,供应商关联城市,城市关联国家等等),预关联的性能优势会更明显。序号定位与外存相比,内存的另一个重要特征是支持高速的随机访问,可以快速从内存表中按指定序号(也就是位置)取出数据。在做查找计算时,如果被查找的值正好是目标值在内存表中的序号,或者很容易通过被查找值计算出目标值的序号,我们就可以用序号直接取目标记录。这种方法不需要进行任何比对就能直接取出查找结果,性能不仅远远好于遍历查找,也好于使用索引的查找算法。但是,SQL 以无序集合为基础,不能按序号取成员,只能用序号去查找。如果没有索引就只能遍历查找,会非常慢。即使有索引也要计算 HASH 值或用二分法查找,速度也比不上直接定位。而且,建立索引也会占用昂贵的内存。如果数据表中没有序号还要先排序再硬造个序号时,性能就会更差。SPL 以有序集合为基础,提供序号定位功能。比如订单表中的订单号是从 1 开始的自然数。在查找订单号 i 时,直接取订单表中的第 i 条记录就行了。再比如数据表 T 从 2000 年到 2022 年每天存储一条数据,现在需要查询指定日期的记录。日期虽然不是目标值的序号,但是我们可以先算出指定日期距离起始日期的天数。这就是目标值的序号,然后再用序号取 T 表记录就可以了。对表 T 用序号定位查找 2022 年 4 月 20 日记录的代码,大致是下面这样:A1 =date(2022,12,31)-date(1999,12,31)2 =T_orginal.align@b(to(A1),dt-date(1999,12,31))3 =env(T,A5)4 =T(date(2021,4,20)-date(1999,12,31))A1:计算出 2000 年到 2022 年总天数是 8401 天。A2:用原始的 T 表记录计算出距离起始日期的天数,再和 to(A1)这个自然数集合 [1,2,3,…,8401] 对齐,空缺的日期会用 null 补齐。align 的 @b 选项表示对齐时将使用二分法来查找位置,这样完成对齐动作也会更快一点。A3:计算好的结果,放到全局变量 T 中。A4:要查找 2021 年 4 月 20 日记录,求出这个日期和起始日期距离 7781 天,直接取出 T 表中第 7781 条记录就可以了。A1 到 A3 是对齐计算,用于处理空缺的日期,可以放在系统初始化阶段。在查找计算时,用 A4 中的序号定位代码就能得到查找结果,实际查找的日期可以作为参数传入。集群维表当数据量太大,超出单机内存时,就要使用集群来加载这些数据。许多内存数据库也支持分布式计算,通常是将数据分成多段,分别加载到集群不同分机的内存中。JOIN 是分布式计算的一个麻烦任务,会涉及多个分机之间的数据传输。严重的时候,传输造成的延迟会抵消集群分摊计算量得到的好处,会出现集群变大反而性能并不能提升的现象。SQL 体系下的分布式数据库,通常是将单机 HASH JOIN 方法扩展到集群上。每个分机根据 HASH 值将本机数据分发到其他分机,确保相关联的数据在同一分机上。然后再在各个分机上做单机连接。但是,HASH 方法在运气不好的时候,可能会造成数据分配的严重不均衡,需要借助外存来缓存这些分发到的数据,否则可能因为内存溢出而导致系统崩溃。但是,内存数据库的主要特征就是将数据加载到内存中计算,出现外存缓存会严重拖慢计算性能。实际上,外键关联的事实表和维表有很大区别。事实表一般都比较大,要用各个分机内存分段加载才能装的下。正好事实表也比较适合分段,每个分段的数据都相互独立,分机之间不需要相互访问。而维表记录则会被随机访问,事实表的任何一个分段都可能关联全部维表记录。我们可以利用事实表和维表的区别,对集群的外键关联提速。如果维表比较小,则将维表全量数据复制到所有分机内存中。这样,每个分机中的事实表分段和全量维表就可以继续完成预关联,完全避免了关联过程中的网络传输。如果维表也很大,单机内存放不下,只能在各分机内存中分段加载。这时,没有一个分机上有全量的维表,外键关联计算就无法避免网络传输了。不过传输内容并不算很大,只涉及事实表的外键和维表关联记录的字段,事实表其它字段不需要传输,计算可以直接完成,过程中也不会产生缓存数据。SPL 从原理上区分维表和事实表,针对维表较小和维表较大两种情况,分别提供了维表复制机制和分段维表机制,实现了上述算法,能显著提高集群情况下外键关联的计算性能。备胎式容错集群系统必须要考虑容错,内存数据的容错和外存是不同的。外存一般使用副本的方法,即同一份数据有多个副本,某个分机失效后仍然能在其它分机找到数据。这种机制的存储利用率很低,只有 1/k(k 是副本数量)。但是,对于内存中的数据,却不能使用这种副本容错方法。这是因为硬盘足够便宜且几乎可以无限扩容,但是内存要昂贵的多而且扩容有上限。只有 1/k 的内存利用率是无法容忍的。内存容错需要不同于外存的专门手段。SPL 提供了备胎式容错机制,将数据分成 n 段后分别加载到 n 个分机的内存中。然后准备 k 个空闲的分机作为备用机。当正在运行的某个分机失效时,则立即启用某个备用机,临时加载失效分机的数据,和其它分机重新组成拥有完整数据的集群继续提供服务。失效的分机排除故障后恢复使用,可以再充当备用机。整个过程和汽车更换备胎的模式很像。备胎式容错机制的内存利用率可以高达 n/(n+k),远远高于副本式容错的 1/k。能加载进内存的数据量通常不会非常大,分机失效后临时加载的时间并不多,集群服务就可以较快地恢复。回顾与总结内存数据库的计算体系,必须充分利用内存的特征才能获得极致性能。从数据计算的角度来看,内存主要优点有:支持指针引用、支持高速随机访问、并发读取能力强。内存的缺点是:成本高昂、扩容有上限。而 SQL 计算体系中缺乏一些必要的数据类型和运算,比如:缺少记录指针类型,不支持有序运算,JOIN 定义过于笼统,不区分 JOIN 类型等,从原理上就不能充分利用内存的上述特征实现某些高速算法。基于 SQL 的内存数据库,通常只是简单的照搬外存数据结构和运算,会出现各种问题。比如:记录式复制过多消耗 CPU 和内存;查找和 JOIN 性能没有达到极致。再比如集群方面:内存利用率过低;大量网络传输导致分机数量增加但性能反而下降;多机 JOIN 出现外存缓存等等。开源数据计算引擎 SPL 扩展了数据类型和运算定义,可以充分利用内存的特征,从而实现多种高性能算法,让性能达到极致。其中,指针式复用利用内存特有的指针引用机制,节省了内存空间,而且速度更快。预关联同样利用指针引用机制,在初始化阶段完成很耗时的外键关联,后续计算中直接使用关联好的结果,计算速度显著提高。序号定位利用有序性,充分发挥内存高速随机访问的优势,不用做任何计算和比对,直接用序号读取记录,性能好于 HASH 索引等查找算法。集群维表有效避免或减少了网络传输、避免了外存缓存,备胎式容错在保证高可用性的前提下,有效提高了集群内存利用率。除此之外,SPL 还提供了排号键、序号索引、数据类型压缩等等其它方法。程序员可以根据具体的场景,有针对性的采用这些方法,就能充分发挥内存的优势,从而有效提升内存数据计算的性能。————————————————版权声明:本文为CSDN博主「石臻臻的杂货铺」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/u010634066/article/details/125633121
-
行业资讯创原会携手50+云原生企业,共探跨越数字化鸿沟新模式7月8日,创原会·云原生技术精英沙龙云原生企业专场在广州成功举办。来自中国信通院、华为云以及金融、汽车、制造、地产、能源等行业的技术精英齐聚一堂,围绕“构建新生产力,跨越企业数字化鸿沟”的主题展开了分享和深入研讨,会议认为云原生2.0已成为企业构建新生产模式、加速跨越数字化鸿沟的最佳选择。红柳林,煤矿里挖出了数据金矿在华为云Stack能力加持下,华为工程师经过四个多月的设备识别和数据梳理入湖工作,与红柳林一起建成了全国首个基于工业互联网架构的智能矿山,真正将数据变成自身资产。红帽官宣Matt Hicks为总裁兼CEO红帽宣布任命Matt Hicks为红帽总裁兼CEO。Hicks此前担任红帽产品和技术部门的执行副总裁,他将接替Paul Cormier,后者将担任红帽公司董事长。(*来源IT168网站)中国信通院云上软件工程评估结果将在2022可信云大会发布可信云是中国信息通信研究院云计算服务评估品牌,也是我国针对云计算服务的权威评估体系。基于当前云上软件工程的发展现状与痛点,中国信通院正在构建软件研发效能与质量标准体系,联合领域内高校、企业及研究机构共同编写了《研发运营(DevOps)解决方案能力分级要求》、《移动应用开发云平台技术要求》、《云上软件研发效能度量分级模型》、《软件质量工程通用要求与实施指南》等标准。同时,中国信通院依据软件研发效能与质量相关标准开展测试评估,以评促建,助力企业提质增效、提高数字化生产水平,支撑蓬勃的数字化需求。评估结果将于7月21日-7月22日召开的2022可信云大会上发布。(*来源idc圈)浏览器内写代码,微软发布 VS Code Server7 月 7 日,微软重磅推出 Visual Studio Code Server 服务,这是一项在远程开发机器上运行的后端服务。用户可以将该服务安装在任何位置(本地开发机器、云 VM 等),然后使用 VS Code 网页版(vscode.dev)通过浏览器安全地连接到该远程计算机上进行开发,无需设置麻烦的 SSH 或 https 。(*来源:开源头条)华为云云商店KooGallery热门动态携手沃丰科技,揭秘家电行业数字化转型秘籍利用数字技术推动客服升级,已经成为解决家电企业售后难题的重要手段,而如何在这条路上顺利而坚定地走下去?也是华为云与沃丰科技正在不断探索的主题。7月14日19:00,锁定云商店直播间,沃丰科技高级AI咨询顾问带你了解“AI如何助力家电行业,让客户服务更精准、快捷”?>>>立即报名编辑 | 慧慧吖
-
首届云原生边缘计算峰会(KubeEdge Summit 2022)由云原生计算基金会(CNCF)、KubeEdge社区主办,于2022年7月14日 -15日召开。峰会聚合行业伙伴、开发者、业界大咖、技术专家,旨在帮助更多的云原生边缘计算用户、企业和单位,了解边缘计算现状及趋势,学习落地边缘实践经验。作为业界首个云原生边缘计算社区,KubeEdge已在智慧交通、智慧城市、智慧园区、智慧能源、智慧工厂、智慧银行、智慧工地、CDN等行业提供一体化的边端云协同解决方案,本届峰会也更加聚焦边缘计算最为关切的话题,着力碰撞出边缘发展的无限可能,为行业和产业发展赋能。 聚焦边缘,共话核心2022年7月14日-15日云原生边缘计算峰会KubeEdge Summit 2022邀您共赴边缘新未来!↑扫码进活动报名交流群↑KubeEdge Summit 2022洞察边缘前沿技术及趋势,剖析技术实战方案及案例,拓扑行业创新发展新机遇,年度KubeEdge旗舰会议,欢迎全球开发者线上与会!如对活动有疑问可添加小助手咨询(hwyzj123)
-
【摘要】 《HiEngine: How to Architect a Cloud-Native Memory-Optimized Database Engine》是由华为云数据库创新Lab独家一作发表在数据库领域顶级会议SIGMOD'2022的工业论文。本文分享自华为云社区《SIGMOD’22 HiEngine论文解读》,作者:云数据库创新Lab 。导读华为云数据库创新Lab在论文《HiEngine: How to Architect a Cloud-Native Memory-Optimized Database Engine》中提出了华为自研的、以内存为中心的云原生内存数据库引擎HiEngine。SIGMOD会议是由美国计算机协会(ACM)数据管理专业委员会组织的、数据库领域的最顶级国际学术会议。HiEngine是云数据库创新LAB在云原生内存数据库领域取得的关键技术成果之一。摘要高性能内存数据库引擎已成为许多系统和应用程序中必不可少的基本构件,然而大多数现有系统是基于本地内存存储设计的,并不能充分发挥云计算环境的优势。现有的云原生数据库系统大多遵循以外存存储为中心的设计。HiEngine的关键特性包括:1) 除了采用存算分离架构外,在计算侧利用云基础设施的可靠性内存服务来实现快速持久性和可靠性;2) 实现跟主内存数据库引擎同等的性能;3) 向后兼容现有的云原生数据库系统。HiEngine与华为GaussDB (for MySQL)集成,将内存数据库引擎的优势带到云端,并与基于磁盘的引擎共存。HiEngine的性能比传统的以存储为中心的解决方案高出7.5倍。研究背景1. Memory-centric计算架构以内存为中心的计算已经成为学术界和工业界的研究热点。持久性内存提供了DRAM级的性能和闪存级的容量,基于持久性内存的池式内存的研究和应用已经逐渐成为探索的新方向。学术界研究原型系统有HydraDB、RAM Cloud、NAM-DB、Hotpot、DDC及Infiniswap,工业界系统如FaRM、SAP HANA、SRSS SCM、WSCs及DAOS等。同时,内存数据库的客户将应用程序迁移到云,供应商提供云原生的内存优化的OLTP解决方案成为一种趋势。2. OLTP数据库生态现有的云本地数据库系统大多是磁盘数据库,遵循以存储为中心的设计,如Aurora、PolarDB、GaussDB(for MySQL)等。它们有以下特点:基于页面的IO、面向页面的布局和缓冲池。此外,它们有内存中数据库所没有的缓冲池,这直接影响了云平台中如何构建引擎和充分利用内存设备的硬件性能。当前,大多数内存数据库都是基于本地部署解决方案设计的,不能直接在云中工作。尽管部分存算分离的内存数据库(如NAM-DB)可以提供云原生特性,但它们在整个网络上的访问延迟很大。3. 华为云基础设施华为云存储基础设施服务具有如下特点:硬件趋势和挑战:1)存算分离架构中引入持久内存,尤其在计算侧配置持久内存能够提供高速的事务日志缓存等功能,但是这与计算节点的Stateless特性相违背。2)基于ARM的多核处理器具有更好的性价比和理想的能耗,但是也带来Cross-NUMA的多核扩展挑战。SRSS作为华为云新一代分布式存储服务,它使用RDMA建立在现代SSD/NVM硬件之上 ,采用日志结构型的追加存储。SRSS在云中提供了必要的持久性内存原语。SRSS支持内存语义和计算端持久存储,定制化的MMAP内核API支持从本地或远程持久存储层一致性的读取数据,SRSS通过内存映射提供除了打开、关闭、追加、读取等接口外,还提供内存语义操作。数据在计算侧和存储侧三副本存储,采用低延迟存储网络。这允许计算节点可以在计算侧本地持久化和存储侧远端持久化,似的存储层之间关键路径上没有网络开销。HiEngine架构本文提出了一种云原生的内存优化的内存数据库引擎HiEngine来解决这些挑战。HiEngine在架构上呈现的特征包括:1)将持久化状态引入到计算层,以支持快速持久化和低延迟事务。2)日志即数据。3)在计算层SRSS利用持久内存在三个计算节点中同步存储副本日志,同时异步持久化到远端存储。4)系统有三层物理结构和三层逻辑结构,其中逻辑的日志层与计算层位于同一物理位置。1. 以日志为中心的Log-centric MVCC存储引擎概览HiEngine围绕“日志就是数据库”的理念构建,并使用了一些关键技术如无锁索引、MVCC事务模型、元组级内存布局。它使用SRSS实现数据持久化和快速恢复。HiEngine通过Rowmap实现数据访问,它是HiEngine的核心数据结构,支持MVCC、高效的检查点和并行恢复。2. Tuple-level内存布局HiEngine使用MVCC事务模型,这充分挖掘了SRSS的性能和功能特性。在内存布局层面,它采用lock-free的ARTree索引、使用Row Map来映射行ID到具体的数据版本。Tuple-level内存布局特性包括:1)一个版本包含许多关键字段,如[tmin, tmax, nextver, loffset…]字段;2)Index的叶节点是一个行ID;3)二级索引的键由用户自定义键和当前行ID组成;4)对版本链采用基于Epoch的空间管理机制和基于Session管控的Non-blocking的垃圾回收策略。3. 事务模型HiEngine提供快照隔离级别。当事务开始时,它被分配一个读CSN和一个全局唯一的TID,并在提交时将TMIN和TMAX字段中的TID替换为CSN。HiEngine提出了两种时间戳授权方法。逻辑时钟的时间戳分配时延为40微秒,而全局时钟在无原子时钟下时延为20微秒。在分布式数据库中,Global Clock是高性能时间戳授时和性能高扩展的最佳选择。4. PIA/RowMapHiEngine以日志的形式组织数据记录,没有“页面”的概念。PIA将版本行记录ID映射到记录地址。PIA有以下好处:行更新操作不会改变索引的内部结构二级索引的“键”=“用户自定义键+ RID”检查点变得轻量级,因为只需要持久化PIA而不是真实数据恢复只会重新构建PIA,而不是读取元组版本5. 高可靠高扩展的Redo-Only LoggingHiEngine中,WAL有两个目的:持久化保证和数据副本。WAL被同步持久化到计算侧近端SRSS SCM池中,然后异步的分发到存储端的SRSS PLOG。SRSS通过PLOG提供了一个仅追加的抽象和段结构。HiEngine在计算端使用分布式日志记录,一旦事务的日志记录持久化到计算端持久化内存中,事务就会被提交。日志被批处理并异步刷新到存储层。PLOG在物理结构上,按段组织。每个线程维护一个打开的PLOG,段按需动态分配和释放。每个段由PLOG ID和PLOG中的偏移量来标识。HiEngine采用分布式logging:追加写和基于MMAP读更新后的版本包含一条记录的完整内容使用SRSS的追加接口将日志记录写入段/ PLOG数据成功三副本持久化到计算侧持久性内存后提交事务6. Dataless的检查点和并行恢复为了加速恢复,HiEngine在后台运行检查点。检查点变得非常轻量化,只需要持久化PIA。恢复分为加载阶段和重放阶段: 1)一旦PIA设置完成,恢复就完成了;2)之后的访问将根据需要通过MMAP将数据版本带入主存。我们还设计了一个并行恢复算法:1). 多个重放线程依次扫描日志(每个线程一个)2). 如果日志记录操作是插入或更新操作,则将相应的PIA条目更新为日志中偏移3). 只有当PIA条目指向旧的记录版本时,重放线程才会用新的记录地址覆盖PIA条目HiEngine定期地执行日志合并来做日志垃圾回收。合并线程获取当前最低读LSN的快照,该快照存储在本地作为truncLSN,用于部分合并。完全合并需要删除表的所有版本和记录,以便将数据聚集到新的存储空间中修复loffset。异步当完成日志合并后,HiEngine将异步修复PIA中的loffset。7. 索引持久化和检查点在HiEngine中,索引树的修改不会立即持久化。索引树的检查点类似于日志结构合并树。不过存在读放大。索引有以下特点:1)1个内存中的主RW树+持久存储的RO森林;2)基于AR-Tree的lock-free索引树;3)通过MMAP读取持久存储的索引;4)森林中的树可以是不同种类 (例如B+ Tree);5)索引合并:将多棵树合并为一棵。部署方式HiEngine提出了两种部署模式:1. 垂直整合:HiEngine与GaussDB中已有的InnoDB引擎共存(针对MySQL),在CREATE TABLE语句中使用WITH ENGINE=HiEngine参数,查询将被路由到相应的存储引擎执行。2. 横向整合。放在数据库表前面作为一个透明的ACID缓存,部分或全部作为表前ACID缓存。本文专注于垂直整合的部署方式,HiEngine与华为GaussDB(for MySQL)集成为单个引擎。系统评测两个引擎共享相同的SQL层,其中HiEngine使用代码生成技术。使用Sysbench和标准TPC-C来比较HiEngine和其他三种工业系统。所有的评价都是在两种环境下进行的,单服务器和云SRSS。HiEngine在两个平台上的表现都明显优于DBMS-M。 HiEngine单服务器性能高达6500万tpmC。编译执行下的端到端性能为> 50%。我们通过设置内存分配策略和工作负载分区来评估面向ARM优化。在所有情况下,HiEngine存储引擎的性能都比DBMS-M高出60%。通过对ARM平台上的TPC-C模型的分析,跨Socket的远程访问每增加10%,性能下降5%。总结HiEngine是一个云原生内存优化的内存数据库引擎。利用现代云基础设施与计算端快速持久性内存,并将主内存数据库引擎的优点带到云端,并与基于磁盘的引擎共存。此外,它提供的性能可与本地内存数据库引擎相媲美。现代云基础设施一直在快速发展,尤其在现代硬件技术的发展中不断升级。新硬件包括多核处理器特别是基于ARM的平台、大容量主内存和持久性SCM、及RDMA网络等。现有的云原生数据库引擎大多是以存储为中心的设计,这让新硬件的潜力在云原生内存数据库里在很大程度上得不到开发,同时云给内存数据库引擎带来了一些独特的挑战。HiEngine提出了一个云原生的内存优化的数据库引擎,它的特性包括:1)将存算分离的高性能内存数据库在云上呈现给用户;2)采用华为的高可靠共享云存储服务,支持以日志为中心的存储和计算侧高性能持久性内存;3)优化基于ARM的多核处理器;4)保持以内存为中心的引擎与以存储为中心的引擎之间的向后兼容性、可以部署为单个引擎或另一个引擎前面的ACID缓存;5)与之前的系统相比,提供高达7倍的性能。HiEngine弥合了学术原型系统和云上生产系统之间的鸿沟。HiEngine是华为云下一代云原生分布式内存数据库的关键引擎。
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签