• [其他问题] 高斯dws行存表io高问题
    生产环境使用中发现,高斯库中的行存表创建插入数据后第一次查询io特别高基本使用率一直在100%,严重影响业务,这个问题有没有计划修复及何时修复。
  • [应用案例] GaussDB A(DWS)多租户资源管理配置实例
    一、使用gs_cgroup工具配置控制组1.1配置逻辑集群资源配额配置标准报告的多租户控制组,父租户80%cpu配额(线下8.0版本只能用整个集群80% )、自主分析控制组 class2:analyze 50%cpu(根据需求调整)配额,标准报告控制组class1:standard 50%cpu。命令gs_ssh -c “gs_cgroup -c -N LC_B”创建class控制组gs_ssh -c "gs_cgroup -c -S findm_b_tenant -N LC_B "创建workload用户组gs_ssh -c " gs_cgroup -c -S findm_b_tenant -N LC_B  -G workload_standard –g 50"gs_ssh -c " gs_cgroup -c -S findm_b_tenant -N LC_B  -G workload_analyze  -g 50" gs_ssh -c " gs_cgroup -u -S findm_b_tenant -N LC_B  -G workload_standard –g 50"gs_cgroup -u -S class1 -G grp1 -g 30修改CPU配额gs_cgroup -u -S ${Class控制组名称} -N ${逻辑集群名称} -G ${Workload控制组名称} -g ${CPU配额}gs_ssh -c “gs_cgroup -c -N LC_B –S FINDM_B_TENANT -s 40 -G wg1 -g 20”gs_ssh -c " gs_cgroup -u -S findm_b_tenant -N LC_B  -G workload_analyze –g 50"1.1.4查看配置文件中控制组信息。gs_cgroup –p –N LC_Bselect  * from gs_all_control_group_info;1.2配置逻辑集群资源限额增加CPU 限额 配置gs_cgroup -u -S ${Class控制组名称} -N ${逻辑集群名称} -G ${Workload控制组名称} -g ${CPU限额} –fixed命令示例:gs_cgroup -u -S findm_b_tenant -N LC_B -G workload_analyze -g 50 –fixedgs_cgroup --fixed -u -S class1 -G grp1 -g 30 集群配置:gs_ssh -c "gs_cgroup -u -S findm_b_tenant -N LC_B -G workload_analyze -g 50 --fixed"gs_ssh -c "gs_cgroup -u -S findm_b_tenant -N LC_B -G workload_standard -g 50 --fixed"更新配额/* gs_ssh -c “gs_cgroup -u -T findm_b_tenant -N LC_B  -G workload_analyze –t 50 --fixed”*/二、多租户配置2.1配置多租户1.创建父租户,内存占集群内存100% (先建父租户资源池(角色绑定),后建业务租户资源池)CREATE RESOURCE POOL findm_b_pool WITH (CONTROL_GROUP="tenant", NODEGROUP="LC_B",MEM_PERCENT=100);2.创建业务租户,内存占父租户内存50%,复杂作业并发10。CREATE RESOURCE POOL findm_stand_child WITH (CONTROL_GROUP="tenant:workload_standard", NODEGROUP="LC_B",MEM_PERCENT=50,ACTIVE_STATEMENTS=10);自主分析的设置成50%,复杂作业并发10。CREATE RESOURCE POOL findm_analyze_child WITH (CONTROL_GROUP="b_tenant:workload_analyze", NODEGROUP="LC_B",MEM_PERCENT=50,ACTIVE_STATEMENTS=10);示例: 2.2用户关联多租户(关联业务用户)1.创建角色关联父租户(必须,所有业务用户都关联到该角色)CREATE ROLE stand RESOURCE POOL '_pool'NODE GROUP "LC_B" NOLOGIN PASSWORD DISABLE;2.创建用户关联业务租户CREATE USER {分析用户}  PASSWORD 'xxxxx' RESOURCE POOL 'standard_pool' NODE GROUP "LC_B" USER GROUP 'stand';3.将已存在用户关联业务租户ALTER USER {分析用户} RESOURCE POOL 'analyze_child' NODE GROUP "LC_B" USER GROUP 'stand';示例:ALTER USER qtest RESOURCE POOL 'stand_child' NODE GROUP "LC_B" USER GROUP 'stand';ALTER USER distest RESOURCE POOL 'analyze_child' NODE GROUP "LC_B" USER GROUP 'stand';三、GaussDB 异常规则3.1异常规则清单 3.2配置异常规则序号作用规则名称配置命令1CPU倾斜率cpuskewpercent  gs_ssh -c "gs_cgroup -N LC_B -S  findm_b_tenant -G workload_analyze -E "cpuskewpercent=50,qualificationtime=3200" -a "2执行时间elapsetime  gs_ssh -c "gs_cgroup -N LC_B -S  findm_b_tenant -G workload_analyze -E "elapsedtime=2400" -a "3阻塞时间blocktime  gs_ssh -c "gs_cgroup -N LC_B -S  findm_b_tenant -G workload_analyze -E "blocktime=1200" -a "4落盘空间spillsizegs_ssh -c "gs_cgroup -N LC_B -S  findm_b_tenant -G workload_analyze -E "spillsize=10240" -a "四、GaussDB单作业限制query_max_mem 是执行作业所能够使用的最大内存,如果设置的query_max_mem值大于0,当作业执行时所使用内存超过该值时,将报错退出。1.整个集群设置内存限制作为缺省值(如非标报告):gs_guc reload -Z coordinator -Z datanode -N all -I all -c “ query_max_mem =value “2.标准报告 通过 set query_max_mem=0不限制gs_cgroup –P 查看当前节点资源池挂载情况 Gs_cgroup –h 可以查看帮助错误处理需要重新挂载cgroup卸载cgroupsudo /opt/huawei/Bigdata/mppdb/core/bin/gs_cgroup  -U omm –d装载cgroupgs_cgroup -U omm -H /opt/huawei/Bigdata/mppdb/core –c
  • [迁移系列] Gauss DB(DWS)迁移系列-TD迁移DDL差异-分区定义设置Partition by
    TD平台支持范围range和值case分区,并支持动态定义分区(current_date,但较少人使用);GaussDB(DWS)暂时只支持range,即主要通过less than方式实现分区;同时,由于两个平台存储差异性,不建议GaussDB(DWS)像TD一样创建过多分区,即GaussDB(DWS)根据数据访问频度,近期数据创建细粒度分区,提高访问速度,较少访问数据尽量合并分区(如下示例)。根据系统规模,通常单DN小于500MB的数据表可以不考虑创建分区表。−         Teradata:CREATE MULTISET VOLATILE TABLE cities(name VARCHAR(80) title ‘城市名称’,mnt_dt date)Partition by (range_n(Mnt_dt between date’0001-01-01’ and date’0001-01-04’each interval ‘1’ day,date ‘0000-01-05’ and date ‘2009-12-31’,date ‘2010-01-01’ and date ‘2050-12-31’ each interval ‘1’ day,date ‘2051-01-01’ and date’9999-12-31’,no range));−         GaussDB(DWS):CREATE Temp TABLE cities(name VARCHAR(80) ,mnt_dt date)partition by range(mnt_dt)(PARTITION cities_0001 VALUES LESS THAN (date '0001-01-04'),PARTITION cities_2009 VALUES LESS THAN (date '2009-12-31'),PARTITION cities_2020 VALUES LESS THAN (date '2021-01-01'),PARTITION cities_202101 VALUES LESS THAN (date '2021-02-01'),PARTITION cities_202102  VALUES LESS THAN (date '2021-03-01'),PARTITION cities_20210301 VALUES LESS THAN (date '2021-03-02'),PARTITION cities_20210302 VALUES LESS THAN (date '2021-03-03'),***PARTITION cities_20210331 VALUES LESS THAN (date '2021-04-01'),PARTITION cities_99991231 VALUES LESS THAN (MAXVALUE));
  • [迁移系列] Gauss DB(DWS)迁移系列-TD迁移DDL差异-字段字符集设置Character set Latin
    GaussDB(DWS)不支持表级定义字符集,在数据库创建时显式指定字符集,且不能事后变更数据库字符集属性;若数据库需要修改字符集则需重新搬迁数据;−         Teradata:CREATE MULTISET VOLATILE TABLE cities(name VARCHAR(80) Character set Latin,name2 VARCHAR(80) Character set Unicode);−         GaussDB(DWS):CREATE Temp TABLE cities(name VARCHAR(80) ,name2 VARCHAR(80));
  • [迁移系列] Gauss DB(DWS)迁移系列-TD迁移DDL差异-字段多值压缩属性compress
    GaussDB(DWS)不支持类似TD的MVC多值压缩属性,但存在表级数据块压缩属性;−         Teradata:CREATE MULTISET VOLATILE TABLE cities(name VARCHAR(80) compress(‘Shen zhen’,’Xi an’),name2 VARCHAR(80) compress);−         GaussDB(DWS):CREATE Temp TABLE cities(name VARCHAR(80) ,name2 VARCHAR(80));
  • [迁移系列] Gauss DB(DWS)迁移系列-TD迁移DDL差异-字段数据格式化显式属性format
    TD平台format属于不影响数据存储,只影响用户取用数据时展示样式;GaussDB(DWS)不支持format定义,若需数据格式化,可通过to_char函数实现;TD所有类型数据值可设置format,但用户往往只会在日期时间类型上显式设置;−         Teradata:CREATE MULTISET VOLATILE TABLE cities(name VARCHAR(80),mnt_dt date format ‘YYYY-MM-DD’);−         GaussDB(DWS):CREATE Temp TABLE cities(name VARCHAR(80) ,mnt_dt date);
  • [实践系列] Gauss DB(DWS)迁移系列-TD迁移DDL差异-字段标题属性设置Title
    TD平台字段除了和GaussDB(DWS)一样有Comment增加字段描述信息,还可通过表字段Title定义字段的标题;GaussDB(DWS)不支持Title定义,若需要等价于增加Comment信息即可;−         Teradata:CREATE MULTISET VOLATILE TABLE cities(name VARCHAR(80) title '城市名称',mnt_dt date);−         GaussDB(DWS):CREATE Temp TABLE cities(name VARCHAR(80) ,mnt_dt date);Comment on column cities.name is  '城市名称';
  • [迁移系列] Gauss DB(DWS)迁移系列-TD迁移DDL差异-视图迁移差异
    限于TD平台锁机制差异性,其视图中往往会增加“Locking table xxxx for access”用于并发访问,迁移GaussDB(DWS)平台时,直接移除即可实现访问;−         Teradata:replace view v_cities aslocking table cities for accessselect * from cities;−         GaussDB(DWS):Create or replace view v_cities asselect * from cities;
  • [迁移系列] Gauss DB(DWS)迁移系列-TD迁移DDL差异-大小写敏感CASESPECIFIC/NOT CASESPECIFIC
    Teradata默认是字符不敏感“NOT CASESPECIFIC”;GaussDB(DWS)不支持大小写敏感定义,即默认是字符敏感“CASESPECIFIC”;−         Teradata:CREATE MULTISET VOLATILE TABLE cities(name VARCHAR(80) NOT CASESPECIFIC,name2 VARCHAR(80) CASESPECIFIC);−         GaussDB(DWS):CREATE Temp TABLE cities(name VARCHAR(80) ,name2 VARCHAR(80));即当前GaussDB(DWS)只支持大小写敏感的字符定义,而数仓大部分场景也是需要大小写敏感的数据信息;
  • [迁移系列] Gauss DB(DWS)迁移系列-TD迁移DDL差异-行列存存储格式
    数据仓库属于重分析型系统,迁移过程中,建议迁移到GaussDB(DWS)时采用列存进行迁移,综合当前设备CPU性能均较强,建议compress属性设置middle。适合列存:不建议并发频繁update操作;适合批处理ETL任务系统;需要较好的空间压缩比;若绝大部分数据访问都是全部列或绝大部分列访问,建议直接使用列存合并能力。适合行存:大量频繁update操作;提取少量记录;需唯一性约束(但也可通过数据质量监测)行存示例:−         Teradata:(默认行存)CREATE TABLE cities(name VARCHAR(80) cs,name2 VARCHAR(80) NOT CS)primary index(name);−         GaussDB(DWS):CREATE TABLE cities(name VARCHAR(80) ,name2 VARCHAR(80))with (orientation=row)Distribute by hash(name);列存示例:−         Teradata:CREATE TABLE cities(name VARCHAR(80) cs,name2 VARCHAR(80) NOT CS)primary by column;−         GaussDB(DWS):CREATE TABLE cities(name VARCHAR(80) ,name2 VARCHAR(80))with (orientation=column)Distribute by hash(name);
  • [迁移系列] TD常用字典视图在GaussDB(DWS)上实现
    GaussDB(DWS)迁移teradata数据库的时候,很多脚本,以及用户习惯会使用td的常用字典表,比如dbc.tablesv,下面博客记录一下实现dbc.tablesv,dbc.columnsv等字典过程https://bbs.huaweicloud.com/blogs/227292
  • [实践系列] GaussDB(DWS)通过GDS导出的文件竟然无法重新导入到源表
    项目上有人提出一个问题,gds导出来的文件,在导入到同样数据库的另外一个表里面,竟然会报错。于是写了个博客记录一下测试过程。主要是因为导出文件的字符集和分隔符不兼容导致https://bbs.huaweicloud.com/blogs/198875
  • [实践系列] GaussDB(DWS)对被视图引用的表进行DDL操作步骤
    如果表被视图引用的话,特定场景下,部分DDL操作是不能直接执行的,比如修改被视图引用的字段的类型,删除表等,而新增字段是可以操作,主要原因是视图引用了表的字段,修改的话视图也需要变化。下面博客详细讲一下如何实现https://bbs.huaweicloud.com/blogs/196992
  • [其他] GaussDB(DWS)“表信息查询”与“分布列等信息修改”的一个方便脚本
    最近开始接触GaussDB(DWS),在查询一些表信息的时候,总是忘记字典表是啥,虽然说用的多就记住了,但是还没记住的时候,总是要查询产品文档或之前的笔记,挺麻烦的。同时比如优化SQL的时候,总会需要综合多方面的信息,就需要多个字典表,比如表的分布列,分布方式,空间大小,倾斜率,有没收集统计信息等等,还需要统计一起,那就需要更多工作了。经过几次需要的统计表信息的SQL优化后,决定写一个shell脚本,将需要的信息一次性查询出来。下面是具体博客链接:https://bbs.huaweicloud.com/blogs/196729 
  • [迁移系列] ORACLE 触发器在GaussDB(DWS)上的实现
    触发器ORACLE跟GaussDB(DWS)有一定区别,在项目实践的时候踩了些坑,在下面博客记录一下https://bbs.huaweicloud.com/blogs/196527
总条数:2749 到第 页
上滑加载中