-
【功能模块】copymanager【操作步骤&问题现象】1、copymanager里的copyin方法,blob类型的数据怎么处理?【截图信息】【日志信息】(可选,上传日志内容或者附件)
-
【功能模块】Gaussdb 200 6.5.1产品【操作步骤&问题现象】1、系统用户OMM下有大量的SQL在执行,没有DML的操作的时候状态为IDLE,当有INERT入库的时候,这些OMME下的SQL状态为ACTIVE,用户想了解这些系统用户OMM调用的SQL,这些SQL主要是在做哪些操作,为什么会有这系统任务,如下图:
-
你好,对于 PG_STAT_ACTIVITY视图中的query字段,在SQL * FORM PG_STAT_ACTIVITY; 查询的query显示SQL不全,请问对于比较大的SQL为什么 显示不全,有什么解决办法,或调整相关参数能解决吗!(
-
这次,玩大了!!!你知道吗,DWS不仅赠送免费试用机会,提建议还有好礼再相送!!! 赠送免费试用机会,提建议还有好礼再相送!!!还有好礼再相送!!!再相送!!!送!!!一、活动时间:2021年6月3日—2021年7月15日二、活动介绍:活动:1:DWS免费试用可以继续申请啦,点此一键申请免费试用>>3500元套餐,我就免费,哎,就是玩儿~活动2:提建议,再送好礼: 本次建议收集包括:GaussDB(DWS)产品建议、试用建议、平台建议,三种类型的有效建议对应的分值不同:产品建议(20分)、试用建议(20分)、平台建议(10分),活动期间内按照建议被采纳后的有效建议计算对应分值排名,给予排名对应奖励。产品建议:包括但不限于产品功能建议、产品bug...试用建议:包括但不限于产品试用流程、试用心得、学习文档、数仓产品体验感受、遇到的问题…平台建议:包括但不限于平台建设、平台看护…任务多多,心动不如行动,看准机会,快快行动吧~产品主页:https://www.huaweicloud.com/product/dws.html产品文档:https://support.huaweicloud.com/dws/快速入门:https://support.huaweicloud.com/qs-dws/开发者社区:https://bbs.huaweicloud.com/forum/forum-598-1.html微信公众号……三、参与方式(1)申请试用:一键申请免费试用>>3500元套餐,我就免费,哎,就是玩儿~(2)盖楼:在评论区盖楼互动,回复“GaussDB(DWS) 重定义数据仓库,释放数据非凡价值!”(3)提建议:在本论坛发帖直接反馈建议(也可在本主题帖中跟帖留言直接反馈建议哦),将链接反馈至本活动贴下方,会有工作人员进入链接审核建议。提建议发帖版块链接:https://bbs.huaweicloud.com/forum/forum-598-1.html四、活动流程:五、获奖方式:1、DWS免费试用(10名) 奖 品:华为云GaussDB(DWS)包月免费试用价值3500元 评奖规则:根据问卷调查抽取免费试用用户。2、最具影响力(1名) 奖 品:富士INSTAX 一次成像相机 评奖规则:有效建议积分排名第1名。3、最佳创意奖(3名) 奖 品:罗技键鼠套装 评奖规则:有效建议积分排名2—4名。4、价值贡献奖(3名) 奖 品: 华为云定制颈枕 评奖规则:有效建议积分排名第5—7名。5、幸运互动奖(5名) 奖 品:手持电风扇 评奖规则:参与华为云社区互动即有机会抽取。六、奖品一览七、注意事项:1、经工作人员审核,预审通过的建议会有版主直接回复,则为有效建议。2、提出有效的产品建议,建议越详细越好,比如在XX环境、XX操作导致,并配有对应截图,建议需要为有效建议(禁止谩骂、纯吐槽等)。3、如遇到重复建议、问题,则以帖子发表时间为准,后续雷同建议贴无效。4、本活动最终解释权归华为云数仓GaussDB(DWS)所有。
-
select n.nspname || '.' || c.relname from pgxc_class x left join pg_class c on c.oid = x.pcrelidleft join pg_namespace n on n.oid = c.relnamespacewhere pclocatortype='H'and c.relkind = 'r' and c.oid in (select attrelid from pg_attribute where attname='columnname');eg:
-
【多值列模型】多值列处理思路:相同类型的多值列融合为一张行表拆表使用到的函数函数string_to_array(text,text)作用:使用指定的分隔符和null字符串把字符串分裂成数组元素。函数:unnest(anyarray) 扩大一个数组为一组行。Eg:Select a,b,count(*) counts from (select a,unnest(string_to_array(b,'#')) as b from tt001) group by a,b;执行计划:
-
1)创建配置文件info.conf#数据库变量设置#数据库名dbbase='database'#用户名dbuser='user'#用户密码dbpass='password'#SQL执行次数para_num=2000#允许同时调起的gsql进程数,如果活跃进程大于此值则sleep直到进gsql进程数小于此值时,则继续增加并发pnum='1500'#sql文件中的sql语句数,用于计算tpssnum='5'#数据库集群的lvs地址lvsip='xxx.xxx.xxx.xxx'#sql文件名filename='filename'2.创建并发脚本#!/bin/bash. ./info.confc_path=$(cd "$(dirname "$0")";pwd)ctime=`date +%Y%m%d%H%M%S`fun() { for ((j=1;j<=$para_num;j++));do { echo "正在执行第$j个查询" >${c_path}/num gsql -p 25308 -U $dbuser -W $dbpass -d $dbbase -h $lvsip -f ${c_path}/${filename}.sql >>${c_path}/${filename}_$ctime.log 2>&1 & gsqlnum=`ps -ef|grep gsql |grep -v grep|wc -l` while [ "$gsqlnum" -gt "$pnum" ] do echo "当前并发量为:$gsqlnum,不再加并发" sleep 1 gsqlnum=`ps -ef|grep gsql |grep -v grep|wc -l` done }& done wait }main() { source /opt/huawei/Bigdata/mppdb/.mppdbgs_profile starttime=`date +"%Y-%m-%d %H:%M:%S"` echo "start time:$starttime" fun endtime=`date +"%Y-%m-%d %H:%M:%S"` echo "end time:$endtime" echo "sqlcount=$para_num">>${c_path}/Test_report_$ctime.log totaltime=$((`date +%s -d "$endtime"` - `date +%s -d "$starttime"`)) echo "totaltime=${totaltime}s">>${c_path}/Test_report_$ctime.log tps=`expr $para_num \* $snum / $totaltime` echo "tps=$tps sql/sec" >>${c_path}/Test_report_$ctime.log avgtime=`cat ${filename}_$ctime.log|grep '^Time:' |awk '{sum+=$2} END {print sum/NR}'` echo "avgtime=${avgtime}ms" >>${c_path}/Test_report_$ctime.log }mainexit 0执行后输出:totaltime:总执行时间tps:每秒执行的SQL数avgtime;: sql平均执行时间
-
DWS数据库对象创建后,进行对象创建的用户就是该对象的所有者。数据库系统管理员具有与对象所有者相同的权限。也就是说对象创建后,默认只有对象所有者或者系统管理员可以查询、修改和销毁对象,以及通过GRANT将对象的权限授予其他用户。业务场景中,会经常遇到跨用户访问数据库对象的场景,因此需要根据需要赋予指定用户特定数据库对象的权限。赋权时应按照数据库-->模式-->对象的顺序赋权--首先赋予用户数据库的连接权限grant CONNECT ON DATABASE database to user;-- 赋予用户指定schema的usage权限GRANT USAGE ON SCHEMA schema TO user;、赋予对象当前schema上所有对象的增删改查权限--赋予用户当前schema下所有表及视图的增删改查权限GRANT SELECT,INSERT,UPDATE,DELETE,truncate ON ALL TABLES IN SCHEMA schema to user;--赋予用户当前schema下后续新建的表及视图的增删改查权限alter default privileges in schema schema grant SELECT,INSERT,UPDATE,DELETE,truncate on tables to user;--赋予用户当前schema下所有函数及存储过程的执行权限GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA schema to user;--赋予用户当前schema下所有序列的查询及使用权限grant USAGE,SELECT on ALL SEQUENCES IN SCHEMA schema to user;
-
GaussDB(DWS)系统视图中涉及用户、角色及权限相关的视图有 pg_user、pg_authid、pg_roles、pg_auth_members,其中pg_user只存储用户信息;pg_authid存储有关数据库认证标识符(角色)的信息、pg_roles视图提供访问数据库角色的相关信息;pg_auth_members存储角色的成员关系,即某个角色组包含了哪些其他角色。eg:1.pg_user 只记录了用户信息select * from pg_user where usename in ('u1','u2','u3');2.pg_authidpg_authid系统表存储有关数据库认证标识符(角色)的信息。角色把“用户”的概念包含在内。一个用户实际上就是一个rolcanlogin标志被设置的角色。任何角色(不管rolcanlogin设置与否)都能够把其他角色作为成员。在一个集群中只有一份pg_authid,不是每个数据库有一份。需要有系统管理员权限才可以访问此系统表。select * from pg_authid where rolname in ('u1','u2','u3');3.pg_roles 视图提供访问数据库角色的相关信息select * from pg_roles where rolname in ('u1','u2','u3');备注:1)创建角色,赋予了login权限,则相当于创建了用户,如果没有赋予login权限,则这个角色只能在pg_roles里面看到,而在pg_user里面看不到2)rolinherit字段表示改角色是否继承了其他角色的权限,继承关系见视图pg_auth_members4.pg_auth_members 系统表存储显示角色之间的成员关系角色赋予语法:grant user1 to user2;eg:select m.rolname,m.member as member,b2.rolname as grantor,m.admin_option from (select g.rolname,b1.rolname as member,g.grantor,g.admin_option from (select a.roleid,b.rolname,a.member,a.grantor,a.admin_option from PG_AUTH_MEMBERS a, pg_roles b where a.roleid=b.oid) g ,pg_roles b1 where g.member=b1.oid)m ,pg_roles b2 where m.grantor =b2.oid ;如图:rolname :拥有成员的角色名member: 属于成员的角色名grantor : 赋予此成员关系的角色名admin_option: 如果有权限可以把ROLEID角色的成员关系赋予其他角色,则为真
-
方法一:select * from information_schema.table_privileges where grantee='user';grantor :赋权用户grantee:被赋权用户table_catalog:数据库名table_schema:模式名table_name:对象名privilege_type:被赋予的权限方法二:SELECT relname,relacl FROM pg_class where relname='tablename';注释:访问权限。查询的回显结果为以下形式:1rolename=xxxx/yyyy --赋予一个角色的权限 1=xxxx/yyyy --赋予public的权限 xxxx表示赋予的权限,yyyy表示授予该权限的角色。参数说明:
-
SQL:select n.nspname as schemaname ,c.relname as tablename,rtrim(ltrim(pg_get_constraintdef(p.oid),'PRIMARY KEY ('),')') as column_pk from pg_class c inner join pg_namespace n on c.relnamespace=n.oid inner join pg_constraint p on c.oid=p.conrelid where p.contype='p';eg:
-
查询SQL如下:select a.attname from pg_class c left join pg_namespace n on c.relnamespace=n.oid left join pg_partition p on c.oid=p.parentid left join pg_attribute a on p.partkey[0]=a.attnum and a.attrelid=c.oid where p.parttype='r'and n.nspname ='schemaname'and c.relname ='tablename';备注:查询时请替换SQL中红色内容替换为schema名及表名eg:select * from dba_tab_partitions where table_name='a_rcvbl_entry';
-
【操作步骤&问题现象】1、开开心心的安装了GaussDB,但是之后简单的用50万数据测试了一下,发现通过kettle从其他服务器的oracle数据库向GaussDB数据库中写入数据的时候,发现写入速度特别低2、尝试修改了postgresql.conf文件,但是问题没有明显改善,源文件及修改的gs_guc命令放在附件里了~求帮忙看一看3、个人认为是数据库本身对于写入数据的限制(出于安全角度?),因为使用其他数据库时并没有出现类似现象4、可不可以仅通过GuassDB数据库配置的修改,系统调优,不进行SQL调优使简单的数据传输效率变高?5、GuassDB所在节点的资源配置:# OS Type: linux # Total Memory (RAM): 48 GB # CPUs num: 4 # Connections num: 300 # Data Storage: ssd【截图信息】求问,这个度量结果和GaussDB的postgresql数据库配置有关吗?还是说要修改其他的配置文件来进行数据库的优化
-
【操作步骤&问题现象】网上看PG是支撑JSON类型数据的,且查询语句可以用select这样的语句,例如select '[1,2,3]'::json->>2;但是发现GaussDB不支持,请问是否有相应的资料,还是就是不支持这样的语法
-
GaussDB(DWS)中有三种模式,分别是Oracle模式,TD模式和MySQL模式。不同的类型在不同的模式下,也有不同的行为表现。接下来便对GaussDB(DWS)中的日期DATE类型进行详细介绍。DATE类型的取值范围:GaussDB(DWS)在存储DATE类型时,不支持年月日全部为零或部分为零的场景,且取值范围在三种模式下是不同的:在Oracle模式下,DATE类型的取值范围是公元前4713年1月1日到公元294277年1月1日。在MySQL模式和TD模式中,DATE类型的取值范围是公元前4713年到公元5874897年。用例说明:1. 不同模式下DATE类型的行为Oracle模式 a. DATE类型的表现 GaussDB(DWS)中DATE类型存储时不带时分秒,由于在Oracle模式下的DATE类型需要带有时分秒,使得GaussDB(DWS)在Oracle模式下存在带时分秒的和不带时分秒的两种DATE类型,所以为了容易区分,在显示时不带时分秒的DATE类型用列名date表示;带时分秒的DATE类型用同样带时分秒的TIMESTAMP类型的列名timestamp表示。postgres=# select date '4713-01-01 BC'; timestamp ------------------------ 4713-01-01 00:00:00 BC (1 row) postgres=# select date '294277-01-01'; timestamp ----------------------- 294277-01-01 00:00:00 (1 row) b. Oracle模式下得到只含有年月日的DATE类型的方法 如果想要在Oracle模式下将日期转成只有年月日的DATE类型,有方法可以实现么?事实上也是有的。GaussDB(DWS)提供了两种方式,一种是通过在Oracle模式下使用date函数:date函数的参数至少需要包含年月日,并将日期中的年月日提取并输出;另一种则是通过cast函数进行转换,但转换时应将date加上双引号,否则转换后的数据还是会含有时分秒部分。postgres=# select date('2008-05-24 10:40:21'); date ------------ 2008-05-24 (1 row) postgres=# select cast('2008-05-24 10:40:21.100050' as "date"); date ------------ 2008-05-24 (1 row) postgres=# select cast('2008-05-24 10:40:21.100050' as date); timestamp --------------------- 2008-05-24 10:40:21 (1 row) c. DATE类型操作符操作符实例结果+select date ‘2020-08-13’ + interval ‘7’;2020-08-20 00:00:00select date '2020-08-13' + time '12:11:13';2020-08-13 12:11:13-select date '2001-10-01' - date '2001-09-28';3 daysselect date '2001-10-01' - interval '5' month;2001-05-01 00:00:00select date '2001-10-01' - time '12:11:13';2001-09-30 11:48:47MySQL模式和TD模式: DATE类型只有年月日。 a. DATE类型的表现 MySQL模式与TD模式下DATE类型无差异。mysql_db=# select date '5874897-01-01'; date --------------- 5874897-01-01 (1 row) td_db=# select date '5874897-01-01'; date --------------- 5874897-01-01 (1 row) b. MySQL模式与TD模式下得到只含有年月日的DATE类型的方法 由于在MySQL模式或TD模式下,DATE类型只有年月日,故使用to_date函数和date函数所得到的结果都只有年月日,同时cast函数进行类型转换时,date加不加引号所得到的结果也是一致的。td_db=# select date('2008-05-24 10:40:21'); date ------------ 2008-05-24 (1 row) td_db=# select cast('2008-05-24 10:40:21.100050' as "date"); date ------------ 2008-05-24 (1 row) td_db=# select cast('2008-05-24 10:40:21.100050' as date); date ------------ 2008-05-24 (1 row) mysql_db=# select date('2008-05-24 10:40:21'); date ------------ 2008-05-24 (1 row) mysql_db=# select cast('2008-05-24 10:40:21.100050' as "date"); date ------------ 2008-05-24 (1 row) mysql_db=# select cast('2008-05-24 10:40:21.100050' as date); date ------------ 2008-05-24 (1 row) c. DATE类型操作符操作符实例结果+select date ‘2020-08-13’ + interval ‘7’;2020-08-20 00:00:00select date '2020-08-13' + time '12:11:13';2020-08-13 12:11:13-select date '2001-10-01' - date '2001-09-28';3select date '2001-10-01' - interval '5' month;2001-05-01 00:00:00select date '2001-10-01' - time '12:11:13';2001-09-30 11:48:47与Oracle模式的差异:当DATE类型的值进行相减时返回值不带day,只有数值。2. 不同模式下的DATE类型相关函数结果的行为:GaussDB(DWS)中存在与DATE类型相关的函数:to_date:将文本类型的值转换为指定格式的时间戳,若参数只有一个时,默认格式为DATE类型的格式。to_char:将一个DATE、TIMESTAMP、TIMESTAMP WITH TIME ZONE或者TIMESTAMP WITH LOCAL TIME ZONE类型的DATETIME或者INTERVAL值按照fmt指定的格式转换为VARCHAR类型。可选参数fmt可以为以下几类:日期、时间、星期、季度和世纪。每类都可以有不同的模板,模板之间可以合理组合;常见的模板有:HH、MM、SS、YYYY、MM、DD。模板可以有修饰词;常用的修饰词是FM,可以用来抑制前导的零或尾随的空白。返回值类型:varcharcurrent_date:获取当前日期。date_part:获取给定日期时间中的指定域值。isfinite:测试给定日期是否为有效日期。函数实例GaussDB(Oracle)GaussDB(TD)GaussDB(MySQL)to_dateselect to_date(date '2008-05-24 10:40:21');2008-05-24 10:40:212008-05-242008-05-24to_charselect to_char(date '2008-05-24 10:40:21');2008-05-24 10:40:212008-05-24 00:00:00+082008-05-24current_dateselect current_date;2021-04-252021-04-252021-04-25date_partselect date_part('week', date '2008-05-24');212121isfiniteselect isfinite(date '2008-05-24');tttOracle模式:由于Oracle模式中的DATE类型含有时分秒,故to_date和to_char函数得到的结果含有时分秒。TD模式:由于TD模式下的DATE类型只有年月日,故to_date函数得到的结果只有年月日。在TD模式下,to_char函数的输出结果可以由GUC参数convert_empty_str_to_null_td控制,若不设置参数则返回上表中的结果,若设置参数则返回结果与TD数据库中的结果保持一致,为2008/05/24。MySQL模式:由于MySQL模式下DATE类型只有年月日,故to_date函数和to_char函数的返回结果只有年月日。想了解GuassDB(DWS)更多信息,欢迎微信搜索“GaussDB DWS”关注微信公众号,和您分享最新最全的PB级数仓黑科技,后台还可获取众多学习资料哦~原文链接:https://bbs.huaweicloud.com/blogs/266760
上滑加载中
推荐直播
-
华为云码道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华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签