add workflow 市场易API联系人,dev
This commit is contained in:
parent
6e4b23ef68
commit
f6e85cb2df
|
|
@ -0,0 +1,46 @@
|
|||
|
||||
DROP TABLE IF EXISTS p20_pdm.t01_scrm_leads;
|
||||
CREATE TABLE IF NOT EXISTS p20_pdm.t01_scrm_leads (
|
||||
customer_id varchar(30)
|
||||
, date timestamp(0)
|
||||
, target_name varchar(30)
|
||||
, c_name varchar(30)
|
||||
, c_type varchar(30)
|
||||
, content_name varchar(30)
|
||||
, source varchar(50)
|
||||
, tag varchar(30)
|
||||
, c_keyword varchar(30)
|
||||
, attr2 varchar(30)
|
||||
, label varchar(30)
|
||||
, group_label varchar(30)
|
||||
, Etl_Batch_No varchar(50)
|
||||
, Etl_First_Dt timestamp(0)
|
||||
, Etl_Job varchar(50)
|
||||
, Etl_Proc_Dt timestamp(0)
|
||||
, Etl_Tx_Dt timestamp(0)
|
||||
, Src_Sysname varchar(50)
|
||||
, Src_Table varchar(50)
|
||||
,primary key( customer_id,date )
|
||||
);
|
||||
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_leads.customer_id IS 'customerId';
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_leads.date IS 'date';
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_leads.target_name IS 'targetName';
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_leads.c_name IS 'c_name';
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_leads.c_type IS 'c_type';
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_leads.content_name IS 'contentName';
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_leads.source IS 'source';
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_leads.tag IS 'tag';
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_leads.c_keyword IS 'c_keyword';
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_leads.attr2 IS 'attr2';
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_leads.label IS 'label';
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_leads.group_label IS 'groupLabel';
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_leads.Etl_Batch_No IS '作业批次号';
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_leads.Etl_First_Dt IS '最初入库时间';
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_leads.Etl_Job IS '作业名称';
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_leads.Etl_Proc_Dt IS '本次入库时间';
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_leads.Etl_Tx_Dt IS '作业运行时间';
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_leads.Src_Sysname IS '来源系统';
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_leads.Src_Table IS '来源表';
|
||||
|
||||
COMMENT ON TABLE p20_pdm.t01_scrm_leads IS 'SCRM线索';
|
||||
|
|
@ -0,0 +1,327 @@
|
|||
/***************************************************************************************************/
|
||||
/*script in Sql, generate by SdmCreateScript 2024(by IdgValue, qihang.feng@idgvalue.COM) */
|
||||
/*VERSION 01.10 revised on 2020-08-25 */
|
||||
/*Brilliance stems from wisdoms. */
|
||||
/*************Head Section**************************************************************************/
|
||||
/*Script Use: Periodically load data to :t01_scrm_leads(SCRM线索) */
|
||||
/*Create Date:2025-10-30 11:07:00 */
|
||||
/*SDM Developed By: dev */
|
||||
/*SDM Developed Date: 2024-01-12 */
|
||||
/*SDM Checked By: dev */
|
||||
/*SDM Checked Date: 2025-10-30 */
|
||||
/*Script Developed By: dev */
|
||||
/*Script Checked By: dev */
|
||||
/*Source table 1: :PDMDB.(SELECT
|
||||
id,
|
||||
connect_name,
|
||||
item->>'fieldId' AS field_id,
|
||||
item->>'fieldName' AS field_name,
|
||||
item->>'fieldDisplayName' AS field_display_name,
|
||||
item->>'value' AS value,
|
||||
item->>'dataType' AS data_type
|
||||
FROM p12_sfull.s98_s_api_contact_events,
|
||||
jsonb_array_elements(properties::jsonb) AS item)*/
|
||||
/*Source table 2: p10_sa.s98_s_api_contact_events */
|
||||
/*Source table 3: p10_sa.s98_s_scrm_leads_af0912 */
|
||||
/*Job Type: Inbound transform (Tier 1 to Tier 2) */
|
||||
/*Target Table:t01_scrm_leads */
|
||||
/*ETL Job Name:t01_scrm_leads */
|
||||
/*ETL Frequency:Daily */
|
||||
/*ETL Policy:F2 */
|
||||
/********************************************************************************************/
|
||||
/*******Main Section**************************************************************************/
|
||||
\set ON_ERROR_STOP on
|
||||
\set AUTOCOMMIT on
|
||||
\timing on
|
||||
|
||||
|
||||
|
||||
/*创建临时表加载当前数据 */
|
||||
CREATE TEMPORARY TABLE t01_scrm_leads_agi_CUR_I
|
||||
( LIKE :PDMDB.t01_scrm_leads)
|
||||
ON COMMIT PRESERVE ROWS;
|
||||
|
||||
|
||||
|
||||
/*创建临时表加载不同数据 */
|
||||
CREATE TEMPORARY TABLE t01_scrm_leads_agi_INS
|
||||
( LIKE :PDMDB.t01_scrm_leads)
|
||||
ON COMMIT PRESERVE ROWS;
|
||||
|
||||
|
||||
/*****************************************************************************************************/
|
||||
/* GROUP 1:Source Table:s98_s_scrm_leads_af0912*******************************************************/
|
||||
/*****************************************************************************************************/
|
||||
|
||||
INSERT INTO t01_scrm_leads_agi_CUR_I (
|
||||
customer_id /*customerId*/
|
||||
,date /*date*/
|
||||
,target_name /*targetName*/
|
||||
,c_name /*c_name*/
|
||||
,c_type /*c_type*/
|
||||
,content_name /*contentName*/
|
||||
,source /*source*/
|
||||
,tag /*tag*/
|
||||
,c_keyword /*c_keyword*/
|
||||
,attr2 /*attr2*/
|
||||
,label /*label*/
|
||||
,group_label /*groupLabel*/
|
||||
,Etl_Batch_No /*作业批次号*/
|
||||
,Etl_First_Dt /*最初入库时间*/
|
||||
,Etl_Job /*作业名称*/
|
||||
,Etl_Proc_Dt /*本次入库时间*/
|
||||
,Etl_Tx_Dt /*作业运行时间*/
|
||||
,Src_Sysname /*来源系统*/
|
||||
,Src_Table /*来源表*/
|
||||
)
|
||||
SELECT
|
||||
COALESCE(TRIM(CAST(p0.customer_id AS varchar(30))),'') /*customer_id*/
|
||||
,COALESCE(TO_TIMESTAMP(CAST(p0.date AS VARCHAR(19)),'YYYY-MM-DD HH24:mi:ss'),TO_TIMESTAMP(:NULLDATE,'YYYYMMDD')) /*date*/
|
||||
,COALESCE(TRIM(CAST(p0.target_name AS varchar(30))),'') /*target_name*/
|
||||
,COALESCE(TRIM(CAST(p0.c_name AS varchar(30))),'') /*c_name*/
|
||||
,COALESCE(TRIM(CAST(p0.c_type AS varchar(30))),'') /*c_type*/
|
||||
,COALESCE(TRIM(CAST(p0.content_name AS varchar(30))),'') /*content_name*/
|
||||
,COALESCE(TRIM(CAST(p0.source AS varchar(50))),'') /*source*/
|
||||
,COALESCE(TRIM(CAST(p0.tag AS varchar(30))),'') /*tag*/
|
||||
,COALESCE(TRIM(CAST(p0.c_keyword AS varchar(30))),'') /*c_keyword*/
|
||||
,COALESCE(TRIM(CAST(p0.attr2 AS varchar(30))),'') /*attr2*/
|
||||
,COALESCE(TRIM(CAST(p0.label AS varchar(30))),'') /*label*/
|
||||
,COALESCE(TRIM(CAST(p0.group_label AS varchar(30))),'') /*group_label*/
|
||||
,0 /*Etl_Batch_No*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*Etl_First_Dt*/
|
||||
,:ETLJOB /*Etl_Job*/
|
||||
,current_timestamp(0) /*Etl_Proc_Dt*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*Etl_Tx_Dt*/
|
||||
,Substr('s98_s_scrm_leads_af0912',1,3) /*Src_Sysname*/
|
||||
,'s98_s_scrm_leads_af0912' /*Src_Table*/
|
||||
|
||||
FROM (select distinct on (customer_id ,"date") * from p10_sa.s98_s_scrm_leads_af0912 where 1=2) p0
|
||||
|
||||
|
||||
;
|
||||
|
||||
|
||||
|
||||
/*****************************************************************************************************/
|
||||
/* GROUP 2:Source Table:s98_s_api_contact_events******************************************************/
|
||||
/*****************************************************************************************************/
|
||||
|
||||
INSERT INTO t01_scrm_leads_agi_CUR_I (
|
||||
customer_id /*customerId*/
|
||||
,date /*date*/
|
||||
,target_name /*targetName*/
|
||||
,c_name /*c_name*/
|
||||
,c_type /*c_type*/
|
||||
,content_name /*contentName*/
|
||||
,source /*source*/
|
||||
,tag /*tag*/
|
||||
,c_keyword /*c_keyword*/
|
||||
,attr2 /*attr2*/
|
||||
,label /*label*/
|
||||
,group_label /*groupLabel*/
|
||||
,Etl_Batch_No /*作业批次号*/
|
||||
,Etl_First_Dt /*最初入库时间*/
|
||||
,Etl_Job /*作业名称*/
|
||||
,Etl_Proc_Dt /*本次入库时间*/
|
||||
,Etl_Tx_Dt /*作业运行时间*/
|
||||
,Src_Sysname /*来源系统*/
|
||||
,Src_Table /*来源表*/
|
||||
)
|
||||
SELECT
|
||||
COALESCE(TRIM(CAST(p0.contact_id AS varchar(30))),'') /*customer_id*/
|
||||
,TO_TIMESTAMP(substr(p0.at,1,23),'YYYY-MM-DD"T"HH24:MI:SS::MS') AT TIME ZONE 'PRC' /*date*/
|
||||
,max(case when p1.connect_name = '泰克科技' and field_display_name='菜单按钮名称' then value
|
||||
when p1.connect_name = '微站' and field_display_name='微站标题' then value
|
||||
when p1.connect_name = '泰克科技企微' and field_display_name='员工姓名' then value
|
||||
when p1.connect_name = '泰克科技服务号' and field_display_name='菜单按钮名称' then value
|
||||
when p1.connect_name = '签到码' and field_display_name='关联表单名称' then value
|
||||
when p1.connect_name = '系统-短信' and field_display_name='模版名称' then value
|
||||
when p1.connect_name = '直播间' and field_display_name='页面标题' then value
|
||||
end ) /*target_name*/
|
||||
,p0.connect_name /*c_name*/
|
||||
,'' /*c_type*/
|
||||
,max(case when p1.connect_name = '泰克科技' and field_display_name='菜单按钮名称' then value
|
||||
when p1.connect_name = '微站' and field_display_name='微站标题' then value
|
||||
when p1.connect_name = '泰克科技企微' and field_display_name='员工姓名' then value
|
||||
when p1.connect_name = '泰克科技服务号' and field_display_name='菜单按钮名称' then value
|
||||
when p1.connect_name = '签到码' and field_display_name='关联表单名称' then value
|
||||
when p1.connect_name = '系统-短信' and field_display_name='模版名称' then value
|
||||
when p1.connect_name = '直播间' and field_display_name='页面标题' then value
|
||||
end ) /*content_name*/
|
||||
,p0.channel_name /*source*/
|
||||
,'' /*tag*/
|
||||
,'' /*c_keyword*/
|
||||
,COALESCE(TRIM(CAST(p0.properties AS varchar(30))),'') /*attr2*/
|
||||
,COALESCE(TRIM(CAST(p0.meta_remark AS varchar(30))),'') /*label*/
|
||||
,COALESCE(TRIM(CAST(p0.meta_remark AS varchar(30))),'') /*group_label*/
|
||||
,0 /*Etl_Batch_No*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*Etl_First_Dt*/
|
||||
,:ETLJOB /*Etl_Job*/
|
||||
,current_timestamp(0) /*Etl_Proc_Dt*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*Etl_Tx_Dt*/
|
||||
,Substr('s98_s_api_contact_events',1,3) /*Src_Sysname*/
|
||||
,'s98_s_api_contact_events' /*Src_Table*/
|
||||
|
||||
FROM p10_sa.s98_s_api_contact_events p0
|
||||
LEFT JOIN ((SELECT
|
||||
id,
|
||||
connect_name,
|
||||
item->>'fieldId' AS field_id,
|
||||
item->>'fieldName' AS field_name,
|
||||
item->>'fieldDisplayName' AS field_display_name,
|
||||
item->>'value' AS value,
|
||||
item->>'dataType' AS data_type
|
||||
FROM p12_sfull.s98_s_api_contact_events,
|
||||
jsonb_array_elements(properties::jsonb) AS item)) p1
|
||||
ON p1.id=p0.id
|
||||
group by p0 .contact_id ,p0 .properties ,p0.at,p0 .connect_name,p0 .meta_remark ,p0 .channel_name
|
||||
|
||||
;
|
||||
|
||||
|
||||
|
||||
/*将不同数据插入到临时表 */
|
||||
;INSERT INTO t01_scrm_leads_agi_INS (
|
||||
target_name /*targetName*/
|
||||
,c_name /*c_name*/
|
||||
,c_type /*c_type*/
|
||||
,content_name /*contentName*/
|
||||
,source /*source*/
|
||||
,tag /*tag*/
|
||||
,c_keyword /*c_keyword*/
|
||||
,attr2 /*attr2*/
|
||||
,group_label /*groupLabel*/
|
||||
,customer_id /*customerId*/
|
||||
,date /*date*/
|
||||
,label /*label*/
|
||||
,Etl_Batch_No /*作业批次号*/
|
||||
,Etl_First_Dt /*最初入库时间*/
|
||||
,Etl_Job /*作业名称*/
|
||||
,Etl_Proc_Dt /*本次入库时间*/
|
||||
,Etl_Tx_Dt /*作业运行时间*/
|
||||
,Src_Sysname /*来源系统*/
|
||||
,Src_Table /*来源表*/
|
||||
|
||||
)
|
||||
SELECT
|
||||
P1.target_name /*targetName*/
|
||||
,P1.c_name /*c_name*/
|
||||
,P1.c_type /*c_type*/
|
||||
,P1.content_name /*contentName*/
|
||||
,P1.source /*source*/
|
||||
,P1.tag /*tag*/
|
||||
,P1.c_keyword /*c_keyword*/
|
||||
,P1.attr2 /*attr2*/
|
||||
,P1.group_label /*groupLabel*/
|
||||
,P1.customer_id /*customerId*/
|
||||
,P1.date /*date*/
|
||||
,P1.label /*label*/
|
||||
,P1.Etl_Batch_No /*作业批次号*/
|
||||
,P1.Etl_First_Dt /*最初入库时间*/
|
||||
,P1.Etl_Job /*作业名称*/
|
||||
,P1.Etl_Proc_Dt /*本次入库时间*/
|
||||
,P1.Etl_Tx_Dt /*作业运行时间*/
|
||||
,P1.Src_Sysname /*来源系统*/
|
||||
,P1.Src_Table /*来源表*/
|
||||
|
||||
FROM t01_scrm_leads_agi_CUR_I P1
|
||||
LEFT JOIN :PDMDB.t01_scrm_leads P2
|
||||
ON P1.target_name = P2.target_name
|
||||
AND P1.c_name = P2.c_name
|
||||
AND P1.c_type = P2.c_type
|
||||
AND P1.content_name = P2.content_name
|
||||
AND P1.source = P2.source
|
||||
AND P1.tag = P2.tag
|
||||
AND P1.c_keyword = P2.c_keyword
|
||||
AND P1.attr2 = P2.attr2
|
||||
AND P1.group_label = P2.group_label
|
||||
AND P1.customer_id = P2.customer_id
|
||||
AND P1.date = P2.date
|
||||
AND P1.label = P2.label
|
||||
|
||||
WHERE P2.target_name IS NULL
|
||||
OR P2.c_name IS NULL
|
||||
OR P2.c_type IS NULL
|
||||
OR P2.content_name IS NULL
|
||||
OR P2.source IS NULL
|
||||
OR P2.tag IS NULL
|
||||
OR P2.c_keyword IS NULL
|
||||
OR P2.attr2 IS NULL
|
||||
OR P2.group_label IS NULL
|
||||
OR P2.customer_id IS NULL
|
||||
OR P2.date IS NULL
|
||||
OR P2.label IS NULL
|
||||
|
||||
;
|
||||
/*将新增数据插入到目标表 */
|
||||
;INSERT INTO :PDMDB.t01_scrm_leads (
|
||||
target_name /*targetName*/
|
||||
,c_name /*c_name*/
|
||||
,c_type /*c_type*/
|
||||
,content_name /*contentName*/
|
||||
,source /*source*/
|
||||
,tag /*tag*/
|
||||
,c_keyword /*c_keyword*/
|
||||
,attr2 /*attr2*/
|
||||
,group_label /*groupLabel*/
|
||||
,customer_id /*customerId*/
|
||||
,date /*date*/
|
||||
,label /*label*/
|
||||
,Etl_Batch_No /*作业批次号*/
|
||||
,Etl_First_Dt /*最初入库时间*/
|
||||
,Etl_Job /*作业名称*/
|
||||
,Etl_Proc_Dt /*本次入库时间*/
|
||||
,Etl_Tx_Dt /*作业运行时间*/
|
||||
,Src_Sysname /*来源系统*/
|
||||
,Src_Table /*来源表*/
|
||||
|
||||
)
|
||||
SELECT
|
||||
P1.target_name /*targetName*/
|
||||
,P1.c_name /*c_name*/
|
||||
,P1.c_type /*c_type*/
|
||||
,P1.content_name /*contentName*/
|
||||
,P1.source /*source*/
|
||||
,P1.tag /*tag*/
|
||||
,P1.c_keyword /*c_keyword*/
|
||||
,P1.attr2 /*attr2*/
|
||||
,P1.group_label /*groupLabel*/
|
||||
,P1.customer_id /*customerId*/
|
||||
,P1.date /*date*/
|
||||
,P1.label /*label*/
|
||||
,P1.Etl_Batch_No /*作业批次号*/
|
||||
,P1.Etl_First_Dt /*最初入库时间*/
|
||||
,P1.Etl_Job /*作业名称*/
|
||||
,P1.Etl_Proc_Dt /*本次入库时间*/
|
||||
,P1.Etl_Tx_Dt /*作业运行时间*/
|
||||
,P1.Src_Sysname /*来源系统*/
|
||||
,P1.Src_Table /*来源表*/
|
||||
|
||||
FROM t01_scrm_leads_agi_INS P1
|
||||
ON CONFLICT ( customer_id,date,label)
|
||||
DO UPDATE SET
|
||||
customer_id=excluded.customer_id
|
||||
,date=excluded.date
|
||||
,label=excluded.label
|
||||
,target_name=excluded.target_name
|
||||
,c_name=excluded.c_name
|
||||
,c_type=excluded.c_type
|
||||
,content_name=excluded.content_name
|
||||
,source=excluded.source
|
||||
,tag=excluded.tag
|
||||
,c_keyword=excluded.c_keyword
|
||||
,attr2=excluded.attr2
|
||||
,group_label=excluded.group_label
|
||||
,Etl_Batch_No=excluded.Etl_Batch_No
|
||||
,Etl_First_Dt=excluded.Etl_First_Dt
|
||||
,Etl_Job=excluded.Etl_Job
|
||||
,Etl_Proc_Dt=excluded.Etl_Proc_Dt
|
||||
,Etl_Tx_Dt=excluded.Etl_Tx_Dt
|
||||
,Src_Sysname=excluded.Src_Sysname
|
||||
,Src_Table=excluded.Src_Table
|
||||
|
||||
|
||||
;
|
||||
/*****程序结束退出 */
|
||||
\q
|
||||
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
|
||||
DROP TABLE IF EXISTS p30_common.d_scrm_contact;
|
||||
CREATE TABLE IF NOT EXISTS p30_common.d_scrm_contact (
|
||||
scrm_leads_id VARCHAR(20)
|
||||
, city_name VARCHAR(20)
|
||||
, company_name VARCHAR(50)
|
||||
, email VARCHAR(50)
|
||||
, email_data_ind char(1)
|
||||
, email_availability char(1)
|
||||
, mobile_phone VARCHAR(20)
|
||||
, mobile_phone_data_ind char(1)
|
||||
, mobile_phone_availability char(1)
|
||||
, full_name VARCHAR(20)
|
||||
, prov_name VARCHAR(20)
|
||||
, create_time timestamp(0)
|
||||
, wechat_id VARCHAR(100)
|
||||
, update_time timestamp(0)
|
||||
, Etl_Batch_No varchar(50)
|
||||
, Etl_First_Dt timestamp(0)
|
||||
, Etl_Job varchar(50)
|
||||
, Etl_Proc_Dt timestamp(0)
|
||||
, Etl_Tx_Dt timestamp(0)
|
||||
, Src_Sysname varchar(50)
|
||||
, Src_Table varchar(50)
|
||||
,primary key( scrm_leads_id )
|
||||
);
|
||||
|
||||
COMMENT ON COLUMN p30_common.d_scrm_contact.scrm_leads_id IS 'SCRM线索ID';
|
||||
COMMENT ON COLUMN p30_common.d_scrm_contact.city_name IS '城市';
|
||||
COMMENT ON COLUMN p30_common.d_scrm_contact.company_name IS '公司';
|
||||
COMMENT ON COLUMN p30_common.d_scrm_contact.email IS '邮箱';
|
||||
COMMENT ON COLUMN p30_common.d_scrm_contact.email_data_ind IS '邮箱数据标志';
|
||||
COMMENT ON COLUMN p30_common.d_scrm_contact.email_availability IS '邮箱有效性';
|
||||
COMMENT ON COLUMN p30_common.d_scrm_contact.mobile_phone IS '手机号码';
|
||||
COMMENT ON COLUMN p30_common.d_scrm_contact.mobile_phone_data_ind IS '手机号数据标志';
|
||||
COMMENT ON COLUMN p30_common.d_scrm_contact.mobile_phone_availability IS '手机号数据有效性';
|
||||
COMMENT ON COLUMN p30_common.d_scrm_contact.full_name IS '姓名';
|
||||
COMMENT ON COLUMN p30_common.d_scrm_contact.prov_name IS '省份';
|
||||
COMMENT ON COLUMN p30_common.d_scrm_contact.create_time IS '创建时间';
|
||||
COMMENT ON COLUMN p30_common.d_scrm_contact.wechat_id IS '身份-企业微信外部联系人';
|
||||
COMMENT ON COLUMN p30_common.d_scrm_contact.update_time IS '更新时间';
|
||||
COMMENT ON COLUMN p30_common.d_scrm_contact.Etl_Batch_No IS '作业批次号';
|
||||
COMMENT ON COLUMN p30_common.d_scrm_contact.Etl_First_Dt IS '最初入库时间';
|
||||
COMMENT ON COLUMN p30_common.d_scrm_contact.Etl_Job IS '作业名称';
|
||||
COMMENT ON COLUMN p30_common.d_scrm_contact.Etl_Proc_Dt IS '本次入库时间';
|
||||
COMMENT ON COLUMN p30_common.d_scrm_contact.Etl_Tx_Dt IS '作业运行时间';
|
||||
COMMENT ON COLUMN p30_common.d_scrm_contact.Src_Sysname IS '来源系统';
|
||||
COMMENT ON COLUMN p30_common.d_scrm_contact.Src_Table IS '来源表';
|
||||
|
||||
COMMENT ON TABLE p30_common.d_scrm_contact IS 'SCRM联系方式';
|
||||
|
|
@ -0,0 +1,323 @@
|
|||
/***************************************************************************************************/
|
||||
/*script in Sql, generate by SdmCreateScript 2020(by Qihang Feng, QF255001@TERADATA.COM) */
|
||||
/*VERSION 01.10 revised on 2020-08-25 */
|
||||
/*Brilliance stems from wisdoms. */
|
||||
/*************Head Section**************************************************************************/
|
||||
/*Script Use: Periodically load data to :d_scrm_contact(SCRM联系方式) */
|
||||
/*Create Date:2024-06-06 15:01:23 */
|
||||
/*SDM Developed By: dev */
|
||||
/*SDM Developed Date: 2024-01-18 */
|
||||
/*SDM Checked By: dev */
|
||||
/*SDM Checked Date: 2024-06-06 */
|
||||
/*Script Developed By: dev */
|
||||
/*Script Checked By: dev */
|
||||
/*Source table 1: :PDMDB.t01_scrm_contact_merge */
|
||||
/*Source table 2: :SADB.select distinct on (scrm_leads_id) * from p20_pdm.t01_scrm_contact_update tscu
|
||||
order by scrm_leads_id,update_time desc*/
|
||||
/*Source table 3: p20_pdm.t01_scrm_contact */
|
||||
/*Source table 4: :PDMDB.t01_scrm_contact_his */
|
||||
/*Job Type: Inbound transform (Tier 1 to Tier 2) */
|
||||
/*Target Table:d_scrm_contact */
|
||||
/*ETL Job Name:d_scrm_contact */
|
||||
/*ETL Frequency:Daily */
|
||||
/*ETL Policy:F2 */
|
||||
/********************************************************************************************/
|
||||
/*******Main Section**************************************************************************/
|
||||
\set ON_ERROR_STOP on
|
||||
\set AUTOCOMMIT on
|
||||
\timing on
|
||||
|
||||
|
||||
|
||||
/*创建临时表加载当前数据 */
|
||||
CREATE TEMPORARY TABLE d_scrm_contact_agi_CUR_I
|
||||
( LIKE :COMMDB.d_scrm_contact)
|
||||
ON COMMIT PRESERVE ROWS;
|
||||
|
||||
|
||||
|
||||
/*创建临时表加载不同数据 */
|
||||
CREATE TEMPORARY TABLE d_scrm_contact_agi_INS
|
||||
( LIKE :COMMDB.d_scrm_contact)
|
||||
ON COMMIT PRESERVE ROWS;
|
||||
|
||||
|
||||
/*****************************************************************************************************/
|
||||
/* GROUP 1:Source Table:t01_scrm_contact**************************************************************/
|
||||
/*****************************************************************************************************/
|
||||
|
||||
INSERT INTO d_scrm_contact_agi_CUR_I (
|
||||
scrm_leads_id /*SCRM线索ID*/
|
||||
,city_name /*城市*/
|
||||
,company_name /*公司*/
|
||||
,email /*邮箱*/
|
||||
,email_data_ind /*邮箱数据标志*/
|
||||
,email_availability /*邮箱有效性*/
|
||||
,mobile_phone /*手机号码*/
|
||||
,mobile_phone_data_ind /*手机号数据标志*/
|
||||
,mobile_phone_availability /*手机号数据有效性*/
|
||||
,full_name /*姓名*/
|
||||
,prov_name /*省份*/
|
||||
,create_time /*创建时间*/
|
||||
,wechat_id /*身份-企业微信外部联系人*/
|
||||
,update_time /*更新时间*/
|
||||
,Etl_Batch_No /*作业批次号*/
|
||||
,Etl_First_Dt /*最初入库时间*/
|
||||
,Etl_Job /*作业名称*/
|
||||
,Etl_Proc_Dt /*本次入库时间*/
|
||||
,Etl_Tx_Dt /*作业运行时间*/
|
||||
,Src_Sysname /*来源系统*/
|
||||
,Src_Table /*来源表*/
|
||||
)
|
||||
SELECT
|
||||
COALESCE(TRIM(p0.scrm_leads_id),'') /*scrm_leads_id*/
|
||||
,COALESCE(TRIM(p0.city_name),'') /*city_name*/
|
||||
,COALESCE(TRIM(p0.company_name),'') /*company_name*/
|
||||
,COALESCE(TRIM(p0.email),'') /*email*/
|
||||
,case when length(p0.email)>1 then '1' else 0 end /*email_data_ind*/
|
||||
,case when p0.email ~ '[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$' and length(p0.email)>10 then '1'
|
||||
else '0' end /*email_availability*/
|
||||
,replace(p0.mobile_number,'.0','') /*mobile_phone*/
|
||||
,case when length(replace(p0.mobile_number,'.0',''))>1 then '1' else 0 end /*mobile_phone_data_ind*/
|
||||
,case when replace(p0.mobile_number,'.0','') ~ '^1[3-9]\d{9}$' then '1'
|
||||
else '0' end /*mobile_phone_availability*/
|
||||
,COALESCE(TRIM(p0.full_name),'') /*full_name*/
|
||||
,COALESCE(TRIM(p0.prov_name),'') /*prov_name*/
|
||||
,COALESCE(p0.create_time,TO_TIMESTAMP(:NULLDATE,'YYYYMMDD')) /*create_time*/
|
||||
,'' /*wechat_id*/
|
||||
,COALESCE(p0.update_time,TO_TIMESTAMP(:NULLDATE,'YYYYMMDD')) /*update_time*/
|
||||
,0 /*Etl_Batch_No*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*Etl_First_Dt*/
|
||||
,:ETLJOB /*Etl_Job*/
|
||||
,current_timestamp(0) /*Etl_Proc_Dt*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*Etl_Tx_Dt*/
|
||||
,Substr('t01_scrm_contact',1,3) /*Src_Sysname*/
|
||||
,'t01_scrm_contact' /*Src_Table*/
|
||||
|
||||
FROM p20_pdm.t01_scrm_contact p0
|
||||
LEFT JOIN :PDMDB.t01_scrm_contact_merge p1
|
||||
ON p0.scrm_leads_id =p1.merged_leads_id
|
||||
|
||||
where p1.scrm_leads_id is null
|
||||
;
|
||||
|
||||
|
||||
|
||||
/*****************************************************************************************************/
|
||||
/* GROUP 2:Source Table:t01_scrm_contact_his**********************************************************/
|
||||
/*****************************************************************************************************/
|
||||
INSERT INTO d_scrm_contact_agi_CUR_I (
|
||||
scrm_leads_id /*SCRM线索ID*/
|
||||
,city_name /*城市*/
|
||||
,company_name /*公司*/
|
||||
,email /*邮箱*/
|
||||
,email_data_ind /*邮箱数据标志*/
|
||||
,email_availability /*邮箱有效性*/
|
||||
,mobile_phone /*手机号码*/
|
||||
,mobile_phone_data_ind /*手机号数据标志*/
|
||||
,mobile_phone_availability /*手机号数据有效性*/
|
||||
,full_name /*姓名*/
|
||||
,prov_name /*省份*/
|
||||
,create_time /*创建时间*/
|
||||
,wechat_id /*身份-企业微信外部联系人*/
|
||||
,update_time /*更新时间*/
|
||||
,Etl_Batch_No /*作业批次号*/
|
||||
,Etl_First_Dt /*最初入库时间*/
|
||||
,Etl_Job /*作业名称*/
|
||||
,Etl_Proc_Dt /*本次入库时间*/
|
||||
,Etl_Tx_Dt /*作业运行时间*/
|
||||
,Src_Sysname /*来源系统*/
|
||||
,Src_Table /*来源表*/
|
||||
)
|
||||
SELECT
|
||||
COALESCE(TRIM(p0.scrm_leads_id),'') /*scrm_leads_id*/
|
||||
,coalesce(p1.city_name,p0.city_name) /*city_name*/
|
||||
,coalesce(p1.company_name,p0.company_name) /*company_name*/
|
||||
,coalesce(p1.email,p0.email) /*email*/
|
||||
,case when length(coalesce(p1.email,p0.email))>1 then '1' else 0 end /*email_data_ind*/
|
||||
,case when coalesce(p1.email,p0.email) ~ '[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$' and length(coalesce(p1.email,p0.email))>10 then '1'
|
||||
else '0' end /*email_availability*/
|
||||
,coalesce(p1.mobile_number,p0.mobile_number,'') /*mobile_phone*/
|
||||
,case when length(coalesce(p1.mobile_number,p0.mobile_number))>1 then '1' else 0 end /*mobile_phone_data_ind*/
|
||||
,case when coalesce(p1.mobile_number,p0.mobile_number) ~ '^1[3-9]\d{9}$' then '1'
|
||||
else '0' end /*mobile_phone_availability*/
|
||||
,coalesce(p1.full_name,p0.full_name,'') /*full_name*/
|
||||
,coalesce(p1.prov_name,p0.prov_name) /*prov_name*/
|
||||
,COALESCE(p0.create_time,TO_TIMESTAMP(:NULLDATE,'YYYYMMDD')) /*create_time*/
|
||||
,coalesce(p1.wechat_id,p0.wechat_id) /*wechat_id*/
|
||||
,COALESCE(p0.last_update_time,TO_TIMESTAMP(:NULLDATE,'YYYYMMDD')) /*update_time*/
|
||||
,0 /*Etl_Batch_No*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*Etl_First_Dt*/
|
||||
,:ETLJOB /*Etl_Job*/
|
||||
,current_timestamp(0) /*Etl_Proc_Dt*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*Etl_Tx_Dt*/
|
||||
,Substr('t01_scrm_contact_his',1,3) /*Src_Sysname*/
|
||||
,'t01_scrm_contact_his' /*Src_Table*/
|
||||
|
||||
FROM :PDMDB.t01_scrm_contact_his p0
|
||||
LEFT JOIN (select distinct on (scrm_leads_id) * from p20_pdm.t01_scrm_contact_update tscu
|
||||
order by scrm_leads_id,update_time desc) p1
|
||||
ON p0 .scrm_leads_id =p1 .scrm_leads_id
|
||||
;
|
||||
|
||||
|
||||
|
||||
/*将不同数据插入到临时表 */
|
||||
;INSERT INTO d_scrm_contact_agi_INS (
|
||||
city_name /*城市*/
|
||||
,company_name /*公司*/
|
||||
,email /*邮箱*/
|
||||
,email_data_ind /*邮箱数据标志*/
|
||||
,email_availability /*邮箱有效性*/
|
||||
,mobile_phone /*手机号码*/
|
||||
,mobile_phone_data_ind /*手机号数据标志*/
|
||||
,mobile_phone_availability /*手机号数据有效性*/
|
||||
,full_name /*姓名*/
|
||||
,prov_name /*省份*/
|
||||
,create_time /*创建时间*/
|
||||
,wechat_id /*身份-企业微信外部联系人*/
|
||||
,update_time /*更新时间*/
|
||||
,scrm_leads_id /*SCRM线索ID*/
|
||||
,Etl_Batch_No /*作业批次号*/
|
||||
,Etl_First_Dt /*最初入库时间*/
|
||||
,Etl_Job /*作业名称*/
|
||||
,Etl_Proc_Dt /*本次入库时间*/
|
||||
,Etl_Tx_Dt /*作业运行时间*/
|
||||
,Src_Sysname /*来源系统*/
|
||||
,Src_Table /*来源表*/
|
||||
|
||||
)
|
||||
SELECT
|
||||
P1.city_name /*城市*/
|
||||
,P1.company_name /*公司*/
|
||||
,P1.email /*邮箱*/
|
||||
,P1.email_data_ind /*邮箱数据标志*/
|
||||
,P1.email_availability /*邮箱有效性*/
|
||||
,P1.mobile_phone /*手机号码*/
|
||||
,P1.mobile_phone_data_ind /*手机号数据标志*/
|
||||
,P1.mobile_phone_availability /*手机号数据有效性*/
|
||||
,P1.full_name /*姓名*/
|
||||
,P1.prov_name /*省份*/
|
||||
,P1.create_time /*创建时间*/
|
||||
,P1.wechat_id /*身份-企业微信外部联系人*/
|
||||
,P1.update_time /*更新时间*/
|
||||
,P1.scrm_leads_id /*SCRM线索ID*/
|
||||
,P1.Etl_Batch_No /*作业批次号*/
|
||||
,P1.Etl_First_Dt /*最初入库时间*/
|
||||
,P1.Etl_Job /*作业名称*/
|
||||
,P1.Etl_Proc_Dt /*本次入库时间*/
|
||||
,P1.Etl_Tx_Dt /*作业运行时间*/
|
||||
,P1.Src_Sysname /*来源系统*/
|
||||
,P1.Src_Table /*来源表*/
|
||||
|
||||
FROM d_scrm_contact_agi_CUR_I P1
|
||||
LEFT JOIN :COMMDB.d_scrm_contact P2
|
||||
ON P1.city_name = P2.city_name
|
||||
AND P1.company_name = P2.company_name
|
||||
AND P1.email = P2.email
|
||||
AND P1.email_data_ind = P2.email_data_ind
|
||||
AND P1.email_availability = P2.email_availability
|
||||
AND P1.mobile_phone = P2.mobile_phone
|
||||
AND P1.mobile_phone_data_ind = P2.mobile_phone_data_ind
|
||||
AND P1.mobile_phone_availability = P2.mobile_phone_availability
|
||||
AND P1.full_name = P2.full_name
|
||||
AND P1.prov_name = P2.prov_name
|
||||
AND P1.create_time = P2.create_time
|
||||
AND P1.wechat_id = P2.wechat_id
|
||||
AND P1.update_time = P2.update_time
|
||||
AND P1.scrm_leads_id = P2.scrm_leads_id
|
||||
|
||||
WHERE P2.city_name IS NULL
|
||||
OR P2.company_name IS NULL
|
||||
OR P2.email IS NULL
|
||||
OR P2.email_data_ind IS NULL
|
||||
OR P2.email_availability IS NULL
|
||||
OR P2.mobile_phone IS NULL
|
||||
OR P2.mobile_phone_data_ind IS NULL
|
||||
OR P2.mobile_phone_availability IS NULL
|
||||
OR P2.full_name IS NULL
|
||||
OR P2.prov_name IS NULL
|
||||
OR P2.create_time IS NULL
|
||||
OR P2.wechat_id IS NULL
|
||||
OR P2.update_time IS NULL
|
||||
OR P2.scrm_leads_id IS NULL
|
||||
|
||||
;
|
||||
/*将新增数据插入到目标表 */
|
||||
;INSERT INTO :COMMDB.d_scrm_contact (
|
||||
city_name /*城市*/
|
||||
,company_name /*公司*/
|
||||
,email /*邮箱*/
|
||||
,email_data_ind /*邮箱数据标志*/
|
||||
,email_availability /*邮箱有效性*/
|
||||
,mobile_phone /*手机号码*/
|
||||
,mobile_phone_data_ind /*手机号数据标志*/
|
||||
,mobile_phone_availability /*手机号数据有效性*/
|
||||
,full_name /*姓名*/
|
||||
,prov_name /*省份*/
|
||||
,create_time /*创建时间*/
|
||||
,wechat_id /*身份-企业微信外部联系人*/
|
||||
,update_time /*更新时间*/
|
||||
,scrm_leads_id /*SCRM线索ID*/
|
||||
,Etl_Batch_No /*作业批次号*/
|
||||
,Etl_First_Dt /*最初入库时间*/
|
||||
,Etl_Job /*作业名称*/
|
||||
,Etl_Proc_Dt /*本次入库时间*/
|
||||
,Etl_Tx_Dt /*作业运行时间*/
|
||||
,Src_Sysname /*来源系统*/
|
||||
,Src_Table /*来源表*/
|
||||
|
||||
)
|
||||
SELECT
|
||||
P1.city_name /*城市*/
|
||||
,P1.company_name /*公司*/
|
||||
,P1.email /*邮箱*/
|
||||
,P1.email_data_ind /*邮箱数据标志*/
|
||||
,P1.email_availability /*邮箱有效性*/
|
||||
,P1.mobile_phone /*手机号码*/
|
||||
,P1.mobile_phone_data_ind /*手机号数据标志*/
|
||||
,P1.mobile_phone_availability /*手机号数据有效性*/
|
||||
,P1.full_name /*姓名*/
|
||||
,P1.prov_name /*省份*/
|
||||
,P1.create_time /*创建时间*/
|
||||
,P1.wechat_id /*身份-企业微信外部联系人*/
|
||||
,P1.update_time /*更新时间*/
|
||||
,P1.scrm_leads_id /*SCRM线索ID*/
|
||||
,P1.Etl_Batch_No /*作业批次号*/
|
||||
,P1.Etl_First_Dt /*最初入库时间*/
|
||||
,P1.Etl_Job /*作业名称*/
|
||||
,P1.Etl_Proc_Dt /*本次入库时间*/
|
||||
,P1.Etl_Tx_Dt /*作业运行时间*/
|
||||
,P1.Src_Sysname /*来源系统*/
|
||||
,P1.Src_Table /*来源表*/
|
||||
|
||||
FROM d_scrm_contact_agi_INS P1
|
||||
ON CONFLICT ( scrm_leads_id)
|
||||
DO UPDATE SET
|
||||
scrm_leads_id=excluded.scrm_leads_id
|
||||
,city_name=excluded.city_name
|
||||
,company_name=excluded.company_name
|
||||
,email=excluded.email
|
||||
,email_data_ind=excluded.email_data_ind
|
||||
,email_availability=excluded.email_availability
|
||||
,mobile_phone=excluded.mobile_phone
|
||||
,mobile_phone_data_ind=excluded.mobile_phone_data_ind
|
||||
,mobile_phone_availability=excluded.mobile_phone_availability
|
||||
,full_name=excluded.full_name
|
||||
,prov_name=excluded.prov_name
|
||||
,create_time=excluded.create_time
|
||||
,wechat_id=excluded.wechat_id
|
||||
,update_time=excluded.update_time
|
||||
,Etl_Batch_No=excluded.Etl_Batch_No
|
||||
,Etl_First_Dt=excluded.Etl_First_Dt
|
||||
,Etl_Job=excluded.Etl_Job
|
||||
,Etl_Proc_Dt=excluded.Etl_Proc_Dt
|
||||
,Etl_Tx_Dt=excluded.Etl_Tx_Dt
|
||||
,Src_Sysname=excluded.Src_Sysname
|
||||
,Src_Table=excluded.Src_Table
|
||||
|
||||
|
||||
;
|
||||
/*****程序结束退出 */
|
||||
\q
|
||||
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
|
||||
DROP TABLE IF EXISTS p20_pdm.t01_scrm_contact;
|
||||
CREATE TABLE IF NOT EXISTS p20_pdm.t01_scrm_contact (
|
||||
scrm_leads_id VARCHAR(20)
|
||||
, city_name VARCHAR(20)
|
||||
, company_name VARCHAR(50)
|
||||
, industry VARCHAR(100)
|
||||
, department VARCHAR(50)
|
||||
, district VARCHAR(50)
|
||||
, address_detail VARCHAR(100)
|
||||
, email VARCHAR(50)
|
||||
, mobile_number VARCHAR(20)
|
||||
, full_name VARCHAR(20)
|
||||
, nick_name VARCHAR(20)
|
||||
, prov_name VARCHAR(20)
|
||||
, create_time timestamp(0)
|
||||
, wechat_id VARCHAR(100)
|
||||
, update_time timestamp(0)
|
||||
, etl_batch_no VARCHAR(50)
|
||||
, etl_first_dt timestamp(0)
|
||||
, etl_job VARCHAR(50)
|
||||
, etl_proc_dt timestamp(0)
|
||||
, etl_tx_dt timestamp(0)
|
||||
, src_sysname VARCHAR(50)
|
||||
, src_table VARCHAR(50)
|
||||
,primary key( scrm_leads_id )
|
||||
);
|
||||
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_contact.scrm_leads_id IS 'SCRM线索ID';
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_contact.city_name IS '城市';
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_contact.company_name IS '公司';
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_contact.industry IS '行业';
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_contact.department IS '部门';
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_contact.district IS '区';
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_contact.address_detail IS '详细地址';
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_contact.email IS '邮箱';
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_contact.mobile_number IS '手机号码';
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_contact.full_name IS '姓名';
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_contact.nick_name IS '昵称';
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_contact.prov_name IS '省份';
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_contact.create_time IS '创建时间';
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_contact.wechat_id IS '身份-企业微信外部联系人';
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_contact.update_time IS '更新时间';
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_contact.etl_batch_no IS '作业批次号';
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_contact.etl_first_dt IS '最初入库时间';
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_contact.etl_job IS '作业名称';
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_contact.etl_proc_dt IS '本次入库时间';
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_contact.etl_tx_dt IS '作业运行时间';
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_contact.src_sysname IS '来源系统';
|
||||
COMMENT ON COLUMN p20_pdm.t01_scrm_contact.src_table IS '来源表';
|
||||
|
||||
COMMENT ON TABLE p20_pdm.t01_scrm_contact IS 'SCRM联系方式';
|
||||
|
|
@ -0,0 +1,271 @@
|
|||
/***************************************************************************************************/
|
||||
/*script in Sql, generate by SdmCreateScript 2024(by IdgValue, qihang.feng@idgvalue.COM) */
|
||||
/*VERSION 01.10 revised on 2020-08-25 */
|
||||
/*Brilliance stems from wisdoms. */
|
||||
/*************Head Section**************************************************************************/
|
||||
/*Script Use: Periodically load data to :t01_scrm_contact(SCRM联系方式) */
|
||||
/*Create Date:2025-10-21 16:45:00 */
|
||||
/*SDM Developed By: dev */
|
||||
/*SDM Developed Date: 2025-10-21 */
|
||||
/*SDM Checked By: dev */
|
||||
/*SDM Checked Date: 2025-10-21 */
|
||||
/*Script Developed By: dev */
|
||||
/*Script Checked By: dev */
|
||||
/*Source table 1: p10_sa.s98_s_api_contact_update_info */
|
||||
/*Job Type: Inbound transform (Tier 1 to Tier 2) */
|
||||
/*Target Table:t01_scrm_contact */
|
||||
/*ETL Job Name:t01_scrm_contact */
|
||||
/*ETL Frequency:None */
|
||||
/*ETL Policy:F2 */
|
||||
/********************************************************************************************/
|
||||
/*******Main Section**************************************************************************/
|
||||
\set ON_ERROR_STOP on
|
||||
\set AUTOCOMMIT on
|
||||
\timing on
|
||||
|
||||
|
||||
|
||||
/*创建临时表加载当前数据 */
|
||||
CREATE TEMPORARY TABLE t01_scrm_contact_agi_CUR_I
|
||||
( LIKE :PDMDB.t01_scrm_contact)
|
||||
ON COMMIT PRESERVE ROWS;
|
||||
|
||||
|
||||
|
||||
/*创建临时表加载不同数据 */
|
||||
CREATE TEMPORARY TABLE t01_scrm_contact_agi_INS
|
||||
( LIKE :PDMDB.t01_scrm_contact)
|
||||
ON COMMIT PRESERVE ROWS;
|
||||
|
||||
|
||||
/*****************************************************************************************************/
|
||||
/* GROUP 1:Source Table:s98_s_api_contact_update_info*************************************************/
|
||||
/*****************************************************************************************************/
|
||||
INSERT INTO t01_scrm_contact_agi_CUR_I (
|
||||
scrm_leads_id /*SCRM线索ID*/
|
||||
,city_name /*城市*/
|
||||
,company_name /*公司*/
|
||||
,industry /*行业*/
|
||||
,department /*部门*/
|
||||
,job_title /*职位*/
|
||||
,district /*区*/
|
||||
,address_detail /*详细地址*/
|
||||
,email /*邮箱*/
|
||||
,mobile_number /*手机号码*/
|
||||
,full_name /*姓名*/
|
||||
,nick_name /*昵称*/
|
||||
,prov_name /*省份*/
|
||||
,create_time /*创建时间*/
|
||||
,wechat_id /*身份-企业微信外部联系人*/
|
||||
,update_time /*更新时间*/
|
||||
,etl_batch_no /*作业批次号*/
|
||||
,etl_first_dt /*最初入库时间*/
|
||||
,etl_job /*作业名称*/
|
||||
,etl_proc_dt /*本次入库时间*/
|
||||
,etl_tx_dt /*作业运行时间*/
|
||||
,src_sysname /*来源系统*/
|
||||
,src_table /*来源表*/
|
||||
)
|
||||
SELECT
|
||||
COALESCE(TRIM(CAST(p0.id AS VARCHAR(20))),'') /*scrm_leads_id*/
|
||||
,coalesce(p0.properties::json ->> 'City','') /*city_name*/
|
||||
,coalesce(p0.properties::json ->> 'Organization','') /*company_name*/
|
||||
,coalesce(p0.properties::json ->> 'Industry','') /*industry*/
|
||||
,coalesce(p0.properties::json ->> 'Department','') /*department*/
|
||||
,coalesce(p0.properties::json ->> 'Position','') /*job_title*/
|
||||
,coalesce(p0.properties::json ->> 'District','') /*district*/
|
||||
,coalesce(p0.properties::json ->> 'Detail','') /*address_detail*/
|
||||
,coalesce(p0.properties::json ->> 'Mailbox','') /*email*/
|
||||
,coalesce(p0.properties::json ->> 'Phone','') /*mobile_number*/
|
||||
,coalesce(p0.properties::json ->> 'FullName','') /*full_name*/
|
||||
,coalesce(p0.properties::json ->> 'NickName','') /*nick_name*/
|
||||
,coalesce(p0.properties::json ->> 'Province','') /*prov_name*/
|
||||
,TO_TIMESTAMP(substr(p0.properties::json ->> 'CreatedAt',1,19),'YYYY-MM-DD"T"HH24:MI:SS') AT TIME ZONE 'PRC' /*create_time*/
|
||||
,'' /*wechat_id*/
|
||||
,TO_TIMESTAMP(substr(p0.properties::json ->> 'UpdatedAt',1,19),'YYYY-MM-DD"T"HH24:MI:SS') AT TIME ZONE 'PRC' /*update_time*/
|
||||
,0 /*etl_batch_no*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*etl_first_dt*/
|
||||
,:ETLJOB /*etl_job*/
|
||||
,current_timestamp(0) /*etl_proc_dt*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*etl_tx_dt*/
|
||||
,Substr('s98_s_api_contact_update_info',1,3) /*src_sysname*/
|
||||
,'s98_s_api_contact_update_info' /*src_table*/
|
||||
|
||||
FROM p10_sa.s98_s_api_contact_update_info p0
|
||||
;
|
||||
|
||||
|
||||
|
||||
/*将不同数据插入到临时表 */
|
||||
;INSERT INTO t01_scrm_contact_agi_INS (
|
||||
city_name /*城市*/
|
||||
,company_name /*公司*/
|
||||
,industry /*行业*/
|
||||
,department /*部门*/
|
||||
,job_title /*职位*/
|
||||
,district /*区*/
|
||||
,address_detail /*详细地址*/
|
||||
,email /*邮箱*/
|
||||
,mobile_number /*手机号码*/
|
||||
,full_name /*姓名*/
|
||||
,nick_name /*昵称*/
|
||||
,prov_name /*省份*/
|
||||
,create_time /*创建时间*/
|
||||
,wechat_id /*身份-企业微信外部联系人*/
|
||||
,update_time /*更新时间*/
|
||||
,scrm_leads_id /*SCRM线索ID*/
|
||||
,etl_batch_no /*作业批次号*/
|
||||
,etl_first_dt /*最初入库时间*/
|
||||
,etl_job /*作业名称*/
|
||||
,etl_proc_dt /*本次入库时间*/
|
||||
,etl_tx_dt /*作业运行时间*/
|
||||
,src_sysname /*来源系统*/
|
||||
,src_table /*来源表*/
|
||||
|
||||
)
|
||||
SELECT
|
||||
P1.city_name /*城市*/
|
||||
,P1.company_name /*公司*/
|
||||
,P1.industry /*行业*/
|
||||
,P1.department /*部门*/
|
||||
,P1.job_title /*职位*/
|
||||
,P1.district /*区*/
|
||||
,P1.address_detail /*详细地址*/
|
||||
,P1.email /*邮箱*/
|
||||
,P1.mobile_number /*手机号码*/
|
||||
,P1.full_name /*姓名*/
|
||||
,P1.nick_name /*昵称*/
|
||||
,P1.prov_name /*省份*/
|
||||
,P1.create_time /*创建时间*/
|
||||
,P1.wechat_id /*身份-企业微信外部联系人*/
|
||||
,P1.update_time /*更新时间*/
|
||||
,P1.scrm_leads_id /*SCRM线索ID*/
|
||||
,P1.etl_batch_no /*作业批次号*/
|
||||
,P1.etl_first_dt /*最初入库时间*/
|
||||
,P1.etl_job /*作业名称*/
|
||||
,P1.etl_proc_dt /*本次入库时间*/
|
||||
,P1.etl_tx_dt /*作业运行时间*/
|
||||
,P1.src_sysname /*来源系统*/
|
||||
,P1.src_table /*来源表*/
|
||||
|
||||
FROM t01_scrm_contact_agi_CUR_I P1
|
||||
LEFT JOIN :PDMDB.t01_scrm_contact P2
|
||||
ON P1.city_name = P2.city_name
|
||||
AND P1.company_name = P2.company_name
|
||||
AND P1.industry = P2.industry
|
||||
AND P1.department = P2.department
|
||||
AND P1.job_title = P2.job_title
|
||||
AND P1.district = P2.district
|
||||
AND P1.address_detail = P2.address_detail
|
||||
AND P1.email = P2.email
|
||||
AND P1.mobile_number = P2.mobile_number
|
||||
AND P1.full_name = P2.full_name
|
||||
AND P1.nick_name = P2.nick_name
|
||||
AND P1.prov_name = P2.prov_name
|
||||
AND P1.create_time = P2.create_time
|
||||
AND P1.wechat_id = P2.wechat_id
|
||||
AND P1.update_time = P2.update_time
|
||||
AND P1.scrm_leads_id = P2.scrm_leads_id
|
||||
|
||||
WHERE P2.city_name IS NULL
|
||||
OR P2.company_name IS NULL
|
||||
OR P2.industry IS NULL
|
||||
OR P2.department IS NULL
|
||||
OR P2.job_title IS NULL
|
||||
OR P2.district IS NULL
|
||||
OR P2.address_detail IS NULL
|
||||
OR P2.email IS NULL
|
||||
OR P2.mobile_number IS NULL
|
||||
OR P2.full_name IS NULL
|
||||
OR P2.nick_name IS NULL
|
||||
OR P2.prov_name IS NULL
|
||||
OR P2.create_time IS NULL
|
||||
OR P2.wechat_id IS NULL
|
||||
OR P2.update_time IS NULL
|
||||
OR P2.scrm_leads_id IS NULL
|
||||
|
||||
;
|
||||
/*将新增数据插入到目标表 */
|
||||
;INSERT INTO :PDMDB.t01_scrm_contact (
|
||||
city_name /*城市*/
|
||||
,company_name /*公司*/
|
||||
,industry /*行业*/
|
||||
,department /*部门*/
|
||||
,job_title /*职位*/
|
||||
,district /*区*/
|
||||
,address_detail /*详细地址*/
|
||||
,email /*邮箱*/
|
||||
,mobile_number /*手机号码*/
|
||||
,full_name /*姓名*/
|
||||
,nick_name /*昵称*/
|
||||
,prov_name /*省份*/
|
||||
,create_time /*创建时间*/
|
||||
,wechat_id /*身份-企业微信外部联系人*/
|
||||
,update_time /*更新时间*/
|
||||
,scrm_leads_id /*SCRM线索ID*/
|
||||
,etl_batch_no /*作业批次号*/
|
||||
,etl_first_dt /*最初入库时间*/
|
||||
,etl_job /*作业名称*/
|
||||
,etl_proc_dt /*本次入库时间*/
|
||||
,etl_tx_dt /*作业运行时间*/
|
||||
,src_sysname /*来源系统*/
|
||||
,src_table /*来源表*/
|
||||
|
||||
)
|
||||
SELECT
|
||||
P1.city_name /*城市*/
|
||||
,P1.company_name /*公司*/
|
||||
,P1.industry /*行业*/
|
||||
,P1.department /*部门*/
|
||||
,P1.job_title /*职位*/
|
||||
,P1.district /*区*/
|
||||
,P1.address_detail /*详细地址*/
|
||||
,P1.email /*邮箱*/
|
||||
,P1.mobile_number /*手机号码*/
|
||||
,P1.full_name /*姓名*/
|
||||
,P1.nick_name /*昵称*/
|
||||
,P1.prov_name /*省份*/
|
||||
,P1.create_time /*创建时间*/
|
||||
,P1.wechat_id /*身份-企业微信外部联系人*/
|
||||
,P1.update_time /*更新时间*/
|
||||
,P1.scrm_leads_id /*SCRM线索ID*/
|
||||
,P1.etl_batch_no /*作业批次号*/
|
||||
,P1.etl_first_dt /*最初入库时间*/
|
||||
,P1.etl_job /*作业名称*/
|
||||
,P1.etl_proc_dt /*本次入库时间*/
|
||||
,P1.etl_tx_dt /*作业运行时间*/
|
||||
,P1.src_sysname /*来源系统*/
|
||||
,P1.src_table /*来源表*/
|
||||
|
||||
FROM t01_scrm_contact_agi_INS P1
|
||||
ON CONFLICT ( scrm_leads_id)
|
||||
DO UPDATE SET
|
||||
scrm_leads_id=excluded.scrm_leads_id
|
||||
,city_name=excluded.city_name
|
||||
,company_name=excluded.company_name
|
||||
,industry=excluded.industry
|
||||
,department=excluded.department
|
||||
,job_title=excluded.job_title
|
||||
,district=excluded.district
|
||||
,address_detail=excluded.address_detail
|
||||
,email=excluded.email
|
||||
,mobile_number=excluded.mobile_number
|
||||
,full_name=excluded.full_name
|
||||
,nick_name=excluded.nick_name
|
||||
,prov_name=excluded.prov_name
|
||||
,create_time=excluded.create_time
|
||||
,wechat_id=excluded.wechat_id
|
||||
,update_time=excluded.update_time
|
||||
,etl_batch_no=excluded.etl_batch_no
|
||||
,etl_first_dt=excluded.etl_first_dt
|
||||
,etl_job=excluded.etl_job
|
||||
,etl_proc_dt=excluded.etl_proc_dt
|
||||
,etl_tx_dt=excluded.etl_tx_dt
|
||||
,src_sysname=excluded.src_sysname
|
||||
,src_table=excluded.src_table
|
||||
|
||||
|
||||
;
|
||||
/*****程序结束退出 */
|
||||
\q
|
||||
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
|
||||
DROP TABLE IF EXISTS p60_mart.cust_all_info;
|
||||
CREATE TABLE IF NOT EXISTS p60_mart.cust_all_info (
|
||||
contact_id text
|
||||
, contact text
|
||||
, contact_channel text
|
||||
, full_name text
|
||||
, mobile VARCHAR(0)
|
||||
, email VARCHAR(0)
|
||||
, wechat VARCHAR(0)
|
||||
, company VARCHAR(0)
|
||||
, account text
|
||||
, country VARCHAR(0)
|
||||
, prov_name VARCHAR(0)
|
||||
, city_name VARCHAR(0)
|
||||
, industry VARCHAR(50)
|
||||
, ccp_value VARCHAR(0)
|
||||
, mobile_phone_date_ind text
|
||||
, mobile_phone_availability text
|
||||
, email_data_ind text
|
||||
, email_availability text
|
||||
, crm_active_time timestamp(0)
|
||||
, scrm_active_time timestamp(0)
|
||||
, livechat_active_time timestamp(0)
|
||||
, last_activate_time timestamp(0)
|
||||
|
||||
);
|
||||
|
||||
COMMENT ON COLUMN p60_mart.cust_all_info.contact_id IS '';
|
||||
COMMENT ON COLUMN p60_mart.cust_all_info.contact IS '';
|
||||
COMMENT ON COLUMN p60_mart.cust_all_info.contact_channel IS '';
|
||||
COMMENT ON COLUMN p60_mart.cust_all_info.full_name IS '';
|
||||
COMMENT ON COLUMN p60_mart.cust_all_info.mobile IS '';
|
||||
COMMENT ON COLUMN p60_mart.cust_all_info.email IS '';
|
||||
COMMENT ON COLUMN p60_mart.cust_all_info.wechat IS '';
|
||||
COMMENT ON COLUMN p60_mart.cust_all_info.company IS '';
|
||||
COMMENT ON COLUMN p60_mart.cust_all_info.account IS '';
|
||||
COMMENT ON COLUMN p60_mart.cust_all_info.country IS '';
|
||||
COMMENT ON COLUMN p60_mart.cust_all_info.prov_name IS '';
|
||||
COMMENT ON COLUMN p60_mart.cust_all_info.city_name IS '';
|
||||
COMMENT ON COLUMN p60_mart.cust_all_info.industry IS '';
|
||||
COMMENT ON COLUMN p60_mart.cust_all_info.ccp_value IS '';
|
||||
COMMENT ON COLUMN p60_mart.cust_all_info.mobile_phone_date_ind IS '';
|
||||
COMMENT ON COLUMN p60_mart.cust_all_info.mobile_phone_availability IS '';
|
||||
COMMENT ON COLUMN p60_mart.cust_all_info.email_data_ind IS '';
|
||||
COMMENT ON COLUMN p60_mart.cust_all_info.email_availability IS '';
|
||||
COMMENT ON COLUMN p60_mart.cust_all_info.crm_active_time IS '';
|
||||
COMMENT ON COLUMN p60_mart.cust_all_info.scrm_active_time IS '';
|
||||
COMMENT ON COLUMN p60_mart.cust_all_info.livechat_active_time IS '';
|
||||
COMMENT ON COLUMN p60_mart.cust_all_info.last_activate_time IS '';
|
||||
|
||||
COMMENT ON TABLE p60_mart.cust_all_info IS '';
|
||||
|
|
@ -0,0 +1,224 @@
|
|||
/***************************************************************************************************/
|
||||
/*script in Sql, generate by SdmCreateScript 2020(by Qihang Feng, QF255001@TERADATA.COM) */
|
||||
/*VERSION 01.10 revised on 2020-08-25 */
|
||||
/*Brilliance stems from wisdoms. */
|
||||
/*************Head Section**************************************************************************/
|
||||
/*Script Use: Periodically load data to :cust_all_info(客户信息) */
|
||||
/*Create Date:2024-05-13 14:57:41 */
|
||||
/*SDM Developed By: dev */
|
||||
/*SDM Developed Date: 2024-01-19 */
|
||||
/*SDM Checked By: dev */
|
||||
/*SDM Checked Date: 2024-05-13 */
|
||||
/*Script Developed By: dev */
|
||||
/*Script Checked By: dev */
|
||||
/*Source table 1: :COMMDB.d_crm_contact */
|
||||
/*Source table 2: p30_common.cust_contact_info */
|
||||
/*Source table 3: :COMMDB.d_livechat_contact */
|
||||
/*Source table 4: :COMMDB.d_scrm_contact */
|
||||
/*Source table 5: :COMMDB.v_cust_active */
|
||||
/*Job Type: Inbound transform (Tier 1 to Tier 2) */
|
||||
/*Target Table:cust_all_info */
|
||||
/*ETL Job Name:cust_all_info */
|
||||
/*ETL Frequency:Daily */
|
||||
/*ETL Policy:F1 */
|
||||
/********************************************************************************************/
|
||||
/*******Main Section**************************************************************************/
|
||||
\set ON_ERROR_STOP on
|
||||
\set AUTOCOMMIT on
|
||||
\timing on
|
||||
|
||||
|
||||
|
||||
/*创建临时表加载当前数据 */
|
||||
CREATE TEMPORARY TABLE cust_all_info_agi_CUR_I
|
||||
( LIKE :MARTDB.cust_all_info)
|
||||
ON COMMIT PRESERVE ROWS;
|
||||
|
||||
|
||||
/*****************************************************************************************************/
|
||||
/* GROUP 1:Source Table:cust_contact_info*************************************************************/
|
||||
/*****************************************************************************************************/
|
||||
|
||||
INSERT INTO cust_all_info_agi_CUR_I (
|
||||
contact_id /*联系编号*/
|
||||
,contact /*联系方式*/
|
||||
,contact_channel /*联系渠道*/
|
||||
,full_name /*姓名*/
|
||||
,mobile /*手机号*/
|
||||
,email /*邮箱*/
|
||||
,wechat /*微信*/
|
||||
,company /*公司*/
|
||||
,account /*账户*/
|
||||
,country /*国家*/
|
||||
,prov_name /*省份*/
|
||||
,city_name /*城市*/
|
||||
,industry /*行业*/
|
||||
,mobile_phone_data_ind /*手机号是否有数据*/
|
||||
,mobile_phone_availability /*手机号是否合规*/
|
||||
,email_data_ind /*邮箱是否有数据*/
|
||||
,email_availability /*邮箱是否合规*/
|
||||
,crm_active_time /*CRM系统活跃时间*/
|
||||
,scrm_active_time /*SCRM系统活跃时间*/
|
||||
,livechat_active_time /*Livechat系统活跃时间*/
|
||||
,last_activate_time /*最后活跃时间*/
|
||||
,udesk_active_time /*Udesk系统活跃时间*/
|
||||
,crm_create_time /*CRM创建时间*/
|
||||
,scrm_create_time /*SCRM创建时间*/
|
||||
,livechat_create_time /*Livechat创建时间*/
|
||||
,lease_create_time /*最早创建时间*/
|
||||
,src_sysname /*来源系统*/
|
||||
,src_table /*来源表*/
|
||||
,etl_job /*作业名称*/
|
||||
,etl_first_dt /*最初入库时间*/
|
||||
,etl_proc_dt /*本次入库时间*/
|
||||
,etl_tx_dt /*作业运行时间*/
|
||||
,etl_batch_no /*作业批次号*/
|
||||
)
|
||||
SELECT
|
||||
p1.contact_id /*contact_id*/
|
||||
,p1.contact /*contact*/
|
||||
,p1.contact_channel /*contact_channel*/
|
||||
,p1.full_name /*full_name*/
|
||||
,p1.mobile /*mobile*/
|
||||
,p1.email /*email*/
|
||||
,p1.wechat /*wechat*/
|
||||
,p1.company /*company*/
|
||||
,p1.account /*account*/
|
||||
,p1.country /*country*/
|
||||
,p1.prov_name /*prov_name*/
|
||||
,p1.city_name /*city_name*/
|
||||
,COALESCE(p1.industry,'') /*industry*/
|
||||
,coalesce(p2.mobile_phone_data_ind::text,p3.mobile_phone_data_ind::text,p4.mobile_phone_data_ind::text,'0') /*mobile_phone_data_ind*/
|
||||
,coalesce(p2.mobile_phone_availability, p3.mobile_phone_availability,p4.mobile_phone_availability,'0') /*mobile_phone_availability*/
|
||||
,coalesce(p2.email_data_ind::text,p3.email_data_ind::text,p4.email_data_ind::text,'0') /*email_data_ind*/
|
||||
,coalesce(p2.email_availability , p3.email_availability,p4.email_availability,'0') /*email_availability*/
|
||||
,coalesce(p5.active_time,'1900-01-01') /*crm_active_time*/
|
||||
,coalesce(p6.active_time,'1900-01-01') /*scrm_active_time*/
|
||||
,coalesce(p7.active_time,'1900-01-01') /*livechat_active_time*/
|
||||
,greatest(coalesce(p5.active_time,'1900-01-01'),coalesce(p6.active_time,'1900-01-01'),coalesce(p7.active_time,'1900-01-01'),coalesce(p8.active_time,'1900-01-01')) /*last_activate_time*/
|
||||
,coalesce(p8.active_time,'1900-01-01') /*udesk_active_time*/
|
||||
,coalesce(p2.create_time,'9999-12-31') /*crm_create_time*/
|
||||
,coalesce(p3.create_time,'9999-12-31') /*scrm_create_time*/
|
||||
,coalesce(p4.create_time,'9999-12-31') /*livechat_create_time*/
|
||||
,least(coalesce(p2.create_time,'9999-12-31'),coalesce(p3.create_time,'9999-12-31'),coalesce(p4.create_time,'9999-12-31')) /*lease_create_time*/
|
||||
,Substr('cust_contact_info',1,3) /*src_sysname*/
|
||||
,'cust_contact_info' /*src_table*/
|
||||
,:ETLJOB /*etl_job*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*etl_first_dt*/
|
||||
,current_timestamp(0) /*etl_proc_dt*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*etl_tx_dt*/
|
||||
,0 /*etl_batch_no*/
|
||||
|
||||
FROM p30_common.cust_contact_info p1
|
||||
LEFT JOIN :COMMDB.d_crm_contact p2
|
||||
ON p1.crm_contact =p2.crm_contact_account
|
||||
LEFT JOIN :COMMDB.d_scrm_contact p3
|
||||
ON p1.scrm_contact =p3.scrm_leads_id
|
||||
LEFT JOIN :COMMDB.d_livechat_contact p4
|
||||
ON p1.livechat_contact =p4.livechat_leads_id
|
||||
LEFT JOIN :COMMDB.v_cust_active p5
|
||||
ON p1.crm_contact =p5.contact_account
|
||||
and p5.contact_channel='CRM'
|
||||
LEFT JOIN :COMMDB.v_cust_active p6
|
||||
ON p1.scrm_contact =p6.contact_account
|
||||
and p6.contact_channel='SCRM'
|
||||
LEFT JOIN :COMMDB.v_cust_active p7
|
||||
ON p1.livechat_contact =p7.contact_account
|
||||
and p7.contact_channel='Livechat'
|
||||
LEFT JOIN :COMMDB.v_cust_active p8
|
||||
ON p1.udesk_contact =p8.contact_account
|
||||
and p8.contact_channel ='Udesk'
|
||||
|
||||
|
||||
;
|
||||
|
||||
|
||||
create temporary table cust_all_info_temp
|
||||
as select distinct on (contact_id) * from cust_all_info_agi_CUR_I;
|
||||
|
||||
delete from cust_all_info_agi_CUR_I;
|
||||
insert into cust_all_info_agi_CUR_I
|
||||
select * from cust_all_info_temp;
|
||||
/*从目标表中删除所有数据 cust_all_info(客户信息) */
|
||||
DELETE FROM :MARTDB.cust_all_info
|
||||
WHERE ETL_JOB=:ETLJOB;
|
||||
|
||||
|
||||
/*将新增数据插入到目标表 */
|
||||
;INSERT INTO :MARTDB.cust_all_info (
|
||||
contact_id /*联系编号*/
|
||||
,contact /*联系方式*/
|
||||
,contact_channel /*联系渠道*/
|
||||
,full_name /*姓名*/
|
||||
,mobile /*手机号*/
|
||||
,email /*邮箱*/
|
||||
,wechat /*微信*/
|
||||
,company /*公司*/
|
||||
,account /*账户*/
|
||||
,country /*国家*/
|
||||
,prov_name /*省份*/
|
||||
,city_name /*城市*/
|
||||
,industry /*行业*/
|
||||
,mobile_phone_data_ind /*手机号是否有数据*/
|
||||
,mobile_phone_availability /*手机号是否合规*/
|
||||
,email_data_ind /*邮箱是否有数据*/
|
||||
,email_availability /*邮箱是否合规*/
|
||||
,crm_active_time /*CRM系统活跃时间*/
|
||||
,scrm_active_time /*SCRM系统活跃时间*/
|
||||
,livechat_active_time /*Livechat系统活跃时间*/
|
||||
,last_activate_time /*最后活跃时间*/
|
||||
,udesk_active_time /*Udesk系统活跃时间*/
|
||||
,crm_create_time /*CRM创建时间*/
|
||||
,scrm_create_time /*SCRM创建时间*/
|
||||
,livechat_create_time /*Livechat创建时间*/
|
||||
,lease_create_time /*最早创建时间*/
|
||||
,src_sysname /*来源系统*/
|
||||
,src_table /*来源表*/
|
||||
,etl_job /*作业名称*/
|
||||
,etl_first_dt /*最初入库时间*/
|
||||
,etl_proc_dt /*本次入库时间*/
|
||||
,etl_tx_dt /*作业运行时间*/
|
||||
,etl_batch_no /*作业批次号*/
|
||||
|
||||
)
|
||||
SELECT
|
||||
P1.contact_id /*联系编号*/
|
||||
,P1.contact /*联系方式*/
|
||||
,P1.contact_channel /*联系渠道*/
|
||||
,P1.full_name /*姓名*/
|
||||
,P1.mobile /*手机号*/
|
||||
,P1.email /*邮箱*/
|
||||
,P1.wechat /*微信*/
|
||||
,P1.company /*公司*/
|
||||
,P1.account /*账户*/
|
||||
,P1.country /*国家*/
|
||||
,P1.prov_name /*省份*/
|
||||
,P1.city_name /*城市*/
|
||||
,P1.industry /*行业*/
|
||||
,P1.mobile_phone_data_ind /*手机号是否有数据*/
|
||||
,P1.mobile_phone_availability /*手机号是否合规*/
|
||||
,P1.email_data_ind /*邮箱是否有数据*/
|
||||
,P1.email_availability /*邮箱是否合规*/
|
||||
,P1.crm_active_time /*CRM系统活跃时间*/
|
||||
,P1.scrm_active_time /*SCRM系统活跃时间*/
|
||||
,P1.livechat_active_time /*Livechat系统活跃时间*/
|
||||
,P1.last_activate_time /*最后活跃时间*/
|
||||
,P1.udesk_active_time /*Udesk系统活跃时间*/
|
||||
,P1.crm_create_time /*CRM创建时间*/
|
||||
,P1.scrm_create_time /*SCRM创建时间*/
|
||||
,P1.livechat_create_time /*Livechat创建时间*/
|
||||
,P1.lease_create_time /*最早创建时间*/
|
||||
,P1.src_sysname /*来源系统*/
|
||||
,P1.src_table /*来源表*/
|
||||
,P1.etl_job /*作业名称*/
|
||||
,P1.etl_first_dt /*最初入库时间*/
|
||||
,P1.etl_proc_dt /*本次入库时间*/
|
||||
,P1.etl_tx_dt /*作业运行时间*/
|
||||
,P1.etl_batch_no /*作业批次号*/
|
||||
|
||||
FROM cust_all_info_agi_CUR_I P1
|
||||
|
||||
;
|
||||
/*****程序结束退出 */
|
||||
\q
|
||||
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
|
||||
DROP TABLE IF EXISTS p60_mart.cust_enagement_records;
|
||||
CREATE TABLE IF NOT EXISTS p60_mart.cust_enagement_records (
|
||||
contact_id VARCHAR(20)
|
||||
, full_name VARCHAR(200)
|
||||
, record_type VARCHAR(30)
|
||||
, enagement_record VARCHAR(500)
|
||||
, record_time timestamp(0)
|
||||
, etl_batch_no VARCHAR(50)
|
||||
, etl_first_dt timestamp(0)
|
||||
, etl_job VARCHAR(200)
|
||||
, etl_proc_dt timestamp(0)
|
||||
, etl_tx_dt timestamp(0)
|
||||
, src_sysname VARCHAR(50)
|
||||
, src_table VARCHAR(50)
|
||||
,primary key( contact_id,enagement_record,record_time )
|
||||
);
|
||||
|
||||
COMMENT ON COLUMN p60_mart.cust_enagement_records.contact_id IS '客户编号';
|
||||
COMMENT ON COLUMN p60_mart.cust_enagement_records.full_name IS '全名';
|
||||
COMMENT ON COLUMN p60_mart.cust_enagement_records.record_type IS '记录类型';
|
||||
COMMENT ON COLUMN p60_mart.cust_enagement_records.enagement_record IS '接触记录';
|
||||
COMMENT ON COLUMN p60_mart.cust_enagement_records.record_time IS '记录时间';
|
||||
COMMENT ON COLUMN p60_mart.cust_enagement_records.etl_batch_no IS '作业批次号';
|
||||
COMMENT ON COLUMN p60_mart.cust_enagement_records.etl_first_dt IS '最初入库时间';
|
||||
COMMENT ON COLUMN p60_mart.cust_enagement_records.etl_job IS '作业名称';
|
||||
COMMENT ON COLUMN p60_mart.cust_enagement_records.etl_proc_dt IS '本次入库时间';
|
||||
COMMENT ON COLUMN p60_mart.cust_enagement_records.etl_tx_dt IS '作业运行时间';
|
||||
COMMENT ON COLUMN p60_mart.cust_enagement_records.src_sysname IS '来源系统';
|
||||
COMMENT ON COLUMN p60_mart.cust_enagement_records.src_table IS '来源表';
|
||||
|
||||
COMMENT ON TABLE p60_mart.cust_enagement_records IS '客户接触记录';
|
||||
|
|
@ -0,0 +1,130 @@
|
|||
/***************************************************************************************************/
|
||||
/*script in Sql, generate by SdmCreateScript 2020(by Qihang Feng, QF255001@TERADATA.COM) */
|
||||
/*VERSION 01.10 revised on 2020-08-25 */
|
||||
/*Brilliance stems from wisdoms. */
|
||||
/*************Head Section**************************************************************************/
|
||||
/*Script Use: Periodically load data to :cust_enagement_records(客户接触记录) */
|
||||
/*Create Date:2024-06-17 11:18:28 */
|
||||
/*SDM Developed By: dev */
|
||||
/*SDM Developed Date: 2024-06-17 */
|
||||
/*SDM Checked By: dev */
|
||||
/*SDM Checked Date: 2024-06-17 */
|
||||
/*Script Developed By: dev */
|
||||
/*Script Checked By: dev */
|
||||
/*Source table 1: :COMMDB.cust_leads_detail */
|
||||
/*Source table 2: :COMMDB.select distinct on (contact_id) contact_id,full_name,contact_channel from p30_COMMON.cust_contact_info*/
|
||||
/*Source table 3: :COMMDB.v_cust_contact_mapping */
|
||||
/*Job Type: Inbound transform (Tier 1 to Tier 2) */
|
||||
/*Target Table:cust_enagement_records */
|
||||
/*ETL Job Name:cust_enagement_records */
|
||||
/*ETL Frequency:Daily */
|
||||
/*ETL Policy:F1 */
|
||||
/********************************************************************************************/
|
||||
/*******Main Section**************************************************************************/
|
||||
\set ON_ERROR_STOP on
|
||||
\set AUTOCOMMIT on
|
||||
\timing on
|
||||
|
||||
|
||||
|
||||
/*创建临时表加载当前数据 */
|
||||
CREATE TEMPORARY TABLE cust_enagement_records_agi_CUR_I
|
||||
( LIKE :MARTDB.cust_enagement_records)
|
||||
ON COMMIT PRESERVE ROWS;
|
||||
|
||||
|
||||
/*****************************************************************************************************/
|
||||
/* GROUP 1:Source Table:cust_leads_detail*************************************************************/
|
||||
/*****************************************************************************************************/
|
||||
|
||||
INSERT INTO cust_enagement_records_agi_CUR_I (
|
||||
contact_id /*客户编号*/
|
||||
,full_name /*全名*/
|
||||
,record_type /*记录类型*/
|
||||
,enagement_record /*接触记录*/
|
||||
,record_time /*记录时间*/
|
||||
,etl_batch_no /*作业批次号*/
|
||||
,etl_first_dt /*最初入库时间*/
|
||||
,etl_job /*作业名称*/
|
||||
,etl_proc_dt /*本次入库时间*/
|
||||
,etl_tx_dt /*作业运行时间*/
|
||||
,src_sysname /*来源系统*/
|
||||
,src_table /*来源表*/
|
||||
)
|
||||
SELECT
|
||||
coalesce(p2.contact_id,'') /*contact_id*/
|
||||
,coalesce(p2.full_name,'') /*full_name*/
|
||||
,COALESCE(TRIM(CAST(p0.contact_channel AS VARCHAR(30))),'') /*record_type*/
|
||||
,case when p0.contact_channel = 'CRM Raw Leads' then p0."label"
|
||||
else p0.contact_account
|
||||
end /*enagement_record*/
|
||||
,case when p0.contact_channel = 'CRM Raw Leads' then p0.contact_channel ||'_'|| p0."label" ||'_'|| p0."event"
|
||||
when p0.contact_channel = 'Chat' then p0.contact_channel ||'_'|| p0."event"
|
||||
when p0.contact_channel = 'Call' then p0.contact_channel ||'_'|| p0."label" ||'_'|| p0."event"
|
||||
when p0.contact_channel = 'SCRM Event' then p0.contact_channel ||'_'|| p0."label" ||'_'|| p0."event"
|
||||
end /*record_time*/
|
||||
,0 /*etl_batch_no*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*etl_first_dt*/
|
||||
,:ETLJOB /*etl_job*/
|
||||
,current_timestamp(0) /*etl_proc_dt*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*etl_tx_dt*/
|
||||
,Substr('cust_leads_detail',1,3) /*src_sysname*/
|
||||
,'cust_leads_detail' /*src_table*/
|
||||
|
||||
FROM :COMMDB.cust_leads_detail p0
|
||||
LEFT JOIN :COMMDB.v_cust_contact_mapping p1
|
||||
ON p0 .contact_account =p1 .contact
|
||||
and p1 .contact_channel = case when p0.contact_channel = 'CRM Raw Leads' then 'CRM'
|
||||
when p0.contact_channel = 'Chat' then 'Livechat'
|
||||
when p0.contact_channel = 'Call' then 'Udesk'
|
||||
when p0.contact_channel = 'SCRM Event' then 'SCRM'
|
||||
end
|
||||
LEFT JOIN (select distinct on (contact_id) contact_id,full_name,contact_channel from p30_COMMON.cust_contact_info) p2
|
||||
ON p1.contact_id=p2.contact_id
|
||||
where coalesce(p2.contact_id,'')<>''
|
||||
|
||||
;
|
||||
|
||||
|
||||
|
||||
/*从目标表中删除所有数据 cust_enagement_records(客户接触记录) */
|
||||
DELETE FROM :MARTDB.cust_enagement_records
|
||||
WHERE ETL_JOB=:ETLJOB;
|
||||
|
||||
|
||||
/*将新增数据插入到目标表 */
|
||||
;INSERT INTO :MARTDB.cust_enagement_records (
|
||||
full_name /*全名*/
|
||||
,record_type /*记录类型*/
|
||||
,contact_id /*客户编号*/
|
||||
,enagement_record /*接触记录*/
|
||||
,record_time /*记录时间*/
|
||||
,etl_batch_no /*作业批次号*/
|
||||
,etl_first_dt /*最初入库时间*/
|
||||
,etl_job /*作业名称*/
|
||||
,etl_proc_dt /*本次入库时间*/
|
||||
,etl_tx_dt /*作业运行时间*/
|
||||
,src_sysname /*来源系统*/
|
||||
,src_table /*来源表*/
|
||||
|
||||
)
|
||||
SELECT
|
||||
P1.full_name /*全名*/
|
||||
,P1.record_type /*记录类型*/
|
||||
,P1.contact_id /*客户编号*/
|
||||
,P1.enagement_record /*接触记录*/
|
||||
,P1.record_time /*记录时间*/
|
||||
,P1.etl_batch_no /*作业批次号*/
|
||||
,P1.etl_first_dt /*最初入库时间*/
|
||||
,P1.etl_job /*作业名称*/
|
||||
,P1.etl_proc_dt /*本次入库时间*/
|
||||
,P1.etl_tx_dt /*作业运行时间*/
|
||||
,P1.src_sysname /*来源系统*/
|
||||
,P1.src_table /*来源表*/
|
||||
|
||||
FROM cust_enagement_records_agi_CUR_I P1
|
||||
|
||||
;
|
||||
/*****程序结束退出 */
|
||||
\q
|
||||
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
|
||||
DROP TABLE IF EXISTS p30_common.cust_leads;
|
||||
CREATE TABLE IF NOT EXISTS p30_common.cust_leads (
|
||||
contact_channel text
|
||||
, contact_account VARCHAR(0)
|
||||
, active_time timestamp(0)
|
||||
|
||||
);
|
||||
|
||||
COMMENT ON COLUMN p30_common.cust_leads.contact_channel IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_leads.contact_account IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_leads.active_time IS '';
|
||||
|
||||
COMMENT ON TABLE p30_common.cust_leads IS '';
|
||||
|
|
@ -0,0 +1,201 @@
|
|||
/***************************************************************************************************/
|
||||
/*script in Sql, generate by SdmCreateScript 2020(by Qihang Feng, QF255001@TERADATA.COM) */
|
||||
/*VERSION 01.10 revised on 2020-08-25 */
|
||||
/*Brilliance stems from wisdoms. */
|
||||
/*************Head Section**************************************************************************/
|
||||
/*Script Use: Periodically load data to :cust_leads(客户线索) */
|
||||
/*Create Date:2024-05-06 17:28:10 */
|
||||
/*SDM Developed By: dev */
|
||||
/*SDM Developed Date: 2024-01-19 */
|
||||
/*SDM Checked By: dev */
|
||||
/*SDM Checked Date: 2024-05-06 */
|
||||
/*Script Developed By: dev */
|
||||
/*Script Checked By: dev */
|
||||
/*Source table 1: p20_pdm.t01_scrm_leads */
|
||||
/*Source table 2: p20_pdm.t01_crm_raw_leads */
|
||||
/*Source table 3: p20_pdm.t01_scrm_leads_his */
|
||||
/*Source table 4: p20_pdm.t01_livechat_record */
|
||||
/*Job Type: Inbound transform (Tier 1 to Tier 2) */
|
||||
/*Target Table:cust_leads */
|
||||
/*ETL Job Name:cust_leads */
|
||||
/*ETL Frequency:Daily */
|
||||
/*ETL Policy:F1 */
|
||||
/********************************************************************************************/
|
||||
/*******Main Section**************************************************************************/
|
||||
\set ON_ERROR_STOP on
|
||||
\set AUTOCOMMIT on
|
||||
\timing on
|
||||
|
||||
|
||||
|
||||
/*创建临时表加载当前数据 */
|
||||
CREATE TEMPORARY TABLE cust_leads_agi_CUR_I
|
||||
( LIKE :COMMDB.cust_leads)
|
||||
ON COMMIT PRESERVE ROWS;
|
||||
|
||||
|
||||
/*****************************************************************************************************/
|
||||
/* GROUP 1:Source Table:t01_livechat_record***********************************************************/
|
||||
/*****************************************************************************************************/
|
||||
INSERT INTO cust_leads_agi_CUR_I (
|
||||
contact_channel /*线索渠道*/
|
||||
,contact_account /*线索编号*/
|
||||
,active_time /*活跃时间*/
|
||||
,src_sysname /*来源系统*/
|
||||
,src_table /*来源表*/
|
||||
,etl_job /*作业名称*/
|
||||
,etl_first_dt /*最初入库时间*/
|
||||
,etl_proc_dt /*本次入库时间*/
|
||||
,etl_tx_dt /*作业运行时间*/
|
||||
,etl_batch_no /*作业批次号*/
|
||||
)
|
||||
SELECT
|
||||
'Livechat' /*contact_channel*/
|
||||
,COALESCE(TRIM(CAST(p0.livechat_leads_id AS VARCHAR(50))),'') /*contact_account*/
|
||||
,COALESCE(p0.chat_start_time,TO_TIMESTAMP(:NULLDATE,'YYYYMMDD')) /*active_time*/
|
||||
,Substr('t01_livechat_record',1,3) /*src_sysname*/
|
||||
,'t01_livechat_record' /*src_table*/
|
||||
,:ETLJOB /*etl_job*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*etl_first_dt*/
|
||||
,current_timestamp(0) /*etl_proc_dt*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*etl_tx_dt*/
|
||||
,0 /*etl_batch_no*/
|
||||
|
||||
FROM p20_pdm.t01_livechat_record p0
|
||||
;
|
||||
|
||||
|
||||
|
||||
/*****************************************************************************************************/
|
||||
/* GROUP 2:Source Table:t01_crm_raw_leads*************************************************************/
|
||||
/*****************************************************************************************************/
|
||||
INSERT INTO cust_leads_agi_CUR_I (
|
||||
contact_channel /*线索渠道*/
|
||||
,contact_account /*线索编号*/
|
||||
,active_time /*活跃时间*/
|
||||
,src_sysname /*来源系统*/
|
||||
,src_table /*来源表*/
|
||||
,etl_job /*作业名称*/
|
||||
,etl_first_dt /*最初入库时间*/
|
||||
,etl_proc_dt /*本次入库时间*/
|
||||
,etl_tx_dt /*作业运行时间*/
|
||||
,etl_batch_no /*作业批次号*/
|
||||
)
|
||||
SELECT
|
||||
'CRM' /*contact_channel*/
|
||||
,COALESCE(TRIM(CAST(p0.crm_contact_account AS VARCHAR(50))),'') /*contact_account*/
|
||||
,COALESCE(TO_TIMESTAMP(CAST(p0.create_time AS VARCHAR(19)),'YYYY-MM-DD HH24:mi:ss'),TO_TIMESTAMP(:NULLDATE,'YYYYMMDD')) /*active_time*/
|
||||
,Substr('t01_crm_raw_leads',1,3) /*src_sysname*/
|
||||
,'t01_crm_raw_leads' /*src_table*/
|
||||
,:ETLJOB /*etl_job*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*etl_first_dt*/
|
||||
,current_timestamp(0) /*etl_proc_dt*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*etl_tx_dt*/
|
||||
,0 /*etl_batch_no*/
|
||||
|
||||
FROM p20_pdm.t01_crm_raw_leads p0
|
||||
;
|
||||
|
||||
|
||||
|
||||
/*****************************************************************************************************/
|
||||
/* GROUP 3:Source Table:t01_scrm_leads****************************************************************/
|
||||
/*****************************************************************************************************/
|
||||
INSERT INTO cust_leads_agi_CUR_I (
|
||||
contact_channel /*线索渠道*/
|
||||
,contact_account /*线索编号*/
|
||||
,active_time /*活跃时间*/
|
||||
,src_sysname /*来源系统*/
|
||||
,src_table /*来源表*/
|
||||
,etl_job /*作业名称*/
|
||||
,etl_first_dt /*最初入库时间*/
|
||||
,etl_proc_dt /*本次入库时间*/
|
||||
,etl_tx_dt /*作业运行时间*/
|
||||
,etl_batch_no /*作业批次号*/
|
||||
)
|
||||
SELECT
|
||||
'SCRM' /*contact_channel*/
|
||||
,COALESCE(TRIM(CAST(p0.customer_id AS VARCHAR(50))),'') /*contact_account*/
|
||||
,COALESCE(p0.date,TO_TIMESTAMP(:NULLDATE,'YYYYMMDD')) /*active_time*/
|
||||
,Substr('t01_scrm_leads',1,3) /*src_sysname*/
|
||||
,'t01_scrm_leads' /*src_table*/
|
||||
,:ETLJOB /*etl_job*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*etl_first_dt*/
|
||||
,current_timestamp(0) /*etl_proc_dt*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*etl_tx_dt*/
|
||||
,0 /*etl_batch_no*/
|
||||
|
||||
FROM p20_pdm.t01_scrm_leads p0
|
||||
;
|
||||
|
||||
|
||||
|
||||
/*****************************************************************************************************/
|
||||
/* GROUP 4:Source Table:t01_scrm_leads_his************************************************************/
|
||||
/*****************************************************************************************************/
|
||||
INSERT INTO cust_leads_agi_CUR_I (
|
||||
contact_channel /*线索渠道*/
|
||||
,contact_account /*线索编号*/
|
||||
,active_time /*活跃时间*/
|
||||
,src_sysname /*来源系统*/
|
||||
,src_table /*来源表*/
|
||||
,etl_job /*作业名称*/
|
||||
,etl_first_dt /*最初入库时间*/
|
||||
,etl_proc_dt /*本次入库时间*/
|
||||
,etl_tx_dt /*作业运行时间*/
|
||||
,etl_batch_no /*作业批次号*/
|
||||
)
|
||||
SELECT
|
||||
'SCRM' /*contact_channel*/
|
||||
,COALESCE(TRIM(CAST(p0.cue_id AS VARCHAR(50))),'') /*contact_account*/
|
||||
,COALESCE(p0.activate_time,TO_TIMESTAMP(:NULLDATE,'YYYYMMDD')) /*active_time*/
|
||||
,Substr('t01_scrm_leads_his',1,3) /*src_sysname*/
|
||||
,'t01_scrm_leads_his' /*src_table*/
|
||||
,:ETLJOB /*etl_job*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*etl_first_dt*/
|
||||
,current_timestamp(0) /*etl_proc_dt*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*etl_tx_dt*/
|
||||
,0 /*etl_batch_no*/
|
||||
|
||||
FROM p20_pdm.t01_scrm_leads_his p0
|
||||
;
|
||||
|
||||
|
||||
|
||||
/*从目标表中删除所有数据 cust_leads(客户线索) */
|
||||
DELETE FROM :COMMDB.cust_leads
|
||||
WHERE ETL_JOB=:ETLJOB;
|
||||
|
||||
|
||||
/*将新增数据插入到目标表 */
|
||||
;INSERT INTO :COMMDB.cust_leads (
|
||||
contact_channel /*线索渠道*/
|
||||
,contact_account /*线索编号*/
|
||||
,active_time /*活跃时间*/
|
||||
,src_sysname /*来源系统*/
|
||||
,src_table /*来源表*/
|
||||
,etl_job /*作业名称*/
|
||||
,etl_first_dt /*最初入库时间*/
|
||||
,etl_proc_dt /*本次入库时间*/
|
||||
,etl_tx_dt /*作业运行时间*/
|
||||
,etl_batch_no /*作业批次号*/
|
||||
|
||||
)
|
||||
SELECT
|
||||
P1.contact_channel /*线索渠道*/
|
||||
,P1.contact_account /*线索编号*/
|
||||
,P1.active_time /*活跃时间*/
|
||||
,P1.src_sysname /*来源系统*/
|
||||
,P1.src_table /*来源表*/
|
||||
,P1.etl_job /*作业名称*/
|
||||
,P1.etl_first_dt /*最初入库时间*/
|
||||
,P1.etl_proc_dt /*本次入库时间*/
|
||||
,P1.etl_tx_dt /*作业运行时间*/
|
||||
,P1.etl_batch_no /*作业批次号*/
|
||||
|
||||
FROM cust_leads_agi_CUR_I P1
|
||||
|
||||
;
|
||||
/*****程序结束退出 */
|
||||
\q
|
||||
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
|
||||
DROP TABLE IF EXISTS p30_common.cust_leads_detail;
|
||||
CREATE TABLE IF NOT EXISTS p30_common.cust_leads_detail (
|
||||
contact_channel varchar(50)
|
||||
, contact_account varchar(50)
|
||||
, label varchar(50)
|
||||
, event varchar(100)
|
||||
, active_time timestamp(0)
|
||||
, Src_Sysname varchar(50)
|
||||
, Src_Table varchar(50)
|
||||
, Etl_Job varchar(200)
|
||||
, Etl_First_Dt timestamp(0)
|
||||
, Etl_Tx_Dt timestamp(0)
|
||||
, Etl_Proc_Dt timestamp(0)
|
||||
, Etl_Batch_No varchar(50)
|
||||
,primary key( contact_channel,contact_account,label,active_time )
|
||||
);
|
||||
|
||||
COMMENT ON COLUMN p30_common.cust_leads_detail.contact_channel IS '线索渠道';
|
||||
COMMENT ON COLUMN p30_common.cust_leads_detail.contact_account IS '线索编号';
|
||||
COMMENT ON COLUMN p30_common.cust_leads_detail.label IS '标签';
|
||||
COMMENT ON COLUMN p30_common.cust_leads_detail.event IS '事件';
|
||||
COMMENT ON COLUMN p30_common.cust_leads_detail.active_time IS '活跃时间';
|
||||
COMMENT ON COLUMN p30_common.cust_leads_detail.Src_Sysname IS '来源系统';
|
||||
COMMENT ON COLUMN p30_common.cust_leads_detail.Src_Table IS '来源表';
|
||||
COMMENT ON COLUMN p30_common.cust_leads_detail.Etl_Job IS '作业名称';
|
||||
COMMENT ON COLUMN p30_common.cust_leads_detail.Etl_First_Dt IS '最初入库时间';
|
||||
COMMENT ON COLUMN p30_common.cust_leads_detail.Etl_Tx_Dt IS '作业运行时间';
|
||||
COMMENT ON COLUMN p30_common.cust_leads_detail.Etl_Proc_Dt IS '本次入库时间';
|
||||
COMMENT ON COLUMN p30_common.cust_leads_detail.Etl_Batch_No IS '作业批次号';
|
||||
|
||||
COMMENT ON TABLE p30_common.cust_leads_detail IS '客户线索明细';
|
||||
|
|
@ -0,0 +1,334 @@
|
|||
/***************************************************************************************************/
|
||||
/*script in Sql, generate by SdmCreateScript 2020(by Qihang Feng, QF255001@TERADATA.COM) */
|
||||
/*VERSION 01.10 revised on 2020-08-25 */
|
||||
/*Brilliance stems from wisdoms. */
|
||||
/*************Head Section**************************************************************************/
|
||||
/*Script Use: Periodically load data to :cust_leads_detail(客户线索明细) */
|
||||
/*Create Date:2024-09-10 13:28:54 */
|
||||
/*SDM Developed By: dev */
|
||||
/*SDM Developed Date: 2024-05-31 */
|
||||
/*SDM Checked By: dev */
|
||||
/*SDM Checked Date: 2024-09-10 */
|
||||
/*Script Developed By: dev */
|
||||
/*Script Checked By: dev */
|
||||
/*Source table 1: :PDMDB.t01_scrm_leads_his */
|
||||
/*Source table 2: :PDMDB.t01_udesk_record */
|
||||
/*Source table 3: :PDMDB.t01_livechat_record */
|
||||
/*Source table 4: :PDMDB.t01_scrm_leads */
|
||||
/*Source table 5: :PDMDB.t01_crm_raw_leads */
|
||||
/*Job Type: Inbound transform (Tier 1 to Tier 2) */
|
||||
/*Target Table:cust_leads_detail */
|
||||
/*ETL Job Name:cust_leads_detail */
|
||||
/*ETL Frequency:Daily */
|
||||
/*ETL Policy:F2 */
|
||||
/********************************************************************************************/
|
||||
/*******Main Section**************************************************************************/
|
||||
\set ON_ERROR_STOP on
|
||||
\set AUTOCOMMIT on
|
||||
\timing on
|
||||
|
||||
|
||||
|
||||
/*创建临时表加载当前数据 */
|
||||
CREATE TEMPORARY TABLE cust_leads_detail_agi_CUR_I
|
||||
( LIKE :COMMDB.cust_leads_detail)
|
||||
ON COMMIT PRESERVE ROWS;
|
||||
|
||||
|
||||
|
||||
/*创建临时表加载不同数据 */
|
||||
CREATE TEMPORARY TABLE cust_leads_detail_agi_INS
|
||||
( LIKE :COMMDB.cust_leads_detail)
|
||||
ON COMMIT PRESERVE ROWS;
|
||||
|
||||
|
||||
/*****************************************************************************************************/
|
||||
/* GROUP 1:Source Table:t01_crm_raw_leads*************************************************************/
|
||||
/*****************************************************************************************************/
|
||||
INSERT INTO cust_leads_detail_agi_CUR_I (
|
||||
contact_channel /*线索渠道*/
|
||||
,contact_account /*联系编号*/
|
||||
,label /*标签*/
|
||||
,event /*事件*/
|
||||
,active_time /*活跃时间*/
|
||||
,Src_Sysname /*来源系统*/
|
||||
,Src_Table /*来源表*/
|
||||
,Etl_Job /*作业名称*/
|
||||
,Etl_First_Dt /*最初入库时间*/
|
||||
,Etl_Tx_Dt /*作业运行时间*/
|
||||
,Etl_Proc_Dt /*本次入库时间*/
|
||||
,Etl_Batch_No /*作业批次号*/
|
||||
)
|
||||
SELECT
|
||||
'CRM Raw Leads' /*contact_channel*/
|
||||
,COALESCE(TRIM(CAST(p0.crm_contact_account AS varchar(50))),'') /*contact_account*/
|
||||
,COALESCE(TRIM(CAST(p0.lead_number AS varchar(50))),'') /*label*/
|
||||
,COALESCE(TRIM(CAST(p0.market_type AS varchar(100))),'') /*event*/
|
||||
,COALESCE(p0.create_time,TO_TIMESTAMP(:NULLDATE,'YYYYMMDD')) /*active_time*/
|
||||
,Substr('t01_crm_raw_leads',1,3) /*Src_Sysname*/
|
||||
,'t01_crm_raw_leads' /*Src_Table*/
|
||||
,:ETLJOB /*Etl_Job*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*Etl_First_Dt*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*Etl_Tx_Dt*/
|
||||
,current_timestamp(0) /*Etl_Proc_Dt*/
|
||||
,0 /*Etl_Batch_No*/
|
||||
|
||||
FROM :PDMDB.t01_crm_raw_leads p0
|
||||
;
|
||||
|
||||
|
||||
|
||||
/*****************************************************************************************************/
|
||||
/* GROUP 2:Source Table:t01_scrm_leads_his************************************************************/
|
||||
/*****************************************************************************************************/
|
||||
INSERT INTO cust_leads_detail_agi_CUR_I (
|
||||
contact_channel /*线索渠道*/
|
||||
,contact_account /*联系编号*/
|
||||
,label /*标签*/
|
||||
,event /*事件*/
|
||||
,active_time /*活跃时间*/
|
||||
,Src_Sysname /*来源系统*/
|
||||
,Src_Table /*来源表*/
|
||||
,Etl_Job /*作业名称*/
|
||||
,Etl_First_Dt /*最初入库时间*/
|
||||
,Etl_Tx_Dt /*作业运行时间*/
|
||||
,Etl_Proc_Dt /*本次入库时间*/
|
||||
,Etl_Batch_No /*作业批次号*/
|
||||
)
|
||||
SELECT
|
||||
'SCRM Event' /*contact_channel*/
|
||||
,COALESCE(TRIM(CAST(p0.cue_id AS varchar(50))),'') /*contact_account*/
|
||||
,COALESCE(TRIM(CAST(p0.activate_name AS varchar(50))),'') /*label*/
|
||||
,COALESCE(TRIM(CAST(p0.event_name AS varchar(100))),'') /*event*/
|
||||
,COALESCE(p0.activate_time,TO_TIMESTAMP(:NULLDATE,'YYYYMMDD')) /*active_time*/
|
||||
,Substr('t01_scrm_leads_his',1,3) /*Src_Sysname*/
|
||||
,'t01_scrm_leads_his' /*Src_Table*/
|
||||
,:ETLJOB /*Etl_Job*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*Etl_First_Dt*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*Etl_Tx_Dt*/
|
||||
,current_timestamp(0) /*Etl_Proc_Dt*/
|
||||
,0 /*Etl_Batch_No*/
|
||||
|
||||
FROM :PDMDB.t01_scrm_leads_his p0
|
||||
;
|
||||
|
||||
|
||||
|
||||
/*****************************************************************************************************/
|
||||
/* GROUP 3:Source Table:t01_scrm_leads****************************************************************/
|
||||
/*****************************************************************************************************/
|
||||
INSERT INTO cust_leads_detail_agi_CUR_I (
|
||||
contact_channel /*线索渠道*/
|
||||
,contact_account /*联系编号*/
|
||||
,label /*标签*/
|
||||
,event /*事件*/
|
||||
,active_time /*活跃时间*/
|
||||
,Src_Sysname /*来源系统*/
|
||||
,Src_Table /*来源表*/
|
||||
,Etl_Job /*作业名称*/
|
||||
,Etl_First_Dt /*最初入库时间*/
|
||||
,Etl_Tx_Dt /*作业运行时间*/
|
||||
,Etl_Proc_Dt /*本次入库时间*/
|
||||
,Etl_Batch_No /*作业批次号*/
|
||||
)
|
||||
SELECT
|
||||
'SCRM Event' /*contact_channel*/
|
||||
,COALESCE(TRIM(CAST(p0.customer_id AS varchar(50))),'') /*contact_account*/
|
||||
,COALESCE(TRIM(CAST(p0.label AS varchar(50))),'') /*label*/
|
||||
,COALESCE(TRIM(CAST(p0.target_name AS varchar(100))),'') /*event*/
|
||||
,COALESCE(p0.date,TO_TIMESTAMP(:NULLDATE,'YYYYMMDD')) /*active_time*/
|
||||
,Substr('t01_scrm_leads',1,3) /*Src_Sysname*/
|
||||
,'t01_scrm_leads' /*Src_Table*/
|
||||
,:ETLJOB /*Etl_Job*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*Etl_First_Dt*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*Etl_Tx_Dt*/
|
||||
,current_timestamp(0) /*Etl_Proc_Dt*/
|
||||
,0 /*Etl_Batch_No*/
|
||||
|
||||
FROM :PDMDB.t01_scrm_leads p0
|
||||
;
|
||||
|
||||
|
||||
|
||||
/*****************************************************************************************************/
|
||||
/* GROUP 4:Source Table:t01_udesk_record**************************************************************/
|
||||
/*****************************************************************************************************/
|
||||
|
||||
INSERT INTO cust_leads_detail_agi_CUR_I (
|
||||
contact_channel /*线索渠道*/
|
||||
,contact_account /*联系编号*/
|
||||
,label /*标签*/
|
||||
,event /*事件*/
|
||||
,active_time /*活跃时间*/
|
||||
,Src_Sysname /*来源系统*/
|
||||
,Src_Table /*来源表*/
|
||||
,Etl_Job /*作业名称*/
|
||||
,Etl_First_Dt /*最初入库时间*/
|
||||
,Etl_Tx_Dt /*作业运行时间*/
|
||||
,Etl_Proc_Dt /*本次入库时间*/
|
||||
,Etl_Batch_No /*作业批次号*/
|
||||
)
|
||||
SELECT
|
||||
'Call' /*contact_channel*/
|
||||
,COALESCE(TRIM(p0.call_id),'') /*contact_account*/
|
||||
,COALESCE(TRIM(CAST(p0.type AS varchar(50))),'') /*label*/
|
||||
,case when p0.responsible_group = 'MKT' then '产品报价'
|
||||
when p0.responsible_group = 'IAM' then '产品报价'
|
||||
when p0.responsible_group = 'TSC-KEI' then '技术支持'
|
||||
when p0.responsible_group = 'TSC-TEK' then '技术支持'
|
||||
when p0.responsible_group = 'SSO-TEK' then '维修与校准'
|
||||
else '其他' end /*event*/
|
||||
,COALESCE(p0.record_time,TO_TIMESTAMP(:NULLDATE,'YYYYMMDD')) /*active_time*/
|
||||
,Substr('t01_udesk_record',1,3) /*Src_Sysname*/
|
||||
,'t01_udesk_record' /*Src_Table*/
|
||||
,:ETLJOB /*Etl_Job*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*Etl_First_Dt*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*Etl_Tx_Dt*/
|
||||
,current_timestamp(0) /*Etl_Proc_Dt*/
|
||||
,0 /*Etl_Batch_No*/
|
||||
|
||||
FROM (select distinct on (call_id)
|
||||
* from p20_pdm.t01_udesk_record tur
|
||||
order by call_id,"type") p0
|
||||
|
||||
|
||||
;
|
||||
|
||||
|
||||
|
||||
/*****************************************************************************************************/
|
||||
/* GROUP 5:Source Table:t01_livechat_record***********************************************************/
|
||||
/*****************************************************************************************************/
|
||||
INSERT INTO cust_leads_detail_agi_CUR_I (
|
||||
contact_channel /*线索渠道*/
|
||||
,contact_account /*联系编号*/
|
||||
,label /*标签*/
|
||||
,event /*事件*/
|
||||
,active_time /*活跃时间*/
|
||||
,Src_Sysname /*来源系统*/
|
||||
,Src_Table /*来源表*/
|
||||
,Etl_Job /*作业名称*/
|
||||
,Etl_First_Dt /*最初入库时间*/
|
||||
,Etl_Tx_Dt /*作业运行时间*/
|
||||
,Etl_Proc_Dt /*本次入库时间*/
|
||||
,Etl_Batch_No /*作业批次号*/
|
||||
)
|
||||
SELECT
|
||||
'Chat' /*contact_channel*/
|
||||
,COALESCE(TRIM(CAST(p0.livechat_leads_id AS varchar(50))),'') /*contact_account*/
|
||||
,COALESCE(TRIM(p0.pre_chat_service),'') /*label*/
|
||||
,case when p0.pre_chat_service like '%维修%' then '维修与校准'
|
||||
when p0.pre_chat_service like '%技术%' then '技术支持'
|
||||
when p0.pre_chat_service like '%售后%' then '售后服务'
|
||||
when p0.pre_chat_service like '%报价%' then '产品报价'
|
||||
else '其他' end /*event*/
|
||||
,COALESCE(p0.chat_creation_time,TO_TIMESTAMP(:NULLDATE,'YYYYMMDD')) /*active_time*/
|
||||
,Substr('t01_livechat_record',1,3) /*Src_Sysname*/
|
||||
,'t01_livechat_record' /*Src_Table*/
|
||||
,:ETLJOB /*Etl_Job*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*Etl_First_Dt*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*Etl_Tx_Dt*/
|
||||
,current_timestamp(0) /*Etl_Proc_Dt*/
|
||||
,0 /*Etl_Batch_No*/
|
||||
|
||||
FROM :PDMDB.t01_livechat_record p0
|
||||
;
|
||||
|
||||
|
||||
|
||||
/*将不同数据插入到临时表 */
|
||||
;INSERT INTO cust_leads_detail_agi_INS (
|
||||
event /*事件*/
|
||||
,contact_channel /*线索渠道*/
|
||||
,contact_account /*联系编号*/
|
||||
,label /*标签*/
|
||||
,active_time /*活跃时间*/
|
||||
,Src_Sysname /*来源系统*/
|
||||
,Src_Table /*来源表*/
|
||||
,Etl_Job /*作业名称*/
|
||||
,Etl_First_Dt /*最初入库时间*/
|
||||
,Etl_Tx_Dt /*作业运行时间*/
|
||||
,Etl_Proc_Dt /*本次入库时间*/
|
||||
,Etl_Batch_No /*作业批次号*/
|
||||
|
||||
)
|
||||
SELECT
|
||||
P1.event /*事件*/
|
||||
,P1.contact_channel /*线索渠道*/
|
||||
,P1.contact_account /*联系编号*/
|
||||
,P1.label /*标签*/
|
||||
,P1.active_time /*活跃时间*/
|
||||
,P1.Src_Sysname /*来源系统*/
|
||||
,P1.Src_Table /*来源表*/
|
||||
,P1.Etl_Job /*作业名称*/
|
||||
,P1.Etl_First_Dt /*最初入库时间*/
|
||||
,P1.Etl_Tx_Dt /*作业运行时间*/
|
||||
,P1.Etl_Proc_Dt /*本次入库时间*/
|
||||
,P1.Etl_Batch_No /*作业批次号*/
|
||||
|
||||
FROM cust_leads_detail_agi_CUR_I P1
|
||||
LEFT JOIN :COMMDB.cust_leads_detail P2
|
||||
ON P1.event = P2.event
|
||||
AND P1.contact_channel = P2.contact_channel
|
||||
AND P1.contact_account = P2.contact_account
|
||||
AND P1.label = P2.label
|
||||
AND P1.active_time = P2.active_time
|
||||
|
||||
WHERE P2.event IS NULL
|
||||
OR P2.contact_channel IS NULL
|
||||
OR P2.contact_account IS NULL
|
||||
OR P2.label IS NULL
|
||||
OR P2.active_time IS NULL
|
||||
|
||||
;
|
||||
/*将新增数据插入到目标表 */
|
||||
;INSERT INTO :COMMDB.cust_leads_detail (
|
||||
event /*事件*/
|
||||
,contact_channel /*线索渠道*/
|
||||
,contact_account /*联系编号*/
|
||||
,label /*标签*/
|
||||
,active_time /*活跃时间*/
|
||||
,Src_Sysname /*来源系统*/
|
||||
,Src_Table /*来源表*/
|
||||
,Etl_Job /*作业名称*/
|
||||
,Etl_First_Dt /*最初入库时间*/
|
||||
,Etl_Tx_Dt /*作业运行时间*/
|
||||
,Etl_Proc_Dt /*本次入库时间*/
|
||||
,Etl_Batch_No /*作业批次号*/
|
||||
|
||||
)
|
||||
SELECT
|
||||
P1.event /*事件*/
|
||||
,P1.contact_channel /*线索渠道*/
|
||||
,P1.contact_account /*联系编号*/
|
||||
,P1.label /*标签*/
|
||||
,P1.active_time /*活跃时间*/
|
||||
,P1.Src_Sysname /*来源系统*/
|
||||
,P1.Src_Table /*来源表*/
|
||||
,P1.Etl_Job /*作业名称*/
|
||||
,P1.Etl_First_Dt /*最初入库时间*/
|
||||
,P1.Etl_Tx_Dt /*作业运行时间*/
|
||||
,P1.Etl_Proc_Dt /*本次入库时间*/
|
||||
,P1.Etl_Batch_No /*作业批次号*/
|
||||
|
||||
FROM cust_leads_detail_agi_INS P1
|
||||
ON CONFLICT ( contact_channel,contact_account,label,active_time)
|
||||
DO UPDATE SET
|
||||
contact_channel=excluded.contact_channel
|
||||
,contact_account=excluded.contact_account
|
||||
,label=excluded.label
|
||||
,active_time=excluded.active_time
|
||||
,event=excluded.event
|
||||
,Src_Sysname=excluded.Src_Sysname
|
||||
,Src_Table=excluded.Src_Table
|
||||
,Etl_Job=excluded.Etl_Job
|
||||
,Etl_First_Dt=excluded.Etl_First_Dt
|
||||
,Etl_Tx_Dt=excluded.Etl_Tx_Dt
|
||||
,Etl_Proc_Dt=excluded.Etl_Proc_Dt
|
||||
,Etl_Batch_No=excluded.Etl_Batch_No
|
||||
|
||||
|
||||
;
|
||||
/*****程序结束退出 */
|
||||
\q
|
||||
|
||||
|
|
@ -0,0 +1,86 @@
|
|||
|
||||
DROP TABLE IF EXISTS p30_common.cust_contact_info;
|
||||
CREATE TABLE IF NOT EXISTS p30_common.cust_contact_info (
|
||||
contact_id text
|
||||
, contact text
|
||||
, contact_channel text
|
||||
, full_name text
|
||||
, mobile VARCHAR(0)
|
||||
, email VARCHAR(0)
|
||||
, wechat VARCHAR(0)
|
||||
, company VARCHAR(0)
|
||||
, account text
|
||||
, country VARCHAR(0)
|
||||
, prov_name VARCHAR(0)
|
||||
, city_name VARCHAR(0)
|
||||
, industry VARCHAR(50)
|
||||
, ccp_value VARCHAR(0)
|
||||
, crm_contact text
|
||||
, crm_full_name text
|
||||
, crm_mobile VARCHAR(0)
|
||||
, crm_email VARCHAR(0)
|
||||
, crm_company VARCHAR(0)
|
||||
, crm_account VARCHAR(0)
|
||||
, account_name text
|
||||
, crm_country_name VARCHAR(0)
|
||||
, crm_prov_name VARCHAR(0)
|
||||
, crm_city_name VARCHAR(0)
|
||||
, crm_industry VARCHAR(50)
|
||||
, scrm_contact text
|
||||
, scrm_full_name VARCHAR(0)
|
||||
, scrm_mobile text
|
||||
, scrm_email VARCHAR(0)
|
||||
, scrm_wechat VARCHAR(0)
|
||||
, scrm_company VARCHAR(0)
|
||||
, scrm_prov_name VARCHAR(0)
|
||||
, scrm_city_name VARCHAR(0)
|
||||
, livechat_contact text
|
||||
, livechat_full_name VARCHAR(0)
|
||||
, livechat_mobile VARCHAR(0)
|
||||
, livechat_email VARCHAR(0)
|
||||
, livechat_company VARCHAR(0)
|
||||
, livechat_country VARCHAR(0)
|
||||
|
||||
);
|
||||
|
||||
COMMENT ON COLUMN p30_common.cust_contact_info.contact_id IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_info.contact IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_info.contact_channel IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_info.full_name IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_info.mobile IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_info.email IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_info.wechat IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_info.company IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_info.account IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_info.country IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_info.prov_name IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_info.city_name IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_info.industry IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_info.ccp_value IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_info.crm_contact IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_info.crm_full_name IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_info.crm_mobile IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_info.crm_email IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_info.crm_company IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_info.crm_account IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_info.account_name IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_info.crm_country_name IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_info.crm_prov_name IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_info.crm_city_name IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_info.crm_industry IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_info.scrm_contact IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_info.scrm_full_name IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_info.scrm_mobile IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_info.scrm_email IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_info.scrm_wechat IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_info.scrm_company IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_info.scrm_prov_name IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_info.scrm_city_name IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_info.livechat_contact IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_info.livechat_full_name IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_info.livechat_mobile IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_info.livechat_email IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_info.livechat_company IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_info.livechat_country IS '';
|
||||
|
||||
COMMENT ON TABLE p30_common.cust_contact_info IS '';
|
||||
|
|
@ -0,0 +1,344 @@
|
|||
/***************************************************************************************************/
|
||||
/*script in Sql, generate by SdmCreateScript 2024(by IdgValue, qihang.feng@idgvalue.COM) */
|
||||
/*VERSION 01.10 revised on 2020-08-25 */
|
||||
/*Brilliance stems from wisdoms. */
|
||||
/*************Head Section**************************************************************************/
|
||||
/*Script Use: Periodically load data to :cust_contact_info(客户联系信息) */
|
||||
/*Create Date:2025-10-17 17:30:22 */
|
||||
/*SDM Developed By: dev */
|
||||
/*SDM Developed Date: 2024-01-19 */
|
||||
/*SDM Checked By: dev */
|
||||
/*SDM Checked Date: 2025-10-17 */
|
||||
/*Script Developed By: dev */
|
||||
/*Script Checked By: dev */
|
||||
/*Source table 1: :PDMDB.t01_crm_account */
|
||||
/*Source table 2: :PDMDB.t00_china_city_info */
|
||||
/*Source table 3: p30_common.cust_contact_mapping */
|
||||
/*Source table 4: :PDMDB.t00_country_info */
|
||||
/*Job Type: Inbound transform (Tier 1 to Tier 2) */
|
||||
/*Target Table:cust_contact_info */
|
||||
/*ETL Job Name:cust_contact_info */
|
||||
/*ETL Frequency:Daily */
|
||||
/*ETL Policy:F1 */
|
||||
/********************************************************************************************/
|
||||
/*******Main Section**************************************************************************/
|
||||
\set ON_ERROR_STOP on
|
||||
\set AUTOCOMMIT on
|
||||
\timing on
|
||||
|
||||
|
||||
|
||||
/*创建临时表加载当前数据 */
|
||||
CREATE TEMPORARY TABLE cust_contact_info_agi_CUR_I
|
||||
( LIKE :COMMDB.cust_contact_info)
|
||||
ON COMMIT PRESERVE ROWS;
|
||||
|
||||
|
||||
/*****************************************************************************************************/
|
||||
/* GROUP 1:Source Table:cust_contact_mapping**********************************************************/
|
||||
/*****************************************************************************************************/
|
||||
|
||||
INSERT INTO cust_contact_info_agi_CUR_I (
|
||||
contact_id /*联系人ID*/
|
||||
,contact /*联系方式*/
|
||||
,contact_channel /*联系人渠道*/
|
||||
,full_name /*姓名*/
|
||||
,mobile /*手机号*/
|
||||
,email /*电子邮箱*/
|
||||
,wechat /*微信*/
|
||||
,company /*公司*/
|
||||
,account /*账号*/
|
||||
,country /*国家*/
|
||||
,prov_name /*省份*/
|
||||
,city_name /*城市*/
|
||||
,industry /*行业*/
|
||||
,crm_contact /*CRM线索号*/
|
||||
,crm_full_name /*CRM姓名*/
|
||||
,crm_mobile /*CRM手机号*/
|
||||
,crm_email /*CRM邮箱*/
|
||||
,crm_company /*CRM公司*/
|
||||
,crm_account /*CRM账号*/
|
||||
,account_name /*账号名称*/
|
||||
,crm_country_name /*CRM国家*/
|
||||
,crm_prov_name /*CRM省份*/
|
||||
,crm_city_name /*CRM城市*/
|
||||
,crm_industry /*CRM行业*/
|
||||
,scrm_contact /*SCRM线索编号*/
|
||||
,scrm_full_name /*SCRM姓名*/
|
||||
,scrm_mobile /*SCRM手机号*/
|
||||
,scrm_email /*SCRM邮箱*/
|
||||
,scrm_wechat /*SCRM微信*/
|
||||
,scrm_company /*SCRM公司*/
|
||||
,scrm_prov_name /*SCRM省份*/
|
||||
,scrm_city_name /*SCRM城市*/
|
||||
,livechat_contact /*Livechat线索编号*/
|
||||
,livechat_full_name /*Livechat姓名*/
|
||||
,livechat_mobile /*Livechat手机号*/
|
||||
,livechat_email /*Livechat邮箱*/
|
||||
,livechat_company /*Livechat公司*/
|
||||
,livechat_country /**/
|
||||
,udesk_contact /*UdeskcallID*/
|
||||
,udesk_full_name /*Udesk姓名*/
|
||||
,udesk_mobile /*Udesk手机号*/
|
||||
,udesk_company /*Udesk公司*/
|
||||
,udesk_prov_name /*Udesk省份*/
|
||||
,udesk_city_name /*udesk城市*/
|
||||
,src_sysname /*来源系统*/
|
||||
,src_table /*来源表*/
|
||||
,etl_job /*作业名称*/
|
||||
,etl_first_dt /*最初入库时间*/
|
||||
,etl_proc_dt /*本次入库时间*/
|
||||
,etl_tx_dt /*作业运行时间*/
|
||||
,etl_batch_no /*作业批次号*/
|
||||
)
|
||||
SELECT
|
||||
p1.contact_id /*contact_id*/
|
||||
,p1.contact /*contact*/
|
||||
,p1.contact_channel /*contact_channel*/
|
||||
,p1.full_name /*full_name*/
|
||||
,p1.mobile /*mobile*/
|
||||
,p1.email /*email*/
|
||||
,p1.wechat /*wechat*/
|
||||
,p1.company /*company*/
|
||||
,p1.account /*account*/
|
||||
,coalesce(p3.country_en_name,p4.country_en_name,p1.country) /*country*/
|
||||
,p1.prov_name /*prov_name*/
|
||||
,coalesce(p2.city_name,p1.city_name) /*city_name*/
|
||||
,p1.industry /*industry*/
|
||||
,p1.crm_contact /*crm_contact*/
|
||||
,p1.crm_full_name /*crm_full_name*/
|
||||
,p1.crm_mobile /*crm_mobile*/
|
||||
,p1.crm_email /*crm_email*/
|
||||
,p1.crm_company /*crm_company*/
|
||||
,p1.crm_account /*crm_account*/
|
||||
,coalesce(p6.name,'') /*account_name*/
|
||||
,p1.crm_country_name /*crm_country_name*/
|
||||
,p1.crm_prov_name /*crm_prov_name*/
|
||||
,p1.crm_city_name /*crm_city_name*/
|
||||
,p1.crm_industry /*crm_industry*/
|
||||
,p1.scrm_contact /*scrm_contact*/
|
||||
,p1.scrm_full_name /*scrm_full_name*/
|
||||
,p1.scrm_mobile /*scrm_mobile*/
|
||||
,p1.scrm_email /*scrm_email*/
|
||||
,p1.scrm_wechat /*scrm_wechat*/
|
||||
,p1.scrm_company /*scrm_company*/
|
||||
,p1.scrm_prov_name /*scrm_prov_name*/
|
||||
,p1.scrm_city_name /*scrm_city_name*/
|
||||
,p1.livechat_contact /*livechat_contact*/
|
||||
,p1.livechat_full_name /*livechat_full_name*/
|
||||
,p1.livechat_mobile /*livechat_mobile*/
|
||||
, p1.livechat_email /*livechat_email*/
|
||||
,p1.livechat_company /*livechat_company*/
|
||||
,p1.livechat_country /*livechat_country*/
|
||||
,p1.udesk_contact /*udesk_contact*/
|
||||
,p1.udesk_full_name /*udesk_full_name*/
|
||||
,p1.udesk_mobile /*udesk_mobile*/
|
||||
,p1.udesk_company /*udesk_company*/
|
||||
,p1.udesk_prov_name /*udesk_prov_name*/
|
||||
,p1.udesk_city_name /*udesk_city_name*/
|
||||
,Substr('cust_contact_mapping',1,3) /*src_sysname*/
|
||||
,'cust_contact_mapping' /*src_table*/
|
||||
,:ETLJOB /*etl_job*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*etl_first_dt*/
|
||||
,current_timestamp(0) /*etl_proc_dt*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*etl_tx_dt*/
|
||||
,0 /*etl_batch_no*/
|
||||
|
||||
FROM (select
|
||||
p1.contact_id
|
||||
,p1.user_id as contact
|
||||
,case when crm_contact ='' and scrm_contact ='' and livechat_contact ='' then 'Udesk' else trim(case when crm_contact <> '' then 'CRM ' else '' end || case when scrm_contact <> '' then 'SCRM ' else '' end ||case when livechat_contact <> '' then 'Livechat ' else '' end) end contact_channel
|
||||
,coalesce(p6.name,p2.full_name,p8.contact_name,p3.full_name,p4.full_name,p5.full_name,p7.contact_name ,'') full_name
|
||||
,coalesce(cast(p6.tel as varchar(15)),p2.mobile_phone,p8.phone,p3.mobile_phone,p4.mobile_phone,p5.mobile_phone,p7.phone ,'') mobile
|
||||
,coalesce(p6.email,p2.email,p8.email,p3.email,p4.email,p7.email,'') email
|
||||
,coalesce(p6.external_id,p3.wechat_id,p7.wechat_id,'') wechat
|
||||
,coalesce(p6.company,p2.company_name,p8.company,p3.company_name,p4.company_name,p5.company_name,p7.account_name ,'') company
|
||||
,coalesce(p2.account_name,p8.company,p7.account_name,'') account
|
||||
,case when p2.country_name is not null then p2.country_name
|
||||
when p3.wechat_id is not null then 'China'
|
||||
when p4.visitor_country_code is not null then p4.visitor_country_code
|
||||
else 'China'
|
||||
end country
|
||||
,coalesce(p2.prov_name,p3.prov_name,p8.province,p5.prov_name ,'') prov_name
|
||||
,coalesce(p2.city_name,p3.city_name,p8.city,p5.city_name,p7.city ,'') city_name
|
||||
,coalesce(p2.industry) industry
|
||||
,p1.crm_contact
|
||||
,coalesce(p2.full_name,'') crm_full_name
|
||||
,coalesce(p2.mobile_phone,'') crm_mobile
|
||||
,coalesce(p2.email,'') crm_email
|
||||
,coalesce(p2.company_name,'') crm_company
|
||||
,coalesce(p2.account_name,'') crm_account
|
||||
,coalesce(p2.account_name,'') account_name
|
||||
,coalesce(p2.country_name,'') crm_country_name
|
||||
,coalesce(p2.prov_name,'') crm_prov_name
|
||||
,coalesce(p2.city_name,'') crm_city_name
|
||||
,coalesce(p2.industry) crm_industry
|
||||
,coalesce(p2.post_cd) crm_postcode
|
||||
,p1.scrm_contact
|
||||
,coalesce(p3.full_name,'') scrm_full_name
|
||||
,coalesce(p3.mobile_phone,'') scrm_mobile
|
||||
,coalesce(p3.email,'') scrm_email
|
||||
,coalesce(p3.wechat_id,'') scrm_wechat
|
||||
,coalesce(p3.company_name,'') scrm_company
|
||||
,coalesce(p3.prov_name,'') scrm_prov_name
|
||||
,coalesce(p3.city_name,'') scrm_city_name
|
||||
,p1.livechat_contact
|
||||
,coalesce(p4.full_name,'') livechat_full_name
|
||||
,coalesce(p4.mobile_phone,'') livechat_mobile
|
||||
,coalesce(p4.email,'') livechat_email
|
||||
,coalesce(p4.company_name,'') livechat_company
|
||||
,coalesce(p4.visitor_country_code,'') livechat_country
|
||||
,p5.udesk_contact
|
||||
,coalesce(p5.full_name,'') udesk_full_name
|
||||
,coalesce(p5.mobile_phone,'') udesk_mobile
|
||||
,coalesce(p5.company_name,'') udesk_company
|
||||
,coalesce(p5.prov_name,'') udesk_prov_name
|
||||
,coalesce(p5.city_name,'') udesk_city_name
|
||||
from p30_common.v_cust_contact_mapping_all p1
|
||||
left join p30_common.d_ccc_cust_info p6
|
||||
on p1.ccc_contact = p6.id
|
||||
left join p30_common.d_crm_contact p2
|
||||
on p1.crm_contact =p2.crm_contact_account
|
||||
left join p30_common.d_scrm_contact p3
|
||||
on p1.scrm_contact =p3.scrm_leads_id
|
||||
left join p30_common.d_livechat_contact p4
|
||||
on p1.livechat_contact =livechat_leads_id
|
||||
left join p30_common.d_udesk_contact p5
|
||||
on p1.udesk_contact =p5.udesk_contact
|
||||
left join p30_common.d_jdy_contact_info p7
|
||||
on p1.jdy_contact =p7.jdy_contact_id
|
||||
left join p30_common.d_partner_contact p8
|
||||
on p1.partner_contact =p8.contact_id::text) p1
|
||||
LEFT JOIN :PDMDB.t00_china_city_info p2
|
||||
ON upper(p2.city_en) = upper(p1.city_name)
|
||||
LEFT JOIN :PDMDB.t00_country_info p3
|
||||
ON upper(p1.country)=upper(p3.country_en_name)
|
||||
LEFT JOIN :PDMDB.t00_country_info p4
|
||||
ON upper(p1.country)=upper(p4.country_cd)
|
||||
LEFT JOIN :PDMDB.t01_crm_account p6
|
||||
ON p1.crm_account =p6.accountnumber
|
||||
|
||||
|
||||
;
|
||||
|
||||
|
||||
|
||||
/*从目标表中删除所有数据 cust_contact_info(客户联系信息) */
|
||||
DELETE FROM :COMMDB.cust_contact_info
|
||||
WHERE ETL_JOB=:ETLJOB;
|
||||
|
||||
|
||||
/*将新增数据插入到目标表 */
|
||||
;INSERT INTO :COMMDB.cust_contact_info (
|
||||
contact_id /*联系人ID*/
|
||||
,contact /*联系方式*/
|
||||
,contact_channel /*联系人渠道*/
|
||||
,full_name /*姓名*/
|
||||
,mobile /*手机号*/
|
||||
,email /*电子邮箱*/
|
||||
,wechat /*微信*/
|
||||
,company /*公司*/
|
||||
,account /*账号*/
|
||||
,country /*国家*/
|
||||
,prov_name /*省份*/
|
||||
,city_name /*城市*/
|
||||
,industry /*行业*/
|
||||
,crm_contact /*CRM线索号*/
|
||||
,crm_full_name /*CRM姓名*/
|
||||
,crm_mobile /*CRM手机号*/
|
||||
,crm_email /*CRM邮箱*/
|
||||
,crm_company /*CRM公司*/
|
||||
,crm_account /*CRM账号*/
|
||||
,account_name /*账号名称*/
|
||||
,crm_country_name /*CRM国家*/
|
||||
,crm_prov_name /*CRM省份*/
|
||||
,crm_city_name /*CRM城市*/
|
||||
,crm_industry /*CRM行业*/
|
||||
,scrm_contact /*SCRM线索编号*/
|
||||
,scrm_full_name /*SCRM姓名*/
|
||||
,scrm_mobile /*SCRM手机号*/
|
||||
,scrm_email /*SCRM邮箱*/
|
||||
,scrm_wechat /*SCRM微信*/
|
||||
,scrm_company /*SCRM公司*/
|
||||
,scrm_prov_name /*SCRM省份*/
|
||||
,scrm_city_name /*SCRM城市*/
|
||||
,livechat_contact /*Livechat线索编号*/
|
||||
,livechat_full_name /*Livechat姓名*/
|
||||
,livechat_mobile /*Livechat手机号*/
|
||||
,livechat_email /*Livechat邮箱*/
|
||||
,livechat_company /*Livechat公司*/
|
||||
,livechat_country /**/
|
||||
,udesk_contact /*UdeskcallID*/
|
||||
,udesk_full_name /*Udesk姓名*/
|
||||
,udesk_mobile /*Udesk手机号*/
|
||||
,udesk_company /*Udesk公司*/
|
||||
,udesk_prov_name /*Udesk省份*/
|
||||
,udesk_city_name /*udesk城市*/
|
||||
,src_sysname /*来源系统*/
|
||||
,src_table /*来源表*/
|
||||
,etl_job /*作业名称*/
|
||||
,etl_first_dt /*最初入库时间*/
|
||||
,etl_proc_dt /*本次入库时间*/
|
||||
,etl_tx_dt /*作业运行时间*/
|
||||
,etl_batch_no /*作业批次号*/
|
||||
|
||||
)
|
||||
SELECT
|
||||
P1.contact_id /*联系人ID*/
|
||||
,P1.contact /*联系方式*/
|
||||
,P1.contact_channel /*联系人渠道*/
|
||||
,P1.full_name /*姓名*/
|
||||
,P1.mobile /*手机号*/
|
||||
,P1.email /*电子邮箱*/
|
||||
,P1.wechat /*微信*/
|
||||
,P1.company /*公司*/
|
||||
,P1.account /*账号*/
|
||||
,P1.country /*国家*/
|
||||
,P1.prov_name /*省份*/
|
||||
,P1.city_name /*城市*/
|
||||
,P1.industry /*行业*/
|
||||
,P1.crm_contact /*CRM线索号*/
|
||||
,P1.crm_full_name /*CRM姓名*/
|
||||
,P1.crm_mobile /*CRM手机号*/
|
||||
,P1.crm_email /*CRM邮箱*/
|
||||
,P1.crm_company /*CRM公司*/
|
||||
,P1.crm_account /*CRM账号*/
|
||||
,P1.account_name /*账号名称*/
|
||||
,P1.crm_country_name /*CRM国家*/
|
||||
,P1.crm_prov_name /*CRM省份*/
|
||||
,P1.crm_city_name /*CRM城市*/
|
||||
,P1.crm_industry /*CRM行业*/
|
||||
,P1.scrm_contact /*SCRM线索编号*/
|
||||
,P1.scrm_full_name /*SCRM姓名*/
|
||||
,P1.scrm_mobile /*SCRM手机号*/
|
||||
,P1.scrm_email /*SCRM邮箱*/
|
||||
,P1.scrm_wechat /*SCRM微信*/
|
||||
,P1.scrm_company /*SCRM公司*/
|
||||
,P1.scrm_prov_name /*SCRM省份*/
|
||||
,P1.scrm_city_name /*SCRM城市*/
|
||||
,P1.livechat_contact /*Livechat线索编号*/
|
||||
,P1.livechat_full_name /*Livechat姓名*/
|
||||
,P1.livechat_mobile /*Livechat手机号*/
|
||||
,P1.livechat_email /*Livechat邮箱*/
|
||||
,P1.livechat_company /*Livechat公司*/
|
||||
,P1.livechat_country /**/
|
||||
,P1.udesk_contact /*UdeskcallID*/
|
||||
,P1.udesk_full_name /*Udesk姓名*/
|
||||
,P1.udesk_mobile /*Udesk手机号*/
|
||||
,P1.udesk_company /*Udesk公司*/
|
||||
,P1.udesk_prov_name /*Udesk省份*/
|
||||
,P1.udesk_city_name /*udesk城市*/
|
||||
,P1.src_sysname /*来源系统*/
|
||||
,P1.src_table /*来源表*/
|
||||
,P1.etl_job /*作业名称*/
|
||||
,P1.etl_first_dt /*最初入库时间*/
|
||||
,P1.etl_proc_dt /*本次入库时间*/
|
||||
,P1.etl_tx_dt /*作业运行时间*/
|
||||
,P1.etl_batch_no /*作业批次号*/
|
||||
|
||||
FROM cust_contact_info_agi_CUR_I P1
|
||||
|
||||
;
|
||||
/*****程序结束退出 */
|
||||
\q
|
||||
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
|
||||
DROP TABLE IF EXISTS p30_common.cust_contact_mapping;
|
||||
CREATE TABLE IF NOT EXISTS p30_common.cust_contact_mapping (
|
||||
contact_id VARCHAR(50)
|
||||
, user_id VARCHAR(50)
|
||||
, crm_contact text
|
||||
, scrm_contact text
|
||||
, livechat_contact text
|
||||
, udesk_contact text
|
||||
, ccc_contact text
|
||||
, src_sysname VARCHAR(50)
|
||||
, src_table VARCHAR(50)
|
||||
, etl_job VARCHAR(50)
|
||||
, etl_first_dt timestamp(0)
|
||||
, etl_proc_dt timestamp(0)
|
||||
, etl_tx_dt DATE
|
||||
, etl_batch_no VARCHAR(50)
|
||||
, jdy_contact VARCHAR(50)
|
||||
, partner_contact VARCHAR(50)
|
||||
,primary key( contact_id )
|
||||
);
|
||||
|
||||
COMMENT ON COLUMN p30_common.cust_contact_mapping.contact_id IS '联系编号';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_mapping.user_id IS '用户信息';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_mapping.crm_contact IS 'CRM信息';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_mapping.scrm_contact IS 'SCRM信息';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_mapping.livechat_contact IS 'Livechat客户信息';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_mapping.udesk_contact IS 'Udesk客户信息';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_mapping.ccc_contact IS 'ccc客户信息';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_mapping.src_sysname IS '来源系统';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_mapping.src_table IS '来源表';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_mapping.etl_job IS '作业名称';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_mapping.etl_first_dt IS '最初入库时间';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_mapping.etl_proc_dt IS '本次入库时间';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_mapping.etl_tx_dt IS '作业运行时间';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_mapping.etl_batch_no IS '作业批次号';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_mapping.jdy_contact IS '简道云客户信息';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_mapping.partner_contact IS 'partner客户信息';
|
||||
|
||||
COMMENT ON TABLE p30_common.cust_contact_mapping IS '客户联系方式映射';
|
||||
|
|
@ -0,0 +1,183 @@
|
|||
/***************************************************************************************************/
|
||||
/*script in Sql, generate by SdmCreateScript 2024(by IdgValue, qihang.feng@idgvalue.COM) */
|
||||
/*VERSION 01.10 revised on 2020-08-25 */
|
||||
/*Brilliance stems from wisdoms. */
|
||||
/*************Head Section**************************************************************************/
|
||||
/*Script Use: Periodically load data to :cust_contact_mapping(客户联系方式映射) */
|
||||
/*Create Date:2025-10-17 14:26:00 */
|
||||
/*SDM Developed By: dev */
|
||||
/*SDM Developed Date: 2024-01-19 */
|
||||
/*SDM Checked By: dev */
|
||||
/*SDM Checked Date: 2025-10-17 */
|
||||
/*Script Developed By: dev */
|
||||
/*Script Checked By: dev */
|
||||
/*Source table 1: p30_common.d_scrm_contact */
|
||||
/*Source table 2: :COMMDB.cust_contact_mapping */
|
||||
/*Job Type: Inbound transform (Tier 1 to Tier 2) */
|
||||
/*Target Table:cust_contact_mapping */
|
||||
/*ETL Job Name:cust_contact_mapping */
|
||||
/*ETL Frequency:Daily */
|
||||
/*ETL Policy:F1 */
|
||||
/********************************************************************************************/
|
||||
/*******Main Section**************************************************************************/
|
||||
\set ON_ERROR_STOP on
|
||||
\set AUTOCOMMIT on
|
||||
\timing on
|
||||
|
||||
|
||||
|
||||
/*创建临时表加载当前数据 */
|
||||
CREATE TEMPORARY TABLE cust_contact_mapping_agi_CUR_I
|
||||
( LIKE :COMMDB.cust_contact_mapping)
|
||||
ON COMMIT PRESERVE ROWS;
|
||||
|
||||
|
||||
/*****************************************************************************************************/
|
||||
/* GROUP 1:Source Table:d_scrm_contact****************************************************************/
|
||||
/*****************************************************************************************************/
|
||||
|
||||
INSERT INTO cust_contact_mapping_agi_CUR_I (
|
||||
contact_id /*联系编号*/
|
||||
,user_id /*用户信息*/
|
||||
,crm_contact /*CRM信息*/
|
||||
,scrm_contact /*SCRM信息*/
|
||||
,livechat_contact /*Livechat客户信息*/
|
||||
,udesk_contact /*Udesk客户信息*/
|
||||
,ccc_contact /*ccc客户信息*/
|
||||
,src_sysname /*来源系统*/
|
||||
,src_table /*来源表*/
|
||||
,etl_job /*作业名称*/
|
||||
,etl_first_dt /*最初入库时间*/
|
||||
,etl_proc_dt /*本次入库时间*/
|
||||
,etl_tx_dt /*作业运行时间*/
|
||||
,etl_batch_no /*作业批次号*/
|
||||
,jdy_contact /*简道云客户信息*/
|
||||
,partner_contact /*partner客户信息*/
|
||||
)
|
||||
SELECT
|
||||
coalesce(p1.contact_id,'LCON-'||lpad(nextval('p20_pdm.user_id_seq')::text,10,'0')) /*contact_id*/
|
||||
,p0.user_id /*user_id*/
|
||||
,p0.crm_contact /*crm_contact*/
|
||||
,p0.scrm_contact /*scrm_contact*/
|
||||
,p0.livechat_contact /*livechat_contact*/
|
||||
,p0.udesk_contact /*udesk_contact*/
|
||||
,p0.ccc_contact /*ccc_contact*/
|
||||
,Substr('d_scrm_contact',1,3) /*src_sysname*/
|
||||
,'d_scrm_contact' /*src_table*/
|
||||
,:ETLJOB /*etl_job*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*etl_first_dt*/
|
||||
,current_timestamp(0) /*etl_proc_dt*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*etl_tx_dt*/
|
||||
,0 /*etl_batch_no*/
|
||||
,p0.jdy_contact /*jdy_contact*/
|
||||
,p0.Partner_contact /*partner_contact*/
|
||||
|
||||
FROM (select '' contact_id,user_id
|
||||
,string_agg(case when src_channel='CRM' then crm_contact_account else '' end,',') crm_contact
|
||||
,string_agg(case when src_channel='SCRM' then crm_contact_account else '' end,',') scrm_contact
|
||||
,string_agg(case when src_channel='Livechat' then crm_contact_account else '' end,',') livechat_contact
|
||||
,string_agg(case when src_channel='Udesk' then crm_contact_account else '' end,',') udesk_contact
|
||||
,string_agg(case when src_channel='SMART CCC' then crm_contact_account else '' end,',') ccc_contact
|
||||
,string_agg(case when src_channel='JDY' then crm_contact_account else '' end,',') jdy_contact
|
||||
,string_agg(case when src_channel='Partner' then crm_contact_account else '' end,',') Partner_contact
|
||||
from (
|
||||
select case when tel ~ '^1[3-9]\d{9}$' then tel
|
||||
when email ~ '[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$' then email
|
||||
else name
|
||||
end user_id,id crm_contact_account,'SMART CCC' src_channel from p30_common.d_ccc_cust_info
|
||||
union all
|
||||
select case when mobile_phone ~ '^1[3-9]\d{9}$' then mobile_phone
|
||||
when email ~ '[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$' then email
|
||||
else full_name
|
||||
end user_id,crm_contact_account,'CRM' src_channel from p30_common.d_crm_contact
|
||||
union all
|
||||
select case when mobile_phone ~ '^1[3-9]\d{9}$' then mobile_phone
|
||||
when email ~ '[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$' then email
|
||||
when length(wechat_id) >5 then wechat_id
|
||||
else full_name
|
||||
end user_id,scrm_leads_id,'SCRM' from p30_common.d_scrm_contact
|
||||
union all
|
||||
select case when mobile_phone ~ '^1[3-9]\d{9}$' then mobile_phone
|
||||
when email ~ '[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$' then email
|
||||
else full_name
|
||||
end user_id,livechat_leads_id,'Livechat' from p30_common.d_livechat_contact
|
||||
union all
|
||||
select case when mobile_phone ~ '^1[3-9]\d{9}$' then mobile_phone
|
||||
else full_name
|
||||
end user_id,udesk_contact,'Udesk' from p30_common.d_udesk_contact
|
||||
union all
|
||||
select case when phone ~ '^1[3-9]\d{9}$' then phone
|
||||
when email ~ '[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$' then email
|
||||
else contact_name
|
||||
end user_id,contact_id::text partner_contact_account,'Partner' src_channel from p30_common.d_partner_contact
|
||||
union all
|
||||
select case when phone ~ '^1[3-9]\d{9}$' then phone
|
||||
when email ~ '[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$' then email
|
||||
else contact_name
|
||||
end user_id,jdy_contact_id jdy_contact_account,'JDY' from p30_common.d_jdy_contact_info
|
||||
where dw_contact_id not like 'LCON-%')p1
|
||||
where p1.user_id<>''
|
||||
group by user_id) p0
|
||||
LEFT JOIN :COMMDB.cust_contact_mapping p1
|
||||
ON p1.user_id=p0 .user_id
|
||||
|
||||
|
||||
;
|
||||
|
||||
|
||||
update cust_contact_mapping_agi_CUR_I
|
||||
set jdy_contact = jdy_contact_id
|
||||
from (select ccm.contact_id,string_agg(ccm.partner_contact,',')||','||string_agg(jdy_contact_id,',') jdy_contact_id from p30_common.cust_contact_mapping ccm
|
||||
inner join p30_common.d_jdy_contact_info p2
|
||||
on ccm.contact_id =p2.dw_contact_id
|
||||
group by ccm.contact_id) p1
|
||||
where cust_contact_mapping_agi_CUR_I.contact_id=p1.contact_id;
|
||||
/*从目标表中删除所有数据 cust_contact_mapping(客户联系方式映射) */
|
||||
DELETE FROM :COMMDB.cust_contact_mapping
|
||||
WHERE ETL_JOB=:ETLJOB;
|
||||
|
||||
|
||||
/*将新增数据插入到目标表 */
|
||||
;INSERT INTO :COMMDB.cust_contact_mapping (
|
||||
user_id /*用户信息*/
|
||||
,crm_contact /*CRM信息*/
|
||||
,scrm_contact /*SCRM信息*/
|
||||
,livechat_contact /*Livechat客户信息*/
|
||||
,udesk_contact /*Udesk客户信息*/
|
||||
,ccc_contact /*ccc客户信息*/
|
||||
,jdy_contact /*简道云客户信息*/
|
||||
,partner_contact /*partner客户信息*/
|
||||
,contact_id /*联系编号*/
|
||||
,src_sysname /*来源系统*/
|
||||
,src_table /*来源表*/
|
||||
,etl_job /*作业名称*/
|
||||
,etl_first_dt /*最初入库时间*/
|
||||
,etl_proc_dt /*本次入库时间*/
|
||||
,etl_tx_dt /*作业运行时间*/
|
||||
,etl_batch_no /*作业批次号*/
|
||||
|
||||
)
|
||||
SELECT
|
||||
P1.user_id /*用户信息*/
|
||||
,P1.crm_contact /*CRM信息*/
|
||||
,P1.scrm_contact /*SCRM信息*/
|
||||
,P1.livechat_contact /*Livechat客户信息*/
|
||||
,P1.udesk_contact /*Udesk客户信息*/
|
||||
,P1.ccc_contact /*ccc客户信息*/
|
||||
,P1.jdy_contact /*简道云客户信息*/
|
||||
,P1.partner_contact /*partner客户信息*/
|
||||
,P1.contact_id /*联系编号*/
|
||||
,P1.src_sysname /*来源系统*/
|
||||
,P1.src_table /*来源表*/
|
||||
,P1.etl_job /*作业名称*/
|
||||
,P1.etl_first_dt /*最初入库时间*/
|
||||
,P1.etl_proc_dt /*本次入库时间*/
|
||||
,P1.etl_tx_dt /*作业运行时间*/
|
||||
,P1.etl_batch_no /*作业批次号*/
|
||||
|
||||
FROM cust_contact_mapping_agi_CUR_I P1
|
||||
|
||||
;
|
||||
/*****程序结束退出 */
|
||||
\q
|
||||
|
||||
|
|
@ -136,7 +136,7 @@ contact_update_feign >> contact_update_load
|
|||
api_contact_update_info_2218 = SSHOperator(
|
||||
ssh_hook=sshHook,
|
||||
task_id='api_contact_update_info_2218',
|
||||
command='/data/airflow/etl/SA/run_sa.sh {{ ds_nodash }} {{ params.my_param }} >>/data/airflow/logs/run_psql_{{ds_nodash}}.log 2>&1 ',
|
||||
command='/data/airflow/etl/SA/run_sa.sh {{ ds_nodash }} {{ params.my_param }} ',
|
||||
params={'my_param':"S98_S_api_contact_update_info"},
|
||||
depends_on_past=False,
|
||||
retries=3,
|
||||
|
|
@ -145,7 +145,7 @@ dag=dag)
|
|||
api_contact_fields_4587 = SSHOperator(
|
||||
ssh_hook=sshHook,
|
||||
task_id='api_contact_fields_4587',
|
||||
command='/data/airflow/etl/SA/run_sa.sh {{ ds_nodash }} {{ params.my_param }} >>/data/airflow/logs/run_psql_{{ds_nodash}}.log 2>&1 ',
|
||||
command='/data/airflow/etl/SA/run_sa.sh {{ ds_nodash }} {{ params.my_param }} ',
|
||||
params={'my_param':"S98_S_api_contact_fields"},
|
||||
depends_on_past=False,
|
||||
retries=3,
|
||||
|
|
@ -154,7 +154,7 @@ dag=dag)
|
|||
api_contact_event_meta_9651 = SSHOperator(
|
||||
ssh_hook=sshHook,
|
||||
task_id='api_contact_event_meta_9651',
|
||||
command='/data/airflow/etl/SA/run_sa.sh {{ ds_nodash }} {{ params.my_param }} >>/data/airflow/logs/run_psql_{{ds_nodash}}.log 2>&1 ',
|
||||
command='/data/airflow/etl/SA/run_sa.sh {{ ds_nodash }} {{ params.my_param }} ',
|
||||
params={'my_param':"S98_S_api_contact_event_meta"},
|
||||
depends_on_past=False,
|
||||
retries=3,
|
||||
|
|
@ -163,7 +163,7 @@ dag=dag)
|
|||
api_contact_events_6043 = SSHOperator(
|
||||
ssh_hook=sshHook,
|
||||
task_id='api_contact_events_6043',
|
||||
command='/data/airflow/etl/SA/run_sa.sh {{ ds_nodash }} {{ params.my_param }} >>/data/airflow/logs/run_psql_{{ds_nodash}}.log 2>&1 ',
|
||||
command='/data/airflow/etl/SA/run_sa.sh {{ ds_nodash }} {{ params.my_param }} ',
|
||||
params={'my_param':"S98_S_api_contact_events"},
|
||||
depends_on_past=False,
|
||||
retries=3,
|
||||
|
|
@ -172,15 +172,106 @@ dag=dag)
|
|||
api_contact_created_3850 = SSHOperator(
|
||||
ssh_hook=sshHook,
|
||||
task_id='api_contact_created_3850',
|
||||
command='/data/airflow/etl/SA/run_sa.sh {{ ds_nodash }} {{ params.my_param }} >>/data/airflow/logs/run_psql_{{ds_nodash}}.log 2>&1 ',
|
||||
command='/data/airflow/etl/SA/run_sa.sh {{ ds_nodash }} {{ params.my_param }} ',
|
||||
params={'my_param':"S98_S_api_contact_created"},
|
||||
depends_on_past=False,
|
||||
retries=3,
|
||||
dag=dag)
|
||||
|
||||
t01_scrm_leads = SSHOperator(
|
||||
ssh_hook=sshHook,
|
||||
task_id='t01_scrm_leads',
|
||||
command='/data/airflow/etl/PDM/run_psql.sh {{ ds_nodash }} {{params.my_param}} ',
|
||||
params={'my_param':"t01_scrm_leads_agi"},
|
||||
depends_on_past=False,
|
||||
retries=3,
|
||||
dag=dag)
|
||||
t01_scrm_contact = SSHOperator(
|
||||
ssh_hook=sshHook,
|
||||
task_id='t01_scrm_contact',
|
||||
command='/data/airflow/etl/PDM/run_psql.sh {{ ds_nodash }} {{params.my_param}} ',
|
||||
params={'my_param':"t01_scrm_contact_agi"},
|
||||
depends_on_past=False,
|
||||
retries=3,
|
||||
dag=dag)
|
||||
d_scrm_contact = SSHOperator(
|
||||
ssh_hook=sshHook,
|
||||
task_id='d_scrm_contact',
|
||||
command='/data/airflow/etl/COM/run_psql.sh {{ ds_nodash }} {{params.my_param}} ',
|
||||
params={'my_param':"d_scrm_contact_agi"},
|
||||
depends_on_past=False,
|
||||
retries=3,
|
||||
dag=dag)
|
||||
cust_contact_mapping = SSHOperator(
|
||||
ssh_hook=sshHook,
|
||||
task_id='cust_contact_mapping',
|
||||
command='/data/airflow/etl/COM/run_psql.sh {{ ds_nodash }} {{params.my_param}} ',
|
||||
params={'my_param':"cust_contact_mapping_agi"},
|
||||
depends_on_past=False,
|
||||
retries=3,
|
||||
dag=dag)
|
||||
cust_leads = SSHOperator(
|
||||
ssh_hook=sshHook,
|
||||
task_id='cust_leads',
|
||||
command='/data/airflow/etl/COM/run_psql.sh {{ ds_nodash }} {{params.my_param}} ',
|
||||
params={'my_param':"cust_leads_agi"},
|
||||
depends_on_past=False,
|
||||
retries=3,
|
||||
dag=dag)
|
||||
cust_leads_detail = SSHOperator(
|
||||
ssh_hook=sshHook,
|
||||
task_id='cust_leads_detail',
|
||||
command='/data/airflow/etl/COM/run_psql.sh {{ ds_nodash }} {{params.my_param}} ',
|
||||
params={'my_param':"cust_leads_detail_agi"},
|
||||
depends_on_past=False,
|
||||
retries=3,
|
||||
dag=dag)
|
||||
cust_contact_info = SSHOperator(
|
||||
ssh_hook=sshHook,
|
||||
task_id='cust_contact_info',
|
||||
command='/data/airflow/etl/COM/run_psql.sh {{ ds_nodash }} {{params.my_param}} ',
|
||||
params={'my_param':"cust_contact_info_agi"},
|
||||
depends_on_past=False,
|
||||
retries=3,
|
||||
dag=dag)
|
||||
cust_all_info = SSHOperator(
|
||||
ssh_hook=sshHook,
|
||||
task_id='cust_all_info',
|
||||
command='/data/airflow/etl/MART/run_psql.sh {{ ds_nodash }} {{params.my_param}} ',
|
||||
params={'my_param':"cust_all_info_agi"},
|
||||
depends_on_past=False,
|
||||
retries=3,
|
||||
dag=dag)
|
||||
data_source_update = SSHOperator(
|
||||
ssh_hook=sshHook,
|
||||
task_id='data_source_update',
|
||||
command='/data/airflow/etl/MART/run_psql.sh {{ ds_nodash }} {{params.my_param}} ',
|
||||
params={'my_param':"data_source_update_agi"},
|
||||
depends_on_past=False,
|
||||
retries=3,
|
||||
dag=dag)
|
||||
cust_enagement_records = SSHOperator(
|
||||
ssh_hook=sshHook,
|
||||
task_id='cust_enagement_records',
|
||||
command='/data/airflow/etl/MART/run_psql.sh {{ ds_nodash }} {{params.my_param}} ',
|
||||
params={'my_param':"cust_enagement_records_agi"},
|
||||
depends_on_past=False,
|
||||
retries=3,
|
||||
dag=dag)
|
||||
contact_create_list_load >> api_contact_created_3850
|
||||
contact_fields_load >> api_contact_fields_4587
|
||||
contact_update_load >> api_contact_update_info_2218
|
||||
api_contact_events_load >> api_contact_events_6043
|
||||
contact_event_meta_load >> api_contact_event_meta_9651
|
||||
api_contact_event_meta_9651 >> task_failed
|
||||
api_contact_update_info_2218 >> t01_scrm_contact
|
||||
api_contact_events_6043 >> t01_scrm_leads
|
||||
t01_scrm_contact >> d_scrm_contact
|
||||
d_scrm_contact >> cust_contact_mapping
|
||||
t01_scrm_leads >> cust_leads
|
||||
cust_leads >> cust_leads_detail
|
||||
cust_contact_mapping >> cust_contact_info
|
||||
cust_contact_info >> cust_leads_detail
|
||||
cust_contact_info >> cust_all_info
|
||||
cust_all_info >> data_source_update
|
||||
cust_all_info >> cust_enagement_records
|
||||
cust_enagement_records >> task_failed
|
||||
|
|
|
|||
|
|
@ -0,0 +1,34 @@
|
|||
|
||||
DROP TABLE IF EXISTS p60_mart.data_source_update;
|
||||
CREATE TABLE IF NOT EXISTS p60_mart.data_source_update (
|
||||
date_layer varchar(20)
|
||||
, data_area varchar(20)
|
||||
, data_table varchar(200)
|
||||
, data_rows bigint
|
||||
, column_qty int
|
||||
, last_upt_tm timestamp(0)
|
||||
, Etl_Batch_No varchar(50)
|
||||
, Etl_First_Dt timestamp(0)
|
||||
, Etl_Job varchar(200)
|
||||
, Etl_Proc_Dt timestamp(0)
|
||||
, Etl_Tx_Dt timestamp(0)
|
||||
, Src_Sysname varchar(50)
|
||||
, Src_Table varchar(50)
|
||||
,primary key( date_layer,data_table )
|
||||
);
|
||||
|
||||
COMMENT ON COLUMN p60_mart.data_source_update.date_layer IS '数据层级';
|
||||
COMMENT ON COLUMN p60_mart.data_source_update.data_area IS '数据领域';
|
||||
COMMENT ON COLUMN p60_mart.data_source_update.data_table IS '数据表';
|
||||
COMMENT ON COLUMN p60_mart.data_source_update.data_rows IS '数据行数';
|
||||
COMMENT ON COLUMN p60_mart.data_source_update.column_qty IS '字段数';
|
||||
COMMENT ON COLUMN p60_mart.data_source_update.last_upt_tm IS '最后更新日期';
|
||||
COMMENT ON COLUMN p60_mart.data_source_update.Etl_Batch_No IS '作业批次号';
|
||||
COMMENT ON COLUMN p60_mart.data_source_update.Etl_First_Dt IS '最初入库时间';
|
||||
COMMENT ON COLUMN p60_mart.data_source_update.Etl_Job IS '作业名称';
|
||||
COMMENT ON COLUMN p60_mart.data_source_update.Etl_Proc_Dt IS '本次入库时间';
|
||||
COMMENT ON COLUMN p60_mart.data_source_update.Etl_Tx_Dt IS '作业运行时间';
|
||||
COMMENT ON COLUMN p60_mart.data_source_update.Src_Sysname IS '来源系统';
|
||||
COMMENT ON COLUMN p60_mart.data_source_update.Src_Table IS '来源表';
|
||||
|
||||
COMMENT ON TABLE p60_mart.data_source_update IS '数据源更新时间';
|
||||
|
|
@ -0,0 +1,355 @@
|
|||
/***************************************************************************************************/
|
||||
/*script in Sql, generate by SdmCreateScript 2020(by Qihang Feng, QF255001@TERADATA.COM) */
|
||||
/*VERSION 01.10 revised on 2020-08-25 */
|
||||
/*Brilliance stems from wisdoms. */
|
||||
/*************Head Section**************************************************************************/
|
||||
/*Script Use: Periodically load data to :data_source_update(数据源更新时间) */
|
||||
/*Create Date:2024-06-17 11:29:47 */
|
||||
/*SDM Developed By: dev */
|
||||
/*SDM Developed Date: 2024-05-28 */
|
||||
/*SDM Checked By: dev */
|
||||
/*SDM Checked Date: 2024-06-17 */
|
||||
/*Script Developed By: dev */
|
||||
/*Script Checked By: dev */
|
||||
/*Source table 1: p10_sa.s98_s_customer_event_meta */
|
||||
/*Job Type: Inbound transform (Tier 1 to Tier 2) */
|
||||
/*Target Table:data_source_update */
|
||||
/*ETL Job Name:data_source_update */
|
||||
/*ETL Frequency:Daily */
|
||||
/*ETL Policy:F2 */
|
||||
/********************************************************************************************/
|
||||
/*******Main Section**************************************************************************/
|
||||
\set ON_ERROR_STOP on
|
||||
\set AUTOCOMMIT on
|
||||
\timing on
|
||||
|
||||
|
||||
|
||||
/*创建临时表加载当前数据 */
|
||||
CREATE TEMPORARY TABLE data_source_update_agi_CUR_I
|
||||
( LIKE :MARTDB.data_source_update)
|
||||
ON COMMIT PRESERVE ROWS;
|
||||
|
||||
|
||||
|
||||
/*创建临时表加载不同数据 */
|
||||
CREATE TEMPORARY TABLE data_source_update_agi_INS
|
||||
( LIKE :MARTDB.data_source_update)
|
||||
ON COMMIT PRESERVE ROWS;
|
||||
|
||||
|
||||
/*****************************************************************************************************/
|
||||
/* GROUP 1:Source Table:s98_s_customer_event_meta*****************************************************/
|
||||
/*****************************************************************************************************/
|
||||
|
||||
INSERT INTO data_source_update_agi_CUR_I (
|
||||
date_layer /*数据层级*/
|
||||
,data_area /*数据领域*/
|
||||
,data_table /*数据表*/
|
||||
,data_rows /*数据行数*/
|
||||
,column_qty /*字段数*/
|
||||
,last_upt_tm /*最后更新日期*/
|
||||
,Etl_Batch_No /*作业批次号*/
|
||||
,Etl_First_Dt /*最初入库时间*/
|
||||
,Etl_Job /*作业名称*/
|
||||
,Etl_Proc_Dt /*本次入库时间*/
|
||||
,Etl_Tx_Dt /*作业运行时间*/
|
||||
,Src_Sysname /*来源系统*/
|
||||
,Src_Table /*来源表*/
|
||||
)
|
||||
SELECT
|
||||
'Data Source' /*date_layer*/
|
||||
,case when p0 .data_table like '%scrm%' then 'SCRM'
|
||||
when p0.data_table like '%custom%' then 'SCRM'
|
||||
when p0.data_table like '%crm%' then 'CRM'
|
||||
when p0.data_table like '%livechat%' then 'LiveChat'
|
||||
when p0.data_table like '%udesk%'
|
||||
then 'Udesk'
|
||||
else 'All' end /*data_area*/
|
||||
,coalesce(p0.data_table,'') /*data_table*/
|
||||
,coalesce(p0.row_count,0) /*data_rows*/
|
||||
,coalesce(p0.columns_qty,0) /*column_qty*/
|
||||
,p0.last_upt_tm /*last_upt_tm*/
|
||||
,0 /*Etl_Batch_No*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*Etl_First_Dt*/
|
||||
,:ETLJOB /*Etl_Job*/
|
||||
,current_timestamp(0) /*Etl_Proc_Dt*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*Etl_Tx_Dt*/
|
||||
,Substr('s98_s_customer_event_meta',1,3) /*Src_Sysname*/
|
||||
,'s98_s_customer_event_meta' /*Src_Table*/
|
||||
|
||||
FROM (select 's98_s_crm_account' data_table,count(*) row_count ,max(etl_tx_dt) last_upt_tm , 41 columns_qty from p12_sfull.s98_s_crm_account
|
||||
union all
|
||||
select 's98_s_crm_contact_ccp' data_table,count(*) row_count ,max(etl_tx_dt) last_upt_tm , 4 columns_qty from p12_sfull.s98_s_crm_contact_ccp
|
||||
union all
|
||||
select 's98_s_crm_contact_part' data_table,count(*) row_count ,max(etl_tx_dt) last_upt_tm , 57 columns_qty from p12_sfull.s98_s_crm_contact_part
|
||||
union all
|
||||
select 's98_s_crm_opp' data_table,count(*) row_count ,max(etl_tx_dt) last_upt_tm , 50 columns_qty from p12_sfull.s98_s_crm_opp
|
||||
union all
|
||||
select 's98_s_crm_raw_leads' data_table,count(*) row_count ,max(etl_tx_dt) last_upt_tm , 12 columns_qty from p12_sfull.s98_s_crm_raw_leads
|
||||
union all
|
||||
select 's98_s_custom_events_activity_submit' data_table,count(*) row_count ,max(etl_tx_dt) last_upt_tm , 15 columns_qty from p12_sfull.s98_s_custom_events_activity_submit
|
||||
union all
|
||||
select 's98_s_customer_event_meta' data_table,count(*) row_count ,max(etl_tx_dt) last_upt_tm , 4 columns_qty from p12_sfull.s98_s_customer_event_meta
|
||||
union all
|
||||
select 's98_s_customer_events' data_table,count(*) row_count ,max(etl_tx_dt) last_upt_tm , 12 columns_qty from p12_sfull.s98_s_customer_events
|
||||
union all
|
||||
select 's98_s_customer_events_add_user' data_table,count(*) row_count ,max(etl_tx_dt) last_upt_tm , 17 columns_qty from p12_sfull.s98_s_customer_events_add_user
|
||||
union all
|
||||
select 's98_s_customer_events_c_minipro_page_view' data_table,count(*) row_count ,max(etl_tx_dt) last_upt_tm , 25 columns_qty from p12_sfull.s98_s_customer_events_c_minipro_page_view
|
||||
union all
|
||||
select 's98_s_customer_events_click_link_in_page' data_table,count(*) row_count ,max(etl_tx_dt) last_upt_tm , 27 columns_qty from p12_sfull.s98_s_customer_events_click_link_in_page
|
||||
union all
|
||||
select 's98_s_customer_events_lastupdated' data_table,count(*) row_count ,max(etl_tx_dt) last_upt_tm , 28 columns_qty from p12_sfull.s98_s_customer_events_lastupdated
|
||||
union all
|
||||
select 's98_s_customer_events_open_app' data_table,count(*) row_count ,max(etl_tx_dt) last_upt_tm , 27 columns_qty from p12_sfull.s98_s_customer_events_open_app
|
||||
union all
|
||||
select 's98_s_customer_events_open_content_page' data_table,count(*) row_count ,max(etl_tx_dt) last_upt_tm , 27 columns_qty from p12_sfull.s98_s_customer_events_open_content_page
|
||||
union all
|
||||
select 's98_s_customer_events_open_page' data_table,count(*) row_count ,max(etl_tx_dt) last_upt_tm , 33 columns_qty from p12_sfull.s98_s_customer_events_open_page
|
||||
union all
|
||||
select 's98_s_customer_events_submit_form' data_table,count(*) row_count ,max(etl_tx_dt) last_upt_tm , 25 columns_qty from p12_sfull.s98_s_customer_events_submit_form
|
||||
union all
|
||||
select 's98_s_customer_events_subscribe' data_table,count(*) row_count ,max(etl_tx_dt) last_upt_tm , 13 columns_qty from p12_sfull.s98_s_customer_events_subscribe
|
||||
union all
|
||||
select 's98_s_customer_events_wechat_scan' data_table,count(*) row_count ,max(etl_tx_dt) last_upt_tm , 13 columns_qty from p12_sfull.s98_s_customer_events_wechat_scan
|
||||
union all
|
||||
select 's98_s_livechat' data_table,count(*) row_count ,max(etl_tx_dt) last_upt_tm , 98 columns_qty from p12_sfull.s98_s_livechat
|
||||
union all
|
||||
select 's98_s_scrm_contact' data_table,count(*) row_count ,max(etl_tx_dt) last_upt_tm , 133 columns_qty from p12_sfull.s98_s_scrm_contact
|
||||
union all
|
||||
select 's98_s_scrm_contact_af0912' data_table,count(*) row_count ,max(etl_tx_dt) last_upt_tm , 11 columns_qty from p12_sfull.s98_s_scrm_contact_af0912
|
||||
union all
|
||||
select 's98_s_scrm_contact_lastupdated' data_table,count(*) row_count ,max(etl_tx_dt) last_upt_tm , 133 columns_qty from p12_sfull.s98_s_scrm_contact_lastupdated
|
||||
union all
|
||||
select 's98_s_scrm_contact_merge' data_table,count(*) row_count ,max(etl_tx_dt) last_upt_tm , 20 columns_qty from p12_sfull.s98_s_scrm_contact_merge
|
||||
union all
|
||||
select 's98_s_scrm_contact_merge_af0912' data_table,count(*) row_count ,max(etl_tx_dt) last_upt_tm , 16 columns_qty from p12_sfull.s98_s_scrm_contact_merge_af0912
|
||||
union all
|
||||
select 's98_s_scrm_contact_update_af0912' data_table,count(*) row_count ,max(etl_tx_dt) last_upt_tm , 11 columns_qty from p12_sfull.s98_s_scrm_contact_update_af0912
|
||||
union all
|
||||
select 's98_s_scrm_leads_af0912' data_table,count(*) row_count ,max(etl_tx_dt) last_upt_tm , 13 columns_qty from p12_sfull.s98_s_scrm_leads_af0912
|
||||
union all
|
||||
select 's98_s_udesk_record' data_table,count(*) row_count ,max(etl_tx_dt) last_upt_tm , 21 columns_qty from p12_sfull.s98_s_udesk_record
|
||||
) p0
|
||||
|
||||
|
||||
;
|
||||
|
||||
|
||||
|
||||
/*****************************************************************************************************/
|
||||
/* GROUP 2:Source Table:s98_s_customer_event_meta*****************************************************/
|
||||
/*****************************************************************************************************/
|
||||
|
||||
INSERT INTO data_source_update_agi_CUR_I (
|
||||
date_layer /*数据层级*/
|
||||
,data_area /*数据领域*/
|
||||
,data_table /*数据表*/
|
||||
,data_rows /*数据行数*/
|
||||
,column_qty /*字段数*/
|
||||
,last_upt_tm /*最后更新日期*/
|
||||
,Etl_Batch_No /*作业批次号*/
|
||||
,Etl_First_Dt /*最初入库时间*/
|
||||
,Etl_Job /*作业名称*/
|
||||
,Etl_Proc_Dt /*本次入库时间*/
|
||||
,Etl_Tx_Dt /*作业运行时间*/
|
||||
,Src_Sysname /*来源系统*/
|
||||
,Src_Table /*来源表*/
|
||||
)
|
||||
SELECT
|
||||
'COM' /*date_layer*/
|
||||
,case when p0 .data_table like '%scrm%' then 'SCRM'
|
||||
when p0.data_table like '%customer%' then 'SCRM'
|
||||
when p0.data_table like '%crm%' then 'CRM'
|
||||
when p0.data_table like '%livechat%' then 'LiveChat'
|
||||
when p0.data_table like '%udesk%'
|
||||
then 'Udesk'
|
||||
else 'All' end /*data_area*/
|
||||
,coalesce(p0.data_table) /*data_table*/
|
||||
,coalesce(p0.row_count) /*data_rows*/
|
||||
,coalesce(p0.columns_qty) /*column_qty*/
|
||||
,p0.last_upt_tm /*last_upt_tm*/
|
||||
,0 /*Etl_Batch_No*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*Etl_First_Dt*/
|
||||
,:ETLJOB /*Etl_Job*/
|
||||
,current_timestamp(0) /*Etl_Proc_Dt*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*Etl_Tx_Dt*/
|
||||
,Substr('s98_s_customer_event_meta',1,3) /*Src_Sysname*/
|
||||
,'s98_s_customer_event_meta' /*Src_Table*/
|
||||
|
||||
FROM (select 'cust_contact_info' data_table,count(*) row_count ,max(etl_proc_dt) last_upt_tm , 51 columns_qty from p30_common.cust_contact_info
|
||||
union all
|
||||
select 'cust_contact_mapping' data_table,count(*) row_count ,max(etl_proc_dt) last_upt_tm , 13 columns_qty from p30_common.cust_contact_mapping
|
||||
union all
|
||||
select 'cust_leads' data_table,count(*) row_count ,max(etl_proc_dt) last_upt_tm , 10 columns_qty from p30_common.cust_leads
|
||||
union all
|
||||
select 'cust_leads_detail' data_table,count(*) row_count ,max(etl_proc_dt) last_upt_tm , 10 columns_qty from p30_common.cust_leads_detail
|
||||
union all
|
||||
select 'd_crm_contact' data_table,count(*) row_count ,max(etl_proc_dt) last_upt_tm , 65 columns_qty from p30_common.d_crm_contact
|
||||
union all
|
||||
select 'd_livechat_contact' data_table,count(*) row_count ,max(etl_proc_dt) last_upt_tm , 19 columns_qty from p30_common.d_livechat_contact
|
||||
union all
|
||||
select 'd_scrm_contact' data_table,count(*) row_count ,max(etl_proc_dt) last_upt_tm , 20 columns_qty from p30_common.d_scrm_contact
|
||||
union all
|
||||
select 'd_udesk_contact' data_table,count(*) row_count ,max(etl_proc_dt) last_upt_tm , 16 columns_qty from p30_common.d_udesk_contact ) p0
|
||||
|
||||
|
||||
;
|
||||
|
||||
|
||||
|
||||
/*****************************************************************************************************/
|
||||
/* GROUP 3:Source Table:s98_s_customer_event_meta*****************************************************/
|
||||
/*****************************************************************************************************/
|
||||
|
||||
INSERT INTO data_source_update_agi_CUR_I (
|
||||
date_layer /*数据层级*/
|
||||
,data_area /*数据领域*/
|
||||
,data_table /*数据表*/
|
||||
,data_rows /*数据行数*/
|
||||
,column_qty /*字段数*/
|
||||
,last_upt_tm /*最后更新日期*/
|
||||
,Etl_Batch_No /*作业批次号*/
|
||||
,Etl_First_Dt /*最初入库时间*/
|
||||
,Etl_Job /*作业名称*/
|
||||
,Etl_Proc_Dt /*本次入库时间*/
|
||||
,Etl_Tx_Dt /*作业运行时间*/
|
||||
,Src_Sysname /*来源系统*/
|
||||
,Src_Table /*来源表*/
|
||||
)
|
||||
SELECT
|
||||
'MART' /*date_layer*/
|
||||
,case when p0 .data_table like '%scrm%' then 'SCRM'
|
||||
when p0.data_table like '%customer%' then 'SCRM'
|
||||
when p0.data_table like '%crm%' then 'CRM'
|
||||
when p0.data_table like '%livechat%' then 'LiveChat'
|
||||
when p0.data_table like '%udesk%'
|
||||
then 'Udesk'
|
||||
else 'All' end /*data_area*/
|
||||
,coalesce(p0.data_table) /*data_table*/
|
||||
,coalesce(p0.row_count,0) /*data_rows*/
|
||||
,coalesce(p0.columns_qty,0) /*column_qty*/
|
||||
,p0.last_upt_tm /*last_upt_tm*/
|
||||
,0 /*Etl_Batch_No*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*Etl_First_Dt*/
|
||||
,:ETLJOB /*Etl_Job*/
|
||||
,current_timestamp(0) /*Etl_Proc_Dt*/
|
||||
,TO_DATE(:TXDATE,'YYYYMMDD') /*Etl_Tx_Dt*/
|
||||
,Substr('s98_s_customer_event_meta',1,3) /*Src_Sysname*/
|
||||
,'s98_s_customer_event_meta' /*Src_Table*/
|
||||
|
||||
FROM (select 'cust_all_info' data_table,count(*) row_count ,max(etl_proc_dt) last_upt_tm , 33 columns_qty from p60_mart.cust_all_info
|
||||
union all
|
||||
select 'cust_enagement_records' data_table,count(*) row_count ,max(etl_proc_dt) last_upt_tm , 13 columns_qty from p60_mart.cust_enagement_records
|
||||
union all
|
||||
select 'v_dq_result' data_table,count(*) row_count ,max(check_run_date) last_upt_tm , 7 columns_qty from p51_dqc.dq_check_result) p0
|
||||
|
||||
|
||||
;
|
||||
|
||||
|
||||
|
||||
/*将不同数据插入到临时表 */
|
||||
;INSERT INTO data_source_update_agi_INS (
|
||||
data_area /*数据领域*/
|
||||
,data_rows /*数据行数*/
|
||||
,column_qty /*字段数*/
|
||||
,last_upt_tm /*最后更新日期*/
|
||||
,date_layer /*数据层级*/
|
||||
,data_table /*数据表*/
|
||||
,Etl_Batch_No /*作业批次号*/
|
||||
,Etl_First_Dt /*最初入库时间*/
|
||||
,Etl_Job /*作业名称*/
|
||||
,Etl_Proc_Dt /*本次入库时间*/
|
||||
,Etl_Tx_Dt /*作业运行时间*/
|
||||
,Src_Sysname /*来源系统*/
|
||||
,Src_Table /*来源表*/
|
||||
|
||||
)
|
||||
SELECT
|
||||
P1.data_area /*数据领域*/
|
||||
,P1.data_rows /*数据行数*/
|
||||
,P1.column_qty /*字段数*/
|
||||
,P1.last_upt_tm /*最后更新日期*/
|
||||
,P1.date_layer /*数据层级*/
|
||||
,P1.data_table /*数据表*/
|
||||
,P1.Etl_Batch_No /*作业批次号*/
|
||||
,P1.Etl_First_Dt /*最初入库时间*/
|
||||
,P1.Etl_Job /*作业名称*/
|
||||
,P1.Etl_Proc_Dt /*本次入库时间*/
|
||||
,P1.Etl_Tx_Dt /*作业运行时间*/
|
||||
,P1.Src_Sysname /*来源系统*/
|
||||
,P1.Src_Table /*来源表*/
|
||||
|
||||
FROM data_source_update_agi_CUR_I P1
|
||||
LEFT JOIN :MARTDB.data_source_update P2
|
||||
ON P1.data_area = P2.data_area
|
||||
AND P1.data_rows = P2.data_rows
|
||||
AND P1.column_qty = P2.column_qty
|
||||
AND P1.last_upt_tm = P2.last_upt_tm
|
||||
AND P1.date_layer = P2.date_layer
|
||||
AND P1.data_table = P2.data_table
|
||||
|
||||
WHERE P2.data_area IS NULL
|
||||
OR P2.data_rows IS NULL
|
||||
OR P2.column_qty IS NULL
|
||||
OR P2.last_upt_tm IS NULL
|
||||
OR P2.date_layer IS NULL
|
||||
OR P2.data_table IS NULL
|
||||
|
||||
;
|
||||
/*将新增数据插入到目标表 */
|
||||
;INSERT INTO :MARTDB.data_source_update (
|
||||
data_area /*数据领域*/
|
||||
,data_rows /*数据行数*/
|
||||
,column_qty /*字段数*/
|
||||
,last_upt_tm /*最后更新日期*/
|
||||
,date_layer /*数据层级*/
|
||||
,data_table /*数据表*/
|
||||
,Etl_Batch_No /*作业批次号*/
|
||||
,Etl_First_Dt /*最初入库时间*/
|
||||
,Etl_Job /*作业名称*/
|
||||
,Etl_Proc_Dt /*本次入库时间*/
|
||||
,Etl_Tx_Dt /*作业运行时间*/
|
||||
,Src_Sysname /*来源系统*/
|
||||
,Src_Table /*来源表*/
|
||||
|
||||
)
|
||||
SELECT
|
||||
P1.data_area /*数据领域*/
|
||||
,P1.data_rows /*数据行数*/
|
||||
,P1.column_qty /*字段数*/
|
||||
,P1.last_upt_tm /*最后更新日期*/
|
||||
,P1.date_layer /*数据层级*/
|
||||
,P1.data_table /*数据表*/
|
||||
,P1.Etl_Batch_No /*作业批次号*/
|
||||
,P1.Etl_First_Dt /*最初入库时间*/
|
||||
,P1.Etl_Job /*作业名称*/
|
||||
,P1.Etl_Proc_Dt /*本次入库时间*/
|
||||
,P1.Etl_Tx_Dt /*作业运行时间*/
|
||||
,P1.Src_Sysname /*来源系统*/
|
||||
,P1.Src_Table /*来源表*/
|
||||
|
||||
FROM data_source_update_agi_INS P1
|
||||
ON CONFLICT ( date_layer,data_table)
|
||||
DO UPDATE SET
|
||||
date_layer=excluded.date_layer
|
||||
,data_table=excluded.data_table
|
||||
,data_area=excluded.data_area
|
||||
,data_rows=excluded.data_rows
|
||||
,column_qty=excluded.column_qty
|
||||
,last_upt_tm=excluded.last_upt_tm
|
||||
,Etl_Batch_No=excluded.Etl_Batch_No
|
||||
,Etl_First_Dt=excluded.Etl_First_Dt
|
||||
,Etl_Job=excluded.Etl_Job
|
||||
,Etl_Proc_Dt=excluded.Etl_Proc_Dt
|
||||
,Etl_Tx_Dt=excluded.Etl_Tx_Dt
|
||||
,Src_Sysname=excluded.Src_Sysname
|
||||
,Src_Table=excluded.Src_Table
|
||||
|
||||
|
||||
;
|
||||
/*****程序结束退出 */
|
||||
\q
|
||||
|
||||
Loading…
Reference in New Issue