跳至内容
- 实时数仓架构哪些事儿(续13-PostgreSQL CDC数据实时接入Kudu) (qq.com)

- #创建表create table public.dfdms_ddl_audit( c_key bigserial primary key, c_time timestamp, — DDL发生时间 c_user varchar(64), — DDL发生用户: current_user c_txn varchar(16), — DDL发生事务: current transaction c_tag varchar(24), — Either ‘CREATE TABLE’ or ‘ALTER TABLE’ or ‘DROP TABLE’ c_oid integer, — 备用字段 – TG_OBJECTID c_name varchar(64), — 备用字段 – TG_OBJECTNAME c_schema varchar(64), — 备用字段 – TG_SCHEMANAME. For now – holds current_schema c_ddlqry text — 与当前DDL事件关联的DDL查询)#创建函数CREATE OR REPLACE FUNCTION public.dfdms_intercept_ddl() RETURNS event_triggerLANGUAGE plpgsqlSECURITY DEFINER AS $$ declare _qry text;BEGIN if (tg_tag=’CREATE TABLE’ or tg_tag=’ALTER TABLE’ or tg_tag=’DROP TABLE’) then SELECT current_query() into _qry; insert into public.dfdms_ddl_audit values ( default,current_timestamp,current_user,cast(TXID_CURRENT()as varchar(16)),tg_tag,0,”,current_schema,_qry );end if;END;$$;#创建触发器CREATE EVENT TRIGGER dfdms_intercept_ddl ON ddl_command_end EXECUTE PROCEDURE public.dfdms_intercept_ddl();
