-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathETL_mysql_to_mail.py
27 lines (22 loc) · 1.1 KB
/
ETL_mysql_to_mail.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import pendulum
from airflow import DAG
from datetime import datetime,timedelta
from airflow.operators.query_to_mail import QueryToMail
local_tz = pendulum.timezone("Asia/Kolkata")
args = {
'owner': 'Abhay',
'depends_on_past': False,
'start_date': datetime(2021, 12, 5, tzinfo=local_tz),
'email' : ['abc@gmail.com'],
'email_on_failure': True,
'retries': 1,
'retry_delay': timedelta(minutes=5)
}
dag = DAG(dag_id='Custom_Operator',default_args=args,schedule_interval='00 9,12,15 * * 1-7')
query= open('/root/airflow/sql/file.sql', 'r').read()
body = "Hi,<br><br>PFA<br><br>Regards,<br>Abhay"
subject = 'file_name-' + str(datetime.now().strftime('%d %B %Y %I %p'))
archive_name = 'file_name'+ str(datetime.now().strftime('%Y%m%d-%I%p'))+'.csv'
file_name = "/root/airflow/data/file/file_name"+ str(datetime.now().strftime('%Y%m%d-%I%p'))+".zip"
receiver = ["abc@gmail.com","xyz@gmail.com","qwe@gmail.com"]
QueryToMail = QueryToMail(task_id='Send_Report',mysql_conn_id='connection_name',sql_query=query,body=body,subject=subject,archive_name=archive_name,file_name=file_name,receiver=receiver,dag=dag)