-
数据仓库(DataWarehouse),一般缩写成DW、DWH。数据仓库是一个面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策。
-
问题1 : 建表权限完全是业务用户掌控,行列存储混用的数据库 ,如何设置 cstore_buffers, shared_buffers 最佳实践值 ? 问题2 : 如下 shared_buffers 单位到底是 8kB , 还是KB ?
-
GaussDB(DWS)实践系列-List行转列函数实现针对项目交付过程中遇到的List行转列的场景,GaussDB(DWS)提供regexp_split_to_table函数实现,本文进行详细介绍。一、 客户场景详细客户场景如下:--测试表信息create table movie_info(name varchar(20),category varchar(100)) distribute by hash(name);--插入数据insert into movie_info values('<<革命者>>','战争,动作,剧情');insert into movie_info values('<<唐人街探案>>','悬疑,动作,剧情');insert into movie_info values('<<唐山大地震>>','动作,灾难,剧情');--查询表信息:select * from movie_info;客户需求是将电影分类(categroy列)中的数组数据展开成如下形式进行展示:namecategory<<革命者>>战争<<革命者>>动作<<革命者>>剧情<<唐人街探案>>悬疑<<唐人街探案>>动作<<唐人街探案>>剧情<<战狼>>战争<<战狼>>动作<<战狼>>灾难二、 函数介绍GaussDB(DWS)提供regexp_split_to_table函数支持List行转列场景,函数详细描述如下:regexp_split_to_table(string text, pattern text [, flags text])【描述】用POSIX正则表达式作为分隔符,分隔string。如果没有与pattern的匹配,该函数返回string。如果有至少有一个匹配,对每一个匹配它都返回从上一个匹配的末尾(或者串的开头)到这次匹配开头之间的文本。当没有更多匹配时,它返回从上一次匹配的末尾到串末尾之间的文本。flags参数包含零个或多个改变函数行为的单字母标记。i表示进行大小写无关的匹配,g表示替换每一个匹配的子字符串而不仅仅是第一个。返回值类型:setof text【示例】SELECT regexp_split_to_table('hello world', E'\\s+'); 三、 实现方法regexp_split_to_table函数把一个POSIX正则表达式模式当作一个定界符来分离一个串。测试验证:--查询语句select name,regexp_split_to_table(category,',') from movie_info;--查询结果,符合需求
-
GaussDB(DWS)分区表TTL管理实现 在项目交付中,客户经常会提出一些关于分区表TTL管理的需求,例如保留最近30天的分区数据,并实现分区自增和过期分区删除的场景,当前GaussDB(DWS)不支持,针对该场景可参考本文方法实现GaussDB(DWS)分区表的TTL管理,针对分区字段为date和timestamp类型,通过DGC或其他周期性调度任务执行管理函数,实现增加分区和删除lifecycle有效期外的分区,实际使用过程中可按照注释内容按需调整。一、 方案介绍 创建分区策略管理表partition_manage_policies,保存分区表信息及数据有效天数,其中schemaname表示模式名,tablename表示表名,lifecycle表示该表保留数据的天数。----创建分区策略管理表。create table partition_manage_policies(schemaname varchar,tablename varchar,lifecycle int)distribute by replication ;----查看当前数据库中的分区表select n.nspname as schemaname,c.relname as tablename from pg_class cleft join pg_namespace n on n.oid = c.relnamespacewhere c.parttype = 'p';----给某张指定分区表插入分区策略,例如public. day_manager_test保留30天的数据。insert into partition_manage_policies values('public','day_manager_test',30);insert into partition_manage_policies values('public','hour_manager_test',30);select * from partition_manage_policies;----创建测试分区表----1)按日分区测试表CREATE TABLE public.day_manager_test( guid varchar , user_id varchar , name varchar , dt timestamp)distribute by hash(guid) partition by range(dt) (partition p1 start(timestamp '2021-07-10') end (timestamp '2021-08-11') every(interval '1 days'));----2)按小时分区测试表CREATE TABLE public.hour_manager_test( guid varchar, user_id varchar, name varchar,dt timestamp) with(orientation = column) distribute by hash(guid) partition by range(dt) (partition p1 start(timestamp '2021-07-10 01:00:00') end (timestamp '2021-08-11 00:00:00') every(interval '1 hours') );--查看指定表(public. day_manager_test)的分区信息,以及分区的上边界。select n.nspname as schemaname,c.relname as tablename,p.relname as partname,p.boundaries::varchar as boundariesfrom PG_PARTITION pleft join pg_class c on p.parentid = c.oidleft join pg_namespace n on c.relnamespace = n.oid where c.relname = 'day_manager_test'and n.nspname = 'public'and p.relname <> 'day_manager_test'order by p.boundaries desc; 日分区管理函数及调用方法如下,小时分区管理函数及调用方法类似,支持通过gtmdate一次添加并清理多个日期分区:---按日分区管理函数,根据gtmdate新增当前日期及之前的分区。例如gtmdate是'2021-08-17',会新建分区保存当天数据,并且会补充gtmdate前缺省的分区。CREATE OR REPLACE FUNCTION partition_day_manage(schema_name varchar, table_name varchar, gmtdate varchar) RETURNS void AS$$DECLAREr partition_manage_policies%rowtype;lifecycle int;sql_str varchar;drop_date varchar;drop_partition_name varchar;add_partition_name varchar;partition_max_num int;partition_max_value timestamp; partition_perfix varchar;loop_num int;err_message varchar; BEGINSELECT * into r FROM public.partition_manage_policies where schemaname = schema_name and tablename = table_name; drop_date := gmtdate::date - r.lifecycle + 1;--按照lifecycle信息计算删除日期并打印dbms_output.put ('------ Delete partition ');dbms_output.put(drop_date);dbms_output.put_line(' and earlier! ------'); dbms_output.put_line('------ Prints the delete partition command! ------');--打印删除分区的命令--删除所有小于或等于drop_date的日期的分区for drop_partition_name in select p.relname from PG_PARTITION p left join pg_class c on p.parentid = c.oid left join pg_namespace n on c.relnamespace = n.oid where c.relname = table_name and n.nspname = schema_name and p.relname <> table_name and substr(p.boundaries::varchar,instr(p.boundaries::varchar,'20', 1),10) <= drop_date loop sql_str := 'alter table '||schema_name||'.'||table_name||' drop partition '||drop_partition_name; dbms_output.put_line(sql_str); --打印删除分区sql EXECUTE IMMEDIATE sql_str; --执行删除分区end loop;--取当前分区的最大value值、分区名的最大值、分区名称的前缀,其中instr中的'20'代表'2020'中的20。selectsubstr(p.boundaries::varchar,instr(p.boundaries::varchar,'20', 1),10),substr(p.relname,instr(p.relname,'_',1)+1),substr(p.relname,0,instr(p.relname,'_',1)) into partition_max_value,partition_max_num,partition_perfix from PG_PARTITION p left join pg_class c on p.parentid = c.oid left join pg_namespace n on c.relnamespace = n.oid where c.relname = table_nameand n.nspname = schema_nameand p.relname <> table_nameorder by p.boundaries desc limit 1; --计算需要生成多少个分区,当输入的日期小于最大分区的日期时,该值为负数,则如下for循环不会执行loop_num = substr((gmtdate::timestamp - partition_max_value::timestamp)::varchar,0,instr((gmtdate::timestamp - partition_max_value::timestamp)::varchar,' ',1)) + 1; --自当前最大分区值开始添加分区--打印添加分区的sqldbms_output.put_line('------ Prints the add partition command! ------');for i in 1..loop_num loop partition_max_num = partition_max_num + 1; --分区名为自增序列 add_partition_name = partition_perfix||partition_max_num; --拼接分区名称 partition_max_value = partition_max_value + interval '1 day'; --计算分区值,每个分区间隔1天 sql_str := 'alter table '||schema_name||'.'||table_name||' add partition '||add_partition_name||' values less than (''' ||partition_max_value||''')'; dbms_output.put_line(sql_str); EXECUTE IMMEDIATE sql_str; --执行添加分区sqlend loop; RETURN;--如果分区表策略管理表中没有表信息,报错提示 EXCEPTION when NO_DATA_FOUND THEN err_message := 'table '||schema_name||'.'||table_name || ' not found in public.partition_manage_policies.'; RAISE EXCEPTION '%', err_message; END $$ LANGUAGE 'plpgsql' ; 二、 场景测试调用分区管理函数,并根据实际需求传入schema_name、table_name以及日期信息进行场景测试,以日分区表管理为例,小时分区管理相同。1、测试场景一,输入当前不存在的日期分区,例如current_date为’ 2021-08-17’。call partition_day_manage('public','day_manager_test',current_date);提供日志打印如下信息:(1) 删除了’2021-07-19’及之前的分区。(2) 执行的删除分区表语句。(3) 执行的添加分区表语句。--查看更新后的分区信息,以及分区的上边界。2、测试场景二,输入当前已存在的日期分区call partition_day_manage('public','day_manager_test','2021-08-13');--不执行任何删除和添加分区命令3、测试场景三,输入分区策略管理表partition_manage_policies不存在的分区信息。call partition_day_manage('public','day_manager_test_notexist','2021-08-29');--报错,分区策略管理表中不存在该表
-
-
根据上图本课程学习链路4,如何配置dws外部数据源,并通过链路1,通过客户端直接访问HetuEngine做到链路2和链路4,hive以及dws的跨仓融合分析1. 在HetuEngine Console页面增加dws数据源,并且配置参考产品文档《组件操作指南》->《HetuEngine》->《通过HetuEngine HSConsole配置数据源》-> 《配置JDBC数据源》2. 登陆dws数据库使用如下命令创建新的库以及测试表CREATE USER developuser WITH PASSWORD "Bigdata@123";GRANT ALL PRIVILEGES TO developuser;CREATE DATABASE test;CREATE TABLE test.jizhan ( rowid bigint(20) , province varchar(20) DEFAULT '', jizhanid bigint(20) DEFAULT NULL, date varchar(20) DEFAULT NULL, PRIMARY KEY (`rowid`));insert into jizhan (rowid, province, jizhanid, date) values('12345','湖南',1,'2021-3-29 17:23:55');insert into jizhan (rowid, province, jizhanid, date) values('22345','湖北',2,'2021-3-28 16:23:55');insert into jizhan (rowid, province, jizhanid, date) values('32345','河南',1,'2021-3-27 15:23:55');insert into jizhan (rowid, province, jizhanid, date) values('42345','河北',1,'2021-3-26 14:23:55');insert into jizhan (rowid, province, jizhanid, date) values('52345','北京',1,'2021-3-25 13:23:55');2. 登陆hetu客户端hetu-cliselect des.test.test6;select hive.default.people;select * from hive.default.people h1 inner join dws.public.jizhan h2 on h1.rowid=h2.rowid;视频
-
【操作步骤&问题现象】GaussDB A 8.0.0.1 版本集群 涉及多表union HDFS外表和GaussDB 内表关联查询,怎样写比较好?如 select * from (select * from a1 union select * from a2) where date='20210816'; select * from (select * from a1 where date='20210816' union select * from a2 where date='20210816');在比较执行计划上并没有发现有太大区别,对于频繁多表union情况下sql怎么写比较好?
-
1. 问题现象:解绑弹性IP成功,但集群详情仍显示绑定有EIP,且解绑报错。2. 原因:解绑指令已经发往VPC、完成了解绑动作。管控面没有清理数据库,导致脏数据的存在。为偶发现象。3. 解决方案:需要修改rds_instance, rds_port_relation两张表。具体方法如下。a. 登录运维容器,访问rms数据库。b. 输入SELECT id,name,publicIp from rds_instance where name like '%${集群名}%'; 查看哪些实例未解绑弹性IP。c. UPDATE rds_instance SET publicIp = 'NULL' WHERE name='${上一步查出的需要解绑的实例name}';d. SELECT * from rds_port_relation where instanceId='${上一步查出的需要解绑的实例id}',查看eipBindType,eipId,eipStatus字段。e. 将上述三个字段UPDATE为null。
-
7月28日-29日,2021(第六届)中国大数据产业生态大会在北京举行。本次大会以“数智转型 融合共生”为主题,共同探讨产业服务数字化发展和行业数智化转型方向,大数据领域年度“金沙奖”也在会上正式揭晓,华为云数据使能DAYU主力产品——数据仓库GaussDB(DWS)蝉联“2021 中国大数据·数据仓库领域最佳产品奖”。华为云GaussDB(DWS)是一款具备分析及混合负载能力的分布式数据库,面向政企、互联网和物联网等应用场景,以企业级内核、统一架构提供标准数仓,实时数仓和云数仓。业务分析师和数据分析师在批量分析、交互式查询与分析、实时分析等业务场景中,可借助GaussDB(DWS)轻松获得一站式分析能力,降低数据分析门槛提升数据分析效率,更便捷高效的释放数据价值。一站式数据分析支持上万分析师在线作业,满足企业平台容量需求继2020年获奖后,华为云GaussDB(DWS)研发团队在数据分析技术上持续探索。通过智能多维的混合负载管理,华为云GaussDB(DWS)可在集群内实现实时、批量、交互式负载的一站式数据分析。为数据接入提供丰富的数据源接口,满足数据分析的全流程中不同角色对数据分析的不同需求。通过自研TCP多流技术提高物理连接数量级,在MPP架构下数据节点全并行数据交换,华为云GaussDB(DWS)实现单集群最大支持2048节点。2021年Q1建成投产的480节点大集群分析师平台,成为金融行业最大规模商用数据仓库集群,支持上万分析师在线作业,极大满足了大企业数据量激增对平台容量扩展的需求。高并发毫秒级点查询,效率提升200倍通过30多项查询重写技术(含4项专利),优化Ad hoc查询性能,实现高并发毫秒级点查询。在已商用的GaussDB(DWS)数据分析平台中,灵活查询平均运行时间由30分钟降低至50秒,查询平均等待时长更是由5小时降低至1.5分钟,查询效率提升200倍!对企业而言,业务数据从产生到汇聚,再到面向场景化分析,每个环节都分秒必争,快速释放数据潜能已成为企业数字化转型的刚需。数据分析架构简化,流数据每秒千万级实时接入在互联网和物联网业务应用中,时序数据和流数据承载了大量的业务内容。典型时序和流数据分析方案需要引入多种组件,不但数据格式难统一,平台架构也变得非常厚重,扩展困难。华为云GaussDB(DWS)在全并行分布式架构上,无缝融合OLAP引擎、时序引擎、CEP引擎,简化数据分析组件架构,实现T+1和T+0合一的一站式数据分析,实时数据与历史数据关联分析技术做到同行业技术领先。在已投产的实时数仓方案中,流数据高峰流量每秒千万级实时接入,解决了传统方案流数据接入流量速率的瓶颈问题。华为云GaussDB(DWS)提供GB~PB级数据分析能力、多模分析和实时处理能力,用于数据仓库、数据集市、实时分析、实时决策和混合负载等场景,在全行业数字化转型中帮助企业提质增效,建立核心竞争力,夯实企业发展根基。 目前,华为云大数据热销主打的产品有:1. 数据仓库服务GaussDB(DWS)提供云上企业级融合数据仓库,支持实时数据分析,具备高性能、低成本、易扩展等特性2.MapReduce服务 3.0.5版新版ClickHouse集群支持跨AZ集群,适用海量数据大宽表实时分析/实时BI报表分析3. 云搜索服务 CSS兼容Elasticsearch完全托管在线分布式搜索服务,用于站内搜索/日志分析/运维监控等场景 4.数据湖治理中心 DGC数据全生命周期一站式开发运营平台,可复用行业知识库,助力企业快速构建数据运营能力5.数据湖探索服务 DLI提供一站式融合处理分析服务,会SQL就会大数据分析,高易用免运维 现在828大促期间,大数据福利专场上线,注册用户即可免费体验大数据,爆款产品击穿底价5折!详情点击了解:https://activity.huaweicloud.com/bigdata.html
-
【问题描述】查询pg_class系统表发现有个表的relpages 占用的页面数非常大,远远大于reltuples【解决方法】1. vacuum full test_tables;2. analyze test_tables;3. 如果无效果,可以连接到第一个DN上。执行下面的查询,看一下DN上是否准确。select relname, relpages , reltuples from pg_class where relname = 'xxxx';会看到relpages 和reltuples 对应关系不太正常。比如页面数大于元组数量。4. 查一下 oldestxmin,看一下是否存在一些老事务,导致页面无法回收。select * from pgxc_gtm_snapshot_status(); select * from pgxc_running_xacts where xmin::text::bigint < txid_current();5. 如果存在远远小于oldestxmin 的xid 说明在DN上会存在线程残留。6. 然后杀掉残留的线程,再执行vacuum analyze.
-
【背景描述】获取当前最大事务号以及最小frozen事务号【用法描述】python calxid.py 25308(云上为8000)【运行示例】注:下载附件后将脚本名称改为calxid.py后运行即可。
-
1. 管控面版本 : HCS 8.0.3 , 430版本。2. 问题现象: 使用运维容器的connectTool连接实例,卡在Query resulet complete之后,报错Decrypt Failed. 图1 卡在Query resulet complete无响应。 图2 报错解密失败。3. 原因: 处于安全原因考虑,加解密工具的秘钥会定期失效,需要手动触发一下加解密操作来更新秘钥,再连接实例。4. 解决方法: 登录运维容器,在/opt/cloud/3rdComponent/opsTool目录中,运行java -jar AESTool.jar。然后随意加密一段文字,输入例如: 1 test,显示出加密字段,退出输入:0 0。 再使用connectTool.sh工具连接实例即可连接。
-
【功能模块】DWS中的库信息【操作步骤&问题现象】1、需要提供数据库IP地址,端口信息,以用于登录数据库工具2、需要把电脑IP地址加入白名单中公网IP : 112.4.135.18 内网IP 10.88.40.173 公网IP : 1.85.33.122 内网IP 10.100.12.100【截图信息】【日志信息】(可选,上传日志内容或者附件)王斌国/18629429514/wangbinguo@chinasoftinc.com
-
一、 背景描述 在项目交付中,经常有人会问“如何在数据库中查询表的创建时间?” ,那么究竟如何在GaussDB(DWS)中查找对象的创建时间呢?本文提供3种方法作为参考,包括dba_objecs视图查看方法、审计日志查看方法和CN日志查看方法。二、 操作演练方法1:视图查询方法DBA_OBJECTS视图存储了数据库中所有数据库对象的相关信息, GaussDB(DWS)支持通过DBA_OBJECTS视图进行查询,字段和详细说明如下:表1 DBA_OBJECTS视图字段名称类型描述ownername对象的所有者object_namename对象的名称object_idoid对象的OIDobject_typename对象的类型namespaceoid对象所在的命名空间createdtimestamp with time zone对象的创建时间last_ddl_timetimestamp with time zone对象最后修改时间,修改行为包括ALTER操作和GRANT、REVOKE操作。注意:需要有系统管理员权限才可以访问。其中对象的类型object_type字段会包括TABLE、INDEX、VIEW、RULE, PROCEDURE、TYPE、OPERATOR等,查询时可根据该字段进行筛选:1. 创建测试表创建测试表,用于后续查询测试。--定义一个表,使用HASH分布。CREATE TABLE employee_info( id INTEGER NOT NULL, name VARCHAR(16) NOT NULL, tel VARCHAR(11), addr varchar(10))DISTRIBUTE BY HASH(id); --查看当前系统时间。select current_timestamp;测试表创建完成后查看当前系统时间作为参考。2. 查询创建时间通过DBA_OBJECTS视图查看表对象创建时间。select * from dba_objects where object_type='TABLE' and object_name='employee_info';查询结果如下:3. 更新测试表更新测试表employee_info,测试dba_objects视图是否可以保存对象的最后修改时间,修改行为包括ALTER操作和GRANT、REVOKE操作:--向表中增加一个varchar列group_info。ALTER TABLE employee_info ADD group_info varchar(30);--查看当前系统时间。select current_timestamp;相关信息记录如下:4. 查看最后更新时间通过DBA_OBJECTS视图查看对象的最后更新时间。select * from dba_objects where object_type='TABLE' and object_name='employee_info';查询结果如下:方法2:审计日志查看方法审计日志统计信息更全,打开审计总开关audit_enabled=on,并设置审计项audit_system_object。audit_system_object参数说明:该参数决定是否对GaussDB A数据库对象的CREATE、DROP、ALTER操作进行审计。GaussDB A数据库对象包括DATABASE、USER、schema、TABLE等。通过修改该配置参数的值,可以只审计需要的数据库对象的操作。取值范围:整型,0~524287Ø 0代表关闭数据库对象的CREATE、DROP、ALTER操作审计功能。Ø 非0代表只审计某类或者某些数据库对象的CREATE、DROP、ALTER操作。默认值:12295 换算成19位二进制为000 0011 0000 0000 0111取值说明:该参数的值由19个二进制位的组合求出,这19个二进制位分别代表GaussDB (DWS)的19类数据库对象。如果对应的二进制位取值为0,表示不审计对应的数据库对象的CREATE、DROP、ALTER操作;取值为1,表示审计对应的数据库对象的CREATE、DROP、ALTER操作。这19个二进制位代表的具体审计内容请参见表2。 表2 audit_system_object取值含义说明二进制位含义取值说明第0位是否审计DATABASE对象的CREATE、DROP、ALTER操作。0表示不审计该对象的CREATE、DROP、ALTER操作;1表示审计该对象的CREATE、DROP、ALTER操作。第1位是否审计SCHEMA对象的CREATE、DROP、ALTER操作。0表示不审计该对象的CREATE、DROP、ALTER操作;1表示审计该对象的CREATE、DROP、ALTER操作。第2位是否审计USER对象的CREATE、DROP、ALTER操作。0表示不审计该对象的CREATE、DROP、ALTER操作;1表示审计该对象的CREATE、DROP、ALTER操作。第3位是否审计TABLE对象的CREATE、DROP、ALTER、TRUNCATE操作。0表示不审计该对象的CREATE、DROP、ALTER、TRUNCATE操作;1表示审计该对象的CREATE、DROP、ALTER、TRUNCATE操作。第4位是否审计INDEX对象的CREATE、DROP、ALTER操作。0表示不审计该对象的CREATE、DROP、ALTER操作;1表示审计该对象的CREATE、DROP、ALTER操作。第5位是否审计VIEW对象的CREATE、DROP操作。0表示不审计该对象的CREATE、DROP操作;1表示审计该对象的CREATE、DROP操作。第6位是否审计TRIGGER对象的CREATE、DROP、ALTER操作。0表示不审计该对象的CREATE、DROP、ALTER操作;1表示审计该对象的CREATE、DROP、ALTER操作。第7位是否审计PROCEDURE/FUNCTION对象的CREATE、DROP、ALTER操作。0表示不审计该对象的CREATE、DROP、ALTER操作;1表示审计该对象的CREATE、DROP、ALTER操作。第8位是否审计TABLESPACE对象的CREATE、DROP、ALTER操作。0表示不审计该对象的CREATE、DROP、ALTER操作;1表示审计该对象的CREATE、DROP、ALTER操作。第9位是否审计RESOURCE POOL对象的CREATE、DROP、ALTER操作。0表示不审计该对象的CREATE、DROP、ALTER操作;1表示审计该对象的CREATE、DROP、ALTER操作第10位是否审计WORKLOAD对象的CREATE、DROP、ALTER操作。0表示不审计该对象的CREATE、DROP、ALTER操作;1表示审计该对象的CREATE、DROP、ALTER操作第11位是否审计SERVER FOR HADOOP对象的CREATE、DROP、ALTER操作。0表示不审计该对象的CREATE、DROP、ALTER操作;1表示审计该对象的CREATE、DROP、ALTER操作第12位是否审计DATA SOURCE对象的CRAETE、DROP、ALTER操作。0表示不审计该对象的CREATE、DROP、ALTER操作;1表示审计该对象的CREATE、DROP、ALTER操作。第13位是否审计NODE GROUP对象的CREATE、DROP操作。0表示不审计该对象的CREATE、DROP操作;1表示审计该对象的CREATE、DROP操作。第14位是否审计ROW LEVEL SECURITY对象的CREATE、DROP、ALTER操作。0表示不审计该对象的CREATE、DROP、ALTER操作;1表示审计该对象的CREATE、DROP、ALTER操作。第15位是否审计TYPE对象的CREATE、DROP、ALTER操作。0表示不审计TYPE对象的CREATE、DROP、ALTER操作;1表示审计TYPE对象的CREATE、DROP、ALTER操作。第16位是否审计TEXT SEARCH对象(CONFIGURATION和DICTIONARY)的CREATE、DROP、ALTER操作。0表示不审计TEXT SEARCH对象的CREATE、DROP、ALTER操作;1表示审计TEXT SEARCH对象的CREATE、DROP、ALTER操作。第17位是否审计DIRECTORY对象的CREATE、DROP、ALTER操作。0表示不审计DIRECTORY对象的CREATE、DROP、ALTER操作;1表示审计DIRECTORY对象的CREATE、DROP、ALTER操作。第18位是否审计SYNONYM对象的CREATE、DROP、ALTER操作。0表示不审计SYNONYM对象的CREATE、DROP、ALTER操作;1表示审计SYNONYM对象的CREATE、DROP、ALTER操作。 12295 换算成19位二进制为000 0011 0000 0000 0111,修改第3位的值为1,表示审计TABLE对象的CREATE、DROP、ALTER、TRUNCATE操作,修改后的值为12303(对应的19位二进制为000 0011 0000 0000 1111)参数设置如下:gs_guc reload -Z coordinator -Z datanode -N all -I all -c "audit_enabled=on"gs_guc reload -Z coordinator -Z datanode -N all -I all -c "audit_system_object=12303"参数设置命令截图:设置成功:按照方法1中的流程创建并更新测试表,记录系统当前时间作为参照:查看审计日志:select * from pgxc_query_audit('2021-05-27 16:10:00','2021-05-27 16:20:00') where operation_type='ddl' and object_name='employee_info';截图如下:方法3:CN日志查看方法配置 postgresql.conf 配置文件,通过记录表的 DDL 信息,从而确定表的创建时间。log_statement参数介绍:log_statement参数说明:控制记录SQL语句。该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。即使log_statement设置为all,包含简单语法错误的语句也不会被记录,因为仅在完成基本的语法分析并确定了语句类型之后才记录日志。取值范围:枚举类型•none表示不记录语句。•ddl表示记录所有的数据定义语句,比如CREATE、ALTER和DROP语句。•mod表示记录所有DDL语句,还包括数据修改语句INSERT、UPDATE、DELETE、TRUNCATE和COPY FROM 。•all表示记录所有语句,PREPARE、EXECUTE和EXPLAIN ANALYZE语句也同样被记录。默认值:nonelog_statement参数设置方法:--登录CN所在的数据节点,执行source /opt/huawei/Bigdata/mppdb/.mppdbgs_profilegs_guc reload -Z coordinator -Z datanode -N all -I all -c "log_statement=ddl"参数设置命令截图:查看对应时间点的CN日志,可以记录表的创建时间,详细如下。转载来自:https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=134687
-
1. 管控面版本 : HCS 8.0.3 , 430版本。2. 问题现象: 创建集群失败,后台查询错误步骤为创建资源租户VPC的TASK失败,如下图所示。定位中发现日志报创建subnet失败,提交的创建请求中,dns值为0.0.0.0。3. 原因: DWS安装过程中,工步存在BUG,拿到的租户区dns为0.0.0.0,可在CDK的dns.address参数中查到。4. 解决方法: 去DMK的公共配置中查询g_tenant_dns参数,替换dwscontroller的CDK参数dns.address,升级后重启容器,再发放即可。
上滑加载中
推荐直播
-
华为云码道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华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签