diff --git a/TK_Cust/dev/tk_crm/country_cde/S98_S_country_cde.sql b/TK_Cust/dev/tk_crm/country_cde/S98_S_country_cde.sql new file mode 100644 index 0000000..3249aa6 --- /dev/null +++ b/TK_Cust/dev/tk_crm/country_cde/S98_S_country_cde.sql @@ -0,0 +1,50 @@ +/*******Main Section**************************************************************************/ +\set ON_ERROR_STOP on +\set AUTOCOMMIT on +\timing on +delete from p10_sa.S98_S_country_cde +; +insert into p10_sa.S98_S_country_cde +( country_cn_name + , country_en_name + , country_cd + , country_abbr + , country_number + , inter_tel_cd + , internet_name + , etl_tx_dt ) + select + country_cn_name + , country_en_name + , country_cd + , country_abbr + , country_number + , inter_tel_cd + , internet_name + , etl_tx_dt + from p00_tal.S98_S_country_cde + ; + delete from p12_sfull.S98_S_country_cde +; +; +insert into p12_sfull.S98_S_country_cde +( country_cn_name + , country_en_name + , country_cd + , country_abbr + , country_number + , inter_tel_cd + , internet_name + , etl_tx_dt ) + select + country_cn_name + , country_en_name + , country_cd + , country_abbr + , country_number + , inter_tel_cd + , internet_name + , etl_tx_dt + from p10_sa.S98_S_country_cde +; +\q \ No newline at end of file diff --git a/TK_Cust/dev/tk_crm/country_cde/sa_foreign_tables.sql b/TK_Cust/dev/tk_crm/country_cde/sa_foreign_tables.sql new file mode 100644 index 0000000..6bb22dc --- /dev/null +++ b/TK_Cust/dev/tk_crm/country_cde/sa_foreign_tables.sql @@ -0,0 +1,19 @@ + +CREATE FOREIGN TABLE if not exists p00_tal.S98_S_country_cde ( + country_cn_name TEXT + , country_en_name TEXT + , country_cd TEXT + , country_abbr TEXT + , country_number TEXT + , inter_tel_cd TEXT + , internet_name TEXT + , etl_tx_dt TIMESTAMP +) + + +SERVER pgsql_server_S98_S OPTIONS(schema_name 'data_api', table_name 'country_cde' ); + + + + + diff --git a/TK_Cust/dev/tk_crm/country_cde/sa_tables.sql b/TK_Cust/dev/tk_crm/country_cde/sa_tables.sql new file mode 100644 index 0000000..f05cfa4 --- /dev/null +++ b/TK_Cust/dev/tk_crm/country_cde/sa_tables.sql @@ -0,0 +1,47 @@ + +create table if not exists p10_sa.S98_S_country_cde ( + country_cn_name TEXT + , country_en_name TEXT + , country_cd TEXT + , country_abbr TEXT + , country_number TEXT + , inter_tel_cd TEXT + , internet_name TEXT + , etl_tx_dt TIMESTAMP +) ; + + COMMENT ON COLUMN p10_sa.S98_S_country_cde.country_cn_name IS '国家'; + COMMENT ON COLUMN p10_sa.S98_S_country_cde.country_en_name IS '国家英文名'; + COMMENT ON COLUMN p10_sa.S98_S_country_cde.country_cd IS '国家代码'; + COMMENT ON COLUMN p10_sa.S98_S_country_cde.country_abbr IS '国家缩写'; + COMMENT ON COLUMN p10_sa.S98_S_country_cde.country_number IS '数字代码'; + COMMENT ON COLUMN p10_sa.S98_S_country_cde.inter_tel_cd IS '国际区号'; + COMMENT ON COLUMN p10_sa.S98_S_country_cde.internet_name IS '域名'; + COMMENT ON COLUMN p10_sa.S98_S_country_cde.etl_tx_dt IS ''; + +COMMENT ON TABLE p10_sa.S98_S_country_cde IS ''; + + + +create table if not exists p12_sfull.S98_S_country_cde ( + country_cn_name TEXT + , country_en_name TEXT + , country_cd TEXT + , country_abbr TEXT + , country_number TEXT + , inter_tel_cd TEXT + , internet_name TEXT + , etl_tx_dt TIMESTAMP +) ; + + COMMENT ON COLUMN p12_sfull.S98_S_country_cde.country_cn_name IS '国家'; + COMMENT ON COLUMN p12_sfull.S98_S_country_cde.country_en_name IS '国家英文名'; + COMMENT ON COLUMN p12_sfull.S98_S_country_cde.country_cd IS '国家代码'; + COMMENT ON COLUMN p12_sfull.S98_S_country_cde.country_abbr IS '国家缩写'; + COMMENT ON COLUMN p12_sfull.S98_S_country_cde.country_number IS '数字代码'; + COMMENT ON COLUMN p12_sfull.S98_S_country_cde.inter_tel_cd IS '国际区号'; + COMMENT ON COLUMN p12_sfull.S98_S_country_cde.internet_name IS '域名'; + COMMENT ON COLUMN p12_sfull.S98_S_country_cde.etl_tx_dt IS ''; + +COMMENT ON TABLE p12_sfull.S98_S_country_cde IS ''; + diff --git a/TK_Cust/dev/tk_crm/泰克CRM/wf_dag_tk_crm.py b/TK_Cust/dev/tk_crm/泰克CRM/wf_dag_tk_crm.py new file mode 100644 index 0000000..e86e4d8 --- /dev/null +++ b/TK_Cust/dev/tk_crm/泰克CRM/wf_dag_tk_crm.py @@ -0,0 +1,151 @@ +#!/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_crm', 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_crm_failed", + html_content='