add workflow 天润Smart-ccc通话记录,dev

This commit is contained in:
root 2024-09-19 19:41:36 +08:00
parent 3f945ffe0a
commit cc02dbf2cc
3 changed files with 188 additions and 1 deletions

View File

@ -0,0 +1,28 @@
DROP TABLE IF EXISTS p60_mart.cust_call_record_info;
CREATE TABLE IF NOT EXISTS p60_mart.cust_call_record_info (
call_id VARCHAR(50)
, call_channel text
, start_time timestamp(0)
, bridge_duration numeric (0,0)
, call_qname VARCHAR(20)
, service_group VARCHAR(0)
, customer_number VARCHAR(20)
, name VARCHAR(20)
, email VARCHAR(0)
, company VARCHAR(0)
);
COMMENT ON COLUMN p60_mart.cust_call_record_info.call_id IS '通话编号';
COMMENT ON COLUMN p60_mart.cust_call_record_info.call_channel IS '通话渠道';
COMMENT ON COLUMN p60_mart.cust_call_record_info.start_time IS '开始时间';
COMMENT ON COLUMN p60_mart.cust_call_record_info.bridge_duration IS '持续时间';
COMMENT ON COLUMN p60_mart.cust_call_record_info.call_qname IS '通话队列名称';
COMMENT ON COLUMN p60_mart.cust_call_record_info.service_group IS '服务组';
COMMENT ON COLUMN p60_mart.cust_call_record_info.customer_number IS '客户电话';
COMMENT ON COLUMN p60_mart.cust_call_record_info.name IS '姓名';
COMMENT ON COLUMN p60_mart.cust_call_record_info.email IS '邮箱';
COMMENT ON COLUMN p60_mart.cust_call_record_info.company IS '公司';
COMMENT ON TABLE p60_mart.cust_call_record_info IS 'ccc客户通话记录信息';

View File

