diff --git a/dev/workflow/TK_Cust/tk_cust/CRM原始线索/t01_crm_raw_leads.sql b/dev/workflow/TK_Cust/tk_cust/CRM原始线索/t01_crm_raw_leads.sql new file mode 100644 index 0000000..fabf0cd --- /dev/null +++ b/dev/workflow/TK_Cust/tk_cust/CRM原始线索/t01_crm_raw_leads.sql @@ -0,0 +1,44 @@ + +DROP TABLE IF EXISTS p20_pdm.t01_crm_raw_leads; +CREATE TABLE IF NOT EXISTS p20_pdm.t01_crm_raw_leads ( + crm_contact_account varchar(20) + , lead_number varchar(20) + , name varchar(50) + , create_time timestamp(0) + , company_name varchar(50) + , email varchar(50) + , mobile_phone varchar(20) + , mql_time timestamp(0) + , campaign_name varchar(50) + , industry varchar(20) + , market_type varchar(20) + , 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( crm_contact_account,lead_number ) +); + + COMMENT ON COLUMN p20_pdm.t01_crm_raw_leads.crm_contact_account IS 'CRM_CONTACT账号'; + COMMENT ON COLUMN p20_pdm.t01_crm_raw_leads.lead_number IS 'lead_number'; + COMMENT ON COLUMN p20_pdm.t01_crm_raw_leads.name IS '姓名'; + COMMENT ON COLUMN p20_pdm.t01_crm_raw_leads.create_time IS '创建时间'; + COMMENT ON COLUMN p20_pdm.t01_crm_raw_leads.company_name IS '公司名称'; + COMMENT ON COLUMN p20_pdm.t01_crm_raw_leads.email IS '电子邮箱'; + COMMENT ON COLUMN p20_pdm.t01_crm_raw_leads.mobile_phone IS '手机号'; + COMMENT ON COLUMN p20_pdm.t01_crm_raw_leads.mql_time IS 'mql时间'; + COMMENT ON COLUMN p20_pdm.t01_crm_raw_leads.campaign_name IS '活动名称'; + COMMENT ON COLUMN p20_pdm.t01_crm_raw_leads.industry IS '行业'; + COMMENT ON COLUMN p20_pdm.t01_crm_raw_leads.market_type IS '市场类型'; + COMMENT ON COLUMN p20_pdm.t01_crm_raw_leads.Etl_Batch_No IS '作业批次号'; + COMMENT ON COLUMN p20_pdm.t01_crm_raw_leads.Etl_First_Dt IS '最初入库时间'; + COMMENT ON COLUMN p20_pdm.t01_crm_raw_leads.Etl_Job IS '作业名称'; + COMMENT ON COLUMN p20_pdm.t01_crm_raw_leads.Etl_Proc_Dt IS '本次入库时间'; + COMMENT ON COLUMN p20_pdm.t01_crm_raw_leads.Etl_Tx_Dt IS '作业运行时间'; + COMMENT ON COLUMN p20_pdm.t01_crm_raw_leads.Src_Sysname IS '来源系统'; + COMMENT ON COLUMN p20_pdm.t01_crm_raw_leads.Src_Table IS '来源表'; + +COMMENT ON TABLE p20_pdm.t01_crm_raw_leads IS 'CRM原始线索'; \ No newline at end of file diff --git a/dev/workflow/TK_Cust/tk_cust/CRM原始线索/t01_crm_raw_leads_agi.sql b/dev/workflow/TK_Cust/tk_cust/CRM原始线索/t01_crm_raw_leads_agi.sql new file mode 100644 index 0000000..f36646a --- /dev/null +++ b/dev/workflow/TK_Cust/tk_cust/CRM原始线索/t01_crm_raw_leads_agi.sql @@ -0,0 +1,226 @@ +/***************************************************************************************************/ +/*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 :t01_crm_raw_leads(CRM原始线索) */ +/*Create Date:2024-03-14 10:43:34 */ +/*SDM Developed By: dev */ +/*SDM Developed Date: 2024-01-12 */ +/*SDM Checked By: dev */ +/*SDM Checked Date: 2024-02-22 */ +/*Script Developed By: dev */ +/*Script Checked By: dev */ +/*Source table 1: p10_sa.s98_s_crm_raw_leads */ +/*Job Type: Inbound transform (Tier 1 to Tier 2) */ +/*Target Table:t01_crm_raw_leads */ +/*ETL Job Name:t01_crm_raw_leads */ +/*ETL Frequency:Daily */ +/*ETL Policy:F2 */ +/********************************************************************************************/ +/*******Main Section**************************************************************************/ +\set ON_ERROR_STOP on +\set AUTOCOMMIT on +\timing on + + + +/*创建临时表加载当前数据 */ +CREATE TEMPORARY TABLE t01_crm_raw_leads_agi_CUR_I + ( LIKE :PDMDB.t01_crm_raw_leads) +ON COMMIT PRESERVE ROWS; + + + +/*创建临时表加载不同数据 */ +CREATE TEMPORARY TABLE t01_crm_raw_leads_agi_INS +( LIKE :PDMDB.t01_crm_raw_leads) +ON COMMIT PRESERVE ROWS; + + +/*****************************************************************************************************/ +/* GROUP 1:Source Table:s98_s_crm_raw_leads***********************************************************/ +/*****************************************************************************************************/ +INSERT INTO t01_crm_raw_leads_agi_CUR_I ( + crm_contact_account /*CRM_CONTACT账号*/ + ,lead_number /*lead_number*/ + ,name /*姓名*/ + ,create_time /*创建时间*/ + ,company_name /*公司名称*/ + ,email /*电子邮箱*/ + ,mobile_phone /*手机号*/ + ,mql_time /*mql时间*/ + ,campaign_name /*活动名称*/ + ,industry /*行业*/ + ,market_type /*市场类型*/ + ,Etl_Batch_No /*作业批次号*/ + ,Etl_First_Dt /*最初入库时间*/ + ,Etl_Job /*作业名称*/ + ,Etl_Proc_Dt /*本次入库时间*/ + ,Etl_Tx_Dt /*作业运行时间*/ + ,Src_Sysname /*来源系统*/ + ,Src_Table /*来源表*/ + ) +SELECT + COALESCE(TRIM(CAST(p0.tek_contactnumber AS varchar(20))),'') /*crm_contact_account*/ + ,COALESCE(TRIM(CAST(p0.tek_leadnumber AS varchar(20))),'') /*lead_number*/ + ,COALESCE(TRIM(CAST(p0.fullname AS varchar(50))),'') /*name*/ + ,COALESCE(TO_TIMESTAMP(CAST(p0.createdon AS VARCHAR(19)),'MM/DD/YYYY HH24:mi'),TO_TIMESTAMP('19000102','YYYYMMDD')) /*create_time*/ + ,COALESCE(TRIM(CAST(p0.companyname AS varchar(50))),'') /*company_name*/ + ,COALESCE(TRIM(CAST(p0.emailaddress1 AS varchar(50))),'') /*email*/ + ,COALESCE(TRIM(CAST(p0.mobilephone AS varchar(20))),'') /*mobile_phone*/ + ,case when p0.tek_mqldate = 'NULL' THEN TO_TIMESTAMP('19000102','YYYYMMDD') ELSE COALESCE(TO_TIMESTAMP(CAST(p0.tek_mqldate AS VARCHAR(19)),'MM/DD/YYYY HH24:mi'),TO_TIMESTAMP('19000102','YYYYMMDD')) END /*mql_time*/ + ,COALESCE(TRIM(CAST(p0.campaignidname AS varchar(50))),'') /*campaign_name*/ + ,COALESCE(TRIM(CAST(p0.tek_industry2idname AS varchar(20))),'') /*industry*/ + ,COALESCE(TRIM(CAST(p0.tek_marketing_program_type_idname AS varchar(20))),'') /*market_type*/ + ,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_crm_raw_leads',1,3) /*Src_Sysname*/ + ,'s98_s_crm_raw_leads' /*Src_Table*/ + +FROM p10_sa.s98_s_crm_raw_leads p0 +; + + + +/*将不同数据插入到临时表 */ +;INSERT INTO t01_crm_raw_leads_agi_INS ( + name /*姓名*/ + ,create_time /*创建时间*/ + ,company_name /*公司名称*/ + ,email /*电子邮箱*/ + ,mobile_phone /*手机号*/ + ,mql_time /*mql时间*/ + ,campaign_name /*活动名称*/ + ,industry /*行业*/ + ,market_type /*市场类型*/ + ,crm_contact_account /*CRM_CONTACT账号*/ + ,lead_number /*lead_number*/ + ,Etl_Batch_No /*作业批次号*/ + ,Etl_First_Dt /*最初入库时间*/ + ,Etl_Job /*作业名称*/ + ,Etl_Proc_Dt /*本次入库时间*/ + ,Etl_Tx_Dt /*作业运行时间*/ + ,Src_Sysname /*来源系统*/ + ,Src_Table /*来源表*/ + +) + SELECT + P1.name /*姓名*/ + ,P1.create_time /*创建时间*/ + ,P1.company_name /*公司名称*/ + ,P1.email /*电子邮箱*/ + ,P1.mobile_phone /*手机号*/ + ,P1.mql_time /*mql时间*/ + ,P1.campaign_name /*活动名称*/ + ,P1.industry /*行业*/ + ,P1.market_type /*市场类型*/ + ,P1.crm_contact_account /*CRM_CONTACT账号*/ + ,P1.lead_number /*lead_number*/ + ,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_crm_raw_leads_agi_CUR_I P1 +LEFT JOIN :PDMDB.t01_crm_raw_leads P2 +ON P1.name = P2.name + AND P1.create_time = P2.create_time + AND P1.company_name = P2.company_name + AND P1.email = P2.email + AND P1.mobile_phone = P2.mobile_phone + AND P1.mql_time = P2.mql_time + AND P1.campaign_name = P2.campaign_name + AND P1.industry = P2.industry + AND P1.market_type = P2.market_type + AND P1.crm_contact_account = P2.crm_contact_account + AND P1.lead_number = P2.lead_number + +WHERE P2.name IS NULL + OR P2.create_time IS NULL + OR P2.company_name IS NULL + OR P2.email IS NULL + OR P2.mobile_phone IS NULL + OR P2.mql_time IS NULL + OR P2.campaign_name IS NULL + OR P2.industry IS NULL + OR P2.market_type IS NULL + OR P2.crm_contact_account IS NULL + OR P2.lead_number IS NULL + +; +/*将新增数据插入到目标表 */ +;INSERT INTO :PDMDB.t01_crm_raw_leads ( + name /*姓名*/ + ,create_time /*创建时间*/ + ,company_name /*公司名称*/ + ,email /*电子邮箱*/ + ,mobile_phone /*手机号*/ + ,mql_time /*mql时间*/ + ,campaign_name /*活动名称*/ + ,industry /*行业*/ + ,market_type /*市场类型*/ + ,crm_contact_account /*CRM_CONTACT账号*/ + ,lead_number /*lead_number*/ + ,Etl_Batch_No /*作业批次号*/ + ,Etl_First_Dt /*最初入库时间*/ + ,Etl_Job /*作业名称*/ + ,Etl_Proc_Dt /*本次入库时间*/ + ,Etl_Tx_Dt /*作业运行时间*/ + ,Src_Sysname /*来源系统*/ + ,Src_Table /*来源表*/ + +) +SELECT + P1.name /*姓名*/ + ,P1.create_time /*创建时间*/ + ,P1.company_name /*公司名称*/ + ,P1.email /*电子邮箱*/ + ,P1.mobile_phone /*手机号*/ + ,P1.mql_time /*mql时间*/ + ,P1.campaign_name /*活动名称*/ + ,P1.industry /*行业*/ + ,P1.market_type /*市场类型*/ + ,P1.crm_contact_account /*CRM_CONTACT账号*/ + ,P1.lead_number /*lead_number*/ + ,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_crm_raw_leads_agi_INS P1 +ON CONFLICT ( crm_contact_account,lead_number) +DO UPDATE SET + crm_contact_account=excluded.crm_contact_account + ,lead_number=excluded.lead_number + ,name=excluded.name + ,create_time=excluded.create_time + ,company_name=excluded.company_name + ,email=excluded.email + ,mobile_phone=excluded.mobile_phone + ,mql_time=excluded.mql_time + ,campaign_name=excluded.campaign_name + ,industry=excluded.industry + ,market_type=excluded.market_type + ,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 + diff --git a/dev/workflow/TK_Cust/tk_cust/CRM联系方式/d_crm_contact.sql b/dev/workflow/TK_Cust/tk_cust/CRM联系方式/d_crm_contact.sql new file mode 100644 index 0000000..db634e1 --- /dev/null +++ b/dev/workflow/TK_Cust/tk_cust/CRM联系方式/d_crm_contact.sql @@ -0,0 +1,138 @@ + +DROP TABLE IF EXISTS p30_common.d_crm_contact; +CREATE TABLE IF NOT EXISTS p30_common.d_crm_contact ( + crm_contact_account VARCHAR(20) + , company_name VARCHAR(50) + , account_name VARCHAR(50) + , owner_id VARCHAR(30) + , full_name VARCHAR(50) + , mobile_phone VARCHAR(20) + , mobile_phone_data_ind char(1) + , mobile_phone_availabilty char(1) + , email VARCHAR(50) + , email_data_ind char(1) + , eamil_availabilty char(1) + , cust_dept VARCHAR(50) + , cust_title VARCHAR(50) + , job_function VARCHAR(50) + , suffix_info VARCHAR(50) + , address_detail VARCHAR(50) + , city_name VARCHAR(20) + , prov_name VARCHAR(20) + , post_cd VARCHAR(20) + , country_name VARCHAR(20) + , ccp_app VARCHAR(200) + , product_interst VARCHAR(200) + , acq_time timestamp(0) + , active_leads_count int4 + , app_count int4 + , ccp_record_count int4 + , gen_product_interst_count int4 + , sub_app_count int4 + , acq_campaign_name VARCHAR(200) + , create_time timestamp(0) + , create_person VARCHAR(50) + , modify_time timestamp(0) + , modify_person VARCHAR(50) + , industry VARCHAR(50) + , sub_industry VARCHAR(50) + , msr_visibility VARCHAR(20) + , privacy_policy_ind VARCHAR(20) + , contact_score int4 + , contact_stage VARCHAR(50) + , contact_type VARCHAR(20) + , collect_personal_info_ind VARCHAR(20) + , collect_personal_info_time timestamp(0) + , phone_ind VARCHAR(20) + , bulk_postalmail_ind VARCHAR(20) + , fax_ind VARCHAR(20) + , track_ind VARCHAR(20) + , set_up_ind VARCHAR(20) + , bulk_email_ind VARCHAR(20) + , email_permission_time timestamp(0) + , sms_ind VARCHAR(20) + , sms_permission_time timestamp(0) + , telmarker_permission_time timestamp(0) + , industry_or_application_info VARCHAR(20) + , last_activity VARCHAR(20) + , market_ind VARCHAR(20) + , marketing_consent VARCHAR(20) + , marketing_consent_time timestamp(0) + , state VARCHAR(20) + , 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( crm_contact_account ) +); + + COMMENT ON COLUMN p30_common.d_crm_contact.crm_contact_account IS 'CRM_CONTACT账号'; + COMMENT ON COLUMN p30_common.d_crm_contact.company_name IS '公司名称'; + COMMENT ON COLUMN p30_common.d_crm_contact.account_name IS '账号名称'; + COMMENT ON COLUMN p30_common.d_crm_contact.owner_id IS '责任人'; + COMMENT ON COLUMN p30_common.d_crm_contact.full_name IS '姓名'; + COMMENT ON COLUMN p30_common.d_crm_contact.mobile_phone IS '手机号'; + COMMENT ON COLUMN p30_common.d_crm_contact.mobile_phone_data_ind IS '手机号有数据标志'; + COMMENT ON COLUMN p30_common.d_crm_contact.mobile_phone_availabilty IS '手机号有效标志'; + COMMENT ON COLUMN p30_common.d_crm_contact.email IS '电子邮箱'; + COMMENT ON COLUMN p30_common.d_crm_contact.email_data_ind IS '电子邮箱数据标志'; + COMMENT ON COLUMN p30_common.d_crm_contact.eamil_availabilty IS '电子邮箱有效性标志'; + COMMENT ON COLUMN p30_common.d_crm_contact.cust_dept IS '部门'; + COMMENT ON COLUMN p30_common.d_crm_contact.cust_title IS '职位'; + COMMENT ON COLUMN p30_common.d_crm_contact.job_function IS '工作领域'; + COMMENT ON COLUMN p30_common.d_crm_contact.suffix_info IS '附加信息'; + COMMENT ON COLUMN p30_common.d_crm_contact.address_detail IS '详细地址'; + COMMENT ON COLUMN p30_common.d_crm_contact.city_name IS '城市'; + COMMENT ON COLUMN p30_common.d_crm_contact.prov_name IS '省份'; + COMMENT ON COLUMN p30_common.d_crm_contact.post_cd IS '邮编'; + COMMENT ON COLUMN p30_common.d_crm_contact.country_name IS '国家'; + COMMENT ON COLUMN p30_common.d_crm_contact.ccp_app IS 'CCP应用'; + COMMENT ON COLUMN p30_common.d_crm_contact.product_interst IS '产品偏好'; + COMMENT ON COLUMN p30_common.d_crm_contact.acq_time IS '购买时间'; + COMMENT ON COLUMN p30_common.d_crm_contact.active_leads_count IS '活动线索数'; + COMMENT ON COLUMN p30_common.d_crm_contact.app_count IS '应用数'; + COMMENT ON COLUMN p30_common.d_crm_contact.ccp_record_count IS 'CCP记录数'; + COMMENT ON COLUMN p30_common.d_crm_contact.gen_product_interst_count IS '通用产品偏好数'; + COMMENT ON COLUMN p30_common.d_crm_contact.sub_app_count IS '子应用数'; + COMMENT ON COLUMN p30_common.d_crm_contact.acq_campaign_name IS '购买项目名'; + COMMENT ON COLUMN p30_common.d_crm_contact.create_time IS '创建时间'; + COMMENT ON COLUMN p30_common.d_crm_contact.create_person IS '创建人'; + COMMENT ON COLUMN p30_common.d_crm_contact.modify_time IS '修改时间'; + COMMENT ON COLUMN p30_common.d_crm_contact.modify_person IS '修改人'; + COMMENT ON COLUMN p30_common.d_crm_contact.industry IS '行业'; + COMMENT ON COLUMN p30_common.d_crm_contact.sub_industry IS '子行业'; + COMMENT ON COLUMN p30_common.d_crm_contact.msr_visibility IS 'msr关注度'; + COMMENT ON COLUMN p30_common.d_crm_contact.privacy_policy_ind IS '隐私政策同意标志'; + COMMENT ON COLUMN p30_common.d_crm_contact.contact_score IS '联系评分'; + COMMENT ON COLUMN p30_common.d_crm_contact.contact_stage IS '联系层次'; + COMMENT ON COLUMN p30_common.d_crm_contact.contact_type IS '联系类型'; + COMMENT ON COLUMN p30_common.d_crm_contact.collect_personal_info_ind IS '个人信息收集标志'; + COMMENT ON COLUMN p30_common.d_crm_contact.collect_personal_info_time IS '个人信息收集时间'; + COMMENT ON COLUMN p30_common.d_crm_contact.phone_ind IS '电话标志'; + COMMENT ON COLUMN p30_common.d_crm_contact.bulk_postalmail_ind IS '群发邮件标志'; + COMMENT ON COLUMN p30_common.d_crm_contact.fax_ind IS '传真标志'; + COMMENT ON COLUMN p30_common.d_crm_contact.track_ind IS '追踪标志'; + COMMENT ON COLUMN p30_common.d_crm_contact.set_up_ind IS '创建标志'; + COMMENT ON COLUMN p30_common.d_crm_contact.bulk_email_ind IS '群发电子邮件标志'; + COMMENT ON COLUMN p30_common.d_crm_contact.email_permission_time IS '电子邮件权限时间'; + COMMENT ON COLUMN p30_common.d_crm_contact.sms_ind IS '短信标志'; + COMMENT ON COLUMN p30_common.d_crm_contact.sms_permission_time IS '短信权限时间'; + COMMENT ON COLUMN p30_common.d_crm_contact.telmarker_permission_time IS '电话营销权限时间'; + COMMENT ON COLUMN p30_common.d_crm_contact.industry_or_application_info IS '行业或应用标志'; + COMMENT ON COLUMN p30_common.d_crm_contact.last_activity IS '最近活跃'; + COMMENT ON COLUMN p30_common.d_crm_contact.market_ind IS '市场营销标志'; + COMMENT ON COLUMN p30_common.d_crm_contact.marketing_consent IS '营销同意书'; + COMMENT ON COLUMN p30_common.d_crm_contact.marketing_consent_time IS '营销同意时间'; + COMMENT ON COLUMN p30_common.d_crm_contact.state IS '状态'; + COMMENT ON COLUMN p30_common.d_crm_contact.Etl_Batch_No IS '作业批次号'; + COMMENT ON COLUMN p30_common.d_crm_contact.Etl_First_Dt IS '最初入库时间'; + COMMENT ON COLUMN p30_common.d_crm_contact.Etl_Job IS '作业名称'; + COMMENT ON COLUMN p30_common.d_crm_contact.Etl_Proc_Dt IS '本次入库时间'; + COMMENT ON COLUMN p30_common.d_crm_contact.Etl_Tx_Dt IS '作业运行时间'; + COMMENT ON COLUMN p30_common.d_crm_contact.Src_Sysname IS '来源系统'; + COMMENT ON COLUMN p30_common.d_crm_contact.Src_Table IS '来源表'; + +COMMENT ON TABLE p30_common.d_crm_contact IS 'CRM联系方式'; \ No newline at end of file diff --git a/dev/workflow/TK_Cust/tk_cust/CRM联系方式/d_crm_contact_agi.sql b/dev/workflow/TK_Cust/tk_cust/CRM联系方式/d_crm_contact_agi.sql new file mode 100644 index 0000000..b22b42a --- /dev/null +++ b/dev/workflow/TK_Cust/tk_cust/CRM联系方式/d_crm_contact_agi.sql @@ -0,0 +1,652 @@ +/***************************************************************************************************/ +/*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_crm_contact(CRM联系方式) */ +/*Create Date:2024-02-22 13:40:10 */ +/*SDM Developed By: dev */ +/*SDM Developed Date: 2024-01-18 */ +/*SDM Checked By: dev */ +/*SDM Checked Date: 2024-02-22 */ +/*Script Developed By: dev */ +/*Script Checked By: dev */ +/*Source table 1: p20_pdm.t01_crm_contact */ +/*Job Type: Inbound transform (Tier 1 to Tier 2) */ +/*Target Table:d_crm_contact */ +/*ETL Job Name:d_crm_contact */ +/*ETL Frequency:Daily */ +/*ETL Policy:F2 */ +/********************************************************************************************/ +/*******Main Section**************************************************************************/ +\set ON_ERROR_STOP on +\set AUTOCOMMIT on +\timing on + + + +/*创建临时表加载当前数据 */ +CREATE TEMPORARY TABLE d_crm_contact_agi_CUR_I + ( LIKE :COMMDB.d_crm_contact) +ON COMMIT PRESERVE ROWS; + + + +/*创建临时表加载不同数据 */ +CREATE TEMPORARY TABLE d_crm_contact_agi_INS +( LIKE :COMMDB.d_crm_contact) +ON COMMIT PRESERVE ROWS; + + +/*****************************************************************************************************/ +/* GROUP 1:Source Table:t01_crm_contact***************************************************************/ +/*****************************************************************************************************/ +INSERT INTO d_crm_contact_agi_CUR_I ( + crm_contact_account /*CRM_CONTACT账号*/ + ,company_name /*公司名称*/ + ,account_name /*账号名称*/ + ,owner_id /*责任人*/ + ,full_name /*姓名*/ + ,mobile_phone /*手机号*/ + ,mobile_phone_data_ind /*手机号有数据标志*/ + ,mobile_phone_availabilty /*手机号有效标志*/ + ,email /*电子邮箱*/ + ,email_data_ind /*电子邮箱数据标志*/ + ,eamil_availabilty /*电子邮箱有效性标志*/ + ,cust_dept /*部门*/ + ,cust_title /*职位*/ + ,job_function /*工作领域*/ + ,suffix_info /*附加信息*/ + ,address_detail /*详细地址*/ + ,city_name /*城市*/ + ,prov_name /*省份*/ + ,post_cd /*邮编*/ + ,country_name /*国家*/ + ,ccp_app /*CCP应用*/ + ,product_interst /*产品偏好*/ + ,acq_time /*购买时间*/ + ,active_leads_count /*活动线索数*/ + ,app_count /*应用数*/ + ,ccp_record_count /*CCP记录数*/ + ,gen_product_interst_count /*通用产品偏好数*/ + ,sub_app_count /*子应用数*/ + ,acq_campaign_name /*购买项目名*/ + ,create_time /*创建时间*/ + ,create_person /*创建人*/ + ,modify_time /*修改时间*/ + ,modify_person /*修改人*/ + ,industry /*行业*/ + ,sub_industry /*子行业*/ + ,msr_visibility /*msr关注度*/ + ,privacy_policy_ind /*隐私政策同意标志*/ + ,contact_score /*联系评分*/ + ,contact_stage /*联系层次*/ + ,contact_type /*联系类型*/ + ,collect_personal_info_ind /*个人信息收集标志*/ + ,collect_personal_info_time /*个人信息收集时间*/ + ,phone_ind /*电话标志*/ + ,bulk_postalmail_ind /*群发邮件标志*/ + ,fax_ind /*传真标志*/ + ,track_ind /*追踪标志*/ + ,set_up_ind /*创建标志*/ + ,bulk_email_ind /*群发电子邮件标志*/ + ,email_permission_time /*电子邮件权限时间*/ + ,sms_ind /*短信标志*/ + ,sms_permission_time /*短信权限时间*/ + ,telmarker_permission_time /*电话营销权限时间*/ + ,industry_or_application_info /*行业或应用标志*/ + ,last_activity /*最近活跃*/ + ,market_ind /*市场营销标志*/ + ,marketing_consent /*营销同意书*/ + ,marketing_consent_time /*营销同意时间*/ + ,state /*状态*/ + ,Etl_Batch_No /*作业批次号*/ + ,Etl_First_Dt /*最初入库时间*/ + ,Etl_Job /*作业名称*/ + ,Etl_Proc_Dt /*本次入库时间*/ + ,Etl_Tx_Dt /*作业运行时间*/ + ,Src_Sysname /*来源系统*/ + ,Src_Table /*来源表*/ + ) +SELECT + COALESCE(TRIM(p0.crm_contact_account),'') /*crm_contact_account*/ + ,COALESCE(TRIM(p0.company_name),'') /*company_name*/ + ,COALESCE(TRIM(p0.account_name),'') /*account_name*/ + ,COALESCE(TRIM(p0.owner_id),'') /*owner_id*/ + ,COALESCE(TRIM(CAST(p0.first_name AS VARCHAR(50))),'') /*full_name*/ + ,case when mobile_phone ~ '^1[3-9]\d{9}$' then mobile_phone + when telphone ~ '^1[3-9]\d{9}$' then replace(replace(telphone1,'+86 ',''),' ','') else mobile_phone end /*mobile_phone*/ + ,case when length(mobile_phone)>1 then '1' else 0 end /*mobile_phone_data_ind*/ + ,case when mobile_phone ~ '^1[3-9]\d{9}$' then '1' + when telphone ~ '^1[3-9]\d{9}$' then '1' else '0' end /*mobile_phone_availabilty*/ + ,COALESCE(TRIM(p0.email),'') /*email*/ + ,case when length(email)>1 then '1' else 0 end /*email_data_ind*/ + ,case when email ~ '[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$' then '1' + else '0' end /*eamil_availabilty*/ + ,COALESCE(TRIM(p0.cust_dept),'') /*cust_dept*/ + ,COALESCE(TRIM(p0.cust_title),'') /*cust_title*/ + ,COALESCE(TRIM(p0.job_function),'') /*job_function*/ + ,COALESCE(TRIM(p0.suffix_info),'') /*suffix_info*/ + ,COALESCE(TRIM(p0.address_detail),'') /*address_detail*/ + ,coalesce(p1.area_cn,p0.city_name) /*city_name*/ + ,COALESCE(TRIM(p0.prov_name),'') /*prov_name*/ + ,COALESCE(TRIM(p0.post_cd),'') /*post_cd*/ + ,COALESCE(TRIM(p0.country_name),'') /*country_name*/ + ,COALESCE(TRIM(p0.ccp_app),'') /*ccp_app*/ + ,COALESCE(TRIM(p0.product_interst),'') /*product_interst*/ + ,COALESCE(p0.acq_time,TO_TIMESTAMP(:NULLDATE,'YYYYMMDD')) /*acq_time*/ + ,COALESCE(p0.active_leads_count,0) /*active_leads_count*/ + ,COALESCE(p0.app_count,0) /*app_count*/ + ,COALESCE(p0.ccp_record_count,0) /*ccp_record_count*/ + ,COALESCE(p0.gen_product_interst_count,0) /*gen_product_interst_count*/ + ,COALESCE(p0.sub_app_count,0) /*sub_app_count*/ + ,COALESCE(TRIM(p0.acq_campaign_name),'') /*acq_campaign_name*/ + ,COALESCE(p0.create_time,TO_TIMESTAMP(:NULLDATE,'YYYYMMDD')) /*create_time*/ + ,COALESCE(TRIM(p0.create_person),'') /*create_person*/ + ,COALESCE(p0.modify_time,TO_TIMESTAMP(:NULLDATE,'YYYYMMDD')) /*modify_time*/ + ,COALESCE(TRIM(p0.modify_person),'') /*modify_person*/ + ,COALESCE(TRIM(p0.industry),'') /*industry*/ + ,COALESCE(TRIM(p0.sub_industry),'') /*sub_industry*/ + ,COALESCE(TRIM(p0.msr_visibility),'') /*msr_visibility*/ + ,COALESCE(TRIM(p0.privacy_policy_ind),'') /*privacy_policy_ind*/ + ,COALESCE(p0.contact_score,0) /*contact_score*/ + ,COALESCE(TRIM(p0.contact_stage),'') /*contact_stage*/ + ,COALESCE(TRIM(p0.contact_type),'') /*contact_type*/ + ,COALESCE(TRIM(p0.collect_personal_info_ind),'') /*collect_personal_info_ind*/ + ,COALESCE(p0.collect_personal_info_time,TO_TIMESTAMP(:NULLDATE,'YYYYMMDD')) /*collect_personal_info_time*/ + ,COALESCE(TRIM(p0.phone_ind),'') /*phone_ind*/ + ,COALESCE(TRIM(p0.bulk_postalmail_ind),'') /*bulk_postalmail_ind*/ + ,COALESCE(TRIM(p0.fax_ind),'') /*fax_ind*/ + ,COALESCE(TRIM(p0.track_ind),'') /*track_ind*/ + ,COALESCE(TRIM(p0.set_up_ind),'') /*set_up_ind*/ + ,COALESCE(TRIM(p0.bulk_email_ind),'') /*bulk_email_ind*/ + ,COALESCE(p0.email_permission_time,TO_TIMESTAMP(:NULLDATE,'YYYYMMDD')) /*email_permission_time*/ + ,COALESCE(TRIM(p0.sms_ind),'') /*sms_ind*/ + ,COALESCE(p0.sms_permission_time,TO_TIMESTAMP(:NULLDATE,'YYYYMMDD')) /*sms_permission_time*/ + ,COALESCE(p0.telmarker_permission_time,TO_TIMESTAMP(:NULLDATE,'YYYYMMDD')) /*telmarker_permission_time*/ + ,COALESCE(TRIM(p0.industry_or_application_info),'') /*industry_or_application_info*/ + ,COALESCE(TRIM(p0.last_activity),'') /*last_activity*/ + ,COALESCE(TRIM(p0.market_ind),'') /*market_ind*/ + ,COALESCE(TRIM(p0.marketing_consent),'') /*marketing_consent*/ + ,COALESCE(p0.marketing_consent_time,TO_TIMESTAMP(:NULLDATE,'YYYYMMDD')) /*marketing_consent_time*/ + ,COALESCE(TRIM(p0.state),'') /*state*/ + ,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_crm_contact',1,3) /*Src_Sysname*/ + ,'t01_crm_contact' /*Src_Table*/ + +FROM p20_pdm.t01_crm_contact p0 +; + + + +/*将不同数据插入到临时表 */ +;INSERT INTO d_crm_contact_agi_INS ( + company_name /*公司名称*/ + ,account_name /*账号名称*/ + ,owner_id /*责任人*/ + ,full_name /*姓名*/ + ,mobile_phone /*手机号*/ + ,mobile_phone_data_ind /*手机号有数据标志*/ + ,mobile_phone_availabilty /*手机号有效标志*/ + ,email /*电子邮箱*/ + ,email_data_ind /*电子邮箱数据标志*/ + ,eamil_availabilty /*电子邮箱有效性标志*/ + ,cust_dept /*部门*/ + ,cust_title /*职位*/ + ,job_function /*工作领域*/ + ,suffix_info /*附加信息*/ + ,address_detail /*详细地址*/ + ,city_name /*城市*/ + ,prov_name /*省份*/ + ,post_cd /*邮编*/ + ,country_name /*国家*/ + ,ccp_app /*CCP应用*/ + ,product_interst /*产品偏好*/ + ,acq_time /*购买时间*/ + ,active_leads_count /*活动线索数*/ + ,app_count /*应用数*/ + ,ccp_record_count /*CCP记录数*/ + ,gen_product_interst_count /*通用产品偏好数*/ + ,sub_app_count /*子应用数*/ + ,acq_campaign_name /*购买项目名*/ + ,create_time /*创建时间*/ + ,create_person /*创建人*/ + ,modify_time /*修改时间*/ + ,modify_person /*修改人*/ + ,industry /*行业*/ + ,sub_industry /*子行业*/ + ,msr_visibility /*msr关注度*/ + ,privacy_policy_ind /*隐私政策同意标志*/ + ,contact_score /*联系评分*/ + ,contact_stage /*联系层次*/ + ,contact_type /*联系类型*/ + ,collect_personal_info_ind /*个人信息收集标志*/ + ,collect_personal_info_time /*个人信息收集时间*/ + ,phone_ind /*电话标志*/ + ,bulk_postalmail_ind /*群发邮件标志*/ + ,fax_ind /*传真标志*/ + ,track_ind /*追踪标志*/ + ,set_up_ind /*创建标志*/ + ,bulk_email_ind /*群发电子邮件标志*/ + ,email_permission_time /*电子邮件权限时间*/ + ,sms_ind /*短信标志*/ + ,sms_permission_time /*短信权限时间*/ + ,telmarker_permission_time /*电话营销权限时间*/ + ,industry_or_application_info /*行业或应用标志*/ + ,last_activity /*最近活跃*/ + ,market_ind /*市场营销标志*/ + ,marketing_consent /*营销同意书*/ + ,marketing_consent_time /*营销同意时间*/ + ,state /*状态*/ + ,crm_contact_account /*CRM_CONTACT账号*/ + ,Etl_Batch_No /*作业批次号*/ + ,Etl_First_Dt /*最初入库时间*/ + ,Etl_Job /*作业名称*/ + ,Etl_Proc_Dt /*本次入库时间*/ + ,Etl_Tx_Dt /*作业运行时间*/ + ,Src_Sysname /*来源系统*/ + ,Src_Table /*来源表*/ + +) + SELECT + P1.company_name /*公司名称*/ + ,P1.account_name /*账号名称*/ + ,P1.owner_id /*责任人*/ + ,P1.full_name /*姓名*/ + ,P1.mobile_phone /*手机号*/ + ,P1.mobile_phone_data_ind /*手机号有数据标志*/ + ,P1.mobile_phone_availabilty /*手机号有效标志*/ + ,P1.email /*电子邮箱*/ + ,P1.email_data_ind /*电子邮箱数据标志*/ + ,P1.eamil_availabilty /*电子邮箱有效性标志*/ + ,P1.cust_dept /*部门*/ + ,P1.cust_title /*职位*/ + ,P1.job_function /*工作领域*/ + ,P1.suffix_info /*附加信息*/ + ,P1.address_detail /*详细地址*/ + ,P1.city_name /*城市*/ + ,P1.prov_name /*省份*/ + ,P1.post_cd /*邮编*/ + ,P1.country_name /*国家*/ + ,P1.ccp_app /*CCP应用*/ + ,P1.product_interst /*产品偏好*/ + ,P1.acq_time /*购买时间*/ + ,P1.active_leads_count /*活动线索数*/ + ,P1.app_count /*应用数*/ + ,P1.ccp_record_count /*CCP记录数*/ + ,P1.gen_product_interst_count /*通用产品偏好数*/ + ,P1.sub_app_count /*子应用数*/ + ,P1.acq_campaign_name /*购买项目名*/ + ,P1.create_time /*创建时间*/ + ,P1.create_person /*创建人*/ + ,P1.modify_time /*修改时间*/ + ,P1.modify_person /*修改人*/ + ,P1.industry /*行业*/ + ,P1.sub_industry /*子行业*/ + ,P1.msr_visibility /*msr关注度*/ + ,P1.privacy_policy_ind /*隐私政策同意标志*/ + ,P1.contact_score /*联系评分*/ + ,P1.contact_stage /*联系层次*/ + ,P1.contact_type /*联系类型*/ + ,P1.collect_personal_info_ind /*个人信息收集标志*/ + ,P1.collect_personal_info_time /*个人信息收集时间*/ + ,P1.phone_ind /*电话标志*/ + ,P1.bulk_postalmail_ind /*群发邮件标志*/ + ,P1.fax_ind /*传真标志*/ + ,P1.track_ind /*追踪标志*/ + ,P1.set_up_ind /*创建标志*/ + ,P1.bulk_email_ind /*群发电子邮件标志*/ + ,P1.email_permission_time /*电子邮件权限时间*/ + ,P1.sms_ind /*短信标志*/ + ,P1.sms_permission_time /*短信权限时间*/ + ,P1.telmarker_permission_time /*电话营销权限时间*/ + ,P1.industry_or_application_info /*行业或应用标志*/ + ,P1.last_activity /*最近活跃*/ + ,P1.market_ind /*市场营销标志*/ + ,P1.marketing_consent /*营销同意书*/ + ,P1.marketing_consent_time /*营销同意时间*/ + ,P1.state /*状态*/ + ,P1.crm_contact_account /*CRM_CONTACT账号*/ + ,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_crm_contact_agi_CUR_I P1 +LEFT JOIN :COMMDB.d_crm_contact P2 +ON P1.company_name = P2.company_name + AND P1.account_name = P2.account_name + AND P1.owner_id = P2.owner_id + AND P1.full_name = P2.full_name + AND P1.mobile_phone = P2.mobile_phone + AND P1.mobile_phone_data_ind = P2.mobile_phone_data_ind + AND P1.mobile_phone_availabilty = P2.mobile_phone_availabilty + AND P1.email = P2.email + AND P1.email_data_ind = P2.email_data_ind + AND P1.eamil_availabilty = P2.eamil_availabilty + AND P1.cust_dept = P2.cust_dept + AND P1.cust_title = P2.cust_title + AND P1.job_function = P2.job_function + AND P1.suffix_info = P2.suffix_info + AND P1.address_detail = P2.address_detail + AND P1.city_name = P2.city_name + AND P1.prov_name = P2.prov_name + AND P1.post_cd = P2.post_cd + AND P1.country_name = P2.country_name + AND P1.ccp_app = P2.ccp_app + AND P1.product_interst = P2.product_interst + AND P1.acq_time = P2.acq_time + AND P1.active_leads_count = P2.active_leads_count + AND P1.app_count = P2.app_count + AND P1.ccp_record_count = P2.ccp_record_count + AND P1.gen_product_interst_count = P2.gen_product_interst_count + AND P1.sub_app_count = P2.sub_app_count + AND P1.acq_campaign_name = P2.acq_campaign_name + AND P1.create_time = P2.create_time + AND P1.create_person = P2.create_person + AND P1.modify_time = P2.modify_time + AND P1.modify_person = P2.modify_person + AND P1.industry = P2.industry + AND P1.sub_industry = P2.sub_industry + AND P1.msr_visibility = P2.msr_visibility + AND P1.privacy_policy_ind = P2.privacy_policy_ind + AND P1.contact_score = P2.contact_score + AND P1.contact_stage = P2.contact_stage + AND P1.contact_type = P2.contact_type + AND P1.collect_personal_info_ind = P2.collect_personal_info_ind + AND P1.collect_personal_info_time = P2.collect_personal_info_time + AND P1.phone_ind = P2.phone_ind + AND P1.bulk_postalmail_ind = P2.bulk_postalmail_ind + AND P1.fax_ind = P2.fax_ind + AND P1.track_ind = P2.track_ind + AND P1.set_up_ind = P2.set_up_ind + AND P1.bulk_email_ind = P2.bulk_email_ind + AND P1.email_permission_time = P2.email_permission_time + AND P1.sms_ind = P2.sms_ind + AND P1.sms_permission_time = P2.sms_permission_time + AND P1.telmarker_permission_time = P2.telmarker_permission_time + AND P1.industry_or_application_info = P2.industry_or_application_info + AND P1.last_activity = P2.last_activity + AND P1.market_ind = P2.market_ind + AND P1.marketing_consent = P2.marketing_consent + AND P1.marketing_consent_time = P2.marketing_consent_time + AND P1.state = P2.state + AND P1.crm_contact_account = P2.crm_contact_account + +WHERE P2.company_name IS NULL + OR P2.account_name IS NULL + OR P2.owner_id IS NULL + OR P2.full_name IS NULL + OR P2.mobile_phone IS NULL + OR P2.mobile_phone_data_ind IS NULL + OR P2.mobile_phone_availabilty IS NULL + OR P2.email IS NULL + OR P2.email_data_ind IS NULL + OR P2.eamil_availabilty IS NULL + OR P2.cust_dept IS NULL + OR P2.cust_title IS NULL + OR P2.job_function IS NULL + OR P2.suffix_info IS NULL + OR P2.address_detail IS NULL + OR P2.city_name IS NULL + OR P2.prov_name IS NULL + OR P2.post_cd IS NULL + OR P2.country_name IS NULL + OR P2.ccp_app IS NULL + OR P2.product_interst IS NULL + OR P2.acq_time IS NULL + OR P2.active_leads_count IS NULL + OR P2.app_count IS NULL + OR P2.ccp_record_count IS NULL + OR P2.gen_product_interst_count IS NULL + OR P2.sub_app_count IS NULL + OR P2.acq_campaign_name IS NULL + OR P2.create_time IS NULL + OR P2.create_person IS NULL + OR P2.modify_time IS NULL + OR P2.modify_person IS NULL + OR P2.industry IS NULL + OR P2.sub_industry IS NULL + OR P2.msr_visibility IS NULL + OR P2.privacy_policy_ind IS NULL + OR P2.contact_score IS NULL + OR P2.contact_stage IS NULL + OR P2.contact_type IS NULL + OR P2.collect_personal_info_ind IS NULL + OR P2.collect_personal_info_time IS NULL + OR P2.phone_ind IS NULL + OR P2.bulk_postalmail_ind IS NULL + OR P2.fax_ind IS NULL + OR P2.track_ind IS NULL + OR P2.set_up_ind IS NULL + OR P2.bulk_email_ind IS NULL + OR P2.email_permission_time IS NULL + OR P2.sms_ind IS NULL + OR P2.sms_permission_time IS NULL + OR P2.telmarker_permission_time IS NULL + OR P2.industry_or_application_info IS NULL + OR P2.last_activity IS NULL + OR P2.market_ind IS NULL + OR P2.marketing_consent IS NULL + OR P2.marketing_consent_time IS NULL + OR P2.state IS NULL + OR P2.crm_contact_account IS NULL + +; +/*将新增数据插入到目标表 */ +;INSERT INTO :COMMDB.d_crm_contact ( + company_name /*公司名称*/ + ,account_name /*账号名称*/ + ,owner_id /*责任人*/ + ,full_name /*姓名*/ + ,mobile_phone /*手机号*/ + ,mobile_phone_data_ind /*手机号有数据标志*/ + ,mobile_phone_availabilty /*手机号有效标志*/ + ,email /*电子邮箱*/ + ,email_data_ind /*电子邮箱数据标志*/ + ,eamil_availabilty /*电子邮箱有效性标志*/ + ,cust_dept /*部门*/ + ,cust_title /*职位*/ + ,job_function /*工作领域*/ + ,suffix_info /*附加信息*/ + ,address_detail /*详细地址*/ + ,city_name /*城市*/ + ,prov_name /*省份*/ + ,post_cd /*邮编*/ + ,country_name /*国家*/ + ,ccp_app /*CCP应用*/ + ,product_interst /*产品偏好*/ + ,acq_time /*购买时间*/ + ,active_leads_count /*活动线索数*/ + ,app_count /*应用数*/ + ,ccp_record_count /*CCP记录数*/ + ,gen_product_interst_count /*通用产品偏好数*/ + ,sub_app_count /*子应用数*/ + ,acq_campaign_name /*购买项目名*/ + ,create_time /*创建时间*/ + ,create_person /*创建人*/ + ,modify_time /*修改时间*/ + ,modify_person /*修改人*/ + ,industry /*行业*/ + ,sub_industry /*子行业*/ + ,msr_visibility /*msr关注度*/ + ,privacy_policy_ind /*隐私政策同意标志*/ + ,contact_score /*联系评分*/ + ,contact_stage /*联系层次*/ + ,contact_type /*联系类型*/ + ,collect_personal_info_ind /*个人信息收集标志*/ + ,collect_personal_info_time /*个人信息收集时间*/ + ,phone_ind /*电话标志*/ + ,bulk_postalmail_ind /*群发邮件标志*/ + ,fax_ind /*传真标志*/ + ,track_ind /*追踪标志*/ + ,set_up_ind /*创建标志*/ + ,bulk_email_ind /*群发电子邮件标志*/ + ,email_permission_time /*电子邮件权限时间*/ + ,sms_ind /*短信标志*/ + ,sms_permission_time /*短信权限时间*/ + ,telmarker_permission_time /*电话营销权限时间*/ + ,industry_or_application_info /*行业或应用标志*/ + ,last_activity /*最近活跃*/ + ,market_ind /*市场营销标志*/ + ,marketing_consent /*营销同意书*/ + ,marketing_consent_time /*营销同意时间*/ + ,state /*状态*/ + ,crm_contact_account /*CRM_CONTACT账号*/ + ,Etl_Batch_No /*作业批次号*/ + ,Etl_First_Dt /*最初入库时间*/ + ,Etl_Job /*作业名称*/ + ,Etl_Proc_Dt /*本次入库时间*/ + ,Etl_Tx_Dt /*作业运行时间*/ + ,Src_Sysname /*来源系统*/ + ,Src_Table /*来源表*/ + +) +SELECT + P1.company_name /*公司名称*/ + ,P1.account_name /*账号名称*/ + ,P1.owner_id /*责任人*/ + ,P1.full_name /*姓名*/ + ,P1.mobile_phone /*手机号*/ + ,P1.mobile_phone_data_ind /*手机号有数据标志*/ + ,P1.mobile_phone_availabilty /*手机号有效标志*/ + ,P1.email /*电子邮箱*/ + ,P1.email_data_ind /*电子邮箱数据标志*/ + ,P1.eamil_availabilty /*电子邮箱有效性标志*/ + ,P1.cust_dept /*部门*/ + ,P1.cust_title /*职位*/ + ,P1.job_function /*工作领域*/ + ,P1.suffix_info /*附加信息*/ + ,P1.address_detail /*详细地址*/ + ,P1.city_name /*城市*/ + ,P1.prov_name /*省份*/ + ,P1.post_cd /*邮编*/ + ,P1.country_name /*国家*/ + ,P1.ccp_app /*CCP应用*/ + ,P1.product_interst /*产品偏好*/ + ,P1.acq_time /*购买时间*/ + ,P1.active_leads_count /*活动线索数*/ + ,P1.app_count /*应用数*/ + ,P1.ccp_record_count /*CCP记录数*/ + ,P1.gen_product_interst_count /*通用产品偏好数*/ + ,P1.sub_app_count /*子应用数*/ + ,P1.acq_campaign_name /*购买项目名*/ + ,P1.create_time /*创建时间*/ + ,P1.create_person /*创建人*/ + ,P1.modify_time /*修改时间*/ + ,P1.modify_person /*修改人*/ + ,P1.industry /*行业*/ + ,P1.sub_industry /*子行业*/ + ,P1.msr_visibility /*msr关注度*/ + ,P1.privacy_policy_ind /*隐私政策同意标志*/ + ,P1.contact_score /*联系评分*/ + ,P1.contact_stage /*联系层次*/ + ,P1.contact_type /*联系类型*/ + ,P1.collect_personal_info_ind /*个人信息收集标志*/ + ,P1.collect_personal_info_time /*个人信息收集时间*/ + ,P1.phone_ind /*电话标志*/ + ,P1.bulk_postalmail_ind /*群发邮件标志*/ + ,P1.fax_ind /*传真标志*/ + ,P1.track_ind /*追踪标志*/ + ,P1.set_up_ind /*创建标志*/ + ,P1.bulk_email_ind /*群发电子邮件标志*/ + ,P1.email_permission_time /*电子邮件权限时间*/ + ,P1.sms_ind /*短信标志*/ + ,P1.sms_permission_time /*短信权限时间*/ + ,P1.telmarker_permission_time /*电话营销权限时间*/ + ,P1.industry_or_application_info /*行业或应用标志*/ + ,P1.last_activity /*最近活跃*/ + ,P1.market_ind /*市场营销标志*/ + ,P1.marketing_consent /*营销同意书*/ + ,P1.marketing_consent_time /*营销同意时间*/ + ,P1.state /*状态*/ + ,P1.crm_contact_account /*CRM_CONTACT账号*/ + ,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_crm_contact_agi_INS P1 +ON CONFLICT ( crm_contact_account) +DO UPDATE SET + crm_contact_account=excluded.crm_contact_account + ,company_name=excluded.company_name + ,account_name=excluded.account_name + ,owner_id=excluded.owner_id + ,full_name=excluded.full_name + ,mobile_phone=excluded.mobile_phone + ,mobile_phone_data_ind=excluded.mobile_phone_data_ind + ,mobile_phone_availabilty=excluded.mobile_phone_availabilty + ,email=excluded.email + ,email_data_ind=excluded.email_data_ind + ,eamil_availabilty=excluded.eamil_availabilty + ,cust_dept=excluded.cust_dept + ,cust_title=excluded.cust_title + ,job_function=excluded.job_function + ,suffix_info=excluded.suffix_info + ,address_detail=excluded.address_detail + ,city_name=excluded.city_name + ,prov_name=excluded.prov_name + ,post_cd=excluded.post_cd + ,country_name=excluded.country_name + ,ccp_app=excluded.ccp_app + ,product_interst=excluded.product_interst + ,acq_time=excluded.acq_time + ,active_leads_count=excluded.active_leads_count + ,app_count=excluded.app_count + ,ccp_record_count=excluded.ccp_record_count + ,gen_product_interst_count=excluded.gen_product_interst_count + ,sub_app_count=excluded.sub_app_count + ,acq_campaign_name=excluded.acq_campaign_name + ,create_time=excluded.create_time + ,create_person=excluded.create_person + ,modify_time=excluded.modify_time + ,modify_person=excluded.modify_person + ,industry=excluded.industry + ,sub_industry=excluded.sub_industry + ,msr_visibility=excluded.msr_visibility + ,privacy_policy_ind=excluded.privacy_policy_ind + ,contact_score=excluded.contact_score + ,contact_stage=excluded.contact_stage + ,contact_type=excluded.contact_type + ,collect_personal_info_ind=excluded.collect_personal_info_ind + ,collect_personal_info_time=excluded.collect_personal_info_time + ,phone_ind=excluded.phone_ind + ,bulk_postalmail_ind=excluded.bulk_postalmail_ind + ,fax_ind=excluded.fax_ind + ,track_ind=excluded.track_ind + ,set_up_ind=excluded.set_up_ind + ,bulk_email_ind=excluded.bulk_email_ind + ,email_permission_time=excluded.email_permission_time + ,sms_ind=excluded.sms_ind + ,sms_permission_time=excluded.sms_permission_time + ,telmarker_permission_time=excluded.telmarker_permission_time + ,industry_or_application_info=excluded.industry_or_application_info + ,last_activity=excluded.last_activity + ,market_ind=excluded.market_ind + ,marketing_consent=excluded.marketing_consent + ,marketing_consent_time=excluded.marketing_consent_time + ,state=excluded.state + ,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 + diff --git a/dev/workflow/TK_Cust/tk_cust/china_city/S98_S_china_city.sql b/dev/workflow/TK_Cust/tk_cust/china_city/S98_S_china_city.sql new file mode 100644 index 0000000..39d5586 --- /dev/null +++ b/dev/workflow/TK_Cust/tk_cust/china_city/S98_S_china_city.sql @@ -0,0 +1,58 @@ +/*******Main Section**************************************************************************/ +\set ON_ERROR_STOP on +\set AUTOCOMMIT on +\timing on +delete from p10_sa.S98_S_china_city +; +insert into p10_sa.S98_S_china_city +( prov_cn + , province + , city_cn + , city + , city_cn2 + , city2 + , postalcode + , area_code + , area + , etl_tx_dt ) + select + prov_cn + , province + , city_cn + , city + , city_cn2 + , city2 + , postalcode + , area_code + , area + , etl_tx_dt + from p00_tal.S98_S_china_city + ; + delete from p12_sfull.S98_S_china_city +; +; +insert into p12_sfull.S98_S_china_city +( prov_cn + , province + , city_cn + , city + , city_cn2 + , city2 + , postalcode + , area_code + , area + , etl_tx_dt ) + select + prov_cn + , province + , city_cn + , city + , city_cn2 + , city2 + , postalcode + , area_code + , area + , etl_tx_dt + from p10_sa.S98_S_china_city +; +\q \ No newline at end of file diff --git a/dev/workflow/TK_Cust/tk_cust/china_city/sa_foreign_tables.sql b/dev/workflow/TK_Cust/tk_cust/china_city/sa_foreign_tables.sql new file mode 100644 index 0000000..d91ef3a --- /dev/null +++ b/dev/workflow/TK_Cust/tk_cust/china_city/sa_foreign_tables.sql @@ -0,0 +1,21 @@ + +CREATE FOREIGN TABLE if not exists p00_tal.S98_S_china_city ( + prov_cn TEXT + , province TEXT + , city_cn TEXT + , city TEXT + , city_cn2 TEXT + , city2 TEXT + , postalcode TEXT + , area_code TEXT + , area TEXT + , etl_tx_dt TIMESTAMP +) + + +SERVER pgsql_server_S98_S OPTIONS(schema_name 'data_api', table_name 'china_city' ); + + + + + diff --git a/dev/workflow/TK_Cust/tk_cust/china_city/sa_tables.sql b/dev/workflow/TK_Cust/tk_cust/china_city/sa_tables.sql new file mode 100644 index 0000000..4a18aea --- /dev/null +++ b/dev/workflow/TK_Cust/tk_cust/china_city/sa_tables.sql @@ -0,0 +1,55 @@ + +create table if not exists p10_sa.S98_S_china_city ( + prov_cn TEXT + , province TEXT + , city_cn TEXT + , city TEXT + , city_cn2 TEXT + , city2 TEXT + , postalcode TEXT + , area_code TEXT + , area TEXT + , etl_tx_dt TIMESTAMP +) ; + + COMMENT ON COLUMN p10_sa.S98_S_china_city.prov_cn IS '省份'; + COMMENT ON COLUMN p10_sa.S98_S_china_city.province IS 'province'; + COMMENT ON COLUMN p10_sa.S98_S_china_city.city_cn IS '城市'; + COMMENT ON COLUMN p10_sa.S98_S_china_city.city IS 'City'; + COMMENT ON COLUMN p10_sa.S98_S_china_city.city_cn2 IS '城市2'; + COMMENT ON COLUMN p10_sa.S98_S_china_city.city2 IS 'City2'; + COMMENT ON COLUMN p10_sa.S98_S_china_city.postalcode IS '邮编/postalcode'; + COMMENT ON COLUMN p10_sa.S98_S_china_city.area_code IS '区号/area code'; + COMMENT ON COLUMN p10_sa.S98_S_china_city.area IS '区域'; + COMMENT ON COLUMN p10_sa.S98_S_china_city.etl_tx_dt IS ''; + +COMMENT ON TABLE p10_sa.S98_S_china_city IS ''; + + + +create table if not exists p12_sfull.S98_S_china_city ( + prov_cn TEXT + , province TEXT + , city_cn TEXT + , city TEXT + , city_cn2 TEXT + , city2 TEXT + , postalcode TEXT + , area_code TEXT + , area TEXT + , etl_tx_dt TIMESTAMP +) ; + + COMMENT ON COLUMN p12_sfull.S98_S_china_city.prov_cn IS '省份'; + COMMENT ON COLUMN p12_sfull.S98_S_china_city.province IS 'province'; + COMMENT ON COLUMN p12_sfull.S98_S_china_city.city_cn IS '城市'; + COMMENT ON COLUMN p12_sfull.S98_S_china_city.city IS 'City'; + COMMENT ON COLUMN p12_sfull.S98_S_china_city.city_cn2 IS '城市2'; + COMMENT ON COLUMN p12_sfull.S98_S_china_city.city2 IS 'City2'; + COMMENT ON COLUMN p12_sfull.S98_S_china_city.postalcode IS '邮编/postalcode'; + COMMENT ON COLUMN p12_sfull.S98_S_china_city.area_code IS '区号/area code'; + COMMENT ON COLUMN p12_sfull.S98_S_china_city.area IS '区域'; + COMMENT ON COLUMN p12_sfull.S98_S_china_city.etl_tx_dt IS ''; + +COMMENT ON TABLE p12_sfull.S98_S_china_city IS ''; + diff --git a/dev/workflow/TK_Cust/tk_cust/crm_raw_leads/S98_S_crm_raw_leads.sql b/dev/workflow/TK_Cust/tk_cust/crm_raw_leads/S98_S_crm_raw_leads.sql new file mode 100644 index 0000000..1dd0b41 --- /dev/null +++ b/dev/workflow/TK_Cust/tk_cust/crm_raw_leads/S98_S_crm_raw_leads.sql @@ -0,0 +1,66 @@ +/*******Main Section**************************************************************************/ +\set ON_ERROR_STOP on +\set AUTOCOMMIT on +\timing on +delete from p10_sa.S98_S_crm_raw_leads +; +insert into p10_sa.S98_S_crm_raw_leads +( tek_contactnumber + , tek_leadnumber + , fullname + , createdon + , companyname + , emailaddress1 + , mobilephone + , tek_mqldate + , campaignidname + , tek_industry2idname + , tek_marketing_program_type_idname + , etl_tx_dt ) + select + tek_contactnumber + , tek_leadnumber + , fullname + , createdon + , companyname + , emailaddress1 + , mobilephone + , tek_mqldate + , campaignidname + , tek_industry2idname + , tek_marketing_program_type_idname + , etl_tx_dt + from p00_tal.S98_S_crm_raw_leads + ; + delete from p12_sfull.S98_S_crm_raw_leads + where (tek_contactnumber,tek_leadnumber) in (select tek_contactnumber,tek_leadnumber from p10_sa.S98_S_crm_raw_leads) ; +; +insert into p12_sfull.S98_S_crm_raw_leads +( tek_contactnumber + , tek_leadnumber + , fullname + , createdon + , companyname + , emailaddress1 + , mobilephone + , tek_mqldate + , campaignidname + , tek_industry2idname + , tek_marketing_program_type_idname + , etl_tx_dt ) + select + tek_contactnumber + , tek_leadnumber + , fullname + , createdon + , companyname + , emailaddress1 + , mobilephone + , tek_mqldate + , campaignidname + , tek_industry2idname + , tek_marketing_program_type_idname + , etl_tx_dt + from p10_sa.S98_S_crm_raw_leads +; +\q \ No newline at end of file diff --git a/dev/workflow/TK_Cust/tk_cust/crm_raw_leads/sa_foreign_tables.sql b/dev/workflow/TK_Cust/tk_cust/crm_raw_leads/sa_foreign_tables.sql new file mode 100644 index 0000000..538b881 --- /dev/null +++ b/dev/workflow/TK_Cust/tk_cust/crm_raw_leads/sa_foreign_tables.sql @@ -0,0 +1,23 @@ + +CREATE FOREIGN TABLE if not exists p00_tal.S98_S_crm_raw_leads ( + tek_contactnumber TEXT + , tek_leadnumber TEXT + , fullname TEXT + , createdon TEXT + , companyname TEXT + , emailaddress1 TEXT + , mobilephone TEXT + , tek_mqldate TEXT + , campaignidname TEXT + , tek_industry2idname TEXT + , tek_marketing_program_type_idname TEXT + , etl_tx_dt TIMESTAMP +) + + +SERVER pgsql_server_S98_S OPTIONS(schema_name 'data_api', table_name 'crm_raw_leads' ); + + + + + diff --git a/dev/workflow/TK_Cust/tk_cust/crm_raw_leads/sa_tables.sql b/dev/workflow/TK_Cust/tk_cust/crm_raw_leads/sa_tables.sql new file mode 100644 index 0000000..1bacb18 --- /dev/null +++ b/dev/workflow/TK_Cust/tk_cust/crm_raw_leads/sa_tables.sql @@ -0,0 +1,63 @@ + +create table if not exists p10_sa.S98_S_crm_raw_leads ( + tek_contactnumber TEXT + , tek_leadnumber TEXT + , fullname TEXT + , createdon TEXT + , companyname TEXT + , emailaddress1 TEXT + , mobilephone TEXT + , tek_mqldate TEXT + , campaignidname TEXT + , tek_industry2idname TEXT + , tek_marketing_program_type_idname TEXT + , etl_tx_dt TIMESTAMP +) ; + + COMMENT ON COLUMN p10_sa.S98_S_crm_raw_leads.tek_contactnumber IS 'tek_contactnumber'; + COMMENT ON COLUMN p10_sa.S98_S_crm_raw_leads.tek_leadnumber IS 'tek_leadnumber'; + COMMENT ON COLUMN p10_sa.S98_S_crm_raw_leads.fullname IS 'fullname'; + COMMENT ON COLUMN p10_sa.S98_S_crm_raw_leads.createdon IS 'createdon'; + COMMENT ON COLUMN p10_sa.S98_S_crm_raw_leads.companyname IS 'companyname'; + COMMENT ON COLUMN p10_sa.S98_S_crm_raw_leads.emailaddress1 IS 'emailaddress1'; + COMMENT ON COLUMN p10_sa.S98_S_crm_raw_leads.mobilephone IS 'mobilephone'; + COMMENT ON COLUMN p10_sa.S98_S_crm_raw_leads.tek_mqldate IS 'tek_mqldate'; + COMMENT ON COLUMN p10_sa.S98_S_crm_raw_leads.campaignidname IS 'campaignidname'; + COMMENT ON COLUMN p10_sa.S98_S_crm_raw_leads.tek_industry2idname IS 'tek_industry2idname'; + COMMENT ON COLUMN p10_sa.S98_S_crm_raw_leads.tek_marketing_program_type_idname IS 'tek_marketing_program_type_idname'; + COMMENT ON COLUMN p10_sa.S98_S_crm_raw_leads.etl_tx_dt IS ''; + +COMMENT ON TABLE p10_sa.S98_S_crm_raw_leads IS ''; + + + +create table if not exists p12_sfull.S98_S_crm_raw_leads ( + tek_contactnumber TEXT + , tek_leadnumber TEXT + , fullname TEXT + , createdon TEXT + , companyname TEXT + , emailaddress1 TEXT + , mobilephone TEXT + , tek_mqldate TEXT + , campaignidname TEXT + , tek_industry2idname TEXT + , tek_marketing_program_type_idname TEXT + , etl_tx_dt TIMESTAMP +) ; + + COMMENT ON COLUMN p12_sfull.S98_S_crm_raw_leads.tek_contactnumber IS 'tek_contactnumber'; + COMMENT ON COLUMN p12_sfull.S98_S_crm_raw_leads.tek_leadnumber IS 'tek_leadnumber'; + COMMENT ON COLUMN p12_sfull.S98_S_crm_raw_leads.fullname IS 'fullname'; + COMMENT ON COLUMN p12_sfull.S98_S_crm_raw_leads.createdon IS 'createdon'; + COMMENT ON COLUMN p12_sfull.S98_S_crm_raw_leads.companyname IS 'companyname'; + COMMENT ON COLUMN p12_sfull.S98_S_crm_raw_leads.emailaddress1 IS 'emailaddress1'; + COMMENT ON COLUMN p12_sfull.S98_S_crm_raw_leads.mobilephone IS 'mobilephone'; + COMMENT ON COLUMN p12_sfull.S98_S_crm_raw_leads.tek_mqldate IS 'tek_mqldate'; + COMMENT ON COLUMN p12_sfull.S98_S_crm_raw_leads.campaignidname IS 'campaignidname'; + COMMENT ON COLUMN p12_sfull.S98_S_crm_raw_leads.tek_industry2idname IS 'tek_industry2idname'; + COMMENT ON COLUMN p12_sfull.S98_S_crm_raw_leads.tek_marketing_program_type_idname IS 'tek_marketing_program_type_idname'; + COMMENT ON COLUMN p12_sfull.S98_S_crm_raw_leads.etl_tx_dt IS ''; + +COMMENT ON TABLE p12_sfull.S98_S_crm_raw_leads IS ''; + diff --git a/dev/workflow/TK_Cust/tk_cust/livechat/S98_S_livechat.sql b/dev/workflow/TK_Cust/tk_cust/livechat/S98_S_livechat.sql new file mode 100644 index 0000000..174ad71 --- /dev/null +++ b/dev/workflow/TK_Cust/tk_cust/livechat/S98_S_livechat.sql @@ -0,0 +1,410 @@ +/*******Main Section**************************************************************************/ +\set ON_ERROR_STOP on +\set AUTOCOMMIT on +\timing on +delete from p10_sa.S98_S_livechat +; +insert into p10_sa.S98_S_livechat +( conference_id + , chat_creation_date + , chat_start_date + , chat_start_url + , referrer + , chat_duration + , queue_duration + , visitor_livechat_id + , visitor_nick + , visitor_ip + , visitor_email + , last_operator_id + , group_id + , group_name + , rate + , last_rate_comment + , operator_1_nick + , operator_2_nick + , operator_3_nick + , operator_4_nick + , operator_5_nick + , operator_6_nick + , operator_7_nick + , operator_8_nick + , operator_9_nick + , operator_10_nick + , operator_11_nick + , operator_1_id + , operator_2_id + , operator_3_id + , operator_4_id + , operator_5_id + , operator_6_id + , operator_7_id + , operator_8_id + , operator_9_id + , operator_10_id + , operator_11_id + , operator_1_time_zone + , operator_2_time_zone + , operator_3_time_zone + , operator_4_time_zone + , operator_5_time_zone + , operator_6_time_zone + , operator_7_time_zone + , operator_8_time_zone + , operator_9_time_zone + , operator_10_time_zone + , operator_11_time_zone + , pre_chat_service + , pre_chat_name + , pre_chat_contact + , pre_chat_email + , pre_chat_company + , pre_chat_service_t + , pre_chat_email_t + , pre_chat_contact_t + , pre_chat_company_t + , pre_chat_name_j + , pre_chat_email_j + , pre_chat_private_policy + , pre_chat_know_policy + , pre_chat_agree_policy + , pre_chat_agree_policy_k + , pre_chat_agree_for_sale + , pre_chat_company_k + , pre_chat_name_k + , pre_chat_contact_k + , pre_chat_email_k + , pre_chat_service_k + , pre_chat_contact_2 + , pre_chat_contact_3 + , post_chat_first + , post_chat_where_chat + , post_chat_help + , post_chat_where_2 + , post_chat_first_j + , post_chat_help_j + , post_chat_message_j + , auto_invite_url + , auto_invite_action + , goal_action_name + , goal_done_by + , goal_done_date + , tag_1 + , tag_2 + , tag_3 + , tag_4 + , tag_5 + , cust_var_1_name + , cust_var_1_value + , first_response_time + , average_response_time + , agents_chatting_duration + , visitor_user_agent + , group_status_at_start + , visitor_country_code + , etl_tx_dt ) + select + conference_id + , chat_creation_date + , chat_start_date + , chat_start_url + , referrer + , chat_duration + , queue_duration + , visitor_livechat_id + , visitor_nick + , visitor_ip + , visitor_email + , last_operator_id + , group_id + , group_name + , rate + , last_rate_comment + , operator_1_nick + , operator_2_nick + , operator_3_nick + , operator_4_nick + , operator_5_nick + , operator_6_nick + , operator_7_nick + , operator_8_nick + , operator_9_nick + , operator_10_nick + , operator_11_nick + , operator_1_id + , operator_2_id + , operator_3_id + , operator_4_id + , operator_5_id + , operator_6_id + , operator_7_id + , operator_8_id + , operator_9_id + , operator_10_id + , operator_11_id + , operator_1_time_zone + , operator_2_time_zone + , operator_3_time_zone + , operator_4_time_zone + , operator_5_time_zone + , operator_6_time_zone + , operator_7_time_zone + , operator_8_time_zone + , operator_9_time_zone + , operator_10_time_zone + , operator_11_time_zone + , pre_chat_service + , pre_chat_name + , pre_chat_contact + , pre_chat_email + , pre_chat_company + , pre_chat_service_t + , pre_chat_email_t + , pre_chat_contact_t + , pre_chat_company_t + , pre_chat_name_j + , pre_chat_email_j + , pre_chat_private_policy + , pre_chat_know_policy + , pre_chat_agree_policy + , pre_chat_agree_policy_k + , pre_chat_agree_for_sale + , pre_chat_company_k + , pre_chat_name_k + , pre_chat_contact_k + , pre_chat_email_k + , pre_chat_service_k + , pre_chat_contact_2 + , pre_chat_contact_3 + , post_chat_first + , post_chat_where_chat + , post_chat_help + , post_chat_where_2 + , post_chat_first_j + , post_chat_help_j + , post_chat_message_j + , auto_invite_url + , auto_invite_action + , goal_action_name + , goal_done_by + , goal_done_date + , tag_1 + , tag_2 + , tag_3 + , tag_4 + , tag_5 + , cust_var_1_name + , cust_var_1_value + , first_response_time + , average_response_time + , agents_chatting_duration + , visitor_user_agent + , group_status_at_start + , visitor_country_code + , etl_tx_dt + from p00_tal.S98_S_livechat + ; + delete from p12_sfull.S98_S_livechat + where (conference_id) in (select conference_id from p10_sa.S98_S_livechat) ; +; +insert into p12_sfull.S98_S_livechat +( conference_id + , chat_creation_date + , chat_start_date + , chat_start_url + , referrer + , chat_duration + , queue_duration + , visitor_livechat_id + , visitor_nick + , visitor_ip + , visitor_email + , last_operator_id + , group_id + , group_name + , rate + , last_rate_comment + , operator_1_nick + , operator_2_nick + , operator_3_nick + , operator_4_nick + , operator_5_nick + , operator_6_nick + , operator_7_nick + , operator_8_nick + , operator_9_nick + , operator_10_nick + , operator_11_nick + , operator_1_id + , operator_2_id + , operator_3_id + , operator_4_id + , operator_5_id + , operator_6_id + , operator_7_id + , operator_8_id + , operator_9_id + , operator_10_id + , operator_11_id + , operator_1_time_zone + , operator_2_time_zone + , operator_3_time_zone + , operator_4_time_zone + , operator_5_time_zone + , operator_6_time_zone + , operator_7_time_zone + , operator_8_time_zone + , operator_9_time_zone + , operator_10_time_zone + , operator_11_time_zone + , pre_chat_service + , pre_chat_name + , pre_chat_contact + , pre_chat_email + , pre_chat_company + , pre_chat_service_t + , pre_chat_email_t + , pre_chat_contact_t + , pre_chat_company_t + , pre_chat_name_j + , pre_chat_email_j + , pre_chat_private_policy + , pre_chat_know_policy + , pre_chat_agree_policy + , pre_chat_agree_policy_k + , pre_chat_agree_for_sale + , pre_chat_company_k + , pre_chat_name_k + , pre_chat_contact_k + , pre_chat_email_k + , pre_chat_service_k + , pre_chat_contact_2 + , pre_chat_contact_3 + , post_chat_first + , post_chat_where_chat + , post_chat_help + , post_chat_where_2 + , post_chat_first_j + , post_chat_help_j + , post_chat_message_j + , auto_invite_url + , auto_invite_action + , goal_action_name + , goal_done_by + , goal_done_date + , tag_1 + , tag_2 + , tag_3 + , tag_4 + , tag_5 + , cust_var_1_name + , cust_var_1_value + , first_response_time + , average_response_time + , agents_chatting_duration + , visitor_user_agent + , group_status_at_start + , visitor_country_code + , etl_tx_dt ) + select + conference_id + , chat_creation_date + , chat_start_date + , chat_start_url + , referrer + , chat_duration + , queue_duration + , visitor_livechat_id + , visitor_nick + , visitor_ip + , visitor_email + , last_operator_id + , group_id + , group_name + , rate + , last_rate_comment + , operator_1_nick + , operator_2_nick + , operator_3_nick + , operator_4_nick + , operator_5_nick + , operator_6_nick + , operator_7_nick + , operator_8_nick + , operator_9_nick + , operator_10_nick + , operator_11_nick + , operator_1_id + , operator_2_id + , operator_3_id + , operator_4_id + , operator_5_id + , operator_6_id + , operator_7_id + , operator_8_id + , operator_9_id + , operator_10_id + , operator_11_id + , operator_1_time_zone + , operator_2_time_zone + , operator_3_time_zone + , operator_4_time_zone + , operator_5_time_zone + , operator_6_time_zone + , operator_7_time_zone + , operator_8_time_zone + , operator_9_time_zone + , operator_10_time_zone + , operator_11_time_zone + , pre_chat_service + , pre_chat_name + , pre_chat_contact + , pre_chat_email + , pre_chat_company + , pre_chat_service_t + , pre_chat_email_t + , pre_chat_contact_t + , pre_chat_company_t + , pre_chat_name_j + , pre_chat_email_j + , pre_chat_private_policy + , pre_chat_know_policy + , pre_chat_agree_policy + , pre_chat_agree_policy_k + , pre_chat_agree_for_sale + , pre_chat_company_k + , pre_chat_name_k + , pre_chat_contact_k + , pre_chat_email_k + , pre_chat_service_k + , pre_chat_contact_2 + , pre_chat_contact_3 + , post_chat_first + , post_chat_where_chat + , post_chat_help + , post_chat_where_2 + , post_chat_first_j + , post_chat_help_j + , post_chat_message_j + , auto_invite_url + , auto_invite_action + , goal_action_name + , goal_done_by + , goal_done_date + , tag_1 + , tag_2 + , tag_3 + , tag_4 + , tag_5 + , cust_var_1_name + , cust_var_1_value + , first_response_time + , average_response_time + , agents_chatting_duration + , visitor_user_agent + , group_status_at_start + , visitor_country_code + , etl_tx_dt + from p10_sa.S98_S_livechat +; +\q \ No newline at end of file diff --git a/dev/workflow/TK_Cust/tk_cust/livechat/sa_foreign_tables.sql b/dev/workflow/TK_Cust/tk_cust/livechat/sa_foreign_tables.sql new file mode 100644 index 0000000..97bda9b --- /dev/null +++ b/dev/workflow/TK_Cust/tk_cust/livechat/sa_foreign_tables.sql @@ -0,0 +1,109 @@ + +CREATE FOREIGN TABLE if not exists p00_tal.S98_S_livechat ( + conference_id TEXT + , chat_creation_date TEXT + , chat_start_date TEXT + , chat_start_url TEXT + , referrer TEXT + , chat_duration TEXT + , queue_duration TEXT + , visitor_livechat_id TEXT + , visitor_nick TEXT + , visitor_ip TEXT + , visitor_email TEXT + , last_operator_id TEXT + , group_id TEXT + , group_name TEXT + , rate TEXT + , last_rate_comment TEXT + , operator_1_nick TEXT + , operator_2_nick TEXT + , operator_3_nick TEXT + , operator_4_nick TEXT + , operator_5_nick TEXT + , operator_6_nick TEXT + , operator_7_nick TEXT + , operator_8_nick TEXT + , operator_9_nick TEXT + , operator_10_nick TEXT + , operator_11_nick TEXT + , operator_1_id TEXT + , operator_2_id TEXT + , operator_3_id TEXT + , operator_4_id TEXT + , operator_5_id TEXT + , operator_6_id TEXT + , operator_7_id TEXT + , operator_8_id TEXT + , operator_9_id TEXT + , operator_10_id TEXT + , operator_11_id TEXT + , operator_1_time_zone TEXT + , operator_2_time_zone TEXT + , operator_3_time_zone TEXT + , operator_4_time_zone TEXT + , operator_5_time_zone TEXT + , operator_6_time_zone TEXT + , operator_7_time_zone TEXT + , operator_8_time_zone TEXT + , operator_9_time_zone TEXT + , operator_10_time_zone TEXT + , operator_11_time_zone TEXT + , pre_chat_service TEXT + , pre_chat_name TEXT + , pre_chat_contact TEXT + , pre_chat_email TEXT + , pre_chat_company TEXT + , pre_chat_service_t TEXT + , pre_chat_email_t TEXT + , pre_chat_contact_t TEXT + , pre_chat_company_t TEXT + , pre_chat_name_j TEXT + , pre_chat_email_j TEXT + , pre_chat_private_policy TEXT + , pre_chat_know_policy TEXT + , pre_chat_agree_policy TEXT + , pre_chat_agree_policy_k TEXT + , pre_chat_agree_for_sale TEXT + , pre_chat_company_k TEXT + , pre_chat_name_k TEXT + , pre_chat_contact_k TEXT + , pre_chat_email_k TEXT + , pre_chat_service_k TEXT + , pre_chat_contact_2 TEXT + , pre_chat_contact_3 TEXT + , post_chat_first TEXT + , post_chat_where_chat TEXT + , post_chat_help TEXT + , post_chat_where_2 TEXT + , post_chat_first_j TEXT + , post_chat_help_j TEXT + , post_chat_message_j TEXT + , auto_invite_url TEXT + , auto_invite_action TEXT + , goal_action_name TEXT + , goal_done_by TEXT + , goal_done_date TEXT + , tag_1 TEXT + , tag_2 TEXT + , tag_3 TEXT + , tag_4 TEXT + , tag_5 TEXT + , cust_var_1_name TEXT + , cust_var_1_value TEXT + , first_response_time TEXT + , average_response_time TEXT + , agents_chatting_duration TEXT + , visitor_user_agent TEXT + , group_status_at_start TEXT + , visitor_country_code TEXT + , etl_tx_dt TIMESTAMP +) + + +SERVER pgsql_server_S98_S OPTIONS(schema_name 'data_api', table_name 'livechat' ); + + + + + diff --git a/dev/workflow/TK_Cust/tk_cust/livechat/sa_tables.sql b/dev/workflow/TK_Cust/tk_cust/livechat/sa_tables.sql new file mode 100644 index 0000000..4232e53 --- /dev/null +++ b/dev/workflow/TK_Cust/tk_cust/livechat/sa_tables.sql @@ -0,0 +1,407 @@ + +create table if not exists p10_sa.S98_S_livechat ( + conference_id TEXT + , chat_creation_date TEXT + , chat_start_date TEXT + , chat_start_url TEXT + , referrer TEXT + , chat_duration TEXT + , queue_duration TEXT + , visitor_livechat_id TEXT + , visitor_nick TEXT + , visitor_ip TEXT + , visitor_email TEXT + , last_operator_id TEXT + , group_id TEXT + , group_name TEXT + , rate TEXT + , last_rate_comment TEXT + , operator_1_nick TEXT + , operator_2_nick TEXT + , operator_3_nick TEXT + , operator_4_nick TEXT + , operator_5_nick TEXT + , operator_6_nick TEXT + , operator_7_nick TEXT + , operator_8_nick TEXT + , operator_9_nick TEXT + , operator_10_nick TEXT + , operator_11_nick TEXT + , operator_1_id TEXT + , operator_2_id TEXT + , operator_3_id TEXT + , operator_4_id TEXT + , operator_5_id TEXT + , operator_6_id TEXT + , operator_7_id TEXT + , operator_8_id TEXT + , operator_9_id TEXT + , operator_10_id TEXT + , operator_11_id TEXT + , operator_1_time_zone TEXT + , operator_2_time_zone TEXT + , operator_3_time_zone TEXT + , operator_4_time_zone TEXT + , operator_5_time_zone TEXT + , operator_6_time_zone TEXT + , operator_7_time_zone TEXT + , operator_8_time_zone TEXT + , operator_9_time_zone TEXT + , operator_10_time_zone TEXT + , operator_11_time_zone TEXT + , pre_chat_service TEXT + , pre_chat_name TEXT + , pre_chat_contact TEXT + , pre_chat_email TEXT + , pre_chat_company TEXT + , pre_chat_service_t TEXT + , pre_chat_email_t TEXT + , pre_chat_contact_t TEXT + , pre_chat_company_t TEXT + , pre_chat_name_j TEXT + , pre_chat_email_j TEXT + , pre_chat_private_policy TEXT + , pre_chat_know_policy TEXT + , pre_chat_agree_policy TEXT + , pre_chat_agree_policy_k TEXT + , pre_chat_agree_for_sale TEXT + , pre_chat_company_k TEXT + , pre_chat_name_k TEXT + , pre_chat_contact_k TEXT + , pre_chat_email_k TEXT + , pre_chat_service_k TEXT + , pre_chat_contact_2 TEXT + , pre_chat_contact_3 TEXT + , post_chat_first TEXT + , post_chat_where_chat TEXT + , post_chat_help TEXT + , post_chat_where_2 TEXT + , post_chat_first_j TEXT + , post_chat_help_j TEXT + , post_chat_message_j TEXT + , auto_invite_url TEXT + , auto_invite_action TEXT + , goal_action_name TEXT + , goal_done_by TEXT + , goal_done_date TEXT + , tag_1 TEXT + , tag_2 TEXT + , tag_3 TEXT + , tag_4 TEXT + , tag_5 TEXT + , cust_var_1_name TEXT + , cust_var_1_value TEXT + , first_response_time TEXT + , average_response_time TEXT + , agents_chatting_duration TEXT + , visitor_user_agent TEXT + , group_status_at_start TEXT + , visitor_country_code TEXT + , etl_tx_dt TIMESTAMP +) ; + + COMMENT ON COLUMN p10_sa.S98_S_livechat.conference_id IS 'conferenceId'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.chat_creation_date IS 'chat_creation_date'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.chat_start_date IS 'chat_start_date'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.chat_start_url IS 'chat_start_url'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.referrer IS 'referrer'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.chat_duration IS 'chat_duration'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.queue_duration IS 'queue_duration'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.visitor_livechat_id IS 'visitor_livechat_id'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.visitor_nick IS 'visitor_nick'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.visitor_ip IS 'visitor_ip'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.visitor_email IS 'visitor_email'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.last_operator_id IS 'last_operator_id'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.group_id IS 'group_id'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.group_name IS 'group_name'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.rate IS 'rate'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.last_rate_comment IS 'last_rate_comment'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.operator_1_nick IS 'operator_1_nick'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.operator_2_nick IS 'operator_2_nick'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.operator_3_nick IS 'operator_3_nick'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.operator_4_nick IS 'operator_4_nick'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.operator_5_nick IS 'operator_5_nick'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.operator_6_nick IS 'operator_6_nick'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.operator_7_nick IS 'operator_7_nick'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.operator_8_nick IS 'operator_8_nick'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.operator_9_nick IS 'operator_9_nick'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.operator_10_nick IS 'operator_10_nick'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.operator_11_nick IS 'operator_11_nick'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.operator_1_id IS 'operator_1_id'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.operator_2_id IS 'operator_2_id'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.operator_3_id IS 'operator_3_id'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.operator_4_id IS 'operator_4_id'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.operator_5_id IS 'operator_5_id'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.operator_6_id IS 'operator_6_id'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.operator_7_id IS 'operator_7_id'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.operator_8_id IS 'operator_8_id'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.operator_9_id IS 'operator_9_id'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.operator_10_id IS 'operator_10_id'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.operator_11_id IS 'operator_11_id'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.operator_1_time_zone IS 'operator_1_time_zone'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.operator_2_time_zone IS 'operator_2_time_zone'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.operator_3_time_zone IS 'operator_3_time_zone'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.operator_4_time_zone IS 'operator_4_time_zone'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.operator_5_time_zone IS 'operator_5_time_zone'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.operator_6_time_zone IS 'operator_6_time_zone'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.operator_7_time_zone IS 'operator_7_time_zone'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.operator_8_time_zone IS 'operator_8_time_zone'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.operator_9_time_zone IS 'operator_9_time_zone'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.operator_10_time_zone IS 'operator_10_time_zone'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.operator_11_time_zone IS 'operator_11_time_zone'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.pre_chat_service IS 'pre_chat_service'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.pre_chat_name IS 'pre_chat_name'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.pre_chat_contact IS 'pre_chat_contact'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.pre_chat_email IS 'pre_chat_email'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.pre_chat_company IS 'pre_chat_company'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.pre_chat_service_t IS 'pre_chat_service_t'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.pre_chat_email_t IS 'pre_chat_email_t'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.pre_chat_contact_t IS 'pre_chat_contact_t'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.pre_chat_company_t IS 'pre_chat_company_t'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.pre_chat_name_j IS 'pre_chat_name_j'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.pre_chat_email_j IS 'pre_chat_email_j'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.pre_chat_private_policy IS 'pre_chat_private_policy'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.pre_chat_know_policy IS 'pre_chat_know_policy'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.pre_chat_agree_policy IS 'pre_chat_agree_policy'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.pre_chat_agree_policy_k IS 'pre_chat_agree_policy_k'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.pre_chat_agree_for_sale IS 'pre_chat_agree_for_sale'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.pre_chat_company_k IS 'pre_chat_company_k'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.pre_chat_name_k IS 'pre_chat_name_k'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.pre_chat_contact_k IS 'pre_chat_contact_k'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.pre_chat_email_k IS 'pre_chat_email_k'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.pre_chat_service_k IS 'pre_chat_service_k'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.pre_chat_contact_2 IS 'pre_chat_contact_2'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.pre_chat_contact_3 IS 'pre_chat_contact_3'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.post_chat_first IS 'post_chat_first'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.post_chat_where_chat IS 'post_chat_where_chat'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.post_chat_help IS 'post_chat_help'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.post_chat_where_2 IS 'post_chat_where_2'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.post_chat_first_j IS 'post_chat_first_j'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.post_chat_help_j IS 'post_chat_help_j'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.post_chat_message_j IS 'post_chat_message_j'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.auto_invite_url IS 'auto_invite_url'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.auto_invite_action IS 'auto_invite_action'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.goal_action_name IS 'goal_action_name'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.goal_done_by IS 'goal_done_by'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.goal_done_date IS 'goal_done_date'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.tag_1 IS 'tag_1'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.tag_2 IS 'tag_2'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.tag_3 IS 'tag_3'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.tag_4 IS 'tag_4'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.tag_5 IS 'tag_5'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.cust_var_1_name IS 'cust_var_1_name'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.cust_var_1_value IS 'cust_var_1_value'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.first_response_time IS 'first_response_time'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.average_response_time IS 'average_response_time'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.agents_chatting_duration IS 'agents_chatting_duration'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.visitor_user_agent IS 'visitor_user_agent'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.group_status_at_start IS 'group_status_at_start'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.visitor_country_code IS 'visitor_country_code'; + COMMENT ON COLUMN p10_sa.S98_S_livechat.etl_tx_dt IS ''; + +COMMENT ON TABLE p10_sa.S98_S_livechat IS ''; + + + +create table if not exists p12_sfull.S98_S_livechat ( + conference_id TEXT + , chat_creation_date TEXT + , chat_start_date TEXT + , chat_start_url TEXT + , referrer TEXT + , chat_duration TEXT + , queue_duration TEXT + , visitor_livechat_id TEXT + , visitor_nick TEXT + , visitor_ip TEXT + , visitor_email TEXT + , last_operator_id TEXT + , group_id TEXT + , group_name TEXT + , rate TEXT + , last_rate_comment TEXT + , operator_1_nick TEXT + , operator_2_nick TEXT + , operator_3_nick TEXT + , operator_4_nick TEXT + , operator_5_nick TEXT + , operator_6_nick TEXT + , operator_7_nick TEXT + , operator_8_nick TEXT + , operator_9_nick TEXT + , operator_10_nick TEXT + , operator_11_nick TEXT + , operator_1_id TEXT + , operator_2_id TEXT + , operator_3_id TEXT + , operator_4_id TEXT + , operator_5_id TEXT + , operator_6_id TEXT + , operator_7_id TEXT + , operator_8_id TEXT + , operator_9_id TEXT + , operator_10_id TEXT + , operator_11_id TEXT + , operator_1_time_zone TEXT + , operator_2_time_zone TEXT + , operator_3_time_zone TEXT + , operator_4_time_zone TEXT + , operator_5_time_zone TEXT + , operator_6_time_zone TEXT + , operator_7_time_zone TEXT + , operator_8_time_zone TEXT + , operator_9_time_zone TEXT + , operator_10_time_zone TEXT + , operator_11_time_zone TEXT + , pre_chat_service TEXT + , pre_chat_name TEXT + , pre_chat_contact TEXT + , pre_chat_email TEXT + , pre_chat_company TEXT + , pre_chat_service_t TEXT + , pre_chat_email_t TEXT + , pre_chat_contact_t TEXT + , pre_chat_company_t TEXT + , pre_chat_name_j TEXT + , pre_chat_email_j TEXT + , pre_chat_private_policy TEXT + , pre_chat_know_policy TEXT + , pre_chat_agree_policy TEXT + , pre_chat_agree_policy_k TEXT + , pre_chat_agree_for_sale TEXT + , pre_chat_company_k TEXT + , pre_chat_name_k TEXT + , pre_chat_contact_k TEXT + , pre_chat_email_k TEXT + , pre_chat_service_k TEXT + , pre_chat_contact_2 TEXT + , pre_chat_contact_3 TEXT + , post_chat_first TEXT + , post_chat_where_chat TEXT + , post_chat_help TEXT + , post_chat_where_2 TEXT + , post_chat_first_j TEXT + , post_chat_help_j TEXT + , post_chat_message_j TEXT + , auto_invite_url TEXT + , auto_invite_action TEXT + , goal_action_name TEXT + , goal_done_by TEXT + , goal_done_date TEXT + , tag_1 TEXT + , tag_2 TEXT + , tag_3 TEXT + , tag_4 TEXT + , tag_5 TEXT + , cust_var_1_name TEXT + , cust_var_1_value TEXT + , first_response_time TEXT + , average_response_time TEXT + , agents_chatting_duration TEXT + , visitor_user_agent TEXT + , group_status_at_start TEXT + , visitor_country_code TEXT + , etl_tx_dt TIMESTAMP +) ; + + COMMENT ON COLUMN p12_sfull.S98_S_livechat.conference_id IS 'conferenceId'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.chat_creation_date IS 'chat_creation_date'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.chat_start_date IS 'chat_start_date'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.chat_start_url IS 'chat_start_url'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.referrer IS 'referrer'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.chat_duration IS 'chat_duration'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.queue_duration IS 'queue_duration'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.visitor_livechat_id IS 'visitor_livechat_id'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.visitor_nick IS 'visitor_nick'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.visitor_ip IS 'visitor_ip'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.visitor_email IS 'visitor_email'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.last_operator_id IS 'last_operator_id'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.group_id IS 'group_id'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.group_name IS 'group_name'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.rate IS 'rate'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.last_rate_comment IS 'last_rate_comment'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.operator_1_nick IS 'operator_1_nick'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.operator_2_nick IS 'operator_2_nick'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.operator_3_nick IS 'operator_3_nick'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.operator_4_nick IS 'operator_4_nick'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.operator_5_nick IS 'operator_5_nick'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.operator_6_nick IS 'operator_6_nick'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.operator_7_nick IS 'operator_7_nick'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.operator_8_nick IS 'operator_8_nick'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.operator_9_nick IS 'operator_9_nick'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.operator_10_nick IS 'operator_10_nick'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.operator_11_nick IS 'operator_11_nick'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.operator_1_id IS 'operator_1_id'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.operator_2_id IS 'operator_2_id'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.operator_3_id IS 'operator_3_id'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.operator_4_id IS 'operator_4_id'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.operator_5_id IS 'operator_5_id'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.operator_6_id IS 'operator_6_id'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.operator_7_id IS 'operator_7_id'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.operator_8_id IS 'operator_8_id'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.operator_9_id IS 'operator_9_id'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.operator_10_id IS 'operator_10_id'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.operator_11_id IS 'operator_11_id'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.operator_1_time_zone IS 'operator_1_time_zone'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.operator_2_time_zone IS 'operator_2_time_zone'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.operator_3_time_zone IS 'operator_3_time_zone'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.operator_4_time_zone IS 'operator_4_time_zone'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.operator_5_time_zone IS 'operator_5_time_zone'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.operator_6_time_zone IS 'operator_6_time_zone'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.operator_7_time_zone IS 'operator_7_time_zone'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.operator_8_time_zone IS 'operator_8_time_zone'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.operator_9_time_zone IS 'operator_9_time_zone'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.operator_10_time_zone IS 'operator_10_time_zone'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.operator_11_time_zone IS 'operator_11_time_zone'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.pre_chat_service IS 'pre_chat_service'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.pre_chat_name IS 'pre_chat_name'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.pre_chat_contact IS 'pre_chat_contact'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.pre_chat_email IS 'pre_chat_email'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.pre_chat_company IS 'pre_chat_company'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.pre_chat_service_t IS 'pre_chat_service_t'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.pre_chat_email_t IS 'pre_chat_email_t'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.pre_chat_contact_t IS 'pre_chat_contact_t'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.pre_chat_company_t IS 'pre_chat_company_t'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.pre_chat_name_j IS 'pre_chat_name_j'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.pre_chat_email_j IS 'pre_chat_email_j'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.pre_chat_private_policy IS 'pre_chat_private_policy'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.pre_chat_know_policy IS 'pre_chat_know_policy'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.pre_chat_agree_policy IS 'pre_chat_agree_policy'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.pre_chat_agree_policy_k IS 'pre_chat_agree_policy_k'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.pre_chat_agree_for_sale IS 'pre_chat_agree_for_sale'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.pre_chat_company_k IS 'pre_chat_company_k'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.pre_chat_name_k IS 'pre_chat_name_k'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.pre_chat_contact_k IS 'pre_chat_contact_k'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.pre_chat_email_k IS 'pre_chat_email_k'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.pre_chat_service_k IS 'pre_chat_service_k'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.pre_chat_contact_2 IS 'pre_chat_contact_2'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.pre_chat_contact_3 IS 'pre_chat_contact_3'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.post_chat_first IS 'post_chat_first'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.post_chat_where_chat IS 'post_chat_where_chat'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.post_chat_help IS 'post_chat_help'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.post_chat_where_2 IS 'post_chat_where_2'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.post_chat_first_j IS 'post_chat_first_j'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.post_chat_help_j IS 'post_chat_help_j'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.post_chat_message_j IS 'post_chat_message_j'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.auto_invite_url IS 'auto_invite_url'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.auto_invite_action IS 'auto_invite_action'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.goal_action_name IS 'goal_action_name'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.goal_done_by IS 'goal_done_by'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.goal_done_date IS 'goal_done_date'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.tag_1 IS 'tag_1'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.tag_2 IS 'tag_2'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.tag_3 IS 'tag_3'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.tag_4 IS 'tag_4'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.tag_5 IS 'tag_5'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.cust_var_1_name IS 'cust_var_1_name'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.cust_var_1_value IS 'cust_var_1_value'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.first_response_time IS 'first_response_time'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.average_response_time IS 'average_response_time'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.agents_chatting_duration IS 'agents_chatting_duration'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.visitor_user_agent IS 'visitor_user_agent'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.group_status_at_start IS 'group_status_at_start'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.visitor_country_code IS 'visitor_country_code'; + COMMENT ON COLUMN p12_sfull.S98_S_livechat.etl_tx_dt IS ''; + +COMMENT ON TABLE p12_sfull.S98_S_livechat IS ''; + diff --git a/dev/workflow/TK_Cust/tk_cust/udesk_record/S98_S_udesk_record.sql b/dev/workflow/TK_Cust/tk_cust/udesk_record/S98_S_udesk_record.sql new file mode 100644 index 0000000..9fcd34d --- /dev/null +++ b/dev/workflow/TK_Cust/tk_cust/udesk_record/S98_S_udesk_record.sql @@ -0,0 +1,102 @@ +/*******Main Section**************************************************************************/ +\set ON_ERROR_STOP on +\set AUTOCOMMIT on +\timing on +delete from p10_sa.S98_S_udesk_record +; +insert into p10_sa.S98_S_udesk_record +( record_time + , duration + , cust + , mobile_phone + , call_result + , call_origin_location + , relay_number + , satisfaction + , type + , device_status + , company_name + , queue_status + , queue_time + , message + , hung_up + , responsible_group + , blacklist + , inquiry_content + , icr_record + , call_id + , etl_tx_dt ) + select + record_time + , duration + , cust + , mobile_phone + , call_result + , call_origin_location + , relay_number + , satisfaction + , type + , device_status + , company_name + , queue_status + , queue_time + , message + , hung_up + , responsible_group + , blacklist + , inquiry_content + , icr_record + , call_id + , etl_tx_dt + from p00_tal.S98_S_udesk_record + ; + delete from p12_sfull.S98_S_udesk_record + where (record_time,mobile_phone) in (select record_time,mobile_phone from p10_sa.S98_S_udesk_record) ; +; +insert into p12_sfull.S98_S_udesk_record +( record_time + , duration + , cust + , mobile_phone + , call_result + , call_origin_location + , relay_number + , satisfaction + , type + , device_status + , company_name + , queue_status + , queue_time + , message + , hung_up + , responsible_group + , blacklist + , inquiry_content + , icr_record + , call_id + , etl_tx_dt ) + select + record_time + , duration + , cust + , mobile_phone + , call_result + , call_origin_location + , relay_number + , satisfaction + , type + , device_status + , company_name + , queue_status + , queue_time + , message + , hung_up + , responsible_group + , blacklist + , inquiry_content + , icr_record + , call_id + , etl_tx_dt + from p10_sa.S98_S_udesk_record +; +\q \ No newline at end of file diff --git a/dev/workflow/TK_Cust/tk_cust/udesk_record/sa_foreign_tables.sql b/dev/workflow/TK_Cust/tk_cust/udesk_record/sa_foreign_tables.sql new file mode 100644 index 0000000..b40840f --- /dev/null +++ b/dev/workflow/TK_Cust/tk_cust/udesk_record/sa_foreign_tables.sql @@ -0,0 +1,32 @@ + +CREATE FOREIGN TABLE if not exists p00_tal.S98_S_udesk_record ( + record_time TEXT + , duration TEXT + , cust TEXT + , mobile_phone TEXT + , call_result TEXT + , call_origin_location TEXT + , relay_number TEXT + , satisfaction TEXT + , type TEXT + , device_status TEXT + , company_name TEXT + , queue_status TEXT + , queue_time TEXT + , message TEXT + , hung_up TEXT + , responsible_group TEXT + , blacklist TEXT + , inquiry_content TEXT + , icr_record TEXT + , call_id TEXT + , etl_tx_dt TIMESTAMP +) + + +SERVER pgsql_server_S98_S OPTIONS(schema_name 'data_api', table_name 'udesk_record' ); + + + + + diff --git a/dev/workflow/TK_Cust/tk_cust/udesk_record/sa_tables.sql b/dev/workflow/TK_Cust/tk_cust/udesk_record/sa_tables.sql new file mode 100644 index 0000000..b37a590 --- /dev/null +++ b/dev/workflow/TK_Cust/tk_cust/udesk_record/sa_tables.sql @@ -0,0 +1,99 @@ + +create table if not exists p10_sa.S98_S_udesk_record ( + record_time TEXT + , duration TEXT + , cust TEXT + , mobile_phone TEXT + , call_result TEXT + , call_origin_location TEXT + , relay_number TEXT + , satisfaction TEXT + , type TEXT + , device_status TEXT + , company_name TEXT + , queue_status TEXT + , queue_time TEXT + , message TEXT + , hung_up TEXT + , responsible_group TEXT + , blacklist TEXT + , inquiry_content TEXT + , icr_record TEXT + , call_id TEXT + , etl_tx_dt TIMESTAMP +) ; + + COMMENT ON COLUMN p10_sa.S98_S_udesk_record.record_time IS '记录时间'; + COMMENT ON COLUMN p10_sa.S98_S_udesk_record.duration IS '通话时长'; + COMMENT ON COLUMN p10_sa.S98_S_udesk_record.cust IS '客户'; + COMMENT ON COLUMN p10_sa.S98_S_udesk_record.mobile_phone IS '客户电话'; + COMMENT ON COLUMN p10_sa.S98_S_udesk_record.call_result IS '通话结果'; + COMMENT ON COLUMN p10_sa.S98_S_udesk_record.call_origin_location IS '归属地'; + COMMENT ON COLUMN p10_sa.S98_S_udesk_record.relay_number IS '中继号'; + COMMENT ON COLUMN p10_sa.S98_S_udesk_record.satisfaction IS '满意度评价'; + COMMENT ON COLUMN p10_sa.S98_S_udesk_record.type IS '通话类型'; + COMMENT ON COLUMN p10_sa.S98_S_udesk_record.device_status IS '设备状态'; + COMMENT ON COLUMN p10_sa.S98_S_udesk_record.company_name IS '公司'; + COMMENT ON COLUMN p10_sa.S98_S_udesk_record.queue_status IS '排队状态'; + COMMENT ON COLUMN p10_sa.S98_S_udesk_record.queue_time IS '排队耗时'; + COMMENT ON COLUMN p10_sa.S98_S_udesk_record.message IS '留言'; + COMMENT ON COLUMN p10_sa.S98_S_udesk_record.hung_up IS '通话挂断方'; + COMMENT ON COLUMN p10_sa.S98_S_udesk_record.responsible_group IS '负责组'; + COMMENT ON COLUMN p10_sa.S98_S_udesk_record.blacklist IS '是否在黑名单'; + COMMENT ON COLUMN p10_sa.S98_S_udesk_record.inquiry_content IS '咨询内容'; + COMMENT ON COLUMN p10_sa.S98_S_udesk_record.icr_record IS 'IVR录音'; + COMMENT ON COLUMN p10_sa.S98_S_udesk_record.call_id IS 'Call ID'; + COMMENT ON COLUMN p10_sa.S98_S_udesk_record.etl_tx_dt IS ''; + +COMMENT ON TABLE p10_sa.S98_S_udesk_record IS ''; + + + +create table if not exists p12_sfull.S98_S_udesk_record ( + record_time TEXT + , duration TEXT + , cust TEXT + , mobile_phone TEXT + , call_result TEXT + , call_origin_location TEXT + , relay_number TEXT + , satisfaction TEXT + , type TEXT + , device_status TEXT + , company_name TEXT + , queue_status TEXT + , queue_time TEXT + , message TEXT + , hung_up TEXT + , responsible_group TEXT + , blacklist TEXT + , inquiry_content TEXT + , icr_record TEXT + , call_id TEXT + , etl_tx_dt TIMESTAMP +) ; + + COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.record_time IS '记录时间'; + COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.duration IS '通话时长'; + COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.cust IS '客户'; + COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.mobile_phone IS '客户电话'; + COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.call_result IS '通话结果'; + COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.call_origin_location IS '归属地'; + COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.relay_number IS '中继号'; + COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.satisfaction IS '满意度评价'; + COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.type IS '通话类型'; + COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.device_status IS '设备状态'; + COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.company_name IS '公司'; + COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.queue_status IS '排队状态'; + COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.queue_time IS '排队耗时'; + COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.message IS '留言'; + COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.hung_up IS '通话挂断方'; + COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.responsible_group IS '负责组'; + COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.blacklist IS '是否在黑名单'; + COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.inquiry_content IS '咨询内容'; + COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.icr_record IS 'IVR录音'; + COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.call_id IS 'Call ID'; + COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.etl_tx_dt IS ''; + +COMMENT ON TABLE p12_sfull.S98_S_udesk_record IS ''; + diff --git a/dev/workflow/TK_Cust/tk_cust/中国城市信息/t00_china_city_info.sql b/dev/workflow/TK_Cust/tk_cust/中国城市信息/t00_china_city_info.sql new file mode 100644 index 0000000..0825016 --- /dev/null +++ b/dev/workflow/TK_Cust/tk_cust/中国城市信息/t00_china_city_info.sql @@ -0,0 +1,40 @@ + +DROP TABLE IF EXISTS p20_pdm.t00_china_city_info; +CREATE TABLE IF NOT EXISTS p20_pdm.t00_china_city_info ( + prov_name varchar(20) + , prov_en varchar(20) + , city_name varchar(20) + , city_en varchar(20) + , city_name2 varchar(20) + , city_en2 varchar(20) + , postalcode varchar(20) + , area_code varchar(20) + , area varchar(20) + , 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( postalcode ) +); + + COMMENT ON COLUMN p20_pdm.t00_china_city_info.prov_name IS '省份'; + COMMENT ON COLUMN p20_pdm.t00_china_city_info.prov_en IS 'province'; + COMMENT ON COLUMN p20_pdm.t00_china_city_info.city_name IS '城市'; + COMMENT ON COLUMN p20_pdm.t00_china_city_info.city_en IS 'City'; + COMMENT ON COLUMN p20_pdm.t00_china_city_info.city_name2 IS '城市2'; + COMMENT ON COLUMN p20_pdm.t00_china_city_info.city_en2 IS 'City2'; + COMMENT ON COLUMN p20_pdm.t00_china_city_info.postalcode IS '邮编/postalcode'; + COMMENT ON COLUMN p20_pdm.t00_china_city_info.area_code IS '区号/area code'; + COMMENT ON COLUMN p20_pdm.t00_china_city_info.area IS '区域'; + COMMENT ON COLUMN p20_pdm.t00_china_city_info.Etl_Batch_No IS '作业批次号'; + COMMENT ON COLUMN p20_pdm.t00_china_city_info.Etl_First_Dt IS '最初入库时间'; + COMMENT ON COLUMN p20_pdm.t00_china_city_info.Etl_Job IS '作业名称'; + COMMENT ON COLUMN p20_pdm.t00_china_city_info.Etl_Proc_Dt IS '本次入库时间'; + COMMENT ON COLUMN p20_pdm.t00_china_city_info.Etl_Tx_Dt IS '作业运行时间'; + COMMENT ON COLUMN p20_pdm.t00_china_city_info.Src_Sysname IS '来源系统'; + COMMENT ON COLUMN p20_pdm.t00_china_city_info.Src_Table IS '来源表'; + +COMMENT ON TABLE p20_pdm.t00_china_city_info IS '中国城市信息'; \ No newline at end of file diff --git a/dev/workflow/TK_Cust/tk_cust/中国城市信息/t00_china_city_info_agi.sql b/dev/workflow/TK_Cust/tk_cust/中国城市信息/t00_china_city_info_agi.sql new file mode 100644 index 0000000..d721d50 --- /dev/null +++ b/dev/workflow/TK_Cust/tk_cust/中国城市信息/t00_china_city_info_agi.sql @@ -0,0 +1,211 @@ +/***************************************************************************************************/ +/*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 :t00_china_city_info(中国城市信息) */ +/*Create Date:2024-01-26 13:32:26 */ +/*SDM Developed By: dev */ +/*SDM Developed Date: 2024-01-16 */ +/*SDM Checked By: dev */ +/*SDM Checked Date: 2024-01-26 */ +/*Script Developed By: dev */ +/*Script Checked By: dev */ +/*Source table 1: p10_sa.s98_s_china_city */ +/*Job Type: Inbound transform (Tier 1 to Tier 2) */ +/*Target Table:t00_china_city_info */ +/*ETL Job Name:t00_china_city_info */ +/*ETL Frequency:Daily */ +/*ETL Policy:F2 */ +/********************************************************************************************/ +/*******Main Section**************************************************************************/ +\set ON_ERROR_STOP on +\set AUTOCOMMIT on +\timing on + + + +/*创建临时表加载当前数据 */ +CREATE TEMPORARY TABLE t00_china_city_info_agi_CUR_I + ( LIKE :PDMDB.t00_china_city_info) +ON COMMIT PRESERVE ROWS; + + + +/*创建临时表加载不同数据 */ +CREATE TEMPORARY TABLE t00_china_city_info_agi_INS +( LIKE :PDMDB.t00_china_city_info) +ON COMMIT PRESERVE ROWS; + + +/*****************************************************************************************************/ +/* GROUP 1:Source Table:s98_s_china_city**************************************************************/ +/*****************************************************************************************************/ + +INSERT INTO t00_china_city_info_agi_CUR_I ( + prov_name /*省份*/ + ,prov_en /*province*/ + ,city_name /*城市*/ + ,city_en /*City*/ + ,city_name2 /*城市2*/ + ,city_en2 /*City2*/ + ,postalcode /*邮编/postalcode*/ + ,area_code /*区号/area code*/ + ,area /*区域*/ + ,Etl_Batch_No /*作业批次号*/ + ,Etl_First_Dt /*最初入库时间*/ + ,Etl_Job /*作业名称*/ + ,Etl_Proc_Dt /*本次入库时间*/ + ,Etl_Tx_Dt /*作业运行时间*/ + ,Src_Sysname /*来源系统*/ + ,Src_Table /*来源表*/ + ) +SELECT + COALESCE(TRIM(CAST(p0.prov_cn AS varchar(20))),'') /*prov_name*/ + ,COALESCE(TRIM(CAST(p0.province AS varchar(20))),'') /*prov_en*/ + ,COALESCE(TRIM(CAST(p0.city_cn AS varchar(20))),'') /*city_name*/ + ,COALESCE(TRIM(CAST(p0.city AS varchar(20))),'') /*city_en*/ + ,COALESCE(TRIM(CAST(p0.city_cn2 AS varchar(20))),'') /*city_name2*/ + ,COALESCE(TRIM(CAST(p0.city2 AS varchar(20))),'') /*city_en2*/ + ,COALESCE(TRIM(CAST(p0.postalcode AS varchar(20))),'') /*postalcode*/ + ,COALESCE(TRIM(CAST(p0.area_code AS varchar(20))),'') /*area_code*/ + ,COALESCE(TRIM(CAST(p0.area AS varchar(20))),'') /*area*/ + ,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_china_city',1,3) /*Src_Sysname*/ + ,'s98_s_china_city' /*Src_Table*/ + +FROM (select distinct on (postalcode) * from p10_sa.s98_s_china_city) p0 + + +; + + + +/*将不同数据插入到临时表 */ +;INSERT INTO t00_china_city_info_agi_INS ( + prov_name /*省份*/ + ,prov_en /*province*/ + ,city_name /*城市*/ + ,city_en /*City*/ + ,city_name2 /*城市2*/ + ,city_en2 /*City2*/ + ,area_code /*区号/area code*/ + ,area /*区域*/ + ,postalcode /*邮编/postalcode*/ + ,Etl_Batch_No /*作业批次号*/ + ,Etl_First_Dt /*最初入库时间*/ + ,Etl_Job /*作业名称*/ + ,Etl_Proc_Dt /*本次入库时间*/ + ,Etl_Tx_Dt /*作业运行时间*/ + ,Src_Sysname /*来源系统*/ + ,Src_Table /*来源表*/ + +) + SELECT + P1.prov_name /*省份*/ + ,P1.prov_en /*province*/ + ,P1.city_name /*城市*/ + ,P1.city_en /*City*/ + ,P1.city_name2 /*城市2*/ + ,P1.city_en2 /*City2*/ + ,P1.area_code /*区号/area code*/ + ,P1.area /*区域*/ + ,P1.postalcode /*邮编/postalcode*/ + ,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 t00_china_city_info_agi_CUR_I P1 +LEFT JOIN :PDMDB.t00_china_city_info P2 +ON P1.prov_name = P2.prov_name + AND P1.prov_en = P2.prov_en + AND P1.city_name = P2.city_name + AND P1.city_en = P2.city_en + AND P1.city_name2 = P2.city_name2 + AND P1.city_en2 = P2.city_en2 + AND P1.area_code = P2.area_code + AND P1.area = P2.area + AND P1.postalcode = P2.postalcode + +WHERE P2.prov_name IS NULL + OR P2.prov_en IS NULL + OR P2.city_name IS NULL + OR P2.city_en IS NULL + OR P2.city_name2 IS NULL + OR P2.city_en2 IS NULL + OR P2.area_code IS NULL + OR P2.area IS NULL + OR P2.postalcode IS NULL + +; +/*将新增数据插入到目标表 */ +;INSERT INTO :PDMDB.t00_china_city_info ( + prov_name /*省份*/ + ,prov_en /*province*/ + ,city_name /*城市*/ + ,city_en /*City*/ + ,city_name2 /*城市2*/ + ,city_en2 /*City2*/ + ,area_code /*区号/area code*/ + ,area /*区域*/ + ,postalcode /*邮编/postalcode*/ + ,Etl_Batch_No /*作业批次号*/ + ,Etl_First_Dt /*最初入库时间*/ + ,Etl_Job /*作业名称*/ + ,Etl_Proc_Dt /*本次入库时间*/ + ,Etl_Tx_Dt /*作业运行时间*/ + ,Src_Sysname /*来源系统*/ + ,Src_Table /*来源表*/ + +) +SELECT + P1.prov_name /*省份*/ + ,P1.prov_en /*province*/ + ,P1.city_name /*城市*/ + ,P1.city_en /*City*/ + ,P1.city_name2 /*城市2*/ + ,P1.city_en2 /*City2*/ + ,P1.area_code /*区号/area code*/ + ,P1.area /*区域*/ + ,P1.postalcode /*邮编/postalcode*/ + ,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 t00_china_city_info_agi_INS P1 +ON CONFLICT ( postalcode) +DO UPDATE SET + postalcode=excluded.postalcode + ,prov_name=excluded.prov_name + ,prov_en=excluded.prov_en + ,city_name=excluded.city_name + ,city_en=excluded.city_en + ,city_name2=excluded.city_name2 + ,city_en2=excluded.city_en2 + ,area_code=excluded.area_code + ,area=excluded.area + ,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 + diff --git a/dev/workflow/TK_Cust/tk_cust/国家信息/t00_country_info.sql b/dev/workflow/TK_Cust/tk_cust/国家信息/t00_country_info.sql new file mode 100644 index 0000000..9077be7 --- /dev/null +++ b/dev/workflow/TK_Cust/tk_cust/国家信息/t00_country_info.sql @@ -0,0 +1,36 @@ + +DROP TABLE IF EXISTS p20_pdm.t00_country_info; +CREATE TABLE IF NOT EXISTS p20_pdm.t00_country_info ( + country_cn_name varchar(50) + , country_en_name varchar(50) + , country_cd varchar(10) + , country_abbr varchar(10) + , country_number int + , inter_tel_cd varchar(10) + , internet_name varchar(20) + , 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( country_cd ) +); + + COMMENT ON COLUMN p20_pdm.t00_country_info.country_cn_name IS '国家'; + COMMENT ON COLUMN p20_pdm.t00_country_info.country_en_name IS '国家英文名'; + COMMENT ON COLUMN p20_pdm.t00_country_info.country_cd IS '国家代码'; + COMMENT ON COLUMN p20_pdm.t00_country_info.country_abbr IS '国家缩写'; + COMMENT ON COLUMN p20_pdm.t00_country_info.country_number IS '数字代码'; + COMMENT ON COLUMN p20_pdm.t00_country_info.inter_tel_cd IS '国际区号'; + COMMENT ON COLUMN p20_pdm.t00_country_info.internet_name IS '域名'; + COMMENT ON COLUMN p20_pdm.t00_country_info.Etl_Batch_No IS '作业批次号'; + COMMENT ON COLUMN p20_pdm.t00_country_info.Etl_First_Dt IS '最初入库时间'; + COMMENT ON COLUMN p20_pdm.t00_country_info.Etl_Job IS '作业名称'; + COMMENT ON COLUMN p20_pdm.t00_country_info.Etl_Proc_Dt IS '本次入库时间'; + COMMENT ON COLUMN p20_pdm.t00_country_info.Etl_Tx_Dt IS '作业运行时间'; + COMMENT ON COLUMN p20_pdm.t00_country_info.Src_Sysname IS '来源系统'; + COMMENT ON COLUMN p20_pdm.t00_country_info.Src_Table IS '来源表'; + +COMMENT ON TABLE p20_pdm.t00_country_info IS '国家信息'; \ No newline at end of file diff --git a/dev/workflow/TK_Cust/tk_cust/国家信息/t00_country_info_agi.sql b/dev/workflow/TK_Cust/tk_cust/国家信息/t00_country_info_agi.sql new file mode 100644 index 0000000..45933fc --- /dev/null +++ b/dev/workflow/TK_Cust/tk_cust/国家信息/t00_country_info_agi.sql @@ -0,0 +1,190 @@ +/***************************************************************************************************/ +/*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 :t00_country_info(国家信息) */ +/*Create Date:2024-01-16 18:27:51 */ +/*SDM Developed By: dev */ +/*SDM Developed Date: 2024-01-16 */ +/*SDM Checked By: dev */ +/*SDM Checked Date: 2024-01-16 */ +/*Script Developed By: dev */ +/*Script Checked By: dev */ +/*Source table 1: p10_sa.s98_s_country_cde */ +/*Job Type: Inbound transform (Tier 1 to Tier 2) */ +/*Target Table:t00_country_info */ +/*ETL Job Name:t00_country_info */ +/*ETL Frequency:Daily */ +/*ETL Policy:F2 */ +/********************************************************************************************/ +/*******Main Section**************************************************************************/ +\set ON_ERROR_STOP on +\set AUTOCOMMIT on +\timing on + + + +/*创建临时表加载当前数据 */ +CREATE TEMPORARY TABLE t00_country_info_agi_CUR_I + ( LIKE :PDMDB.t00_country_info) +ON COMMIT PRESERVE ROWS; + + + +/*创建临时表加载不同数据 */ +CREATE TEMPORARY TABLE t00_country_info_agi_INS +( LIKE :PDMDB.t00_country_info) +ON COMMIT PRESERVE ROWS; + + +/*****************************************************************************************************/ +/* GROUP 1:Source Table:s98_s_country_cde*************************************************************/ +/*****************************************************************************************************/ +INSERT INTO t00_country_info_agi_CUR_I ( + country_cn_name /*国家*/ + ,country_en_name /*国家英文名*/ + ,country_cd /*国家代码*/ + ,country_abbr /*国家缩写*/ + ,country_number /*数字代码*/ + ,inter_tel_cd /*国际区号*/ + ,internet_name /*域名*/ + ,Etl_Batch_No /*作业批次号*/ + ,Etl_First_Dt /*最初入库时间*/ + ,Etl_Job /*作业名称*/ + ,Etl_Proc_Dt /*本次入库时间*/ + ,Etl_Tx_Dt /*作业运行时间*/ + ,Src_Sysname /*来源系统*/ + ,Src_Table /*来源表*/ + ) +SELECT + COALESCE(TRIM(CAST(p0.country_cn_name AS varchar(50))),'') /*country_cn_name*/ + ,COALESCE(TRIM(CAST(p0.country_en_name AS varchar(50))),'') /*country_en_name*/ + ,COALESCE(TRIM(CAST(p0.country_cd AS varchar(10))),'') /*country_cd*/ + ,COALESCE(TRIM(CAST(p0.country_abbr AS varchar(10))),'') /*country_abbr*/ + ,COALESCE(CAST(p0.country_number AS int),0) /*country_number*/ + ,COALESCE(TRIM(CAST(p0.inter_tel_cd AS varchar(10))),'') /*inter_tel_cd*/ + ,COALESCE(TRIM(CAST(p0.internet_name AS varchar(20))),'') /*internet_name*/ + ,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_country_cde',1,3) /*Src_Sysname*/ + ,'s98_s_country_cde' /*Src_Table*/ + +FROM p10_sa.s98_s_country_cde p0 +; + + + +/*将不同数据插入到临时表 */ +;INSERT INTO t00_country_info_agi_INS ( + country_cn_name /*国家*/ + ,country_en_name /*国家英文名*/ + ,country_abbr /*国家缩写*/ + ,country_number /*数字代码*/ + ,inter_tel_cd /*国际区号*/ + ,internet_name /*域名*/ + ,country_cd /*国家代码*/ + ,Etl_Batch_No /*作业批次号*/ + ,Etl_First_Dt /*最初入库时间*/ + ,Etl_Job /*作业名称*/ + ,Etl_Proc_Dt /*本次入库时间*/ + ,Etl_Tx_Dt /*作业运行时间*/ + ,Src_Sysname /*来源系统*/ + ,Src_Table /*来源表*/ + +) + SELECT + P1.country_cn_name /*国家*/ + ,P1.country_en_name /*国家英文名*/ + ,P1.country_abbr /*国家缩写*/ + ,P1.country_number /*数字代码*/ + ,P1.inter_tel_cd /*国际区号*/ + ,P1.internet_name /*域名*/ + ,P1.country_cd /*国家代码*/ + ,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 t00_country_info_agi_CUR_I P1 +LEFT JOIN :PDMDB.t00_country_info P2 +ON P1.country_cn_name = P2.country_cn_name + AND P1.country_en_name = P2.country_en_name + AND P1.country_abbr = P2.country_abbr + AND P1.country_number = P2.country_number + AND P1.inter_tel_cd = P2.inter_tel_cd + AND P1.internet_name = P2.internet_name + AND P1.country_cd = P2.country_cd + +WHERE P2.country_cn_name IS NULL + OR P2.country_en_name IS NULL + OR P2.country_abbr IS NULL + OR P2.country_number IS NULL + OR P2.inter_tel_cd IS NULL + OR P2.internet_name IS NULL + OR P2.country_cd IS NULL + +; +/*将新增数据插入到目标表 */ +;INSERT INTO :PDMDB.t00_country_info ( + country_cn_name /*国家*/ + ,country_en_name /*国家英文名*/ + ,country_abbr /*国家缩写*/ + ,country_number /*数字代码*/ + ,inter_tel_cd /*国际区号*/ + ,internet_name /*域名*/ + ,country_cd /*国家代码*/ + ,Etl_Batch_No /*作业批次号*/ + ,Etl_First_Dt /*最初入库时间*/ + ,Etl_Job /*作业名称*/ + ,Etl_Proc_Dt /*本次入库时间*/ + ,Etl_Tx_Dt /*作业运行时间*/ + ,Src_Sysname /*来源系统*/ + ,Src_Table /*来源表*/ + +) +SELECT + P1.country_cn_name /*国家*/ + ,P1.country_en_name /*国家英文名*/ + ,P1.country_abbr /*国家缩写*/ + ,P1.country_number /*数字代码*/ + ,P1.inter_tel_cd /*国际区号*/ + ,P1.internet_name /*域名*/ + ,P1.country_cd /*国家代码*/ + ,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 t00_country_info_agi_INS P1 +ON CONFLICT ( country_cd) +DO UPDATE SET + country_cd=excluded.country_cd + ,country_cn_name=excluded.country_cn_name + ,country_en_name=excluded.country_en_name + ,country_abbr=excluded.country_abbr + ,country_number=excluded.country_number + ,inter_tel_cd=excluded.inter_tel_cd + ,internet_name=excluded.internet_name + ,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 +