-
【问题现象】web 页面上显示的容量和集群后台节点的容量不一致【问题版本】HCS 803 DWS 8.1.0.101【其他版本】 HCS 802 也会遇到这个问题,802 版本的修复可参考链接:https://bbs.huaweicloud.com/forum/thread-93174-1-1.html【分析过程】 登录DWS集群实例,使用df -h命令查询实例节点的真实磁盘容量登录DWSController容器查看/opt/cloud/3rdComponent/tomcat/webapps/rds/WEB-INF/classes/xml/dataStoreSpecSpecial/datastoreSpec_dws_HWS.xml,查看该规格的磁盘容量信息,xml文件中磁盘容量配置应该与df -h查询的真实磁盘总和容量相同【解决方案】1、首先将xml下载到本地,修改好成对应的容量,将其压缩到对应的zip 文件中2、 现网环境上传分为两种场景,分别是OBS 和swift,具体上传方法,可参考https://support.huawei.com/enterprise/zh/doc/EDOC1100219786?idPath=22658044%7C7919788%7C9856606%7C2515275243、上传完成后,在页面上点击导入即可。【提醒】1、 上传方案中提到的HCSD 节点即FCD 节点,主机名一般叫:fusionclouddeploy2、如果没有ustool.jar,可在FCD该节点中,找到该工具,不用再去官网下载3、修改成功后,页面上显示的容量为节点总容量之和的一半,因为dws是双副本存储,显示的容量就是总容量的一半4、方案中的上传到“dws-instance-regionName”桶 中,这个桶名需要到CDK页面中去找到方法:${bucket_name}:CDK参数中的instance.obsBucketNam或者rds_obs_info表中readOnly属性的桶的桶名
-
在开启TOPSQL后语句执行性能变差,由原来的1、2分钟增长到二十多分钟。从后台看可以发现,IO一直居高不下。停掉所有业务语句后IO仍未降下来,此时系统运行的语句只有几条。停掉scheduler的语句后IO仍未缓解。只剩一个查询TOPSQL的语句。查看TOPSQL表有500+GB,查询语句没有使用分区条件,全表扫描TOPSQL表,对IO有较大影响。TOPSQL的记录参数值为resource_track_cost = 0,resource_track_duration = 0,属于全记录的设置,较影响性能。将参数调整到resource_track_cost = 10000,resource_track_duration = 10,将TOPSQL表清空后,性能恢复。
-
【 问题现象】创建表时报错:There is no hash distributable column【 原因分析】出现这种问题的原因是,创建的表所有的列都不能做分布列,本例中1/2是double precision类型,该类型不能做分布列。如果想用小数做分布列需要使用numeric或decimal类型。【 处理方法】下附GaussDB(DWS)支持的分布列类型
-
【【日志信息】(可选,上传日志内容或者附件)
-
找遍了整个华为云官网没找到roach client的下载位置,听说以前是可以下载的,请教下有什么方法可以获取到roach client
-
篇一:【博文汇总】GaussDB(DWS)博文汇总贴1,欢迎大家交流探讨(持续更新中)篇二:【博文汇总】GaussDB(DWS)博文汇总贴2,欢迎大家交流探讨(持续更新中)序号博文题目博文链接1集群创建业务及集群创建失败案例案例整理https://bbs.huaweicloud.com/blogs/2471602ISO/OSI模型https://bbs.huaweicloud.com/blogs/2475503GaussDB(DWS)生态-teredata兼容-函数-pivot/unpivot改写https://bbs.huaweicloud.com/blogs/2478344GaussDBA(DWS)多租户资源管理配置实例https://bbs.huaweicloud.com/blogs/2478495GaussDB(DWS)集群管理系列:单节点故障RTO机制分析(集群状态恢复篇)https://bbs.huaweicloud.com/blogs/2480776480节点投产!华为GaussDB(DWS)单一集群规模再创业界新高!!!https://bbs.huaweicloud.com/blogs/2488697GaussDB集群问题总纲https://bbs.huaweicloud.com/blogs/2488458GaussDBforDWS数据融合系列第九期:Oracle数据迁移到DWShttps://bbs.huaweicloud.com/blogs/2488539GaussDB通信性能问题定位总结https://bbs.huaweicloud.com/blogs/24884310GaussDB(DWS)之查询为什么没有走索引https://bbs.huaweicloud.com/blogs/24885111华为云PB级数据库GaussDB(forRedis)揭秘第五期:高斯Redis在IM场景中的应用https://bbs.huaweicloud.com/blogs/24924912GaussDB(DWS)运维--SQL操作--查找冗余索引https://bbs.huaweicloud.com/blogs/24924813你应该知道的数仓安全——安全认证https://bbs.huaweicloud.com/blogs/24970214GaussDB(DWS)对接系列-数据可视化工具Grafana7.4.3版本对接https://bbs.huaweicloud.com/blogs/24968715GaussDB(DWS)行存表的数据膨胀与空间重用https://bbs.huaweicloud.com/blogs/24988216GaussDB(DWS)数据融合系列第十期:Oracle数据迁移到DWShttps://bbs.huaweicloud.com/blogs/24987917GaussDB(DWS)升级能力简介https://bbs.huaweicloud.com/blogs/24970618GaussDBA审计功能简介https://bbs.huaweicloud.com/blogs/25026519GaussDB(DWS)函数下推属性介绍https://bbs.huaweicloud.com/blogs/25035120云原生数据库风起云涌,华为云GaussDB破浪前行https://bbs.huaweicloud.com/blogs/25035821【数仓迁移】TD迁移GaussDB(DWS)之DDL迁移对照https://bbs.huaweicloud.com/blogs/25052822【易运维】GaussDB(DWS)审计日志转储实践https://bbs.huaweicloud.com/blogs/25053223你应该知道的数仓安全——加密函数https://bbs.huaweicloud.com/blogs/25151424你应该知道的数仓安全——透明加密https://bbs.huaweicloud.com/blogs/25149025GaussDB(DWS):备机DN重建https://bbs.huaweicloud.com/blogs/25151126GaussDB(DWS)高可用之备机重建介绍https://bbs.huaweicloud.com/blogs/25151027GaussDB(DWS)资源负载管理参数配置全解https://bbs.huaweicloud.com/blogs/25151528GaussDB(DWS)实践系列DWS与OBS数据互导https://bbs.huaweicloud.com/blogs/25150729GaussDB(DWS)内存管理技术简介https://bbs.huaweicloud.com/blogs/25150030GaussDB(DWS)迁移-数据迁移-使用Spark的scala接口往GaussDB(DWS)导入数据失败分析https://bbs.huaweicloud.com/blogs/25371131GaussDB(DWS)数据融合系列第十一期:第三方调度工具Kettle介绍https://bbs.huaweicloud.com/blogs/25370932GaussDB(DWS)数据库安全守护者之审计日志https://bbs.huaweicloud.com/blogs/25369833GaussDB(DWS)特殊对象名https://bbs.huaweicloud.com/blogs/25369334GaussDB(DWS)数据融合系列第八期:云端GaussDB(DWS)迁移https://bbs.huaweicloud.com/blogs/25452135GaussDB(DWS)分布式计算的倾斜优化https://bbs.huaweicloud.com/blogs/25484536GaussDB(DWS)SQL进阶-database、schema、user和权限控制https://bbs.huaweicloud.com/blogs/25418437GaussDB(DWS)安全:隐私保护现真招儿——数据脱敏https://bbs.huaweicloud.com/blogs/25457038GaussDB(DWS)SQL进阶之全文检索https://bbs.huaweicloud.com/blogs/25418639GaussDB(DWS)迁移-oracle兼容--dayofhttps://bbs.huaweicloud.com/blogs/25485240GaussDB(DWS)迁移-oracle兼容--weekofhttps://bbs.huaweicloud.com/blogs/25485541GaussDB(DWS)迁移-oracle兼容--months_betweenhttps://bbs.huaweicloud.com/blogs/25532442GaussDB(DWS)基于OBS备份恢复场景介绍https://bbs.huaweicloud.com/blogs/25534443GaussDB(DWS)资源管理TopSQL简析https://bbs.huaweicloud.com/blogs/25533944保障业务连续性,GaussDB(DWS)高可用有妙招https://bbs.huaweicloud.com/blogs/25563245负载管理:让“笨”的数仓“聪明”起来https://bbs.huaweicloud.com/blogs/25563146GaussDBA(DWS)sequence序列使用注意事项(持续更新)https://bbs.huaweicloud.com/blogs/25563747GaussDB(DWS)多租户管理https://bbs.huaweicloud.com/blogs/25588048GaussDB(DWS)数据库智能监控运维服务系列介绍二:慢节点检测https://bbs.huaweicloud.com/blogs/25590649列存表并发更新时时的锁等待问题原理https://bbs.huaweicloud.com/blogs/25589550列存文件格式使用https://bbs.huaweicloud.com/blogs/25590351数据仓库服务(DWS)事件管理记录为空的问题解决方案https://bbs.huaweicloud.com/blogs/25590252通俗易懂数仓建模—Inmon范式建模与Kimball维度建模https://bbs.huaweicloud.com/blogs/25637153PG的WAL机制https://bbs.huaweicloud.com/blogs/25660254GaussDB(DWS)记录数据表操纵日志--系统日志提取方案https://bbs.huaweicloud.com/blogs/25660455调用CESAPI查看数据仓库服务(DWS)监控指导https://bbs.huaweicloud.com/blogs/25689156GaussDB(DWS)连接池自动重连功能https://bbs.huaweicloud.com/blogs/25758357DWSPowerBI对接指导https://bbs.huaweicloud.com/blogs/25754458GaussDB(DWS)巡检之日常巡检介绍https://bbs.huaweicloud.com/blogs/25755559GaussDB(DWS)智能运维框架-调度框架基础命令介绍https://bbs.huaweicloud.com/blogs/25757560MTKCTP移植流程https://bbs.huaweicloud.com/blogs/25836761GaussDBDWS存储类问题汇总https://bbs.huaweicloud.com/blogs/25824362GaussDB(DWS)事务隔离级别简介https://bbs.huaweicloud.com/blogs/25825363GaussDB(DWS)问题定位常用SQLhttps://bbs.huaweicloud.com/blogs/25825164逻辑集群中的用户权限https://bbs.huaweicloud.com/blogs/25845265GaussDB(DWS)快速上手支撑现网变更https://bbs.huaweicloud.com/blogs/25846666GaussDB(DWS)单点性能案例集锦https://bbs.huaweicloud.com/blogs/25889067GaussDB(DWS)对象依赖案例集锦https://bbs.huaweicloud.com/blogs/25924768GaussDB(DWS)数据融合系列第六期:GDS导入数据https://bbs.huaweicloud.com/blogs/25923369GaussDB(DWS)数据仓库服务APIExplorer的使用https://bbs.huaweicloud.com/blogs/25986370keepalive(AnI/OERRORoccuredwhilesendingtothebackend)https://bbs.huaweicloud.com/blogs/25987571PG数据库HOT链简介https://bbs.huaweicloud.com/blogs/25987372华为云FusionInsight湖仓一体解决方案https://bbs.huaweicloud.com/blogs/26078673GaussDB(DWS)实践系列-常用命令FAQhttps://bbs.huaweicloud.com/blogs/26147674【TD迁移】【函数迁移之一】因字符集变化引起的函数适配https://bbs.huaweicloud.com/blogs/26150375GaussDB(DWS)常见操作的锁冲突矩阵https://bbs.huaweicloud.com/blogs/26146176谁阻塞了谁的前进--锁等待监控查询https://bbs.huaweicloud.com/blogs/26146077GaussDB(DWS)云端运维系列第九期:集群安全(三权分立)https://bbs.huaweicloud.com/blogs/26196978GaussDB(DWS)运维--常见问题分析--更新/删除报错https://bbs.huaweicloud.com/blogs/26242779Hive分布式数据仓库(1)https://bbs.huaweicloud.com/blogs/26243380华为云助力招商银行零售客户“体验升级”——招商银行云化数仓探索之路https://bbs.huaweicloud.com/blogs/26287681GaussDB(DWS)智能运维框架-调度框架实现原理介绍https://bbs.huaweicloud.com/blogs/26290482Hive分布式数据仓库(2)https://bbs.huaweicloud.com/blogs/26289183DWS索引的正确“打开姿势”https://bbs.huaweicloud.com/blogs/26317084GaussDB(DWS)计划生成原理揭秘(一)https://bbs.huaweicloud.com/blogs/26379285GaussDB(DWS)迁移-upsert支持https://bbs.huaweicloud.com/blogs/26368986DWS对接DLIFlink实现实时数据接入https://bbs.huaweicloud.com/blogs/26414887从原理到实践,手把手带你轻松get数仓双集群容灾https://bbs.huaweicloud.com/blogs/26452388给强大的“心脏”配上“超级流水线”-GaussDB(DWS)数据仓库平台ETL系统建设方案https://bbs.huaweicloud.com/blogs/26526089GaussDB(DWS)数据库智能监控运维服务体系分析与设计概要https://bbs.huaweicloud.com/blogs/26554890GaussDB(DWS)SQL进阶之PLSQL(一)-匿名块、函数和存储过程https://bbs.huaweicloud.com/blogs/26574291DWS对接NBU备份故障排除指南https://bbs.huaweicloud.com/blogs/26591992GaussDB(DWS)memcheck版本编译及运行配置https://bbs.huaweicloud.com/blogs/26655493kubectl常用命令https://bbs.huaweicloud.com/blogs/26649194GaussDB(DWS)发生数据倾斜不要慌,一文教你轻松获取表倾斜率https://bbs.huaweicloud.com/blogs/26674395《GaussDB(DWS)数据类型之DATE类型》https://bbs.huaweicloud.com/blogs/26676096connect调用被信号中断问题解决方法https://bbs.huaweicloud.com/blogs/26675497GaussDB(DWS)数据库智能监控运维服务体系指标设计-查询监控https://bbs.huaweicloud.com/blogs/26674498GaussDB(DWS)实践系列-工作负载管理交付指南(线上版本)https://bbs.huaweicloud.com/blogs/26699199GDS导入数据到DWS步骤https://bbs.huaweicloud.com/blogs/266986100GaussDB(DWS)实践系列-工作负载管理交付指南(线下版本)https://bbs.huaweicloud.com/blogs/266993101GaussDB(DWS)实践系列-DWS集群NBU备份恢复操作步骤https://bbs.huaweicloud.com/blogs/267403102GaussDB(DWS)--基于用户的空间管理方法https://bbs.huaweicloud.com/blogs/267586103教你如何优雅的编译和使用TPC-DS工具https://bbs.huaweicloud.com/blogs/268496104GaussDB(DWS)通信相关视图参数使用一:comm_quota_sizehttps://bbs.huaweicloud.com/blogs/268499105GaussDB(DWS)数据库智能监控系统应用场景分析https://bbs.huaweicloud.com/blogs/269120106GaussDB(DWS)负载管理核心技术解密五:空间管控解密https://bbs.huaweicloud.com/blogs/269430107GaussDB(DWS)GDS单文件并发导入https://bbs.huaweicloud.com/blogs/269400108GaussDB(DWS)cgroup技术介绍https://bbs.huaweicloud.com/blogs/269406109详解GaussDB(DWS)数据库智能监控运维服务如何定位SQL执行问题https://bbs.huaweicloud.com/blogs/269981110GaussDB(DWS)实践系列-GaussDB(DWS)如何查询对象(表)的创建时间?https://bbs.huaweicloud.com/blogs/271374111从二进制文件导入到GaussDB(DWS)https://bbs.huaweicloud.com/blogs/271103112GaussDB(DWS)实践系列-行级访问策略优化实践https://bbs.huaweicloud.com/blogs/271375113GaussDB(DWS)集群扩容系列二:离线重分布vs在线重分布https://bbs.huaweicloud.com/blogs/271162114GaussDB(DWS)逻辑备份之db级备份https://bbs.huaweicloud.com/blogs/271360115华为DWS数仓配置教程及体验https://bbs.huaweicloud.com/blogs/272222116一招教你如何高效批量导入与更新数据https://bbs.huaweicloud.com/blogs/271361117走进元数据不一致系列(一)——Catalogismissingnattribute(s)forrelidxxxhttps://bbs.huaweicloud.com/blogs/272299118DWS线下集群重装OS场景下重装主机实施方案https://bbs.huaweicloud.com/blogs/272300119DWSCN事务号回卷故障构造及恢复https://bbs.huaweicloud.com/blogs/272298120GaussDB(DWS)实践系列-两级用户权限管理实践https://bbs.huaweicloud.com/blogs/272690121GaussDB(DWS)数据库智能运维系统页面与指标映射关系https://bbs.huaweicloud.com/blogs/273058122GaussDB(DWS)如何实现实时,批量和交付式查询一站式开发https://bbs.huaweicloud.com/blogs/273092123GaussDB(DWS)分布式Join原理浅析https://bbs.huaweicloud.com/blogs/273138124GaussDB(DWS)ESL版本安装实践流程记录https://bbs.huaweicloud.com/blogs/273592125Oracle存储过程中table%Rowtype语法改写https://bbs.huaweicloud.com/blogs/274369126增量备份中的cbm设计https://bbs.huaweicloud.com/blogs/274319127GaussDB(DWS)中PLPGSQL过程语言异常信息捕获https://bbs.huaweicloud.com/blogs/277362128GaussDB(DWS)客户端gsql功能增强之动态变量https://bbs.huaweicloud.com/blogs/278388129GaussDB(DWS)视图解耦之自动重建与REPLACEhttps://bbs.huaweicloud.com/blogs/278656130华为云GaussDB(DWS)持续创新,使能金融行业人人用数https://bbs.huaweicloud.com/blogs/278680131为什么vacuum后表还是继续膨胀?https://bbs.huaweicloud.com/blogs/278695132ORC文件格式的三种压缩算法的对比https://bbs.huaweicloud.com/blogs/278702133GaussDB(DWS)负载管理视图应用https://bbs.huaweicloud.com/blogs/278874134不动如山,GaussDB(DWS)业务容错利器——物理细粒度备份恢复技术https://bbs.huaweicloud.com/blogs/278855135GaussDB(DWS)SQL进阶之数据类型(二)-字符类型https://bbs.huaweicloud.com/blogs/278859136数据膨胀了?又没有空间了?一招教你解决https://bbs.huaweicloud.com/blogs/279698137GaussDB(DWS)Nodeagent进程故障问题汇总https://bbs.huaweicloud.com/blogs/279717138数据库中CHAR,VARCHAR,TEXT等字段的区别https://bbs.huaweicloud.com/blogs/279727139减少读写互锁方案分享--交换分区特性实例https://bbs.huaweicloud.com/blogs/280342140语句等锁超时排查解决方法https://bbs.huaweicloud.com/blogs/280354141GaussDB(DWS)智能运维框架-调度重分布https://bbs.huaweicloud.com/blogs/280444142GaussDB(DWS)权限管理场景总结https://bbs.huaweicloud.com/blogs/280402143DWS集群创建失败场景-NoIPaddressesavailableonnetworkxxxxxhttps://bbs.huaweicloud.com/blogs/280721144GaussDB(DWS)环境部署-DBM下发POD区数据库流程https://bbs.huaweicloud.com/blogs/280734145GaussDB(DWS)云端运维系列第十一期:容灾https://bbs.huaweicloud.com/blogs/280758146GaussDB(DWS)备份容灾之CN增量备份https://bbs.huaweicloud.com/blogs/280676147GaussDB(DWS)数据类型之数值类型https://bbs.huaweicloud.com/blogs/280906148RDS-DRS-DWS数据复制链路优化方案比对https://bbs.huaweicloud.com/blogs/280877149GaussDB(DWS)COPY命令实现不同编码库之间数据容错写入https://bbs.huaweicloud.com/blogs/280889150扩容分段重分步https://bbs.huaweicloud.com/blogs/280888151GaussDB(DWS)DMS功能简介https://bbs.huaweicloud.com/blogs/281059152Sudo配置典型提权场景列举https://bbs.huaweicloud.com/blogs/281057153DWS存储分区表https://bbs.huaweicloud.com/blogs/281085154GaussDB(DWS)ESL版本集群管理功能实践记录https://bbs.huaweicloud.com/blogs/281164155WDR-GaussDB(DWS)的性能监测报告https://bbs.huaweicloud.com/blogs/281304156DWS并行导入导出的使用https://bbs.huaweicloud.com/blogs/281306157GaussDB(DWS)环境安装环境问题攻克https://bbs.huaweicloud.com/blogs/285700158GaussDB(DWS)列存delta表的简单介绍https://bbs.huaweicloud.com/blogs/285599159DWS菜鸟的私房菜の实时数据接入のDRS实时数据同步直通DWShttps://bbs.huaweicloud.com/blogs/288337160GaussDB(DWS)stream线程池设计(三)https://bbs.huaweicloud.com/blogs/289331161GaussDB(DWS)stream线程池设计(二)https://bbs.huaweicloud.com/blogs/289330162【TD迁移GaussDB(DWS)】【函数迁移之二】TD常用日期函数适配https://bbs.huaweicloud.com/blogs/285981163GaussDB(DWS)stream线程池设计(四)https://bbs.huaweicloud.com/blogs/289332164GaussDB(DWS)通信库libpq重构介绍https://bbs.huaweicloud.com/blogs/289336165《GaussDB(DWS)inlist2join优化介绍》https://bbs.huaweicloud.com/blogs/285431166GaussDB(DWS)客户端gsql功能增强之逻辑控制https://bbs.huaweicloud.com/blogs/286059167GaussDB(DWS)SQL进阶之高级包(一)DBMS_JOBhttps://bbs.huaweicloud.com/blogs/281445168GaussDB(DWS)ESL版本集群监控指标简介https://bbs.huaweicloud.com/blogs/285389169GaussDB(DWS)《ROACH小课堂Ⅰ测试方法篇之测试基础理论》https://bbs.huaweicloud.com/blogs/288329170巡检工具部署及使用(线上版本gs_check)https://bbs.huaweicloud.com/blogs/281496171GaussDB(DWS)列存表一些常用信息查询使用https://bbs.huaweicloud.com/blogs/281598172GaussDB(DWS)负载管理核心技术解密:负载管控逻辑解密https://bbs.huaweicloud.com/blogs/281833173GaussD(DWS)性能黑科技之LLVM技术解密https://bbs.huaweicloud.com/blogs/281845174GaussDB(DWS)stream线程池设计(一)https://bbs.huaweicloud.com/blogs/281841175GaussDB(DWS)极致性价比--冷热数据管理https://bbs.huaweicloud.com/blogs/282033176GaussDB(DWS)数据库智能监控运维服务之schema空间管控https://bbs.huaweicloud.com/blogs/282069177GaussDB(DWS)脏页空间回收实践https://bbs.huaweicloud.com/blogs/289400178GaussDB(DWS)实践系列mybatis改造https://bbs.huaweicloud.com/blogs/289334179GaussDBDWS中的内存资源配置实践https://bbs.huaweicloud.com/blogs/289372180《打破黑盒子——GaussDB(DWS)导入导出业务监控方法总结》https://bbs.huaweicloud.com/blogs/289322181《GaussDB(DWS)SQL进阶之SQL操作-UPSERT》https://bbs.huaweicloud.com/blogs/286547182GaussDB(DWS)内核死锁检测的实现https://bbs.huaweicloud.com/blogs/290872183GaussDB(DWS)中自定义函数实现用户权限管理https://bbs.huaweicloud.com/blogs/293328184Gaussdb(DWS)无锁队列介绍https://bbs.huaweicloud.com/blogs/293560185《GaussDB(DWS)SQL进阶之SQL操作之聚集函数》https://bbs.huaweicloud.com/blogs/293963186GaussDB(DWS)集群拓扑详解https://bbs.huaweicloud.com/blogs/296182187GaussDB(DWS)实践系列-《分区表TTL管理实现》https://bbs.huaweicloud.com/blogs/296485188《GaussDB(DWS)SQL进阶之SQL操作之WITH表达式》https://bbs.huaweicloud.com/blogs/296863189GaussDB(DWS)集群监控指标https://bbs.huaweicloud.com/blogs/296978190GaussDB(DWS)深入浅出之集群迁移断点续做https://bbs.huaweicloud.com/blogs/297061191运维&应急&变更标准方案套件https://bbs.huaweicloud.com/forum/thread-150186-1-1.html192GaussDB(DWS)性能问题处理套路https://bbs.huaweicloud.com/blogs/297384193GaussDB(DWS)waitinccnqueue的时候,怎么迅速定位处理?https://bbs.huaweicloud.com/blogs/297657194《GaussDB(DWS)SQL进阶之SQL操作之窗口函数》https://bbs.huaweicloud.com/blogs/297759195GaussDB(DWS)中多路IO复用介绍https://bbs.huaweicloud.com/blogs/297951196GaussDB(DWS)通信库libpq重构介绍(二)https://bbs.huaweicloud.com/blogs/297955197GaussDB(DWS)通信库libpq重构介绍(三)https://bbs.huaweicloud.com/blogs/297957198使用GoogleGuavaCache开发本地LRU缓存https://bbs.huaweicloud.com/blogs/297899199句柄不回收,空间不释放https://bbs.huaweicloud.com/blogs/298143200GaussDB(DWS)长期稳定性测试https://bbs.huaweicloud.com/blogs/298184201《GaussDB(DWS)SQL进阶之数据库对象-视图》https://bbs.huaweicloud.com/blogs/298291202《GaussDB(DWS)外连接向内连接的转换》https://bbs.huaweicloud.com/blogs/300491203GaussDB(DWS)连接集群之DataStudio客户端连接集群https://bbs.huaweicloud.com/blogs/301464204GaussDB(DWS)运维管理系列基础篇四:节点修复https://bbs.huaweicloud.com/blogs/301525205探讨建立基于应用维度的系统资源的监控与分析https://bbs.huaweicloud.com/blogs/301687206GaussDB(DWS)外表列存格式介绍之Parquethttps://bbs.huaweicloud.com/blogs/301593207【DWS运维变更】【标准变更方案】【纯软】gs_replace修复实例https://bbs.huaweicloud.com/blogs/301635208华为云GaussDB(DWS)持续升级,助力中信银行数字化转型https://bbs.huaweicloud.com/blogs/313860209GaussDB(DWS)安全测试之TLS协议https://bbs.huaweicloud.com/blogs/302004210GaussDB(DWS)快照和恢复https://bbs.huaweicloud.com/blogs/301971211GaussDB(DWS)《ROACH小课堂Ⅰ测试方法篇之故障测试》https://bbs.huaweicloud.com/blogs/301983212GaussDB(DWS)Base64算法简介https://bbs.huaweicloud.com/blogs/302573213《CM功能介绍:日志压缩与回收》https://bbs.huaweicloud.com/blogs/302677214你应该知道的数仓安全——对象访问控制https://bbs.huaweicloud.com/blogs/303859215GaussDB(DWS)之DDL设计的几点建议https://bbs.huaweicloud.com/blogs/303919216GaussDB(DWS)数据库智能监控系统告警框架上线啦!https://bbs.huaweicloud.com/blogs/304824217GaussDB(DWS)gzip算法简介https://bbs.huaweicloud.com/blogs/307136218GaussDB(DWS)集群管理系列:日志压缩与删除功能的源码解读https://bbs.huaweicloud.com/blogs/307409219GaussDB(DWS)逻辑集群复制表解密https://bbs.huaweicloud.com/blogs/308267220GaussDB(DWS)审计日志转储OBS及查询实践https://bbs.huaweicloud.com/blogs/308284221GaussDB(DWS)租户面告警分析流程https://bbs.huaweicloud.com/blogs/308265222GaussDB(DWS)通信视图分析https://bbs.huaweicloud.com/blogs/308288223从简单SQL转换理解Antlr4访问者模式技术细节https://bbs.huaweicloud.com/blogs/308539224GaussDB(DWS)《ROACH小课堂Ⅰ测试方法篇之测试》https://bbs.huaweicloud.com/blogs/308650225华为云GaussDB(DWS)携手兴盛优选,一站式实现数据业务科学决策https://bbs.huaweicloud.com/blogs/313858226《GaussDB(DWS)中UPSERT特性用法》https://bbs.huaweicloud.com/blogs/308793227JDBC的Oracle兼容性适配https://bbs.huaweicloud.com/blogs/308991228GaussDB(DWS)k8s简介以及管控面微服务https://bbs.huaweicloud.com/blogs/309791229GaussDB(DWS)实现动态行转列探究https://bbs.huaweicloud.com/blogs/309868230GaussDB(DWS)分段扩容简介https://bbs.huaweicloud.com/blogs/312558231GaussDB(DWS)如何限制临时数据文件下盘量https://bbs.huaweicloud.com/blogs/312609232数据倾斜预警—数据导入存储倾斜即时检测https://bbs.huaweicloud.com/blogs/312752233GaussDB(DWS)CBB组件之SysCache原理介绍https://bbs.huaweicloud.com/blogs/312770234GaussDB(DWS)跨集群互联互通使用介绍https://bbs.huaweicloud.com/blogs/312944235DnStream-可视化运维实践https://bbs.huaweicloud.com/blogs/313141236GaussDB(DWS)集群管理系列:DN实例状态异常告警https://bbs.huaweicloud.com/blogs/313417237GaussDB(DWS)集群管理系列:磁盘使用率告警https://bbs.huaweicloud.com/blogs/313414238GaussDB(DWS)安全测试之XSS注入https://bbs.huaweicloud.com/blogs/313483239GaussDB(DWS)集群管理系列:告警汇总https://bbs.huaweicloud.com/blogs/313443240GaussDB(DWS)集群管理系列:DN/GTMswitchover告警https://bbs.huaweicloud.com/blogs/313429241GaussDB(DWS)集群管理系列:DNredo慢告警https://bbs.huaweicloud.com/blogs/313427242GaussDB(DWS)集群管理系列:实例进程异常重启告警https://bbs.huaweicloud.com/blogs/313425243GaussDB(DWS)集群管理系列:实例长链接失败告警https://bbs.huaweicloud.com/blogs/313423244GaussDB(DWS)集群管理系列:GTM实例状态异常告警https://bbs.huaweicloud.com/blogs/313421245GaussDB(DWS)集群管理系列:DN/GTMfailover告警https://bbs.huaweicloud.com/blogs/313419246GaussDB(DWS)集群管理系列:DNbuild告警https://bbs.huaweicloud.com/blogs/313409247GaussDB(DWS)集群管理系列:DNbuild失败告警https://bbs.huaweicloud.com/blogs/313412248GaussDB(DWS)集群管理系列:Datanode磁盘坏块告警https://bbs.huaweicloud.com/blogs/313406249GaussDB(DWS)兼容模式差异案例分享(一):current_timestamphttps://bbs.huaweicloud.com/blogs/313771250《GaussDB(DWS)临时表小结》https://bbs.huaweicloud.com/blogs/314265251GaussDB(DWS)当前时间函数详解https://bbs.huaweicloud.com/blogs/314240252GaussDB(DWS)CBB组件之共享消息队列介绍https://bbs.huaweicloud.com/blogs/317028253GaussDB:根据relfilenode查找Schema、表名,判断是表文件还是索引文件https://bbs.huaweicloud.com/blogs/317159254管控面监控面板部分显示异常https://bbs.huaweicloud.com/blogs/317179255《GaussDB(DWS)时间域函数》https://bbs.huaweicloud.com/blogs/317197256【DWS】集群监控信息(DMS),页面无数据显示。https://bbs.huaweicloud.com/blogs/317152257GaussDB(DWS)API环境配置打通接口测试https://bbs.huaweicloud.com/blogs/317156258GaussDB(DWS)集群修复简介https://bbs.huaweicloud.com/blogs/317150259GaussDB(DWS)智能运维(集群)简介https://bbs.huaweicloud.com/blogs/319775260GaussDB(DWS)递归(withrecursive)执行逻辑解析https://bbs.huaweicloud.com/blogs/319855
-
标题中文标题字数不超过30字,标题需以GaussDB(DWS)开头言简意赅的描述清楚案例和关键问题,报错类案例务必说明具体的报错内容 举例:GaussDB(DWS)安装后页面无法显示规格 GaussDB(DWS)查杀语句报错:ERROR: killing backend is prohibited during online expansion问题现象 现象描述描述清楚问题表现和关键的报错/告警提示等信息。现象描述必须基于告警、屏幕提示、日志等内容,便于他人通过具体现象描述判断是否属于这类问题。必要时给出截图。 正面例子:某产品线某项目使用工作流作为业务支撑平台,并使用JBoss作为应用服务器,系统测试时发现,在IBM机器上安装系统后,某些机器上启动系统时会遇到如下错误,导致系统无法成功启动:ERROR: invalid console appender config detected, console stream is looping 反面例子:业务无法启动版本信息(可选) 如果问题涉及版本,需加上版本信息问题影响 问题影响最好写出现的故障造成的影响。例如:对管控面,租户面造成的影响。 正面例子: 1. 管理面:客户无法通过console界面操作集群,无法启动作业任务。 2. 数据面:当前客户正在进行的迁移作业不受影响,但页面无法查询相关信息。可能原因 对原因进行分析,最好给出这个故障所有可能的原因。然后根据现象描述做简单分析。 出现该问题的可能原因如下: ××× ××× 根据该局点出现的提示信息,可以按照先检查××再检查××的方法进行排査。(在根据现象描述不能确定故障原因时,选择该句式。) 根据该局点出现的提示信息,可以判断是×××导致的。(在根据现象描述可以初步确定故障原因时,选择该句式。)处理思路(可选) 如果处理过程步骤较多,建议增加处理思路,说明处理故障的整体思路和框架。 正面例子:VPN登录租户ECS。检查ECS是否正常。确认实例面虚拟机异常,通过快照备份恢复到其他AZ。等待整个AZ恢复正常,确认管理面和租户面正常恢复排查过程 处理过程请按照傻瓜化的标准进行写作。 根据原因分析给出的可能原因逐条排査,建议“步骤1”与第一个原因对应,“步骤2”与第二个原因对应,依此类推。另外还需要介绍如何修复。 步骤1. 检查××。 ××如检查发现××,则表示××异常,请顺序执行后续步骤解决。反之请参见步骤2跳转至下一个检查项。(在检查的最后一步,如检查发现根因不是这一项,则跳转到步骤2进行其他原因的排査)步骤1的最后几步是已经判断是该原因引起的,介绍如何解决该问题。 步骤2. 检查××。 ××解决方法 给出明确的解决方法,解决方法需详细,可以指导小白用户操作。 需详细说明在哪个节点操作,如果涉及修改文件,需明确文件路径,如涉及修改参数,需明确参数修改方法和影响。恢复确认(可选) 如何确认问题已得到解决并恢复,示例: 登录控制台查看显示正常运行。 登录某节点,查看运行状态。参考信息(可选) 给出本专题案例参考的相关文档,也可以是相关的案例,没有的话可以不写。 关于××,可以参见链接:xxx。 关于××,可以参见链接:xxx。维护案例参考:https://bbs.huaweicloud.com/forumreview/thread-186881-1-1.html
-
【DWS产品】【JDBC驱动数据写入功能】SparkApp写入数据异常【功能模块】GaussDB(DWS)驱动在SparkApp中使用问题【操作步骤&问题现象】1、在同一个DWS库及模式下,现有两张结构相同的表,分别称为表A、表B。其中表A有大约160万行数据2、编写简单的SparkApp,依赖 gsjdbc200.jar(driverClass=com.huawei.gauss200.jdbc.Driver)和 gsjdbc4.jar(driverClass=org.postgresql.Driver)首先使用gsjdbc200.jar作为驱动读取A表数据,得到Dataset实例Dataset ds = sparkSession.read().format("jdbc") .option("url", "jdbc:gaussdb://xx.xxx.xx.xx:8000/dwhm") .option("driver", "com.huawei.gauss200.jdbc.Driver") .option("user", "******") .option("password", "**********") .option("dbtable", "表A") .option("numPartitions", 6) .option("lowerBound", 0) .option("upperBound", 1728454) .option("partitionColumn", "id_column") .option("fetchsize", 1024) .load();然后立即再使用gsjdbc200.jar(driverClass=com.huawei.gauss200.jdbc.Driver)作为驱动,尝试将A表数据写入B表ds.write().format("jdbc") .option("dbtable", "表B") .mode(SaveMode.Overwrite) .option("url", "jdbc:gaussdb://10.2.121.11:8000/dwhm") .option("driver", "com.huawei.gauss200.jdbc.Driver") .option("user", "xxxxxx") .option("password", "**************") .option("truncate", true) .option("batchsize", 500) .save();读取到数据后,在开始执行数据写入task时很快就报出如下异常而失败。java.sql.BatchUpdateException: Batch entry 0 INSERT INTO 表B名称 ("po_process_action_id","tenant_id","po_header_id","po_line_id","po_line_location_id","display_line_num","display_line_location_num","version_num","process_type_code","process_remark","processed_date","process_user_id","process_user_name","object_version_number","creation_date","created_by","last_updated_by","last_update_date","storage_time") VALUES ('1155064','20453','194759',NULL,NULL,NULL,NULL,'1','UPDATE',NULL,'2021-07-11 01:14:21+08','859953','华为接口账号','1','2021-07-11 01:14:21+08','859953','859953','2021-07-11 01:14:21+08','2021-09-27 13:47:06+08') was aborted: ERROR: invalid input syntax for type oid: "" Call getNextException to see other errors in the batch. at com.huawei.gauss200.jdbc.jdbc.BatchResultHandler.handleError(BatchResultHandler.java:152) at com.huawei.gauss200.jdbc.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2584) at com.huawei.gauss200.jdbc.core.v3.QueryExecutorImpl.executeBatch(QueryExecutorImpl.java:575) at com.huawei.gauss200.jdbc.jdbc.PgStatement.executeBatch(PgStatement.java:879) at com.huawei.gauss200.jdbc.jdbc.PgPreparedStatement.executeBatch(PgPreparedStatement.java:1580) at org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils$.savePartition(JdbcUtils.scala:654) at org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils$$anonfun$saveTable$1.apply(JdbcUtils.scala:821) at org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils$$anonfun$saveTable$1.apply(JdbcUtils.scala:821) at org.apache.spark.rdd.RDD$$anonfun$foreachPartition$1$$anonfun$apply$29.apply(RDD.scala:935) at org.apache.spark.rdd.RDD$$anonfun$foreachPartition$1$$anonfun$apply$29.apply(RDD.scala:935) at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:2074) at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:2074) at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:87) at org.apache.spark.scheduler.Task.run(Task.scala:109) at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:345) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: com.huawei.gauss200.jdbc.util.PSQLException: ERROR: invalid input syntax for type oid: "" at com.huawei.gauss200.jdbc.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2852) at com.huawei.gauss200.jdbc.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2583) ... 16 more表B只是普通的行存表,其中 po_process_action_id 为主键。表内没有名为“oid”的用户定义列。如果换用 gsjdbc4.jar(driverClass=org.postgresql.Driver)作为 write 时的驱动,只相应改动 url、driver 两项option,其它代码不做任何改变,则数据写入可以成功,没有任何问题。使用Spark版本为 2.3.2,程序运行于本地笔记本,原意为简单试一下Spark读写DWS再例如下面这个异常也是同样的问题:
-
作为世界上最伟大的数学家之一,高斯有着“数学王子”的美誉,以他名字“高斯”命名的成果就达110个,在数学家界独树一帜。但,这次我们谈论的不是数学家高斯。而是华为云的一款明星产品——华为云数据仓库GaussDB(DWS)。GaussDB(DWS)自发布以来广受关注,该产品现已应用于全球60多个国家和地区,客户包括工行/招行/国网/一汽/梦饷/兴盛优选等,覆盖全行业场景。为了让更多开发者了解GaussDB(DWS)、能够更方便地使用华为云数据仓库GaussDB(DWS),特举办《这次高斯不是数学家》征文活动。本次征文奖品丰厚,HUAWEI WATCH GT 3、雷柏V700合金版黑轴机械键盘、华为手环等你拿,只要写在社区博客发表与GaussDB(DWS)技术相关的文章就有机会获得。有点心动?看看详细规则吧:GaussDB(DWS) 沙箱 免费体验入口点我,进入实验(写与GaussDB(DWS)数据库有关的一切皆可,包括产品体验、沙箱体验)我们需要哪些主题的稿件?原则上,我们欢迎所有能帮助学习GaussDB(DWS)数据库相关的文章!如基于自己的实际使用经验,分享对GaussDB(DWS)数据库的技术分析、使用感受及在项目实战中的经验等。如果你还不知道该怎么写,请你务必仔细阅读下面3篇文章,可以让你更快上手:GaussDB(DWS) GUC参数修改、查看GaussDB(DWS)数据类型之自定义数据类型(复合类型)GaussDB(DWS)集群管理系列:CM异常检测插件介绍之HANG检测插件你将获得什么?获得一、二、三等奖的8名的选手还将获得GaussDB(DWS)开发者认证免费考试劵,并有机会成为专栏作家,参与论坛答疑、专家面对面交流等。我们会把收到的优质内容汇编成册,并注明原作者,积累行业口碑,开放给圈内开发者下载查阅,提供实践参考。对于贡献优质内容的作者,我们还将送出各项大礼!同时,在华为云站内外10+个技术社区醒目位置进行推荐,给与百万级流量资源。优质作者更可获得长期约稿和更多内容合作机会。评奖规则说明华为云开发者社区、华为云数仓GaussDB(DWS)将联合评审此次征文。专家评分依据 :文章篇幅、技术含金量、排版美观度、阅读量、点赞、收藏等指标综合评分。其他说明 :1、一二三等奖不能叠加。2、一二三等奖可与创作小能手奖叠加。3、征文投稿数量不计入月度激励活动文章数量。在哪里投稿?文章需要发表在社区博客; 是时候展现真正的技术了, 点击前往发布标题以 【这次高斯不是数学家】结尾,例如:GaussDB(DWS)数据类型之自定义数据类型【这次高斯不是数学家】。文章末尾需加上活动名称及链接地址:【这次高斯不是数学家】有奖征文火热进行中:https://bbs.huaweicloud.com/blogs/351189文章标签打上【GaussDB数据库】,如果文章跟华为云产品相关,需要同时加上【云端实践】标签如果大家在征文中遇到有关华为云产品体验方面的问题建议,请到【云声平台】提出您的宝贵建议,标题以【云驻计划】开头,还有机会赢取额外奖励。有哪些需要注意的:1、文章内容需体现技术看点,图文并茂,建议字数在500字以上;2、文章要求为投稿人原创,凡转载或抄袭一经发现将取消参赛资格;3、文章须在华为云社区为首发,如华为云平台已有文章内容则视为稿件无效;4、稿件投稿后,华为云拥有该稿件的使用权、修改权等。快来华为云社区博客,一起遨游在技术的海洋中吧! 点击立即体验如果有任何问题,可扫描下方二维码咨询。添加微信时请备注:报名活动时使用的华为云昵称!扫码添加小助手:
-
作为世界上最伟大的数学家之一,高斯有着“数学王子”的美誉,以他名字“高斯”命名的成果就达110个,在数学家界独树一帜。但,这次我们谈论的不是数学家高斯。而是华为云的一款明星产品——GaussDB(DWS)。华为云数据仓库GaussDB(DWS)自发布以来广受关注,该产品现已应用于全球60多个国家和地区,客户包括工行/招行/国网/一汽/梦饷/兴盛优选等,覆盖全行业场景。为了让更多开发了解GaussDB(DWS)、能够更方便地使用GaussDB(DWS)数据库,特举办《这次高斯不是数学家》征文活动。本次征文奖品丰厚,HUAWEI WATCH GT 3、雷柏V700合金版黑轴机械键盘、华为手环等你拿,只要写在社区博客发表与GaussDB(DWS)技术相关的文章就有机会获得。有点心动?看看详细规则吧:GaussDB(DWS) 沙箱 免费体验入口点我,进入实验(写与GaussDB(DWS)数据库有关的一切皆可,包括产品体验、沙箱体验)我们需要哪些主题的稿件?原则上,我们欢迎所有能帮助学习GaussDB(DWS)数据库相关的文章!如基于自己的实际使用经验,分享对GaussDB(DWS)数据库的技术分析、使用感受及在项目实战中的经验等。如果你还不知道该怎么写,请你务必仔细阅读下面3篇文章,可以让你更快上手:GaussDB(DWS) GUC参数修改、查看GaussDB(DWS)数据类型之自定义数据类型(复合类型)GaussDB(DWS)集群管理系列:CM异常检测插件介绍之HANG检测插件你将获得什么?获得一、二、三等奖的8名的选手还将获得GaussDB(DWS)开发者认证免费考试劵,并有机会成为专栏作家,参与论坛答疑、专家面对面交流等。我们会把收到的优质内容汇编成册,并注明原作者,积累行业口碑,开放给圈内开发者下载查阅,提供实践参考。对于贡献优质内容的作者,我们还将送出各项大礼!同时,在华为云站内外10+个技术社区醒目位置进行推荐,给与百万级流量资源。优质作者更可获得长期约稿和更多内容合作机会。评奖规则说明华为云开发者社区、华为云云计算产品部将联合评审此次征文。专家评分依据 :文章篇幅、技术含金量、排版美观度、阅读量、点赞、收藏等指标综合评分。其他说明 :1、一二三等奖不能叠加。2、一二三等奖可与创作小能手奖叠加。3、征文投稿数量不计入月度激励活动文章数量。在哪里投稿?文章需要发表在社区博客; 是时候展现真正的技术了, 点击前往发布标题以 【这次高斯不是数学家】结尾,例如:GaussDB(DWS)数据类型之自定义数据类型【这次高斯不是数学家】。文章末尾需加上活动名称及链接地址:【这次高斯不是数学家】有奖征文火热进行中:https://bbs.huaweicloud.com/blogs/345260文章标签打上【GaussDB数据库】,如果文章跟华为云产品相关,需要同时加上【云端实践】标签如果大家在征文中遇到有关华为云产品体验方面的问题建议,请到【云声平台】提出您的宝贵建议,标题以【云驻计划】开头,还有机会赢取额外奖励。有哪些需要注意的:1、文章内容需体现技术看点,图文并茂,建议字数在500字以上;2、文章要求为投稿人原创,凡转载或抄袭一经发现将取消参赛资格;3、文章须在华为云社区为首发,如华为云平台已有文章内容则视为稿件无效;4、稿件投稿后,华为云拥有该稿件的使用权、修改权等。快来华为云社区博客,一起遨游在技术的海洋中吧! 点击立即体验如果有任何问题,可扫描下方二维码咨询。添加微信时请备注:报名活动时使用的华为云昵称!扫码添加小助手:
-
想问问论坛的大咖们,GaussDB for MySQL 与 传统的MySQL有啥区别?现在大部分应用场景还是以MySQL为主,不知道GaussDB for MySQL在哪些应用场景或者哪些方面更加有优势呢?有没有使用过GaussDB for MySQL的大牛,能用实例来说明一下。感谢~
-
测试样例如下:create type type_user as (id int,name varchar2(50),sname varchar2(50));create type typ_table_user as table of type_user; 2个SQL语句,第一个创建TYPE成功,第二个创建 table失败。GaussDB A是否支持该语法呢?如果在function 的返回值是table应该怎么实现呢?
-
1.1、问题现象使用gs_replace修复CN时,报错锁集群失败[GUASS-51608] : Failed to lock cluster.1.2、操作影响此操作影响业务,修复过程需要锁集群,建议计划窗内执行,注释白名单1.3、排查过程1.3.1 执行修复gs_replace -t config -h hostname1修复过程报错:[GUASS-51608] : Failed to lock cluster.报错后退出修复1.3.2 排查gs_replace日志日志路径,本节点和修复节点都看cd $GAUSSLOG/om/ tail -500f gs_replace-2022-02-13_321948.log日志报错信息如下:gsql: FATAL: database “productdb” does not exist DETAIL: The database subdirectory “base/19092” is missing.报错意思19092这个库缺失1.3.3 连接每个CN查看所有库select oid,* from pg_database where oid='19092';发现其他正常的一个CN节点这个库没有,是元数据不一致了,需要把这个CN也修复1.3.4 将元数据不一致的CN,手动让其故障挪走CN目录下的conf文件cd /srv/BigData/mppdb/data1/coordinator mv *.conf* /home/omm/backup/ ps -ef|grep -v grep |grep -i coor kill -9 $CN_PID确认CN是认为故障了cm_ctl query -Cvdp1.3.5 执行gs_replace修复gs_replace -t config -h hostname1,hostname2 gs_replace -t start -h hostname1,hostname21.3.6 修复正常此情况比较少见,可以参考,一定在窗口时间内执行,如果有LVS,记得刷新配置吆,刷新LVS步骤:切换用户su - rootsource环境变量source /opt/huawei/Bigdata/mppdb/.mppdbgs_profile刷新配置,LVS地址10.10.10.10和FusionInsight_MPPDB_8.1.1/__MPPDBServer版本需替换自己的真实环境gs_loadbalance -t reload -U omm -X ${BIGDATA_HOME}/FusionInsight_MPPDB_8.1.1/*_*_MPPDBServer/etc/mppdb-install-config.xml --lvs-addr=10.10.10.10
-
本文分享自华为云社区《[GaussDB(DWS)之查询时索引失效原因](https://bbs.huaweicloud.com/blogs/348498?utm_source=csdn&utm_medium=bbs-ex&utm_campaign=ei&utm_content=content)》,作者: 飞不起来的小松鼠 。 使用GaussDB(DWS)时,有时为了加快查询速度,需要对表建立索引。有时我们会遇到明明建立了索引,查询计划中却发现索引没有被使用的情况。本文将列举几种常见的场景和优化方法。 ## 1. 返回结果集很大 以行存表的Seq Scan和Index Scan为例: Seq Scan:就是按照表的记录的排列顺序从头到尾依次检索扫描,每次扫描要取到所有的记录。这也是最简单最基础的扫表方式,扫描的代价比较大; Index Scan:对于给定的查询,先扫描一遍索引,从索引中找到符合要求的记录的位置(指针),再定位到表中具体的Page去取,即先走索引,再读表数据; 因此,根据两种扫描方式的特点可以看出,大多数情况下,Index Scan要比Seq Scan快。但是如果获取的结果集占所有数据的比重很大时(超过70%),这时Index Scan 因为要先扫描索引再读表数据反而不如直接全表扫描来的快。 ## 2. 没有analyze analyze会更新表的统计信息,如果表未做analyze或上次做完analyze之后表进行过数据量较大的增删操作,会导致统计信息不准,这时候也可能导致表没有走索引。 优化方法:对表进行analyze更新统计信息即可。 ## 3. 过滤条件使用了函数或隐式类型转化导致没有走索引 如果再过滤条件中使用了计算、函数、隐式类型转化,都可能导致无法选择索引。 示例:create table test(a int, b text, c date); 且在a,b,c三列上都分别创建了索引。 **场景1:使用计算** 从下面的执行结果可以看到,where a = 101,where a = 102 - 1都能使用a列上的索引,但是where a + 1 = 102没有走索引。 ```postgres postgres=# explain verbose select * from test where a + 1 = 102; QUERY PLAN ------------------------------------------------------------------- Streaming (type: GATHER) (cost=0.19..18.25 rows=6 width=14) Output: a, b, c Node/s: All datanodes -> Seq Scan on public.test (cost=0.00..12.25 rows=6 width=14) Output: a, b, c Distribute Key: a Filter: ((test.a + 1) = 102) (7 rows) postgres=# postgres=# explain verbose select * from test where a = 101; QUERY PLAN ------------------------------------------------------------------------------------- Streaming (type: GATHER) (cost=0.06..14.27 rows=1 width=14) Output: a, b, c Node/s: datanode1 -> Index Scan using test_a_idx on public.test (cost=0.00..8.27 rows=1 width=14) Output: a, b, c Distribute Key: a Index Cond: (test.a = 101) (7 rows) postgres=# postgres=# explain verbose select * from test where a = 102 - 1; QUERY PLAN ------------------------------------------------------------------------------------- Streaming (type: GATHER) (cost=0.06..14.27 rows=1 width=14) Output: a, b, c Node/s: datanode1 -> Index Scan using test_a_idx on public.test (cost=0.00..8.27 rows=1 width=14) Output: a, b, c Distribute Key: a Index Cond: (test.a = 101) (7 rows) ``` 优化方式:此类场景的优化方式是尽量使用常量代替表达式,或者常量计算尽量写在等号的右侧。 **场景2:使用函数** 从下面的执行结果可以看到,在索引列上使用函数也会导致无法选择索引: ```postgres postgres=# explain verbose select * from test where to_char(c, 'yyyyMMdd') = to_char(CURRENT_DATE,'yyyyMMdd'); QUERY PLAN --------------------------------------------------------------------------------------------------------------------------------- Streaming (type: GATHER) (cost=0.19..21.00 rows=6 width=14) Output: a, b, c Node/s: All datanodes -> Seq Scan on public.test (cost=0.00..15.00 rows=6 width=14) Output: a, b, c Distribute Key: a Filter: (to_char(test.c, 'yyyyMMdd'::text) = to_char(('2021-03-16'::date)::timestamp with time zone, 'yyyyMMdd'::text)) (7 rows) postgres=# postgres=# explain verbose select * from test where c = current_date; QUERY PLAN ------------------------------------------------------------------------------------- Streaming (type: GATHER) (cost=0.06..14.27 rows=1 width=14) Output: a, b, c Node/s: All datanodes -> Index Scan using test_c_idx on public.test (cost=0.00..8.27 rows=1 width=14) Output: a, b, c Distribute Key: a Index Cond: (test.c = '2021-03-16'::date) (7 rows) ``` 优化方法:尽量减少索引列上没有必要的函数调用。 **场景3:隐式类型转化** 此类场景是经常遇到的场景,例如b的类型是text类型,过滤条件是where b = 2,在生成计划时,text类型会隐式转化为bigint类型,实际的过滤条件变成where b::bigint = 2,导致b列上的索引失效: ```postgres postgres=# explain verbose select * from test where b = 2; QUERY PLAN ------------------------------------------------------------------- Streaming (type: GATHER) (cost=0.06..18.25 rows=1 width=14) Output: a, b, c Node/s: All datanodes -> Seq Scan on public.test (cost=0.00..12.25 rows=1 width=14) Output: a, b, c Distribute Key: a Filter: ((test.b)::bigint = 2) (7 rows) postgres=# postgres=# postgres=# explain verbose select * from test where b = '2'; QUERY PLAN ------------------------------------------------------------------------------------- Streaming (type: GATHER) (cost=0.06..14.27 rows=1 width=14) Output: a, b, c Node/s: All datanodes -> Index Scan using test_b_idx on public.test (cost=0.00..8.27 rows=1 width=14) Output: a, b, c Distribute Key: a Index Cond: (test.b = '2'::text) (7 rows) postgres=# ``` 优化方法:索引条件上的常量尽可能使用和索引列相同类型的常量,避免发生隐式类型转化。 ## 4. 使用nestloop + indexscan 代替 hashjoin 此类语句的特征是两个表关联的时候,其中一个表上where条件过滤之后的结果集行数很小,同时,最终满足条件的结果集行数也很小。此时,使用nestloop+indexscan的效果往往要由于hashjoin。较优的执行计划如下: 可以看到,第5层的Index Cond: (t1.b = t2.b)已经把join条件下推到了基表扫描上。 ```postgres postgres=# explain verbose select t1.a,t1.b from t1,t2 where t1.b=t2.b and t2.a=4; id | operation | E-rows | E-distinct | E-memory | E-width | E-costs ----+--------------------------------------------------+--------+------------+----------+---------+--------- 1 | -> Streaming (type: GATHER) | 26 | | | 8 | 17.97 2 | -> Nested Loop (3,5) | 26 | | 1MB | 8 | 11.97 3 | -> Streaming(type: BROADCAST) | 2 | | 2MB | 4 | 2.78 4 | -> Seq Scan on public.t2 | 1 | | 1MB | 4 | 2.62 5 | -> Index Scan using t1_b_idx on public.t1 | 26 | | 1MB | 8 | 9.05 (5 rows) Predicate Information (identified by plan id) ----------------------------------------------- 4 --Seq Scan on public.t2 Filter: (t2.a = 4) 5 --Index Scan using t1_b_idx on public.t1 Index Cond: (t1.b = t2.b) (4 rows) Targetlist Information (identified by plan id) ------------------------------------------------ 1 --Streaming (type: GATHER) Output: t1.a, t1.b Node/s: All datanodes 2 --Nested Loop (3,5) Output: t1.a, t1.b 3 --Streaming(type: BROADCAST) Output: t2.b Spawn on: datanode2 Consumer Nodes: All datanodes 4 --Seq Scan on public.t2 Output: t2.b Distribute Key: t2.a 5 --Index Scan using t1_b_idx on public.t1 Output: t1.a, t1.b Distribute Key: t1.a (15 rows) ====== Query Summary ===== --------------------------------- System available mem: 9262694KB Query Max mem: 9471590KB Query estimated mem: 5144KB (3 rows) ``` 如果优化器没有选择这种执行计划,可以通过以下方式优化: set enable_index_nestloop = on; set enable_hashjoin = off; set enable_seqscan = off; ## 5. 使用hint指定索引时指定的索引方式不对 GaussDB(DWS)的plan hint当前支持指定的Scan方式有三种:tablescan、indexscan和indexonlyscan。 tablescan:全表扫描,比如行存表的Seq Scan,列存表的CStore Scan indexscan:先扫索引,再根据索引取表记录 indexonlyscan:覆盖索引扫描,所需的返回结果能被所扫描的索引全部覆盖。与index scan相比,index only scan所包含的字段集合,囊括了我们查询语句中的字段,这样,提取出相应的index ,就不必再根据索引取表记录了。 因此,对于需要indexonlyscan的场景,如果hint指定了indexscan,该hint是无法生效的: ```postgres postgres=# explain verbose select/*+ indexscan(test)*/ b from test where b = '1'; WARNING: unused hint: IndexScan(test) QUERY PLAN -------------------------------------------------------------------- Streaming (type: GATHER) (cost=3.12..16.88 rows=100 width=2) Output: b Node/s: All datanodes -> Seq Scan on public.test (cost=0.00..10.88 rows=100 width=2) Output: b Distribute Key: a Filter: (test.b = '1'::text) (7 rows) postgres=# postgres=# explain verbose select/*+ indexonlyscan(test)*/ b from test where b = '1'; QUERY PLAN -------------------------------------------------------------------------------------------- Streaming (type: GATHER) (cost=3.12..56.51 rows=100 width=2) Output: b Node/s: All datanodes -> Index Only Scan using test_b_idx on public.test (cost=0.00..50.51 rows=100 width=2) Output: b Distribute Key: a Index Cond: (test.b = '1'::text) (7 rows) ``` 优化方法:使用hint时正确指定indexscan和indexonlyscan。 ## 6. 全文检索gin索引 为了加速文本搜索,进行全文检索时可以创建GIN索引: ```postgres create index idxb on test using gin(to_tsvector('english',b)); ``` 创建索引时,必须使用to_tsvector的两参数版本,并且只有当查询时也使用了两参数版本,且参数值与索引中相同时,才会使用该索引: ```postgres postgres=# explain verbose select * from test where to_tsvector(b) @@ to_tsquery('cat') order by 1; QUERY PLAN -------------------------------------------------------------------------- Streaming (type: GATHER) (cost=22.23..27.87 rows=12 width=14) Output: a, b, c Merge Sort Key: test.a Node/s: All datanodes -> Sort (cost=21.86..21.87 rows=12 width=14) Output: a, b, c Sort Key: test.a -> Seq Scan on public.test (cost=0.00..21.78 rows=11 width=14) Output: a, b, c Distribute Key: a Filter: (to_tsvector(test.b) @@ '''cat'''::tsquery) (11 rows) postgres=# postgres=# explain verbose select * from test where to_tsvector('english',b) @@ to_tsquery('cat') order by 1; QUERY PLAN --------------------------------------------------------------------------------------------------- Streaming (type: GATHER) (cost=16.09..22.03 rows=2 width=14) Output: a, b, c Merge Sort Key: test.a Node/s: All datanodes -> Sort (cost=16.03..16.03 rows=2 width=14) Output: a, b, c Sort Key: test.a -> Bitmap Heap Scan on public.test (cost=12.00..16.02 rows=1 width=14) Output: a, b, c Distribute Key: a Recheck Cond: (to_tsvector('english'::regconfig, test.b) @@ '''cat'''::tsquery) -> Bitmap Index Scan on idxb (cost=0.00..12.00 rows=1 width=0) Index Cond: (to_tsvector('english'::regconfig, test.b) @@ '''cat'''::tsquery) (13 rows) ``` 优化方式:查询时也使用了两参数版本,且保证参数值与索引中相同。
-
本文分享自华为云社区《[华为云GaussDB(for Influx)揭秘第七期:最佳实践之数据建模](https://bbs.huaweicloud.com/blogs/349472?utm_source=csdn&utm_medium=bbs-ex&utm_campaign=database&utm_content=content)》,作者: GaussDB 数据库。 华为云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部分组成。可以1个或多个,可以1个或多个,每条数据必须要携带时间戳。 - **Point(点)** Point通常包含measurement+Tags+Field+timestamp 4个部分。例如,如下数据包含2个Point。 Point1: Point2: 即,一条数据包含多少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 和Field - Tag只支持字符串类型,数值和布尔类型数据应该被设计为Field; - 将常用查询条件和分组条件设计为Tag; 因为Tag会创建索引,而Field则没有索引。比如在业务中,经常会查询某一台机器的平均CPU利用率: ```mysql SELECT mean(cpu) FROM monitor WHERE host=“192.168.1.1” AND time > now() – 1h ``` 或者查询风电场每台风力发电机每小时的平均发电量: ```mysql 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)数据建模表现更加灵活,无需更改业务即可兼容不同设备,更适用于工业物联网场景。
上滑加载中
推荐直播
-
华为云码道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华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签