• [技术干货] 【云原生】Docker部署数据库的持久化
    在上一篇基于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部署openGauss
    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+云原生企业,共探跨越数字化鸿沟新模式…
    行业资讯创原会携手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精彩活动等你报名!
    首届云原生边缘计算峰会(KubeEdge Summit 2022)由云原生计算基金会(CNCF)、KubeEdge社区主办,于2022年7月14日 -15日召开。峰会聚合行业伙伴、开发者、业界大咖、技术专家,旨在帮助更多的云原生边缘计算用户、企业和单位,了解边缘计算现状及趋势,学习落地边缘实践经验。作为业界首个云原生边缘计算社区,KubeEdge已在智慧交通、智慧城市、智慧园区、智慧能源、智慧工厂、智慧银行、智慧工地、CDN等行业提供一体化的边端云协同解决方案,本届峰会也更加聚焦边缘计算最为关切的话题,着力碰撞出边缘发展的无限可能,为行业和产业发展赋能。 聚焦边缘,共话核心2022年7月14日-15日云原生边缘计算峰会KubeEdge Summit 2022邀您共赴边缘新未来!↑扫码进活动报名交流群↑KubeEdge Summit 2022洞察边缘前沿技术及趋势,剖析技术实战方案及案例,拓扑行业创新发展新机遇,年度KubeEdge旗舰会议,欢迎全球开发者线上与会!如对活动有疑问可添加小助手咨询(hwyzj123)
  • [知识分享] HiEngine:可媲美本地的云原生内存数据库引擎
    【摘要】 《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是华为云下一代云原生分布式内存数据库的关键引擎。
  • [业界动态] 华为云云原生容器综合竞争力,中国第一!
    日前,国际权威分析机构沙利文(Frost & Sullivan)联合头豹研究院发布了《云原生市场研究报告——容器》(2022)报告显示,根据基于应用、产品和生态能力构建的云原生厂商容器产品竞争力评价模型华为云综合竞争力领跑行业多维度评分排名中国第一沙利文报告评价:“在应用方面,华为云在政企数字化、产业数字化等领域是行业领跑者,且开始布局卫星等应用场景;在产品方面,华为云在分布式云统一管控、云边协同和业务混部等性能方面具备明显的优势;在生态方面,华为云聚焦生态的打造,积极拓展生态伙伴,生态繁荣度较其他玩家优势显著。”应用能力上,华为云容器在各行业场景的应用深度和广度排名第一,并且在市场应用方面连续3年中国容器软件市场份额第一。例如,华为云CCE Turbo采用独创的容器直通网络,让两层网络变成一层,端到端连通时间缩短一半,有效支撑业务秒级扩容千容器,帮助新浪30秒扩容8000核,平稳应对流量浪涌。产品能力上,华为云容器在安全性、技术复杂度、产品支持力度等方面排名第一。华为云容器引擎 CCE 提供高可靠高性能的企业级容器应用管理服务,面向云原生2.0时代打造革命性CCE Turbo 容器集群。华为云容器实例 CCI 提供基于Kubernetes 的 Serverless 容器服务;并提供丰富客户业务的多种算力资源;华为云容器在计算、网络、调度全面加速,促进企业应用创新。生态能力上,华为云生态活跃度和生态繁荣度在主要云厂商中排名第一。华为云聚焦生态的打造,除了打造开源生态以外,还积极拓展生态伙伴,协力推动行业发展。华为云联合 CNCF、中国信通院及业界云原生技术精英,共同建立创原会,旨在通过探索前沿云原生技术、共享产业落地实践,共创云原生与业务融合的无限可能。此外,截至目前,华为云聚合超过302万开发者、超过38000家合作伙伴,云市场上架应用7400多个。不止于此,华为云在云原生容器领域持续技术创新、赋能产业。华为云容器技术与解决方案已经服务众多华为云客户,尤其是帮助众多互联网企业实现了应用敏捷创新、业务灵活部署。目前,80%的中国Top50互联网企业选择华为云。与此同时,在互联网行业市场,“H+X”(华为云+其他云)的多云部署模式也越来越受到互联网企业客户的认可与选择。数字浪潮奔涌,互联网企业当先华为云云原生助力企业生于云、长于云实现业务创新升级,云云协同,共创云上新价值互联网创新增长,选择华为云,至简共致远*转载自华为云头条撰文:华为云头条编辑:慧慧吖 
  • [热门活动] 【报名有奖】第8届互联网+华为云GaussDB命题大赛报名啦!
    活动时间:2022/7/5-2022/7/31活动福利:(1)活动期间在互联网+大赛华为云GaussDB企业命题页面成功报名的前50支队伍,每支队伍将获得价值199元的华为手环4一个(每支队伍派1人申领)。(2)若成功报名且提交有效作品的Top10队伍,可获得礼品升级机会,每支队伍将获得价值999元的华为无线耳机freebuds4。活动流程:Step1. 在大创网完成华为云GaussDB命题的报名https://cy.ncss.cn/mtcontest/detail?id=8a80808d81197da0018119acfb1904ebStep2. 请申领人添加华为云数据库小助手完成报名截图确认与校验(小助手微信号:18209232786)Step3. 请填写问卷信息,用于最终奖品发放,为了避免后续联系不到中奖者,请正确填写收货信息https://devcloud.huaweicloud.com/expertmobile/qtn?id=3701b5c4cfb141feb4d89a988f918627在大创网完成华为云GaussDB命题的报名【奖品发放】活动结束后,小助手审核通过且活动结束后统一发放奖品,预计8月1号启动发放~
  • [技术干货] 【重磅】2022华为云云原生数据库白皮书亮相!
    随着信息技术的飞速发展以及智能终端的不断普及,全球数据量呈现爆发式增长,数据库作为支撑数据处理的核心技术需要不断创新变革。云原生数据库能够充分结合云基础设施的优势能力和特点构建数据处理和管理能力,使得企业数据管理模式迈入新台阶,高效、经济、安全成为云原生数据库受到热捧的重要原因。本报告首先阐述了云原生数据库的发展趋势与现状,之后从云原生数据库应用场景、技术架构、关键技术以及不同场景下的生产实践详细地介绍了云原生数据库的技术模式,最后通过结合当前应用现状及问题,指明了未来云原生数据库的技术方向,力求梳理云原生数据库全流程概念及方法。了解报告详情,请点击文末附件《华为云云原生数据库白皮书-电子版》,欢迎大家下载~
  • [技术干货] 我们与Java的不解之缘---Java27岁生日快乐[转载]
    前言:直至今日,距离Java语言的产生以及有27年了。也许我们陪伴Java的时间可能仅有三四年,甚至仅有一两年,但是她在我们心中的地位是至高无上的。从第一个“hello world”开始,我们就与Java结下了不解之缘,这也意味着我们要与她“结伴一生”。因此,在Java这个特殊的27岁,小威将与各位小伙伴儿一起经历Java的发展之路以及今后对Java的学习。在这里,先谢谢各位小伙伴儿的支持了嘿嘿文章目录Java语言的特点Java语言的发展史Java框架及云原生个人用Java做过的小项目Java语言的特点Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。Java具有简单性、面向对象、分布式、健壮性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。简单性:Java语言继承了C++语言的优点,去掉了C++中学习起来比较难的多继承、指针等概念,所以Java语言学习起来更简单,使用起来也更方便。面向对象:Java是一种面向对象的编程语言。分布性:Java设计成支持在网络上应用,它是分布式语言。所以只要用Java编写了一个程序,就可以到处应用。可以节省大量人力物力。编译和解释性:Java编译程序生成字节码,而不是通常的机器码,这使得Java开发程序比用其他语言开发程序快很多。稳健性:Java刚开始被设计出来就是为了写高可靠和稳健的软件的。所以用Java写可靠的软件很容易。目前许多第三方交易系统、银行平台的前台和后台电子交易系统等都会用Java语言开发。安全性:Java的存储分配模型是它防御恶意代码的主要方法之一。所以很多大型企业级项目开发都会选择用Java开发。可移植性:Java并不依赖平台,用Java编写的程序可以运用到任何操作系统上。高性能:Java是一种先编译后解释的语言,所以它不如全编译性语言快。但Java设计者制作了“及时”编译程序,这样就可以实现全编译了。多线索性:Java是多线索语言,它可以同时执行多个程序,能处理不同任务。动态性:Java语言设计成适应于变化的环境,它是一个动态的语言。Java语言的发展史1995年,Sun公司推出了Java,但只是一种语言,还没有一个强大的开发类库;1996年,第一个JDK1.0的发布(包括运行环境JRE和开发环境JDK);1997年2月,SUN公司紧接着推出了JDK 1.1;1998年12月8日,JDK1.2——第二代Java平台的企业版J2EE发布;1999年6月,Java第二代平台2.0发布,并且Sun公司把Java体系分为三个方向:J2ME(Java2 Micro Edition,Java2平台的微型版),应用于移动、无线及有限资源的环境;J2SE(Java 2 Standard Edition,Java 2平台的标准版),应用于桌面环境;J2EE(Java 2Enterprise Edition,Java 2平台的企业版),应用于基于Java的应用服务器;注意:Java 2平台的发布,是Java发展过程中最重要的一个里程碑,标志着Java的应用开始普及。2000年5月,JDK1.3、JDK1.4和J2SE1.3相继发布,都大幅度的提高了Java的性能;2002年2月26日,J2SE1.4发布;2004年9月30日,J2SE1.5发布,成为Java语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE 1.5更名为Java SE 5.0;2005年6月,在Java One大会上,Sun公司发布了Java SE 6。此时,Java的各种版本已经更名,已取消其中的数字2(Java6最经典,流传最久的版本)。如下所示:J2EE更名为JavaEEJ2SE更名为JavaSEJ2ME更名为JavaME2009年,Oracle收购Sun公司,每半年更新一次;2014年,JavaSE8.0发布,企业级开发。Java框架及云原生随着Java的发展,开发Java程序也变得越来越简单,Java框架也慢慢地流行了起来。我们学了Java基础,就要开始Java框架的学习了。那么,Java的框架主要有哪些呢?Java框架主要有:轻量级且开源的Spring,WEB界面SpringMVC,数据库持久化的MyBatis,SpringBoot,SpringCloud,jQuery,Netty,Log4j,Quartz,Redis,RabbitMQ等等。学过了Java基础的小伙伴儿们可以开始Java框架的学习了。下面介绍一下云原生Java和云原生有着很密集的联系,以后我们Java工程师也会朝着云原生发展。云原生是基于分布部署和统一运管的分布式云,以容器、微服务、DevOps等技术为基础建立的一套云技术产品体系。云原生应用也就是面向“云”而设计的应用,在使用云原生技术后,开发者无需考虑底层的技术实现,可以充分发挥云平台的弹性和分布式优势,实现快速部署、按需伸缩、不停机交付等。个人用Java做过的小项目在之前的Java学习中,自己大一的时候也曾做过几个小项目和小游戏,之前做完了保存了下来,今天就来分享给大家。用Map集合写的考试系统package java小项目;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Random;import java.util.Scanner;import java.util.Set;public class 考试系统 {    public static void main(String[] args) {        // TODO 自动生成的方法存根        ArrayList <String>arr=new ArrayList<>();        ArrayList <Integer>arrl=new ArrayList();//存题号用,防止有重复题        String [][] a=new String[10][6];        HashMap <Integer,String>hm=new HashMap<>();                hm.put(0,"公共厕所()一国家首都:\n"+"A:美国\n"+"B:英国\n"+"C:中国\n"+"D:伦敦");        arr.add("D");        hm.put(1,"用什么拖地最干净:\n"+"A:拖把\n" +"B:扫帚\n"+"C:铲斗\n"+"D:用力");        arr.add("D");        hm.put(2,"老王的头发已经掉光了,为什么还一直去理发?\n"+"A:他有洁癖\n"+"B:他是理发师\n"+"C:他讲究男人的风度\n"+"D:他好久没洗头了");        arr.add("B");        hm.put(3,"失败为成功之母,那么成功为失败的什么?\n"+"A:之父\n" +"B:反义词\n"+"C:之儿\n"+"D:之母");        arr.add("B");        hm.put(4,"小白加小白等于什么?\n"+"A:小白俩\n" +"B:俩小白\n"+"C:大灰狼\n"+"D:小白兔");        arr.add("D");        hm.put(5,"历史上那个人物跑得最快?\n"+"A:曹操\n" +"B:刘备\n"+"C:诸葛亮\n"+"D:关羽");        arr.add("A");                hm.put(6,"蚊子咬在什么地方你不会觉得痒?\n"+"A:脚上\n" +"B:腿毛上\n"+"C:别人身上\n"+"D:背上");        arr.add("C");                hm.put(7,"汽车在右转弯时,哪个轮胎不转?\n"+"A:前轮胎\n" +"B:后轮胎\n"+"C:左轮胎\n"+"D:备用轮胎");        arr.add("D");        hm.put(8,"什么光会给人们带来痛苦?\n"+"A:黑光\n" +"B:暗光\n"+"C:强光\n"+"D:耳光");        arr.add("D");        hm.put(9,"什么情况下人会有两双眼睛?\n"+"A:睡觉的时候\n" +"B:变异的时候\n"+"C:两个人的时候\n"+"D:吃饭的时候");        arr.add("C");        int daxunhuan=0;        int kaoshi=0;//考试结束条件        while(daxunhuan!=999){        System.out.println("--------------------------------------");        System.out.println("单选题:");        System.out.println("--------------------------------------");        System.out.println("1:考试;      2:试题管理;      3:退出。");        System.out.println("     (请输入操作的代码1,2或3)"   );        Random r=new Random();        Scanner s=new Scanner(System.in);        int c=s.nextInt();        switch(c){        case 1:while(kaoshi!=888){            System.out.println("请问要答几道题");//要答e道题            int e=s.nextInt();            double f=100.0/e;//f为每一道题占多少分            int g=r.nextInt(10);            arrl.add(g);            for(int i=1;i<e;i++){                int h=r.nextInt(10);                if(arrl.contains(h)){                    i--;                }                else{                    arrl.add(h);                }                            }            int j=1;//j记录题号            int x=0;//x表示正确的题数,y反之            int y=0;            double sum=0;                for(Integer it:arrl){                    System.out.println("第"+j+"题");                    System.out.println(hm.get(it));                    System.out.println("请输入您的答案:");                    String str=s.next();                    j++;                    if(str.equals(arr.get(it))){                        sum+=f;                        x++;                        System.out.println("恭喜你,这道题答对了!");                    }                    else{                        y++;                        System.out.println("很抱歉,这道题你答错了!");                    }                }                System.out.println("您的得分是:"+sum);                System.out.println("正确的有"+x+"道");                System.out.println("错误的有"+y+"道");                if(sum>=60){                    System.out.println("恭喜你,成绩合格,请问还想继续答题吗?");                }                else{                    System.out.println("别学了,重开吧!");                }                System.out.println("-------------------------------");                System.out.println("若想退出考试请输入888,不想退出输入其他字符");                int k=s.nextInt();                kaoshi=k;                System.out.println("若想退出用户操作界面请输入999,若不想请随意输入");                int kk=s.nextInt();                daxunhuan=kk;                if(kk==999){                    System.out.println("您已成功退出用户操作界面!");                }            }        break;        case 2:System.out.println("-------------------------------");        System.out.println("试题管理:");        System.out.println("11,添加试题;  22,删除试题;  33,修改试题;  44,查找试题;  55,遍历试题。");        System.out.println("请输入您想操作的编号");        int l=s.nextInt();        switch(l){          case 11:System.out.println("请问您想添加几道题");        int m=s.nextInt();        int n=arr.size();        for(int w=n;w<=m+n-1;w++){            System.out.println("请添加题目:");                        String str=s.next();            hm.put(w, str);            System.out.println("请添加本题答案:");            String str2=s.next();            arr.add(str2);        }        System.out.println("您的题目已增加完毕");            break;         case 22:  System.out.println("请问要删除第几道题?");         int tishu=arr.size();         int p=s.nextInt();         arr.remove(p-1);         System.out.println("已删除答案!");         hm.remove(p-1);         for(int i=p;i<tishu;i++){             String str1=hm.get(i);                        hm.put(i-1, str1);              }         System.out.println("-------------------------------");         System.out.println("已删除试题!");         break;         case 33:System.out.println("-------------------------------");         System.out.println("请问要修改第几道题?");         int xiugai=s.nextInt();         System.out.println("-------------------------------");         System.out.println("您选择修改第"+xiugai+"道题,请修改题目:");         String str=s.next();         hm.put(xiugai-1, str);         System.out.println("题目修改完毕");         System.out.println("===============================");         System.out.println("请修改答案");         String str3=s.next();         arr.set(xiugai-1, str3);         System.out.println("答案修改完毕!");         break;         case 44:System.out.println("请问要查询第几题?");         int z=s.nextInt();         System.out.println("该题题目为:");         System.out.println(hm.get(z-1));         System.out.println("该题答案为:");                  System.out.println(arr.get(z-1));         System.out.println("-------------------------------");        break;         case 55:int jj=0;             Set set=hm.entrySet();         Iterator it =set.iterator();         while(it.hasNext()){             Map.Entry me=(Map.Entry)(it.next());             int ii=(int) (me.getKey());            jj=ii+1;             System.out.println("第"+jj+"题题目:");             System.out.println(me.getValue());             System.out.println("第"+jj+"题答案:");             System.out.println(arr.get(ii));             System.out.println("-------------------------------");         }         break;         default : daxunhuan=999;         System.out.println("您的输入有错误,已退出,请重开!");         break;        }//5选1括号        break;        case 3:System.out.println("若想退出请输入999");            int xx=s.nextInt();             daxunhuan=xx;             System.out.println("您已退出!");             break;               }//3选一括号            }//daxunhuan括号                }        }文章到这里就结束了,如果文章有什么需要改进的地方,还请大佬指正制作不用,感谢各位小伙伴儿们的支持小威在这里谢谢大家✨✨✨最后,各位陪伴了Java多少年了呢,可以在评论区里互相交流哟————————————————版权声明:本文为CSDN博主「小威要向诸佬学习呀」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/qq_53847859/article/details/125012673
  • [技术干货] GaussDB(for MySQL)荣获“云原生技术创新领航者-云原生技术创新案例”大奖
    近日,由中国信息通信研究院主办的“原生聚力,云数赋能”第四届云原生产业大会顺利召开。在这场云原生领域盛会中,华为云GaussDB(for MySQL)云原生数据库凭优越的技术创新实力和实践经验,荣获“云原生技术创新领航者-云原生技术创新案例”大奖。华为云数据库副部长庄乾锋代表GaussDB亮相大会,就大会对GaussDB的认可表示感谢。庄乾锋表示,当前,数据库行业迎来云原生2.0时代,企业对云数据库提出了更高性能、安全可靠、极致扩展等诸多诉求。华为云GaussDB通过整合多年数据库领域经验和客户诉求,构筑云原生数据库全栈能力,构建以应用为中心的新型数据库云服务,积极引领云原生数据库发展新方向。聚焦技术创新 深入云原生领域持续发力作为华为自研的新一代企业级高性能云原生分布式数据库,GaussDB(for MySQL)基于DFV分布式存储,采用存算分离架构,拥有128TB的海量存储空间,可实现超百万级QPS 吞吐,既拥有商业数据库的性能和可靠性,又具备开源数据库的灵活性,在云原生业务场景有非常明显的核心优势。华为独特优势:垂直集成 与传统的线下数据库不同,云数据库有垂直集成云栈中所有层的能力,在云上,存储和数据库的集成能发挥更大的作用。华为作为在云栈各层领先的提供商,在云领域中有着独特的地位,有能力成为行业的领导者。通过并行查询(PQ)提高性能提高性能的一个通用方法是并行,并行可以在多层上实现,GaussDB(for MySQL)允许使用多个线程并行执行单个查询;另一个允许更高并行力度的层是存储层,因为存储系统可能有数百个节点和数千个核心,GaussDB(for MySQL)使用的这种云规模的分布式存储是提高查询性能的一个关键基础,结合并行查询,实现查询性能的极大提高。算子下推(NDP)加速查询效率 GaussDB(for MySQL)通过算子下推(NDP)技术,把算子卸载到数据所在的存储节点上,利用当地可用的计算资源执行,无需将数据读到计算节点中。这样实现了在大规模查询场景中将90%的逻辑计算在分布式存储层完成,大幅度降低了网络I/O 延迟,充分释放了云计算算力,在TPC-H测试中,相比社区版本,其性能最高提升了34倍。秒级伸缩,应用0感知 GaussDB(for MySQL)支持Serverless,根据数据容量自动伸缩,存储自动打散负载压力,无需分库分表。HTAP 只读分析 用户既能得到MySQL完备的事务保障,又能享受到GaussDB(for MySQL) HTAP只读分析的极致分析性能。华为云GaussDB(for MySQL)不仅通过分布式全并行架构和多节点写入提供极致的吞吐量性能,轻松应对海量高并发数据处理,提升高可用能力;还具备跨AZ部署、跨region容灾、单点故障0中断等多个特性,满足金融级别的高可靠性;且仅需要商用数据库1/10的成本就可以提供企业级的服务能力。极致性价比、AI 自治、HTAP、多主、Serverless将是GaussDB(for MySQL) 数据库未来的重点发展方向。 大浪淘沙 做千行百业上云优选 当前, GaussDB(for MySQL)数据库面向企业云原生赛道,已在音视频、互联网电商、游戏、保险、汽车制造、物流、交通出行等多个行业场景和标杆大客户得到广泛应用,包括助力永安保险重构核心业务系统,帮助互联网电商如梦饷集团、单创、未来一手等缔造电商新时代,赋能中国一汽红旗和一汽大众数字化转型等等。在中国一汽红旗ERP系统微服务改造、业务上云过程中,GaussDB(for MySQL)提供了在云上和本地部署体验一致的云数据库服务,改造后的ERP系统数据库整体性能大幅提升,流量洪峰下业务运行又快又稳。梦饷集团通过GaussDB(for MySQL)进行电商平台的数字化升级,将业务搬迁上云后,运维效率提升了约30%,核心业务数据库访问平均耗时由1.5s降至1s;此外,梦饷集团每秒成交的订单数再创历史新高,成为了利用数字基础设施助力业务快速增长的标杆。 持续深耕 共促产业生态繁荣 华为云GaussDB已连续两年入选Gartner云数据库管理系统魔力象限特定领域者,在IDC《2020年下半年中国关系型数据库软件市场数据跟踪报告》中,GaussDB拥有中国关系型数据库本地部署市场国产数据库份额NO.1、公有云市场数据库份额增速第一的优异成绩。 此次奖项的获得是对GaussDB技术创新实力的高度认可,同时也是新征程和新起点。未来,华为云GaussDB将持续聚焦云原生数据库技术的探索,打造更多业界领先的数据库技术与产品,助力企业加速上云,共促产业生态繁荣!
  • [云动向] 【华为伙伴暨开发者大会2022】Day2新鲜速递:2022年投入1亿美元赋能开发者,首发云原生2.0架构白皮书
    在6月15日的大会直播中,我们看到了新发布的华为云15大创新服务、“乐高式”自动驾驶研发开放平台,以及2022华为开发者大赛正式开启,代码上太空赛道等你来战…今天,华为伙伴暨开发者大会2022精彩继续ing~~25场论坛+32场专场,依旧干货满满,技术感直接拉满。话不多说,让我们一起回顾今天的精彩。1. 大咖金句华为云CTO张宇昕华为云围绕一切皆服务,持续践行云原生。通过四大生产线的融合,让应用、数据、模型经验和数字内容的呈现和交互有机结合。使得企业不断通过新技术、新生产线构建新生产方式,快速获取新的能力,创造新价值。华为云全球生态部总裁康宁华为云秉持着持续赋能伙伴,跟伙伴携手共赢的意愿与理念,一年以来我们以能力为核心重构了华为云新伙伴体系,其中包括统一的伙伴身份、2个合作框架、6种角色。同时,加大投入赋能培训,全方位助力开发者成长。华为云应用商店和开发者联盟部长王希海面向与伙伴的联合创新,华为云明确定义了伙伴价值创造与变现流程,从商业成功、人力支持、工具平台等多个维度给予伙伴最大支持;面向开发者体验与赋能,华为云倾力打造开发者平台,从教、学、练、考、助等五大维度为开发者提供服务平台;针对开发者不同的开发场景,华为云推出了多种开发平台类云服务,此外,华为云还通过云学堂持续培养和赋能伙伴、开发者。华为云中国区副总裁 华为云中国区CMO张鹏中国云服务市场需求已经从上云降本发展到云上创新的新阶段,企业需要升级品牌营销方式来赢得市场。华为云提供Marketing as a Service,通过“营销能力即服务”、“营销增强即服务”和“品牌即服务”等能力加特,助力伙伴加速商机获取,携手更好地服务客户。华为云中国区副总裁 华为云中国区生态与合作伙伴发展部部长陶志强华为云不与伙伴争利,致力于构建共生、共赢的伙伴体系,与伙伴的合作更科学、更合理、更有序,犹如碳原子通过共价键形成璀璨而坚硬的钻石一样形成合力,实现价值创造和价值分配有机结合。2.重磅发布2.1 新伙伴体系大会期间,华为云发布新伙伴体系加速伙伴成长,具体包含1个统一身份、2个合作框架(GoCloud及GrowCloud)和6种伙伴角色(数字化转型咨询与系统集成、软件、服务、硬件设备、学习与赋能、总经销商),全面加速伙伴成长。具体解读 点击阅读:《华为云发布新伙伴体系,携手伙伴及开发者共建新生态,共创新价值》2.2 云原生2.0架构白皮书华为云云原生2.0全面升级,全新发布《云原生2.0架构白皮书》,总结云原生2.0的十大典型架构特征,分享华为云原生架构设计方法,详细解读基于华为云云原生产品的架构设计模式。2.3 D-PLAN计划基于昇腾、MindSpore、ModelArts这些全栈服务能力,华为云推出D-PLAN计划。目前D-PLAN依托华为云的AI Gallery,汇聚了5万多个AI相关的资产,有70多所高校通过AI Gallery进行经验分享和交流,涉及六大行业,25个细分场景。2.4 四大开源项目在本次大会上,华为云公布了四大开源项目:openGemini、Kurator、Kappital、ModelBox。openGemini:业界领先的时序时空数据库内核领先的性能优势,单机亿级指标数据存储,毫秒级查询响应;国内首款开源存储-分析一站式时序数据库;兼容InfluxDB、Prometheus生态API,支持标准SQL,提高应用对接效率。Kurator:业界首个分布式云原生开源套件整合Karmada、KubeEdge、Volcano、Kubernetes、lstio、Prometheus等业界主流开源技术栈;提供多云、多集群统一编排,统一调度,统一流量治理,边云协同,统一监控运维等核心能力;开箱即用、开源开放的分布式云原生平台,助力企业业务跨云跨边、分布式化升级。Kappital:业界首个分布式云原生服务中心云原生服务的全生命周期治理,E2E构建一致的云原生应用;一次发布全场景部署,支持多云、多集群、多边缘的一致部署;开箱即用的Day2 Operation,声明式实现云原生服务全栈运维。ModelBox:AI应用一次开发,多场景部署端边云协同运算,运维成本降低30%:灵活部署、适用原有设备、云上维护端侧运行;高性能并发调度,推理性能提升2-10X:自适应异构计算、智能调度、Pipeline并发运行;低代码开发模式,跨平台开发周期缩短80%:GUI可视化编排、40+预制流单元、丰富的开源Solution。3. 聚焦开发者3.1 双线布局开发者社区,赋能500万+人次开发者为了将开发者能力提升落到实处,华为云将线上和线下结合,加大投入赋能培训。线上通过开发者社区的海量技术内容、全技术领域培训课程、丰富的圈层活动支持;在线下,以城市为单位通过150多个开发者创新中心的技术大咖1v1技术支持、圈层持续运营、商业成长对接支持等能力,落地沃土云创计划。2022年华为云将完成超过500万+人次的赋能,支持开发者的持续创新。3.2 投入1亿美元升级沃土云创计划2021年是华为云与伙伴、开发者共同加速成长的一年,越来越多的伙伴和开发者选择加入了华为云生态。目前华为云已聚合了全球超过302万开发者,38000多合作伙伴,云商店上架应用超过7400个。2022年,华为云将投入1亿美元升级沃土云创计划,在发展对象方面涵盖企业、个人、高校,进行创新扶持和激励,计划到2026年发展1000万华为云开发者。目前已有1900多家企业加入该计划,并完成1200多个应用构建和600多个沃土技术认证。3.3 八大技术领域,四大生产线,全面使能开发者同时,华为云将开放高阶服务全面使能开发者,从八大技术领域构建行业互信的开发者认证体系,通过四大开发生产线,持续打造技术即服务,让开发者创新触手可及。此外,在开发者创新过程中,华为云为开发者提供了全方位、全旅程的华为云开发支持,并将倾力把华为云应用商店打造为最佳企业应用分发平台,与开发者深度技术共生,商业共赢。具体解读 点击阅读:《华为云加大投入,携手伙伴及开发者技术共生、商业共赢》3.4 开发者创新中心:人才培养、技术支持、联运推广围绕华为云、HMS Core应用生态和HarmonyOS软硬件生态,开发者创新中心通过“技术科普、互动体验、动手实操”多元化的展示方式,培养学生的动手实践和创新能力,与院校课程共建,制定人才培养方案,助力院校培养高水平应用型学生。面向产业,华为开发者创新中心依托华为云、HarmonyOS、 HMS 、鲲鹏 、欧拉等华为开放能力,提供人才培养、技术支持、联运推广三阶段服务赋能开发者,帮助开发者提升技能、加快产品创新、扩大销售收入,驱动创新人才发展,引流产业转型升级。3.5 开发者学堂:提供教育aPaaS,联合培养人才华为云还通过云学堂持续培养和赋能伙伴、开发者。为匹配产业发展节奏,华为云学堂支持能力外溢,提供教育aPaaS一站式人才培养云平台——KooEdX,打通公私域流量,与伙伴联合培养开发者,以“平台+内容+服务”为数字化人才培养助力,实现人才发展闭环。目前,云学堂已经持续培养近百万的开发者,占据10%的中国软件产业从业人员,其中有超12万人通过了华为云的认证考试获得证书。为期两天的“华为伙伴暨开发者大会2022”圆满结束了,但“​勇往直前 做全能开发者”活动还在继续,代码密室、技术宝典、知识竞赛…多轮神秘任务等你来挑战。没来及参加的小伙伴,速来比拼开发技能,抱走终极大奖!梦想还是要有的,万一实现了呢~
  • [云动向] 【硬核】华为云:创新无限,一切皆服务
    创新无限,一切皆服务华为云在本届华为伙伴暨开发者大会继发布了15大云服务新能力后还在今天的技术论坛上带来了重磅技术解读和更多黑科技「一切皆服务」华为云云原生2.0全景图再升级为赋能云原生企业智能升级,实现“资源高效、极致体验、万物互联、应用敏捷、业务智能、安全可信、行业使能”,华为云云原生2.0全面升级。01 在基础设施即服务方面华为云进一步打造一致体验的分布式云原生基础设施;通过安全云脑,把AI融入云原生安全体系,提升检测能力和运营效率,让安全更智能。02 在技术即服务方面为了企业能够更好的快速构建新型生产方式,华为云整合打造了四大生产线及多种云原生技术,让企业快速获取新的技术能力,提升生产效率,从而支撑企业的持续创新和快速发展。 03 在经验即服务方面华为云继续增强基础aPaaS能力,将华为积累的更多基础能力开放出来。 四大生产线技术干货图所见即所得华为云持续打造技术即服务对数字内容生产线MetaStudio、AI开发生产线ModelArts和软件开发生产线DevCloud进行服务升级并发布全新的数据治理生产线DataArts四大生产线服务“长剑出鞘”帮助各行各业的软件开发更简单快速地完成SaaS化在云上创造更多新价值数据治理生产线DataArts帮助企业更便捷高效地管理和使用数据,释放数据价值。AI开发生产线ModelArts让AI开发更加简单高效。数字内容生产线MetaStudio让各行业可以便捷地在云上生产数字内容、开发3D应用,打造虚拟演唱会、虚拟展会、办公协作、工业数字孪生等各种元宇宙应用场景,让海量用户在其中实时无缝沟通。例如:湖南多豆乐漫娱传媒基于MetaStudio数字内容生产线打造“方小锅”数字人IP,结合AI实现单摄像头驱动,动作准确度超过90%,口型准确度达到95%以上,实现数字人直播体验的质变。软件开发生产线DevCloud把华为的全流程软件开发经验放到华为云上,提供给开发者使用。例如:德邦快递通过软件开发生产线半年便实现从线下到云端开发流水线的转型,上线运行半年完成了750多个流水线业务交付,迁移80个+业务系统,代码问题下降71.74%。更多精彩,直接上图除此之外,还有华为云将继续和合作伙伴、开发者一起通过 经验即服务技术即服务基础设施即服务实现一切皆服务,共创新价值
  • [行业资讯] 创新技术领航者!华为云GaussDB获颁2022年云原生数据库领域权威奖项
    近日,由中国信息通信研究院主办的“原生聚力,云数赋能”第四届云原生产业大会顺利召开。在这场云原生领域盛会中,华为云GaussDB(for MySQL)云原生数据库凭优越的技术创新实力和实践经验,荣获“云原生技术创新领航者-云原生技术创新案例”大奖。华为云数据库副部长庄乾锋表示,当前数据库行业迎来云原生2.0时代,企业对云数据库提出了更高性能、安全可靠、极致扩展等诸多诉求。华为云GaussDB通过整合多年数据库领域经验和客户诉求,构筑云原生数据库全栈能力,构建以应用为中心的新型数据库云服务,积极引领云原生数据库发展新方向。华为云GaussDB(for MySQL)获云原生数据库领域权威奖项聚焦技术创新 深入云原生领域持续发力作为新一代企业级高性能云原生分布式数据库,华为云GaussDB(for MySQL)基于DFV分布式存储,采用存算分离架构,拥有128TB的海量存储空间,可实现超百万级QPS 吞吐,既拥有商业数据库的性能和可靠性,又具备开源数据库的灵活性,在云原生业务场景有非常明显的核心优势。华为独特优势:垂直集成与传统的线下数据库不同,云数据库有垂直集成云栈中所有层的能力,在云上,存储和数据库的集成能发挥更大的作用。通过并行查询(PQ)提高性能并行是提高性能的通用方法,可以在多层上实现,华为云GaussDB(for MySQL)允许使用多个线程并行执行单个查询;此外,允许更高并行力度的层是存储层,因为存储系统一般有数百个节点和数千个核心,GaussDB(for MySQL) 使用的云规模的分布式存储是提高查询性能的关键基础,结合并行查询,实现大幅提升查询性能。算子下推(NDP)加速查询效率GaussDB(for MySQL)通过算子下推(NDP)技术,把算子卸载到数据所在的存储节点上,利用当地可用的计算资源执行,无需将数据读到计算节点中。实现了在大规模查询场景中将90%的逻辑计算在分布式存储层完成,大幅度降低了网络I/O 延迟,充分释放了云计算算力,在TPC-H测试中,相比社区版本,其性能最高提升了34倍。秒级伸缩,应用0感知GaussDB(for MySQL)支持Serverless,根据数据容量自动伸缩,存储自动打散负载压力,无需分库分表。HTAP 只读分析用户既能得到 MySQL 完备的事务保障,又能享受到 GaussDB(for MySQL) HTAP 只读分析的极致分析性能。华为云GaussDB(for MySQL)不仅通过分布式全并行架构和多节点写入提供极致的吞吐量性能,轻松应对海量高并发数据处理,提升高可用能力;还具备跨AZ部署、跨region容灾、单点故障0中断等多个特性,满足金融级别的高可靠性;且仅需要商用数据库1/10的成本就可以提供企业级的服务能力。极致性价比、AI 自治、HTAP、多主、Serverless将是GaussDB(for MySQL) 数据库未来的重点发展方向。大浪淘沙 做千行百业上云优选当前,华为云GaussDB(for MySQL)数据库面向企业云原生赛道,已在音视频、互联网电商、游戏、保险、汽车制造、物流、交通出行等多个行业场景和标杆大客户得到广泛应用,包括助力永安保险重构核心业务系统,帮助互联网电商如梦饷集团、单创、未来一手等缔造电商新时代,赋能中国一汽红旗和一汽大众数字化转型等等。在中国一汽红旗ERP系统微服务改造、业务上云过程中,GaussDB(for MySQL)提供了在云上和本地部署体验一致的云数据库服务,改造后的ERP系统数据库整体性能大幅提升,流量洪峰下业务运行又快又稳。梦饷集团通过GaussDB(for MySQL)进行电商平台的数字化升级,将业务搬迁上云后,运维效率提升了约30%,核心业务数据库访问平均耗时由1.5s降至1s;此外,梦饷集团每秒成交的订单数再创历史新高,成为了利用数字基础设施助力业务快速增长的标杆。持续深耕 共促产业生态繁荣华为云GaussDB已连续两年入选Gartner云数据库管理系统魔力象限特定领域者,在IDC《2020年下半年中国关系型数据库软件市场数据跟踪报告》中,GaussDB荣获中国关系型数据库本地部署市场国产数据库份额NO.1、公有云市场数据库份额增速第一的优异成绩。此次华为云GaussDB获得“云原生技术创新领航者-云原生技术创新案例”奖项,代表了产品的技术创新实力和市场表现得到了高度认可,同时也是华为云GaussDB的新征程和新起点。未来,华为云GaussDB将持续聚焦云原生数据库技术的探索,打造更多业界领先的数据库技术与产品,助力企业加速上云,共促产业生态繁荣!
总条数:445 到第
上滑加载中