diff --git a/TK_Cust/dev/tk_cust/国家信息/t00_country_info.sql b/TK_Cust/dev/tk_cust/国家信息/t00_country_info.sql new file mode 100644 index 0000000..9077be7 --- /dev/null +++ b/TK_Cust/dev/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/TK_Cust/dev/tk_cust/国家信息/t00_country_info_agi.sql b/TK_Cust/dev/tk_cust/国家信息/t00_country_info_agi.sql new file mode 100644 index 0000000..45933fc --- /dev/null +++ b/TK_Cust/dev/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 + diff --git a/TK_Cust/dev/tk_cust/泰克客户/wf_dag_tk_cust.py b/TK_Cust/dev/tk_cust/泰克客户/wf_dag_tk_cust.py new file mode 100644 index 0000000..8400408 --- /dev/null +++ b/TK_Cust/dev/tk_cust/泰克客户/wf_dag_tk_cust.py @@ -0,0 +1,324 @@ +#!/usr/bin/python +# -*- encoding=utf-8 -*- +from airflow import DAG +from datetime import datetime, timedelta +from airflow.contrib.hooks.ssh_hook import SSHHook +from airflow.contrib.operators.ssh_operator import SSHOperator +from airflow.sensors.external_task_sensor import ExternalTaskSensor +import json + +from airflow.operators.email_operator import EmailOperator +from airflow.utils.trigger_rule import TriggerRule + + +sshHook = SSHHook(ssh_conn_id ='ssh_air') +default_args = { +'owner': 'info@idgvalue.com', +'email': [''], +'email_on_failure': True, +'email_on_retry':True, +'start_date': datetime(2022, 9, 12), +'depends_on_past': False, +'retries': 6, +'retry_delay': timedelta(minutes=10), +} + +dag = DAG('wf_dag_tk_cust', default_args=default_args, +schedule_interval="0 0 * * *", +catchup=False, +dagrun_timeout=timedelta(minutes=160), +max_active_runs=3) + +task_failed = EmailOperator ( + dag=dag, + trigger_rule=TriggerRule.ONE_FAILED, + task_id="task_failed", + to=["info@idgvalue.com"], + cc=[""], + subject="tk_cust_failed", + html_content='

您好,tk_cust作业失败,请及时处理"

