• [问题求助] 急!!!!!!gauss打包
    我是在本地的java项目中,连接云服务器中的openGauss中新建的数据库。通过新建的用户jack连接。这是我引用的依赖包。这是我的配置这是我云服务器上的数据库:本地测试连接:然后将本地项目打包报错,在项目中执行mvn clean ,再执行mvn package,然后报错。上图显示的jdbc:postgresql://123.60.....是我云服务器中的数据库地址没有参考文档,就是按照平时在本地打包的步骤。我已经在云服务器上安装了openGauss检查防火墙以及selinux
  • [技术干货] 华为云GaussDB(for Influx)揭秘第七期:最佳实践之数据建模
    华为云GaussDB(for Influx)时序数据库面向工业物联网海量时序数据场景提供数据安全、高性能、低存储成本、免运维等能力,受到越来越多企业的关注;同时,即开即用、使用简单、类SQL查询语句、无需设计schema、适合业务快速迭代等特点,也越来越得到开发者的认可。 但是随着业务规模不断增加,也会遇到诸如时间线暴涨、查询时延高、Tag和Field同名导致查询数据时有时无等问题,其根本原因是,在使用过程中没有良好的数据模型设计。本期将从GaussDB(for Influx)数据模型谈起,分享GaussDB(for Influx)数据建模的最佳方法,避免一些使用过程中的常见问题。 01 数据模型与关键概念Database与MySQL中Database概念相同。创建命令:CREATE DATABASE “mydb”。用户权限、数据保留策略都以Database为粒度设置。比如赋予用户对“mydb”数据库只读权限:GRANT read ON mydb TO username。Measurement与MySQL中Table概念类似。所不同的是,GaussDB(for Influx)属于Schemaless,Measurement不需要提前创建,也不需要设计表中的字段和类型。写入数据时自动创建Measurement,字段可以任意新增和减少,但要求相同字段的数据类型必须一致。Retention Policy(RP)数据保留策略,是关系型数据库中不存在的概念,专为时序场景设计,意为指定数据在数据库中的最长保存时间,过期数据会自动被清理。Tag数据源标识,只支持string类型Field采集指标,支持string,float,int,bool类型Line Protocol(数据模型)如图所示,写数据到GaussDB(for Influx),单条数据由measurement、Tag_key、Tag_value、Field_key、Field_value、timestamp 6部分组成。<Tag_key= Tag_value>可以1个或多个,<Field_key=Field_value>可以1个或多个,每条数据必须要携带时间戳。 Point(点)Point通常包含measurement+Tags+Field+timestamp 4个部分。例如,如下数据包含2个Point。 <monitorInfo,area=“葡萄花”,,device=“钻机A” pressure=1.8,level=35 1650443961100400200> Point1: <monitorInfo,area=“葡萄花”,device=“钻机A”,pressure=1.8 1650443961100400200> Point2: <monitorInfo,area=“葡萄花”,device=“钻机A”,level=35 1650443961100400200>即,一条数据包含多少Field Key,则可以简单认为存在多少Point。在GaussDB(for Influx)中,可以一条数据包含一个Point,也可以包含多个Point。Series(时间线)在GaussDB(for Influx)里,我们将一个指标+一组Tag组合称为一条时间线。在一条时间线下面,连续时间点的采样数据则为时序数据。比如有数据:monitorInfo,area=”葡萄花”,device=”钻机A”,pressure=1.8,1650443961100400200 monitorInfo,area=”葡萄花”,device=”钻机B”,pressure=1.6,1650443961100400200 monitorInfo,area=”榆树林”,device=”钻机B”,pressure=1.7,1650443961100400200 monitorInfo,area=”榆树林”,device=”钻机A”,pressure=1.5,1650443961100400200表示4条时间线,分别是:葡萄花油田的钻机A上的压力传感器(pressure)葡萄花油田的钻机B上的压力传感器(pressure)榆树林油田的钻机B上的压力传感器(pressure)榆树林油田的钻机A上的压力传感器(pressure)02 数据建模之最佳实践通常,数据建模是为了让查询更简单、更高效。对于大多数使用情形,我们建议使用以下设计准则:1、合理设计Tag 和FieldTag只支持字符串类型,数值和布尔类型数据应该被设计为Field;将常用查询条件和分组条件设计为Tag;因为Tag会创建索引,而Field则没有索引。比如在业务中,经常会查询某一台机器的平均CPU利用率:SELECT mean(cpu) FROM monitor WHERE host=“192.168.1.1” AND time > now() – 1h或者查询风电场每台风力发电机每小时的平均发电量:SELECT mean(elect) FROM monitor WHERE farm_id=“737f738a-bd63” AND time > now() – 24h GROUP BY time(1h),device_id则应该将上述查询语句中的 host、farm_id、device_id 设置为Tag,前提是字符串类型才能被设为Tag。time属于内置关键字,不能作为Tag_key和Field_key;使用InfluxQL函数(Max、Min、Count等)的字段,作为Field存储。2、 遵守Tag_Key 和Field_Key的命名约定不使用保留关键字作为Tag和Field的key(名称);Tag和Field不使用相同名称,否则会出现不可预料的问题;Tag和Field名称尽量简短清晰,可以节约Index内存空间,同时会让查询更加高效;避免一个Tag中包含多层意思,比如machine = “192.168.2.1-Ubuntu”,包含ip地址和操作系统名称,建议拆分为两个Tag:host和os;建议将变化小的数据设置为Tag,比如进程名称可以设为Tag,而进程号则建议设置为Field。3、避免超过节点规格所能承受的时间线数量GaussDB(for Influx)规格与时间线数量对应关系如下: 时间线过度超过限制,会引起性能急剧下降,可能会影响业务运行,需要考虑对节点扩容。4、避免一张表中存在过多Tag或者 Field 建议一张表存放同一类业务数据,比如物流车辆监测数据。过多业务数据放置到同一张表,会造成Tag和Field数量激增,直接影响查询效率。Field太多时,每个Field的计算都会单独计算,当执行模糊查询时可能会导致查询超时。 5、避免同一个Retention policy存储多用户数据 不同业务数据的过期时间不尽相同,应根据业务具体需求分别存储在不同的RP中,否则过期数据不能及时删除,依然占据存储空间,增加了数据存储成本,影响了查询效率。 6、避免同一个Database存储多用户数据 由于当前GaussDB(for Influx)的权限控制粒度是DB级别,同一个Database保存多用户数据,容易导致数据被其他用户访问和修改。建议不同用户使用单独Database,并且只对单一用户授予访问权限。 03 总结在制造、能源、农业、电力等工业物联网行业中,大部分数字化信息系统是构建在MySQL等关系型数据库基础上。但随着企业业务和规模的进一步扩大,数据量迅速增长,MySQL等关系型数据库面临并发数、存储成本、查询性能、扩展性、维护等诸多问题,正逐渐被时序数据库所替代。 GaussDB(for Influx)摒弃关系型数据库范式化繁复的设计规则,支持Schemaless设计,业务能按照简单、高效的方式建模。面对业务变化快、接入设备多样化严重的工业物联网场景,GaussDB(for Influx)数据建模表现更加灵活,无需更改业务即可兼容不同设备,更适用于工业物联网场景。 04 结束本文作者:华为云数据库创新Lab & 华为云时空数据库团队欢迎加入我们!云数据库创新Lab(成都、北京)简历投递邮箱:xiangyu9@huawei.com华为云时空数据库团队(西安、深圳)简历投递邮箱:yujiandong@huawei.com
  • 【持续更新】GaussDB数据库学院干货汇总
    类别 产品 名称在线课程GaussDB GaussDB实战训练营 华为云数据库GaussDB GaussDB关键技术特性入门 华为云数据库GaussDB介绍 GaussDB新一代关系型数据库技术揭秘 GaussDB 数据存储与访问 GaussDB(for MySQL) 【系列课程】华为GaussDB OLTP数据库高级工程师学习 【系列课程】数据库原理及应用学习 【系列课程】数据库工程师学习路径 RDS for MySQL 7天玩转MySQL基础实战营 RDS for PostgresSQL 7天玩转PostgreSQL基础训练营 GaussDB(for Mongo) MongoDB分布式事务内核源码简介 秒级水平拓展的-GaussDB(for Mongo)架构剖析 GaussDB(for Redis) 当Redis遇见计算存储分离 GaussDB(for Influx) 云原生时代下的时序数据库GaussDB(for Influx) DDS 华为云数据库DDS产品深度赋能 玩转MongoDB从入门到实战 公共 云享读书会《SQL优化核心思想》 端到端安全可信,华为云数据库解决方案最佳实践 华为云数据库架构设计 HCSD实训营数据库技能测评(活动课程) HCSD实训营在线实践(活动课程)CodeLab GaussDB SQL调优之改写SQL消除子查询 SQL调优之建立合适的索引 SQL调优之选择合适的分布列 GaussDB(for MySQL) GaussDB(for MySQL)如何快速创建索引 GaussDB(for MySQL) HTAP只读分析特性详解 RDS for MySQL 通过接口调用方式创建RDS 基于Python搭建云数据库应用 GaussDB(for Redis) 华为云GaussDB(for Redis)与开源Redis集群性能对比 GaussDB(for Influx) GaussDB(for Influx)时序分析平台使用指南 GaussDB(for Cassandra) 华为云GaussDB(for Cassandra)与自建开源Cassandra性能对比 DAS 如何通过SQL模板检查并进行表优化 基于DAS服务的数据**与回滚场景实践 DDS DDS通过SQL优化来提升DDS性能 DDS如何规避mongos路由缓存缺陷 DDS如何通过设置数据分片来提升性能 DDS CPU使用率高的问题排查方法 DRS 实时同步数据加工 PostgreSQL数据库同步 基于DRS服务的MySQL数据库云上迁移实践 公共 【特性指南】分区表查询增强特性用户指南 DDM分库分表实践 - 解决单机数据库困境 DDM查询执行计划介绍 DDM+MySQL扩展来破除业务性能瓶颈沙箱实验 RDS for MySQL 10分钟快速入门RDS 数据库服务实践 DRS 使用DRS实现数据实时同步 MySQL本地数据库迁移 公共 使用CDM将CSV文件迁移至RDS 通过CDM同步数据到MRS Hive 使用Python爬虫抓取图片和文字实验微认证 RDS for MySQL 华为云数据库服务实践 GaussDB(for Mongo) 基于MongoDB使用Java实现图书管理系统 DRS MySQL数据库迁移上云 公共 云数据库性能对比测试 使用Python爬虫抓取图片 openGauss数据库在金融领域的使用实践 基于华为云DevCloud的托马斯商城
  • [技术干货] 华为云GaussDB(for Influx)揭密第六期——数据分级存储
    “只存储这些数据一年就要花费200多万?”   面对老板的质疑,小王又重新讲解了一遍评估方案。为了支撑生产分析和系统运维,一个设备就需要几十个检测点数据,所有设备24小时不断采集数据,一天的数据量就会达到TB级,这些数据至少存储2年,再加上高可用的3副本,总的数据量会达到PB级。   小王又展示了当前云厂商存储价格和性能对比的调研结果: 不同存储其性能差异很大。例如NVME盘的吞吐量是SATA盘的7倍,IOPS超过了20倍,当然对应的成本也高出10倍左右。根据测试评估,低成本的存储性能无法满足大量数据的写入和实时业务的监控,只得使用性能高的SSD盘,因此导致存储的成本提高。   成本提高,老板自然不满意。那如何才能既满足性能需求,又能控制成本呢?小王想,“实际上,不是所有的数据处理都需要很高的性能,如果把价值高的数据放在高性能磁盘上满足业务需求,价值低的数据放在低成本磁盘上降低成本,这样不就既能满足需求,又能降低成本了么?”   不过,想法很美好,现实很残酷,要实现这个方案,小王面临着更多的难题: (1)怎么在一套系统中既能使用高性能存储,又能使用低成本存储? (2)怎么区分高价值数据? (3)高价值数据变成低价值数据后怎么自动转储? (4)当前业务改造量要尽量少。 01 GaussDB(for Influx)解决方案企业的数字化转型,数据是基础。为了能实时掌握设备、系统状态,需要采集大量的数据并进行实时处理。这些数据都属于时序数据,带有明显的特点,如时间戳、更新少、数据源唯一等。除了数据本身的特点,在业务应用上还具有如下特点: 随着时间的推移,其被查询和分析的概率越来越低。随着时间的推移,对数据分析的实时性要求越来越低。随着时间的推移,数据的精度要求越来越低。数据只保留一段时间,到期后会删除。如何结合时序数据的特点,实现小王既满足业务性能,又控制成本的美好愿望呢?华为云GaussDB(for Influx)时序数据库的数据分级存储功能完美解决了困扰小王的问题。 1、华为云GaussDB(for Influx)依托云原生能力,实现了计算存储分离的分布式架构,其中存储基于华为分布式存储DFV和对象存储OBS,解决了在一套系统中既能使用高性能存储,又能使用低成本存储的问题,其具体架构如下图: 分布式DFV存储属于高性能存储,热数据放在DFV中确保业务性能要求;OBS存储属于低成本存储,冷数据存储在OBS中,降低客户成本。 2. 提供了冷热数据自动分离的方案,用户在创建保留策略时,可以指定冷热数据的划分时间,系统根据用户的指定,自动将数据分为热数据和冷数据,解决了数据如何划分的问题。 3. 随着时间的推移,热数据转冷,系统会自动将数据转储到冷存储上。 4. 上述过程中只有在创建RP时需要指定冷热数据策略。对于业务侧是不感知的,避免业务的适配和改造。 02 GaussDB(for Influx)冷热存储的使用GaussDB(for Influx)存储分级功能使用十分方便,在购买冷存储后,设置RP策略时指定冷存储的时间即可,系统会根据RP策略,自动将冷数据转储到低成本存储上。业务在访问冷数据时,系统会自动去冷存储上读取,整个过程业务是不感知的,对业务无影响。 2.1 购买冷存储GaussDB(for Influx)支持一键购买冷存储空间,可以在购买实例时选择是否够买冷存储,选择“是”,可以根据业务需求选择冷存储的大小,具体如下图: 也可以在购买实例后,独立购买冷存储。进入实例详情页面,点击创建冷存储空间,如下图: 跳转到如下页面,按照业务需求进行存储空间大小选择: 冷存储空也支持在线扩容,扩容过程中不影响业务。2.2 设置冷数据规则在购买了冷存储空间后,就可以按照业务需求设置冷数据的规则,系统会根据规则,自动划分冷热数据,并将冷数据存储在冷存储空间上。可以通过创建RP来指定冷热数据规则,具体示例如下: //在db名为mydb上创建名为myrp的RP,显示指定WARM DURATION为6d,表示6天前的数据是冷数据。 create retention policy myrp on mydb duration 30d replication 1 warm duration 6d shard duration 3d //在db名为mydb上创建名为myrp的RP,没有指定WARM DURATION,表示没有冷数据。 create retention policy myrp on mydb duration 30d replication 1 shard duration 3d //创建名为mydb的db,并带有名为myrp的RP,显示指定WARM DURATION为3d,表示3天前的数据是冷数据。 create database mydb with duration 6d warm duration 3d name myrp //修改WARM DURATION为7d,表示7天前的数据是冷数据。 alter retention policy myrp on mydb warm duration 7d规则设置完成后,系统会根据指定的规则,自动判断哪些数据属于冷数据,并自动将数据转储到冷存储上。2.3 使用效果验证冷数据规则设置好,插入数据一段时间后,系统会自动判断数据是否转为冷数据,如果已经成为冷数据,系统会自动将数据转储到冷存储上。可以通过show shards命令来查看数据的状态,如下图所示:> show shards name: hsdb id database retention_policy shard_group start_time end_time expiry_time owners tier -- -------- ---------------- ----------- ---------- -------- ----------- ------ ---- 5 hsdb myrp 2 2019-08-12T00:00:00Z 2019-08-19T00:00:00Z 2019-08-19T00:00:00Z 4 cold 6 hsdb myrp 2 2019-08-12T00:00:00Z 2019-08-19T00:00:00Z 2019-08-19T00:00:00Z 5 moving 7 hsdb myrp 2 2019-08-12T00:00:00Z 2019-08-19T00:00:00Z 2019-08-19T00:00:00Z 6 warm 8 hsdb myrp 2 2019-08-12T00:00:00Z2019-08-19T00:00:00Z 2019-08-19T00:00:00Z 7 cold:表示数据为冷数据,已存储在冷存储中; moving:表示数据为冷数据,该数据正在转储到冷存储中; warm:表示数据为热数据。 03 总结在应用了GaussDB(for Influx)的冷热分级存储方案后,存储100T的数据量一年,按照1个月内的数据是热数据,其余是冷数据,其总体的存储成本从250万降至37.5万,可节省85%的存储成本。 GaussDB(for Influx)除了冷热分级存储功能外,在集群化、读写性能、压缩率、高可用方面也做了深度优化,能更好地满足时序应用的各种场景。 04 结束本文作者:华为云数据库创新Lab & 华为云时空数据库团队欢迎加入我们!云数据库创新Lab(成都、北京)简历投递邮箱:xiangyu9@huawei.com华为云时空数据库团队(西安、深圳)简历投递邮箱:yujiandong@huawei.com
  • [版主精选] 存储成本降低80%,“大智慧”的选择
    风险与收益并存成功除了机遇,更需要“大智慧”帮助投资者以更低的成本获取全面、专业的信息大智慧是中国深具影响力的证券投资服务品牌,官方旗下软件有大智慧365、财富版、专业版、港股通、期货投资终端、大数据终端、策略投资终端和大智慧电脑版/手机版股票软件。大智慧致力于以软件终端为载体,以互联网为平台,向投资者提供及时、专业的金融数据和数据分析。大智慧有两项重要业务:企业图谱和大智慧APP预警通。企业图谱全面整合沪深上市公司信息,通过动态图谱的方式为金融机构资产管理、信贷业务、投行业务等提供最全企业背景资料,展示企业多层关联关系网,帮助客户识别企业之间的联系,防范企业系统性风险。大智慧APP预警通为数千万的大智慧用户提供消息推送和历史消息缓存服务,用户可以第一时间获取金融资讯与热点文章,同时还能够便捷地查看过往消息。起初,两项业务都依赖于开源Redis,但随着时间的推移,开源Redis的弊端逐渐暴露出来。其中,企业图谱业务使用开源Redis集群对热数据进行存储,业务上线之后,由于数据量逐渐增大,需要不断增加集群节点数,因此带来诸多问题:开源Redis内存成本高昂冷热数据交互逻辑复杂,一致性不易维护扩容带来的运维不便和业务卡顿大智慧预警通使用Redis集群缓存消息内容,如一些资讯、文章等,业务数据量从一开始预估的128GB、256GB,到后来不得不加快核心数据的淘汰,数据增长依然势头不减,业务面临如下问题:存储空间紧张,存储价格昂贵交易日的消息并发压力大面对以上挑战,大智慧将目光投向了华为云云原生企业级数据库GaussDB(for Redis)。 GaussDB(for Redis),对症下药GaussDB(for Redis)是华为云降本增效的杀手锏,满足大智慧对大容量、强一致、高可靠、易运维的Redis数据库的诉求。冷热分离:低频访问的数据自动降冷,持久化到高性能共享存储池,不占用宝贵的内存资源,与开源Redis相比,大大降低了硬件成本;同时上层业务不必自行设计冷热数据交换,不用考虑数据双写一致性等问题,即可轻松使用。弹性伸缩:一键秒级无损扩容,交易日业务高峰期也可实时扩容,对业务0影响。稳定可靠:亚毫秒级时延稳定无抖,轻松应对消息并发高峰;同时提供三副本强一致存储保障,从原理上避免脏读,有效协助客户简化上层业务逻辑架构。全新底座,降本增效在切换到GaussDB(for Redis)之后,大智慧的业务体验有了明显的优化:企业图谱一库搞定业务诉求,存储难题得以解决,数据实现冷热分离,业务设计更加简单,开发效率更高,运行更加稳定。大智慧预警通业务获得了大容量的存储,消息的并发量与及时性得到满足。在交易日流量高峰,p99时延<2ms,保障终端用户丝滑体验;后端存储的数据可以随时扩容,并且成本降低80%。GaussDB(for Redis)在运行稳定的基础上,大幅降低了存储成本,帮助大智慧在业务上进一步大展身手,更及时地为用户提供优质的服务。 大智慧致力于为广大投资者提供及时、专业的金融数据和数据分析,帮助用户在金融市场的风云变幻中出奇制胜。华为云GaussDB(for Redis)提供的冷热分离 ,弹性伸缩,稳定可靠等系列能力不仅成功为大智慧降本增效,也为广大投资者提供了稳定高效的数据服务,助其在投资中更从容和智慧。【活动推荐】数据库迁移上云特惠,新用户购买GaussDB(for Redis) 1年3折起,多款热销产品1年享6折,活动详情:https://activity.huaweicloud.com/dbs_Promotion/index.html
  • [优秀博文] 华为云GaussDB(for Influx)揭秘第五期:最佳实践之子查询
    "告警了!告警了!"。"什么告警了?"正在睡梦中迷糊的小王突然被运维同事的一个电话叫醒,顿时一脸惊愕。"慢查询!客户报障了!赶紧起来处理啊!"小王赶紧打开便携,远程连上环境查找问题所在,最终发现该慢查询是一条子查询。"不对啊,相同语句昨天还没报慢查询啊?"不过小王很快得出了原因。这条慢查询的问题在于:子查询的内部查询本来可以将数据汇聚后再输出到外部查询,但由于没有做汇聚,因此当数据量大的时候,就会很慢!找到症结所在,小王立马将优化后的sql语句通过运维同事转给客户,该告警终于得以解决。"看来得好好整理下子查询了!",趁着思路清晰,小王开始整理了起来......01 什么是子查询?子查询是嵌套在另一个查询中的查询,在InfluxQL语法中一般放在from语句中,以增强代码的灵活性。子查询主要有以下几大分类:标量子查询(scalarsubquery):返回1行1列一个值行子查询(rowsubquery):返回的结果集是 1 行 N 列列子查询(columnsubquery):返回的结果集是 N 行 1列表子查询(tablesubquery):返回的结果集是 N 行 N 列例如在查询语句:select first(sum_f1)/first(sum_f2) from (select sum(f1) as sum_f1 from mst), (select sum(f2) as sum_f2 from mst)使用了两个子查询,分别是从表mst中求得f1和f2两列之和,并将结果sum_f1和sum_f2作为外部查询的源,供外层查询语句使用。GaussDB(for Influx)子查询的一般语法为SELECT_clause FROM (SELECT_statement ) [...]。在处理子查询时的逻辑如下图所示。系统会首先处理子查询语句,子查询的结果被缓存起来,作为外查询的数据源,最终由外层查询处理完成后将结果返回给客户。02 子查询的使用场景子查询用在一次简单查询无法处理的情况下,或者是基于一个查询的数据做进一步的处理,比如想找出每个分组的最小值中最大的三个:SELECT top (v,3) FROM ( SELECT min (value) AS v FROM mst GROUP BY tag1 )子查询为我们带来了很大的灵活性,但是原则上不推荐使用子查询。原因很简单,相比于普通的查询来说,子查询有更深的函数调用和更大的数据量,消耗的资源和时延都会增加。03 案例剖析我们在使用GaussDB(for Influx)开发的过程中,常常会面临一些子查询方面的困扰,例如:1. 什么时候使用子查询?2. 面对一个复杂场景,如何分解成为子查询来解决?3. 写好的子查询是最优的么?可不可以再优化?接下来我们结合一个具体案例来简单分析下如何高效的使用子查询和分析思路。华为云某用户使用GaussDB(for Influx),每天写入约5.4亿个点,时间线100w+,业务中有时空查询,请求成功率查询,topN查询。以下面脱敏数据作为sample数据做案例分析和实践:案例1 什么时候使用子查询?用户使用了子查询做时空分组并且作为外查询的源,外查询将时空分组的结果做聚合。查询语句为:SELECT SUM(req_nums) FROM( SELECT requestNum AS req_nums FROM req_table WHERE statement=’SUCCESS’ AND time >= 1629129600000000000 AND time<=1629129611000000000 ) WHERE time>=1629129600000000000 AND time<=1629129611000000000 AND req_nums < 50 GROUP BY time(1s), group ORDER BY time ASC产生的问题:用户的使用场景下,可以发现该查询子查询内部仅仅实现了条件过滤和列名更改,因此内部查询等同于SELECT requestNum AS req_nums + 过滤, 非聚合场景的查询由于需要捞出大量原始数据导致查询速度较慢,因此该查询效率达不到用户的要求。解决思路:通过分析查询语句可知,用户的需求是将符合条件(statement=’SUCCESS’ AND requestNum < 50)的数据做一个时空聚合(GROUPBY TAG, time(5m)),明确了查询目标之后能写出更加清晰高效的查询语句:将所有的过滤条件放在一起,直接做时空聚合。语法改进:SELECT SUM(requestNum) FORM req_table WHERE statement=’SUCCESS’ AND requestNum < 50 AND time>=1629129600000000000 AND time<=1629129611000000000 GROUP BY time(1s), group ORDER BY time ASC案例2 使用子查询解决复杂问题用户的业务场景中需要计算请求成功率,即按照不同的过滤条件对某一列数据进行筛选和计数,最后求出比例。GaussDB(for Influx)不支持case when语句,因此如何根据不同case过滤出同一列的不同数据是一个难点。很多开发者碰到这样的问题时,便没了思路。解决思路:第一步:利用子查询+多表特性,根据过滤条件将同一列数据变为两列:SELECT * FROM (SELECT requestNum AS success_requestNum FROM req_table WHERE statement=’SUCCESS’ AND time>=1629129600000000000 AND time<=1629129611000000000), (SELECT requestNum AS total_requestNum FROM req_table WHERE time>=1629129600000000000 AND time<=1629129611000000000)第二步:对查询出来的数据进行计数:SELECT SUM(success_requestNum) AS total_success_reqNum, SUM(total_requestNum) AS total_requestNum FROM (SELECT requestNum AS success_requestNum FROM req_table WHERE statement=’SUCCESS’ AND time>=1629129600000000000 AND time<=1629129611000000000), (SELECT requestNum AS total_requestNum FROM req_table WHERE time>=1629129600000000000 AND time<=1629129611000000000) GROUP BY time ASC第三步:写出最终求成功率的查询语句:SELECT SUM(success_requestNum)/SUM(total_requestNum) AS success_ratio FROM (SELECT requestNum AS success_requestNum FROM req_table WHERE statement=’SUCCESS’ AND time>=1629129600000000000 AND time<=1629129611000000000), (SELECT requestNum AS total_requestNum FROM req_table WHERE time>=1629129600000000000 AND time<=1629129611000000000) GROUP BY time ASC案例3 如何优化子查询语句?基于案例2,我们得到了求成功率的方法,查询语句如下:SELECT SUM(success_requestNum)/SUM(total_requestNum) AS success_ratio FROM (SELECT requestNum AS success_requestNum FROM req_table WHERE statement=’SUCCESS’ AND time>=1629129600000000000 AND time<=1629129611000000000), (SELECT requestNum AS total_requestNum FROM req_table WHERE time>=1629129600000000000 AND time<=1629129611000000000) GROUP BY time ASC产生的问题:用户所写查询语句查询时长高于120s不满足业务需求,需要进一步优化。语法改进:根据前面所述的子查询原则和解决方法,应当把聚合查询放到子查询内部来减少数据量加快查询速度,优化后的查询语句如下:SELECT SUM(success_requestNum)/SUM(total_requestNum) AS success_ratio FROM (SELECT SUM(requestNum) AS success_requestNum FROM req_table WHERE statement=’SUCCESS’ AND time>=1629129600000000000 AND time<=1629129611000000000), (SELECT SUM(requestNum) AS total_requestNum FROM req_table WHERE time>=1629129600000000000 AND time<=1629129611000000000) GROUP BY time ASC查询结果一致:优化效果:未优化查询耗时126s,优化后查询耗时2.7s,性能提升47倍。*注意使用SUM(success_requestNum),SUM(total_requestNum)的目的是为了让数据对齐。直接使用SELECTsuccess_requestNum / total_requestNum,会因为相同时间数据无法对齐而出现结果不正确的情况:SELECT * FROM (SELECT SUM(requestNum) AS success_requestNum FROM req_table WHERE statement=’SUCCESS’ AND time>=1629129600000000000 AND time<=1629129611000000000), (SELECT SUM(requestNum) AS total_requestNum FROM req_table WHERE time>=1629129600000000000 AND time<=1629129611000000000) GROUP BY time ASC查询的总数据量与查询速度正相关,越大的数据查询量意味着越慢的查询速度,因此无论是书写子查询还是非子查询的查询语句,第一原则是尽量在查询中减少数据量,也就意味着聚合查询(典型减少数据量的查询)应当尽可能放到子查询内部。04 灵活的子查询和高性能GaussDB(for Influx)不但提供灵活的子查询能力,同时还使用了向量化、内存复用等技术不断提升查询的效率,满足了用户海量数据场景下的查询性能需求。向量化查询:GaussDB(for Influx) 使用了SIMD指令集,提高数据处理的并行化程度。与此同时,采用向量化数据模型,一次迭代可以处理一批次的点,极大减少了计算迭代次数,加快了计算速度。内存复用:在查询过程中尽可能减少GC对内存的回收和分配,申请的内存单独管理,解决了查询过程中内存膨胀导致GC频繁降低查询速度的问题。05 总结GaussDB(for Influx)支持子查询功能给我们处理问题带来了很大的灵活性,同时对使用者也有很高的要求,不合理的子查询往往会导致查询时延高,资源消耗大等问题,因此在使用GaussDB(for Influx)子查询时应该注意以下几点:1. 理解子查询适用的业务逻辑,子查询适用于对查询出来的数据做二次(多次)处理的场景;2. 能不使用子查询的场景下尽量避免使用子查询;3. 必须使用子查询的场景尽量将减少数据量的查询放到子查询内部以减少整体的查询数据量从而加快查询速度。06 结束本文作者:华为云数据库创新Lab & 华为云时空数据库团队欢迎加入我们!云数据库创新Lab(成都、北京)简历投递邮箱:xiangyu9@huawei.com华为云时空数据库团队(西安、深圳)简历投递邮箱:yujiandong@huawei.com
  • [版主精选] GaussDB(for Redis)助力《余烬风暴》实力上线,给您沉浸式魔幻体验
    提起魔幻世界 你的记忆会把你带到哪里? 2021年9月大规模上线的《余烬风暴》大型手游就打造了一个有生命又充满真实感的魔幻世界,给了众多游戏玩家沉浸式体验的无限空间。 《余烬风暴》是龙图游戏推出的首款自研沉浸美学魔幻MMORPG手游。为了完美地呈现出魔幻的独特魅力,游戏将“罗马风”和“哥特式”建筑进行了跨时代的融合。不仅如此,细腻的人物面部表情和服饰纹理、实时变化的天气系统和动态光影表现,让游戏里的一人一景、一草一木都充满了真实感和活力。 这样大型的魔幻世界体验,在游戏一上线就吸引了众多玩家,加上多人对战和跨服对战的游戏模式,服务器的高性能和高扩展成了刚需,在技术的支撑上面临着不容忽视的挑战。 上线首日服务器性能压力大、冲击大,易爆服的挑战显而易见;多人对战作为主要场景,意味着对网络延迟极低的容忍度,时刻需要高稳定性、低时延的数据访问来保障用户的游戏体验;跨服战斗活动容易在一定的时间段内形成业务超高峰,在游戏活动峰值时数据库需要稳定支撑10万级高并发业务,才能轻松应对百万用户的流量洪峰。支撑《余烬风暴》快速上线平稳应对跨服对战洪峰面对以上种种业务需求,华为云提供了针对性的解决方案,从两条路出发,实时保障游戏的平稳运行。 | 针对业务特性制定游戏服部署方案 在游戏开服阶段,基于具体的业务需求,点对点做好资源的配置,确保游戏顺利开服; 对底层资源提前进行巡检,最大限度地避免游戏宕机重启事件; 针对游戏的业务架构,订制针对性的保障服务,通过人员驻场以快速响应客户实时诉求,其中重要资源交给专人看护,最大程度地确保现场问题实时闭环解决。 | GaussDB(for Redis)数据库,解决全局、跨服缓存,轻松应对流量高峰 高稳定性,可以轻松应对20倍业务的高峰变化,时延0.1ms稳定无抖(p99<0.3ms); 弹性伸缩,能够实现秒级无损扩容,在开服首日对战高峰时做到实时扩容并游刃有余,对业务0影响; 提供三副本容灾方案,可从底层保证数据的一致性,从源头避免脏数据的出现,有效协助客户简化上层业务逻辑架构。 在华为云数据库的强力保障下,《余烬风暴》实现了0 Bug上线,开服首日流水就破千万,且在业务高峰期单日同时在线玩家数达到百万级。龙图游戏是国内游戏开发商中的实力派和行业佼佼者,旗下拥有多款热门游戏,持续致力于从用户体验的角度思考,追求卓越品质,创造精品网游。而华为云多年来持续在数据库技术领域深耕,已经形成深厚的技术底蕴。本次双方的合作,是娱乐体验与技术赋能的共赢。未来,华为云数据库也将继续携手龙图游戏,共同打造更多游戏精品,给用户创造更极致的游戏体验。
  • [热门活动] 快速摆脱在线扩容难的噩梦,华为云数据库有妙计,企业级Redis 包年18元!
    #华为云开年采购季#游戏开服、电商大促抢购,在线人数难预估,时常担心写爆Redis,影响活动正常进行。如何解决Redis来不及扩容?推荐使用企业级Redis,支持秒级在线扩容,关键时刻不掉链。限时秒杀新用户包年18元~活动详情→https://activity.huaweicloud.com/dbs_Promotion/index.html 
  • [热门活动] 一图解答什么场景应该用华为云GaussDB(for Mongo) !限时新用户包年0.5折
    #华为云开年采购季#好物推荐——GaussDB(for Mongo),堪称“百宝箱”,游戏装备、物流状态、社交好友信息,啥数据都能装。一图解答什么场景应该用华为云GaussDB(for Mongo) !新用户包年0.5折,活动详情→https://activity.huaweicloud.com/dbs_Promotion/index.html 
  • 【盖楼有礼】数据库专场,“预见”华为伙伴暨开发者大会2022!
    【活动时间】2022/3/30—6/30【活动主题】数据库专场,“预见”华为伙伴暨开发者大会2022!【活动内容】话题互动+开发者故事征集+活动分享//*3个活动内容盖楼独立活动一:话题互动 —— 回帖盖楼话题方向话题内容 话题1:#华为伙伴暨开发者大会2022“预见”数据库#你参加过华为伙伴暨开发者大会(往年的HDC大会)线下活动吗?华为伙伴暨开发者大会2022数据库版块,你最关注/最想了解什么内容?华为伙伴暨开发者大会2022,数据库我想对你说?数据库行业百花齐放,GaussDB作为华为倾力打造的自研数据库,你看好它的发展吗?对于华为云GaussDB数据库有什么好的建议呢?话题2:#与GaussDB挑战赛的不解之缘#你参加过2019-2021历届的数据库挑战赛吗?数据库挑战赛给你留下最深的印象是什么?你的参赛经历/经验是否可以分享下?你希望数据库挑战赛的赛题方向是什么?参与方式:选择其中一个话题即可,进行回帖盖楼回复格式:华为云账号+话题X+具体内容(不少于30字)奖励规则:盖楼层数X中奖用户数奖品名称XX/10 1.公牛插座/三合一数据线/GaussDB字母笔/雨伞/定制水杯(随机发)X≥80X/10+1 2. 基于1奖品,随机赠送价值50元“64G U盘”一个X≥150X/10+1 3.基于2奖品,随机赠送价值99元“荣耀智能体脂称2”一个X≥230X/10+1 4. 基于3奖品,随机赠送价值129元“折叠烧水壶” 一个X≥300X/10+1 5. 基于4奖品,随机赠送价值199元“HUAWEI (灰色)背包” 一个活动二:开发者故事征集——说出你的故事参与前情:如果参加过华为伙伴暨开发者大会2022(往年HDC)数据库线下大会,请谈谈参会感受、对华为伙伴暨开发者大会的未来期望或者与相关的内容;如果参加过往届的华为云数据库挑战赛,可以谈谈参赛感受和经历,分享参赛过程中的故事。如果以上都未参加过,可以分享一下你与数据库的前世今生,比如参加过数据库往期的哪些线上/线下活动,参与活动的收获、成长或具体感受,可自行拓展。参与方式:请先添加华为云数据库小助手(18209232786),回复:“华为伙伴暨开发者大会预热——开发者故事征集”关键词即可(视频制作前,请先说明一下录制的内容,小助手可以帮忙把把关,避免跑题或者词不达意)录制要求:画质清晰,话题内容贴合要求,录制时组织好语言,视频时长3分钟左右;有拍摄经验者可拍摄出类似于Vlog形式的视频更加分哦!奖励规则: 奖励标准奖品名称数量视频内容最优质的前20名 华为背包(灰色)1 折叠烧水壶2 智能体脂称23 64GU盘+商务笔记本6 《华为数据之道》书籍/《数据库原理与应用》书籍8后20名 GaussDB字母笔不限 活动三:呼朋引伴来参与参与方式:Step1:分享活动海报,邀请好友参与活动Step2:好友完成“活动一 / 活动二”中任意一个任务,参与回帖即可回复格式:华为云账号+邀请者华为云账号+活动一/活动二内容打卡奖励规则:相互填写对方的华为云账户不算邀请哦!有效邀请人数N奖品N≥5笔夹/3D立体卡通书签/三合一数据线X≥10雨伞/手机支架X≥1564G U盘 + 定制水杯/GaussDB字母笔X≥20《华为数据之道》书籍/《数据库原理与应用》书籍,三选一X≥30荣耀智能体脂称2【注意事项】1.获奖结果将在活动结束后7个工作日内进行公示,请报名和留言的伙伴关注社区内容,所有奖品将在活动结束后15个工作日内发放。2.活动奖品颜色随机,且部分奖品数量有限发完将用等值奖品代替;3.为保证活动的公平公正,华为云有权对恶意刷活动资源(“恶意”是指为获取资源而异常注册账号等**活动公平性的行为),利用资源从事违法违规行为的用户收回抽奖及奖励资格。4.本活动最终解释权归华为云所有。
  • [版主精选] 传统数据库改造难?华为云GaussDB“五心”解决
    政企数字化转型如火如荼,传统商业数据库改造呼声愈加强烈,如何为政企客户提供改造最优解,华为云数据库GaussDB从技术、人才、权威认可、实践、生态等五个方面提供一站式上云迁移解决方案与服务,快来看看华为云GaussDB奉上的“五心”诚意吧~  活动链接:https://activity.huaweicloud.com/dbs_Promotion/index.html  
  • [版主精选] 华为云GaussDB专家走进课堂,跟莘莘学子聊聊数据库
    近期,各地疫情又一次席卷而来,居家隔离成为常态。不过,外出的不便并没有阻挡莘莘学子求知的渴望,线上课堂成为了大多学生上课的主要形式。在北京邮电大学中,邓芳老师、卢向群老师、杜军平老师、肖晨老师等多名老师所带的计算机学院和国际学院班级中的200多名学生就这样在线开启了本学期数据库课程的学习。 《数据库系统原理》是计算机科学与技术学科知识体系中信息管理领域的核心课程,也是计算机相关专业的核心专业课程。通过此课程的学习,学生可以深入了解数据库系统的基础理论和基本方法、数据库管理系统的核心技术、数据库应用系统设计开发过程、数据库系统操作能力和应用系统设计开发能力,具有对数据库技术领域复杂工程问题采用科学有效的方法进行研究的能力。本学期的《数据库系统原理课程设计》是理论课的后续课程。对学生来说,这更像是一篇毕业论文,因为从确定方向、系统设计、编码、调试、编译、发布,再调试、再学习......每个环节要不断试错、完善,才能完成。这是一场新的探索之旅,将满腹所学皆应用于实践。 校企联合共促数据库产业人才培养所学皆所用,是学习的价值所在。为了让学生们真正将理论应用到实践中,北京邮电大学与华为展开了深入的合作。北京邮电大学是华为与教育部联合建设产学育人“智能基座”项目中的其中一所高校,本着校企联合、产学育人的目的,华为为学校提供教学课件、教学平台等教学资源,并将企业在行业实际应用方面的经验积累、打磨的产品提供给高校,通过双方合作,培养更适用于数据库行业的应用型人才。应北京邮电大学邓芳老师和卢向群老师的邀请,3月16日,华为云数据库技术专家窦德明与北京邮电大学的众多学生相约线上,进行了一次数据库行业知识和技术的分享与交流,目的是让高校的学生们在学习数据库理论的同时,有机会了解数据库行业发展的趋势、动态、新技术探索以及商业环境中的实际应用,为未来有志于从事数据库工作的学生开阔视野,提供实用性的参考和指引。GaussDB走进课堂之数据库行业洞察数据库是“根技术”,一直被誉为基础软件皇冠上的明珠。就像50年代核弹氢弹是高精尖,而在信息时代,信息产业的高精尖主要在基础软硬件的核心控制上,数据库就是其中最重要的软件。从上世纪60年代至今,经历了前关系型数据库、关系型数据库、后关系型数据库三个阶段。二十一世纪一零年代以来,随着互联网与云计算的发展,国产数据库进入快速发展时期,越来越多的厂商在数据库领域进行布局,随之而来的是,数据库相关的各类组织陆续成立,数据库人才培养体系、生态体系也在快速完善。(图片来源:中国信通院发布《数据库发展研究报告(2021年)》)(图片来源:中国信通院发布《数据库发展研究报告(2021年)》)根据中国信通院研究报告数据,2020年全球数据库市场规模为671亿美元,其中中国数据库市场规模为35亿美元(约合241亿元人民币),占全球5.2%。预计到2025年,全球数据库市场规模将达到798亿美元,而中国数据库市场总规模将达到688亿元,市场年复合增长率将达到(CAGR)为23.4%。在数据库发展如火如荼的时代下,上云已经成为数字化时代的一个新标志。从行业角度来说,云是数字化和新基建的关键要素。据预测,到2025年,85%的应用都将运行在云上。软件云化的趋势已经不可逆转,基于云的软件开发也将是未来软件开发的主要形态。云计算也将是各位学子未来的主要职业通道。和IDC或ECS自建数据库相比,使用云数据库可以节省大量的人力和成本,减少繁重和重复的运维工作,客户可以将主要精力聚焦在自己的核心业务上。基于对产业趋势的理解和华为在IT软硬件全栈的长期技术积累,华为云数据库从人才、软硬协同和生态三方面进行战略布局。华为在数据库领域持续研发投入已经有10多个年头,布局全球7大研究所,拥有1000+数据库专业人才;同时,华为积极拥抱开源,并将GaussDB单机主备的核心代码开源,托管到openGauss开源社区,真正做到架构开放、代码开放、技术开放和社区开放;另外,积极推进产、学、研、用相结合,大力投入高校合作,通过校企联合课程培养未来数据库产业人才,与学术界紧密合作,共同开展数据库前沿技术创新及难题公关。GaussDB走进课堂之前沿技术探索在介绍完数据库行业趋势后,窦德明向学生们介绍了华为云数据库——GaussDB的关键特性和核心技术。GaussDB是基于openGauss开源生态打造的企业级分布式数据库,服务于金融政企客户。邓芳老师上学期的数据库课程随堂实验就是基于GaussDB进行,让学生可以专注于学习、实践,学习和了解分布式数据库架构与创新,提前体验商业环境中的数据库形态。在本学期,学生将继续使用GaussDB来进行数据库课程的课程设计。作为新一代金融级分布式数据库,GaussDB是华为全自研产品,应用了多项黑科技核心技术,拥有高性能、高可用、高扩展、高安全、AI-Native自治等诸多核心能力。GaussDB当前已经在1500+金融政企客户规模商用,成功支撑银行核心业务完成系统分布式改造,助力华为消费者云实现智慧化业务运营......越来越多的金融政企客户选择华为云GaussDB作为数字化转型的坚实数据底座。.GaussDB课堂问答两个小时的时间,窦德明为北邮的学生们带来了一场有声有色的数据库知识分享,同时还与学生积极互动,就学生关注的话题做了详细解答,这里我们节选了部分问答:“假定有一个Redis数据库采用AOF作为持久化策略,设定每秒同步一次,如果在同步之前服务器突然宕机,那这一秒的数据改如何恢复呢?”“内存中的数据如果已经写入日志,但日志未写入磁盘的话是恢复不了的。任何数据库都有这个问题,即使跨区域容灾的灾备同步,也无法完全保证这种情况下的数据不丢失。”“对于一些很重要的服务,如何提高数据的可靠性呢?”“这个问题需要从架构上解决,有很多方案。一种是基于存储级的高可靠,在存储与存储之间进行数据备份;一种是数据库级的高可靠,比如华为云分布式数据库支持多副本机制,把数据打散做分片,存储在各个数据节点上,当A节点出现故障后B节点有分片数据,只要存在一个可用数据副本,数据库的状态就是正常的。”“云原生数据库、分布式数据库和大数据技术的区别与联系是什么?”“这是三个不同的维度。云原生数据库主要是和传统数据库进行区分的,传统数据库是客户自己买服务器,自己建机房,硬件资源和数据库只给自己用,就是我们通常所说的“私有云”,云原生数据库是生于云、长于云,从一开始就是基于云的架构体系而孵化出来的数据库,可以理解为面向公有云和混合云场景。分布式数据库是和原来的单机主备数据库进行区分的,比如Oracle、MySQL、DB2这些都是单机主备数据库,数据库实例到达一定数据规模时无法水平扩展,分布式数据库是运用一些新技术,如大集群通信、计算存储分离、数据重分布等实现计算节点、存储节点的弹性扩缩容,解决数据库的扩展性问题。大数据的概念比较泛,通常大家说的大数据是指Hadoop这套体系,比如Spark、Flink等,但远不止这些,数据库、数据仓库、数据湖都是大数据领域的一部分,大数据是相对于传统数据量比较小、数据还没有爆发性增长时而言的,大数据更聚焦于把数据汇集到一起,进行海量数据的分析与挖掘。”“什么叫CN互为主备?如何保证SQL请求只被单个CN节点获取呢?”“CN互为主备就是材料中写的Active-Active,可以理解为断连重连,比如CN 1出现故障, jdbc会自动路由连接CN 2,所有新的SQL请求会通过CN 2下发执行,已经由CN 1下发的SQL将失败回滚。虽然应用连接配置的可能是多个CN,但一条SQL只能通过一个CN下发,只有这个CN故障后,这条SQL重新请求才会走到另外一个CN,以此保证SQL请求只被单个CN获取。”“老师,能不能直接在裸机上开发数据库内核,绕过操作系统呢?”“单纯的数据库内核编译可以绕过操作系统,但调试、部署这些是绕不过的,因为数据库底下就是操作系统,必须跑在操作系统上,还要解决不同操作系统的兼容性问题,所以是没办法绕过去的。”从学生的互动中可以感受到,北京邮电大学数据库课程的学生,不仅仅限于对数据库课堂内容的学习,还对数据库的可靠性、架构以及未来可能的创新点有进一步研究和探索。数据库是讲究生态的产业,生态需要耐心持续的投入。一直以来,华为云GaussDB积极参与和推进产业生态,与高校、开发者、合作伙伴共建生态,并已与国内80+所院校建立起合作关系。未来,华为云GaussDB也将继续携手北京邮电大学以及更多高校,积极推进校企联合,为学生们输送更多行业前沿动态和技术探索,持续完善华为云GaussDB数据库的人才培养体系,保障数据库产业未来人才供给。华为云数据库团队2023届实习岗位已经开放,向想要步入数据库行业的人才张开了怀抱。如果你对数据库充满热爱和好奇,快来和我们一起探索代码奥秘吧!HR专员:zhaochao1@huawei.com
  • [热门活动] 一图解答为什么选择华为云数据库RDS for MySQL!限时18元秒杀、热门规格包年1.5折起~
    开年好物推荐——云数据库RDS for MySQL,简单易用,广泛运用于游戏、电商等行业。18元/1年秒杀,热门规格包年1.5折起,助力用户轻松上云。→https://activity.huaweicloud.com/dbs_Promotion/index.html
  • [优秀博文] 不想业务被中断?快来解锁华为云RDS for MySQL新特性
    相信很多用户在实际业务中都会碰到用户会话被中断这样的痛点,这时候其应用程序需要感知到会话变化,并提供复杂的应对措施来解决故障,比如判断数据库连接是否中断,进行事务补偿以及重建数据库会话上下文等。故障背后的原因其实主要是由主备模式的数据库系统在进行主备倒换、小版本升级和规格变更时造成的,但体现在用户层面上则会对业务造成一定的影响。 华为云RDS for MySQL云数据库新特性重磅发布遇到故障后再采取措施明显不利于业务的连续性,也是企业最不想遇到的情况。华为云RDS for MySQL云数据库最新特性——应用无损透明(ALT)重磅发布,专为解决该痛点而打造,能完好地就业务中断问题对症下药,在进行数据库系统切换与故障转移时,可以提供无损的应用连续性,保证企业业务不中断。该功能主要从三个方面来实现:避免连接和事务中断无需用户对事务进行补偿无需恢复和重建会话上下文 应用无损透明(ALT)的功能实现那么,应用无损透明(ALT)为什么能这么厉害?到底是怎么实现业务连续性的呢?我们不妨从它的技术架构上了解一下。应用无损透明(ALT)功能以用户连接为粒度,用户可以连接到数据库代理(Proxy),在进行主备切换、规格变更或者小版本升级时,系统会复制用户的后台会话,在达到安全的事务边界后,确保后端Session操作上下文被完整克隆至目的节点,从而完成主备切换,保证业务无影响。其中,安全的事务边界是指当前会话上的事务提交完成,开启下一个事务之前的状态,例如:开启autocommit的事务块每个语句执行完成时,单独DML、DDL语句,执行完成,都可以达到事务边界。会话克隆能够拷贝和转移会话状态,包括会话系统变量、用户自定义变量和其他上下文,例如`db_name`,`Prepared Statements`等。应用无损透明(ALT)已通过成功验证目前,该功能已经经过完备的测试。使用了该功能,用户可以通过Sysbench,Tpcc-MySQL或MySQL客户端等各种工具链接到读写分离地址,进行主备切换,从而保障用户的业务不会被突然中断。以下分别是使用Sysbench,Tpcc-MySQL和MySQL客户端工具进行主备切换的效果示意,可以看出,不管哪种工具,都可以保证业务的连续性。使用Sysbench进行主备切换的示例使用Tpcc-MySQL进行主备切换的示例非ALT模式下使用Tpcc-MySQL进行主备切换的示例使用MySQL命令行工具主备切换的示例如下图所示,用户自定义变量、会话变量,数据库在主备切换前后均保持一致。为保证主备切换的可靠性,在开通使用应用无损透明(ALT)的同时,可开通Proxy读写分离,通过读写分离地址连接实例,来保证主备切换的可靠性。业务的高安全和高可靠是每个企业的硬性需求。在应用无损透明(ALT)的加持下,华为云RDS for MySQL云数据库将以更优越的容灾能力满足企业多种可用性需求,实时为企业业务保驾护航!【重磅推荐】开年采购享好价!华为云数据库MySQL、GaussDB(for Redis)18元/年限量秒杀,不限新老用户包年3折起。活动期间还有8000元大礼包、满额赠华为笔记本、0门槛抽奖等多重福利!https://activity.huaweicloud.com/dbs_Promotion/index.html
  • [热门活动] 活动倒计时7天!MySQL18元秒杀不容错过~热门规格包年1.5折起!
    开年采购季倒计时7天!MySQL18元秒杀不容错过,热门规格包年1.5折起,搭配ECS、企业级Redis一起下单,优惠更多。活动期间还有8000元大礼包、满额赠华为笔记本、0门槛抽奖等多重福利!点击查看活动详情→https://activity.huaweicloud.com/dbs_Promotion/index.html
总条数:331 到第
上滑加载中