@ -0,0 +1,150 @@
/***************************************************************************************************/
/*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_call_record_info(ccc客户通话记录信息) */
/*Create Date:2024-09-19 19:37:16 */
/*SDM Developed By: dev */
/*SDM Developed Date: 2024-09-19 */
/*SDM Checked By: dev */
/*SDM Checked Date: 2024-09-19 */
/*Script Developed By: dev */
/*Script Checked By: dev */
/*Source table 1: :COMMDB.d_ccc_cust_info */
/*Source table 2: :PDMDB.t01_udesk_record */
/*Source table 3: :COMMDB.cust_call_ccc_record */
/*Job Type: Inbound transform (Tier 1 to Tier 2) */
/*Target Table:cust_call_record_info */
/*ETL Job Name:cust_call_record_info */
/*ETL Frequency:None */
/*ETL Policy:F1 */
/********************************************************************************************/
/*******Main Section**************************************************************************/
\set ON_ERROR_STOP on
\set AUTOCOMMIT on
\timing on
/*创建临时表加载当前数据 */
CREATE TEMPORARY TABLE cust_call_record_info_agi_CUR_I
( LIKE :MARTDB.cust_call_record_info)
ON COMMIT PRESERVE ROWS;
/*****************************************************************************************************/
/* GROUP 1:Source Table:cust_call_ccc_record**********************************************************/
/*****************************************************************************************************/
INSERT INTO cust_call_record_info_agi_CUR_I (
call_id /*通话编号*/
,call_channel /*通话渠道*/
,start_time /*开始时间*/
,bridge_duration /*持续时间*/
,call_qname /*通话队列名称*/
,service_group /*服务组*/
,customer_number /*客户电话*/
,name /*姓名*/
,email /*邮箱*/
,company /*公司*/
)
SELECT
COALESCE(TRIM(p0.call_id),'') /*call_id*/
,'Smart CCC' /*call_channel*/
,COALESCE(p0.start_time,TO_TIMESTAMP(:NULLDATE,'YYYYMMDD')) /*start_time*/
,COALESCE(CAST(p0.bridge_duration AS numeric (24,3)),0) /*bridge_duration*/
,COALESCE(TRIM(p0.call_qname),'') /*call_qname*/
,case when p0.call_qname in ('选型报价','选型报价统计','TW销售服务') then '产品报价'
when p0.call_qname in ('售前技术','售后技术','技术支持统计') then '技术支持'
when p0.call_qname in ('保内维修','保外维修与计量','维修计量统计') then '维修与校准'
when p0.call_qname in ('其他咨询','其他支持统计') then '其他'
when p0.call_qname in ('') then ''
else '其他' end /*service_group*/
,COALESCE(TRIM(p0.customer_number),'') /*customer_number*/
,coalesce(p1."name",'') /*name*/
,coalesce(p1.email,'') /*email*/
,coalesce(p1.company,'') /*company*/
FROM :COMMDB.cust_call_ccc_record p0
LEFT JOIN :COMMDB.d_ccc_cust_info p1
ON p0.customer_number =p1.tel
where p0.hotline_name in ('400呼入','Inbound','SG-TSC')
;
/*****************************************************************************************************/
/* GROUP 2:Source Table:t01_udesk_record**************************************************************/
/*****************************************************************************************************/
INSERT INTO cust_call_record_info_agi_CUR_I (
call_id /*通话编号*/
,call_channel /*通话渠道*/
,start_time /*开始时间*/
,bridge_duration /*持续时间*/
,call_qname /*通话队列名称*/
,service_group /*服务组*/
,customer_number /*客户电话*/
,name /*姓名*/
,email /*邮箱*/
,company /*公司*/
)
SELECT
COALESCE(TRIM(p0.call_id),'') /*call_id*/
,'Udesk' /*call_channel*/
,p0.record_time /*start_time*/
,extract (epoch from p0.duration::time) /*bridge_duration*/
,p0.udesk_source /*call_qname*/
,case when udesk_source ='队列: IAM' then '产品报价'
when udesk_source in ('队列: TSC-KEI','队列: TSC-TEK') then '技术支持'
when udesk_source ='队列: SSO-TEK' then '维修与校准'
when udesk_source ='' then ''
else '其他' end /*service_group*/
,COALESCE(TRIM(p0.mobile_phone),'') /*customer_number*/
,cust /*name*/
,'' /*email*/
,COALESCE(TRIM(CAST(p0.company_name AS VARCHAR(200))),'') /*company*/
FROM :PDMDB.t01_udesk_record p0
;
/*从目标表中删除所有数据 cust_call_record_info(ccc客户通话记录信息) */
DELETE FROM :MARTDB.cust_call_record_info
;
/*将新增数据插入到目标表 */
;INSERT INTO :MARTDB.cust_call_record_info (
call_id /*通话编号*/
,call_channel /*通话渠道*/
,start_time /*开始时间*/
,bridge_duration /*持续时间*/
,call_qname /*通话队列名称*/
,service_group /*服务组*/
,customer_number /*客户电话*/
,name /*姓名*/
,email /*邮箱*/
,company /*公司*/
)
SELECT
P1.call_id /*通话编号*/
,P1.call_channel /*通话渠道*/
,P1.start_time /*开始时间*/
,P1.bridge_duration /*持续时间*/
,P1.call_qname /*通话队列名称*/
,P1.service_group /*服务组*/
,P1.customer_number /*客户电话*/
,P1.name /*姓名*/
,P1.email /*邮箱*/
,P1.company /*公司*/
FROM cust_call_record_info_agi_CUR_I P1
;
/*****程序结束退出 */
\q

View File

@ -155,6 +155,14 @@ params={'my_param':"cust_call_ccc_record_agi"},
depends_on_past=False, depends_on_past=False,
retries=3, retries=3,
dag=dag) dag=dag)
cust_call_record_info = SSHOperator(
ssh_hook=sshHook,
task_id='cust_call_record_info',
command='/data/airflow/etl/MART/run_psql.sh {{ ds_nodash }} {{params.my_param}} >>/data/airflow/logs/run_tpt_{{ds_nodash}}.log 2>&1 ',
params={'my_param':"cust_call_record_info_agi"},
depends_on_past=False,
retries=3,
dag=dag)
cc_cdr_ib_agent_list_load >> tr_cc_cdr_ib_agent_list_9092 cc_cdr_ib_agent_list_load >> tr_cc_cdr_ib_agent_list_9092
cc_cdr_ib_list_load >> tr_cc_cdr_ib_list_9521 cc_cdr_ib_list_load >> tr_cc_cdr_ib_list_9521
cc_cdr_ob_list_load >> tr_cc_cdr_ob_list_4070 cc_cdr_ob_list_load >> tr_cc_cdr_ob_list_4070
@ -165,4 +173,5 @@ tr_cc_cdr_ob_list_4070 >> t01_ccc_ob_record
tr_cc_cdr_ob_detail_5097 >> t01_ccc_ob_record tr_cc_cdr_ob_detail_5097 >> t01_ccc_ob_record
t01_ccc_ib_record >> cust_call_ccc_record t01_ccc_ib_record >> cust_call_ccc_record
t01_ccc_ob_record >> cust_call_ccc_record t01_ccc_ob_record >> cust_call_ccc_record
cust_call_ccc_record >> task_failed cust_call_ccc_record >> cust_call_record_info
cust_call_record_info >> task_failed