add workflow 荟聚API_2,dev
This commit is contained in:
parent
63173915e8
commit
9d0bebda96
|
@ -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,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,341 @@
|
|||
/***************************************************************************************************/
|
||||
/*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_contact_info(客户联系信息) */
|
||||
/*Create Date:2024-05-13 13:59:03 */
|
||||
/*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: :PDMDB.t01_crm_account */
|
||||
/*Source table 2: :PDMDB.t00_china_city_info */
|
||||
/*Source table 3: p30_common.cust_contact_mapping */
|
||||
/*Source table 4: :PDMDB.t01_crm_cust_ccp */
|
||||
/*Source table 5: :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(p2.full_name,p3.full_name,p4.full_name,p5.full_name ,'') full_name
|
||||
,coalesce(p2.mobile_phone,p3.mobile_phone,p4.mobile_phone,p5.mobile_phone ,'') mobile
|
||||
,coalesce(p2.email,p3.email,p4.email,'') email
|
||||
,coalesce(p3.wechat_id,'') wechat
|
||||
,coalesce(p2.company_name,p3.company_name,p4.company_name,p5.company_name ,'') company
|
||||
,coalesce(p2.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 ''
|
||||
end country
|
||||
,coalesce(p2.prov_name,p3.prov_name,p5.prov_name ,'') prov_name
|
||||
,coalesce(p2.city_name,p3.city_name,p5.city_name ,'') 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_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) 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_cust_ccp p5
|
||||
ON p1.crm_contact =p5.crm_contact_account
|
||||
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,18 @@
|
|||
|
||||
DROP TABLE IF EXISTS p30_common.cust_contact_mapping;
|
||||
CREATE TABLE IF NOT EXISTS p30_common.cust_contact_mapping (
|
||||
contact_id text
|
||||
, user_id text
|
||||
, crm_contact text
|
||||
, scrm_contact text
|
||||
, livechat_contact text
|
||||
|
||||
);
|
||||
|
||||
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 '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_mapping.scrm_contact IS '';
|
||||
COMMENT ON COLUMN p30_common.cust_contact_mapping.livechat_contact IS '';
|
||||
|
||||
COMMENT ON TABLE p30_common.cust_contact_mapping IS '';
|
|
@ -0,0 +1,144 @@
|
|||
/***************************************************************************************************/
|
||||
/*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_contact_mapping(客户联系方式映射) */
|
||||
/*Create Date:2024-05-10 17:03:56 */
|
||||
/*SDM Developed By: dev */
|
||||
/*SDM Developed Date: 2024-01-19 */
|
||||
/*SDM Checked By: dev */
|
||||
/*SDM Checked Date: 2024-05-10 */
|
||||
/*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客户信息*/
|
||||
,src_sysname /*来源系统*/
|
||||
,src_table /*来源表*/
|
||||
,etl_job /*作业名称*/
|
||||
,etl_first_dt /*最初入库时间*/
|
||||
,etl_proc_dt /*本次入库时间*/
|
||||
,etl_tx_dt /*作业运行时间*/
|
||||
,etl_batch_no /*作业批次号*/
|
||||
)
|
||||
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*/
|
||||
,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*/
|
||||
|
||||
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
|
||||
from (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)p1
|
||||
group by user_id) p0
|
||||
LEFT JOIN :COMMDB.cust_contact_mapping p1
|
||||
ON p1.user_id=p0 .user_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客户信息*/
|
||||
,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.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
|
||||
|
|
@ -189,6 +189,30 @@ 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}} >>/data/airflow/logs/run_tpt_{{ds_nodash}}.log 2>&1 ',
|
||||
params={'my_param':"cust_contact_mapping_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}} >>/data/airflow/logs/run_tpt_{{ds_nodash}}.log 2>&1 ',
|
||||
params={'my_param':"cust_contact_info_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}} >>/data/airflow/logs/run_tpt_{{ds_nodash}}.log 2>&1 ',
|
||||
params={'my_param':"cust_leads_agi"},
|
||||
depends_on_past=False,
|
||||
retries=3,
|
||||
dag=dag)
|
||||
customer_events_3292 >> customer_events_feign
|
||||
customer_events_open_content_page_9684 >> custom_events_open_content_page_feign
|
||||
customer_event_meta_2268 >> customer_event_meta_feign
|
||||
|
@ -202,4 +226,8 @@ t01_scrm_contact >> t01_scrm_contact_merge
|
|||
t01_scrm_contact_update >> d_scrm_contact
|
||||
t01_scrm_contact >> d_scrm_contact
|
||||
t01_scrm_contact_merge >> d_scrm_contact
|
||||
d_scrm_contact >> task_failed
|
||||
d_scrm_contact >> cust_contact_mapping
|
||||
cust_contact_mapping >> cust_leads
|
||||
cust_contact_mapping >> cust_contact_info
|
||||
customer_events_load >> t01_scrm_leads
|
||||
t01_scrm_leads >> task_failed
|
||||
|
|
Loading…
Reference in New Issue