') + +file_Tk01 = SSHOperator( +ssh_hook=sshHook, +task_id='file_Tk01', +command='python /data/airflow/bin/FILELOD.py {{ params.my_param }} {{ ds_nodash }} >>/data/airflow/logs/file_load/file_load_{{ds_nodash}}.log 2>&1 ', +params={'my_param':"Tk01"}, +depends_on_past=False, +retries=3, +dag=dag) + + +file_Update_af0912 = SSHOperator( +ssh_hook=sshHook, +task_id='file_Update_af0912', +command='python /data/airflow/bin/FILELOD.py {{ params.my_param }} {{ ds_nodash }} >>/data/airflow/logs/file_load/file_load_{{ds_nodash}}.log 2>&1 ', +params={'my_param':"Update_af0912"}, +depends_on_past=False, +retries=3, +dag=dag) + + +file_Merge_af0912 = SSHOperator( +ssh_hook=sshHook, +task_id='file_Merge_af0912', +command='python /data/airflow/bin/FILELOD.py {{ params.my_param }} {{ ds_nodash }} >>/data/airflow/logs/file_load/file_load_{{ds_nodash}}.log 2>&1 ', +params={'my_param':"Merge_af0912"}, +depends_on_past=False, +retries=3, +dag=dag) + + +file_SCRM_Contact_af0912 = SSHOperator( +ssh_hook=sshHook, +task_id='file_SCRM_Contact_af0912', +command='python /data/airflow/bin/FILELOD.py {{ params.my_param }} {{ ds_nodash }} >>/data/airflow/logs/file_load/file_load_{{ds_nodash}}.log 2>&1 ', +params={'my_param':"SCRM_Contact_af0912"}, +depends_on_past=False, +retries=3, +dag=dag) + + +file_SCRM_Contact_bf0912 = SSHOperator( +ssh_hook=sshHook, +task_id='file_SCRM_Contact_bf0912', +command='python /data/airflow/bin/FILELOD.py {{ params.my_param }} {{ ds_nodash }} >>/data/airflow/logs/file_load/file_load_{{ds_nodash}}.log 2>&1 ', +params={'my_param':"SCRM_Contact_bf0912"}, +depends_on_past=False, +retries=3, +dag=dag) + + +livechat_6381 = SSHOperator( +ssh_hook=sshHook, +task_id='livechat_6381', +command='/data/airflow/etl/SA/run_sa.sh {{ ds_nodash }} {{ params.my_param }} >>/data/airflow/logs/run_psql_{{ds_nodash}}.log 2>&1 ', +params={'my_param':"S98_S_livechat"}, +depends_on_past=False, +retries=3, +dag=dag) + +scrm_contact_af0912_6333 = SSHOperator( +ssh_hook=sshHook, +task_id='scrm_contact_af0912_6333', +command='/data/airflow/etl/SA/run_sa.sh {{ ds_nodash }} {{ params.my_param }} >>/data/airflow/logs/run_psql_{{ds_nodash}}.log 2>&1 ', +params={'my_param':"S98_S_scrm_contact_af0912"}, +depends_on_past=False, +retries=3, +dag=dag) + +scrm_contact_update_af0912_6448 = SSHOperator( +ssh_hook=sshHook, +task_id='scrm_contact_update_af0912_6448', +command='/data/airflow/etl/SA/run_sa.sh {{ ds_nodash }} {{ params.my_param }} >>/data/airflow/logs/run_psql_{{ds_nodash}}.log 2>&1 ', +params={'my_param':"S98_S_scrm_contact_update_af0912"}, +depends_on_past=False, +retries=3, +dag=dag) + +scrm_contact_merge_af0912_7975 = SSHOperator( +ssh_hook=sshHook, +task_id='scrm_contact_merge_af0912_7975', +command='/data/airflow/etl/SA/run_sa.sh {{ ds_nodash }} {{ params.my_param }} >>/data/airflow/logs/run_psql_{{ds_nodash}}.log 2>&1 ', +params={'my_param':"S98_S_scrm_contact_merge_af0912"}, +depends_on_past=False, +retries=3, +dag=dag) + +scrm_contact_bf0912_6949 = SSHOperator( +ssh_hook=sshHook, +task_id='scrm_contact_bf0912_6949', +command='/data/airflow/etl/SA/run_sa.sh {{ ds_nodash }} {{ params.my_param }} >>/data/airflow/logs/run_psql_{{ds_nodash}}.log 2>&1 ', +params={'my_param':"S98_S_scrm_contact_bf0912"}, +depends_on_past=False, +retries=3, +dag=dag) + +T01_SCRM_CONTACT = SSHOperator( +ssh_hook=sshHook, +task_id='T01_SCRM_CONTACT', +command='/data/airflow/etl/PDM/run_sa.sh {{ ds_nodash }} {{params.my_param}} >>/data/airflow/logs/run_tpt_{{ds_nodash}}.log 2>&1 ', +params={'my_param':"T01_SCRM_CONTACT_agi"}, +depends_on_past=False, +retries=3, +dag=dag) +file_Udesk_record = SSHOperator( +ssh_hook=sshHook, +task_id='file_Udesk_record', +command='python /data/airflow/bin/FILELOD.py {{ params.my_param }} {{ ds_nodash }} >>/data/airflow/logs/file_load/file_load_{{ds_nodash}}.log 2>&1 ', +params={'my_param':"Udesk_record"}, +depends_on_past=False, +retries=3, +dag=dag) + + +file_CRM_Raw_Leads = SSHOperator( +ssh_hook=sshHook, +task_id='file_CRM_Raw_Leads', +command='python /data/airflow/bin/FILELOD.py {{ params.my_param }} {{ ds_nodash }} >>/data/airflow/logs/file_load/file_load_{{ds_nodash}}.log 2>&1 ', +params={'my_param':"CRM_Raw_Leads"}, +depends_on_past=False, +retries=3, +dag=dag) + + +file_scrm_leads_bf0912 = SSHOperator( +ssh_hook=sshHook, +task_id='file_scrm_leads_bf0912', +command='python /data/airflow/bin/FILELOD.py {{ params.my_param }} {{ ds_nodash }} >>/data/airflow/logs/file_load/file_load_{{ds_nodash}}.log 2>&1 ', +params={'my_param':"scrm_leads_bf0912"}, +depends_on_past=False, +retries=3, +dag=dag) + + +file_scrm_leads_af0912 = SSHOperator( +ssh_hook=sshHook, +task_id='file_scrm_leads_af0912', +command='python /data/airflow/bin/FILELOD.py {{ params.my_param }} {{ ds_nodash }} >>/data/airflow/logs/file_load/file_load_{{ds_nodash}}.log 2>&1 ', +params={'my_param':"scrm_leads_af0912"}, +depends_on_past=False, +retries=3, +dag=dag) + + +udesk_record_3768 = SSHOperator( +ssh_hook=sshHook, +task_id='udesk_record_3768', +command='/data/airflow/etl/SA/run_sa.sh {{ ds_nodash }} {{ params.my_param }} >>/data/airflow/logs/run_psql_{{ds_nodash}}.log 2>&1 ', +params={'my_param':"S98_S_udesk_record"}, +depends_on_past=False, +retries=3, +dag=dag) + +scrm_leads_bf0912_508 = SSHOperator( +ssh_hook=sshHook, +task_id='scrm_leads_bf0912_508', +command='/data/airflow/etl/SA/run_sa.sh {{ ds_nodash }} {{ params.my_param }} >>/data/airflow/logs/run_psql_{{ds_nodash}}.log 2>&1 ', +params={'my_param':"S98_S_scrm_leads_bf0912"}, +depends_on_past=False, +retries=3, +dag=dag) + +scrm_leads_af0912_5813 = SSHOperator( +ssh_hook=sshHook, +task_id='scrm_leads_af0912_5813', +command='/data/airflow/etl/SA/run_sa.sh {{ ds_nodash }} {{ params.my_param }} >>/data/airflow/logs/run_psql_{{ds_nodash}}.log 2>&1 ', +params={'my_param':"S98_S_scrm_leads_af0912"}, +depends_on_past=False, +retries=3, +dag=dag) + +crm_raw_leads_6024 = SSHOperator( +ssh_hook=sshHook, +task_id='crm_raw_leads_6024', +command='/data/airflow/etl/SA/run_sa.sh {{ ds_nodash }} {{ params.my_param }} >>/data/airflow/logs/run_psql_{{ds_nodash}}.log 2>&1 ', +params={'my_param':"S98_S_crm_raw_leads"}, +depends_on_past=False, +retries=3, +dag=dag) + +t01_scrm_contact_his = SSHOperator( +ssh_hook=sshHook, +task_id='t01_scrm_contact_his', +command='/data/airflow/etl/PDM/run_sa.sh {{ ds_nodash }} {{params.my_param}} >>/data/airflow/logs/run_tpt_{{ds_nodash}}.log 2>&1 ', +params={'my_param':"t01_scrm_contact_his_agi"}, +depends_on_past=False, +retries=3, +dag=dag) +t01_scrm_contact_update = SSHOperator( +ssh_hook=sshHook, +task_id='t01_scrm_contact_update', +command='/data/airflow/etl/PDM/run_sa.sh {{ ds_nodash }} {{params.my_param}} >>/data/airflow/logs/run_tpt_{{ds_nodash}}.log 2>&1 ', +params={'my_param':"t01_scrm_contact_update_agi"}, +depends_on_past=False, +retries=3, +dag=dag) +t01_scrm_contact_merge = SSHOperator( +ssh_hook=sshHook, +task_id='t01_scrm_contact_merge', +command='/data/airflow/etl/PDM/run_sa.sh {{ ds_nodash }} {{params.my_param}} >>/data/airflow/logs/run_tpt_{{ds_nodash}}.log 2>&1 ', +params={'my_param':"t01_scrm_contact_merge_agi"}, +depends_on_past=False, +retries=3, +dag=dag) +t01_livechat_record = SSHOperator( +ssh_hook=sshHook, +task_id='t01_livechat_record', +command='/data/airflow/etl/PDM/run_sa.sh {{ ds_nodash }} {{params.my_param}} >>/data/airflow/logs/run_tpt_{{ds_nodash}}.log 2>&1 ', +params={'my_param':"t01_livechat_record_agi"}, +depends_on_past=False, +retries=3, +dag=dag) +china_city_4536 = SSHOperator( +ssh_hook=sshHook, +task_id='china_city_4536', +command='/data/airflow/etl/SA/run_sa.sh {{ ds_nodash }} {{ params.my_param }} >>/data/airflow/logs/run_psql_{{ds_nodash}}.log 2>&1 ', +params={'my_param':"S98_S_china_city"}, +depends_on_past=False, +retries=3, +dag=dag) + +country_cde_3310 = SSHOperator( +ssh_hook=sshHook, +task_id='country_cde_3310', +command='/data/airflow/etl/SA/run_sa.sh {{ ds_nodash }} {{ params.my_param }} >>/data/airflow/logs/run_psql_{{ds_nodash}}.log 2>&1 ', +params={'my_param':"S98_S_country_cde"}, +depends_on_past=False, +retries=3, +dag=dag) + +file_china_city = SSHOperator( +ssh_hook=sshHook, +task_id='file_china_city', +command='python /data/airflow/bin/FILELOD.py {{ params.my_param }} {{ ds_nodash }} >>/data/airflow/logs/file_load/file_load_{{ds_nodash}}.log 2>&1 ', +params={'my_param':"china_city"}, +depends_on_past=False, +retries=3, +dag=dag) + + +file_country_cde = SSHOperator( +ssh_hook=sshHook, +task_id='file_country_cde', +command='python /data/airflow/bin/FILELOD.py {{ params.my_param }} {{ ds_nodash }} >>/data/airflow/logs/file_load/file_load_{{ds_nodash}}.log 2>&1 ', +params={'my_param':"country_cde"}, +depends_on_past=False, +retries=3, +dag=dag) + + +t01_crm_raw_leads = SSHOperator( +ssh_hook=sshHook, +task_id='t01_crm_raw_leads', +command='/data/airflow/etl/PDM/run_sa.sh {{ ds_nodash }} {{params.my_param}} >>/data/airflow/logs/run_tpt_{{ds_nodash}}.log 2>&1 ', +params={'my_param':"t01_crm_raw_leads_agi"}, +depends_on_past=False, +retries=3, +dag=dag) +t00_country_info = SSHOperator( +ssh_hook=sshHook, +task_id='t00_country_info', +command='/data/airflow/etl/PDM/run_sa.sh {{ ds_nodash }} {{params.my_param}} >>/data/airflow/logs/run_tpt_{{ds_nodash}}.log 2>&1 ', +params={'my_param':"t00_country_info_agi"}, +depends_on_past=False, +retries=3, +dag=dag) +file_Tk01 >> livechat_6381 +file_Merge_af0912 >> scrm_contact_merge_af0912_7975 +file_SCRM_Contact_bf0912 >> scrm_contact_bf0912_6949 +file_SCRM_Contact_af0912 >> scrm_contact_af0912_6333 +file_Update_af0912 >> scrm_contact_update_af0912_6448 +scrm_contact_af0912_6333 >> T01_SCRM_CONTACT +file_Udesk_record >> udesk_record_3768 +file_scrm_leads_bf0912 >> scrm_leads_bf0912_508 +file_scrm_leads_af0912 >> scrm_leads_af0912_5813 +file_CRM_Raw_Leads >> crm_raw_leads_6024 +scrm_contact_bf0912_6949 >> t01_scrm_contact_his +scrm_contact_update_af0912_6448 >> t01_scrm_contact_update +scrm_contact_merge_af0912_7975 >> t01_scrm_contact_merge +livechat_6381 >> t01_livechat_record +file_country_cde >> country_cde_3310 +file_china_city >> china_city_4536 +crm_raw_leads_6024 >> t01_crm_raw_leads +country_cde_3310 >> t00_country_info +t00_country_info >> task_failed