def test_execute_good_request_to_bq(self, mock_hook): destination_table = 'table' operator = BigQueryToMySqlOperator( task_id=TASK_ID, dataset_table='{}.{}'.format(TEST_DATASET, TEST_TABLE_ID), mysql_table=destination_table, replace=False, ) operator.execute(None) mock_hook.return_value \ .get_conn.return_value \ .cursor.return_value \ .get_tabledata \ .assert_called_once_with( dataset_id=TEST_DATASET, table_id=TEST_TABLE_ID, max_results=1000, selected_fields=None, start_index=0 )
, start_date=airflow.utils.dates.days_ago( 2) #기준일을 지난 기간까지 포함할 경우 이전 날짜로 지정 start_date=datetime(2019,11,13) , catchup=False) # Cloud SQL 의 DP_TB_PR_CRT_RPRT_INF Table 의 모든 건을 삭제 delete_mart_mysql = CloudSqlQueryOperator( task_id="delete_mart_in_mysql", gcp_cloudsql_conn_id=connection_name, sql="DELETE FROM DKDMPDB.DP_TB_PR_CRT_RPRT_INF", retries=1, dag=dag) # BigQuery 의 Report Mart Table 의 모든 건을 CloudSQL 의 Table 로 Load load_bq_mart_to_mysql = BigQueryToMySqlOperator( task_id="load_bqmart_to_mysql", dataset_table=reportMartDSTable, mysql_table="DP_TB_PR_CRT_RPRT_INF", gcp_conn_id="google_cloud_default", mysql_conn_id=cloudsql_connection, selected_fields= "SGM_NO,ITM_ID,PRP_NM,SUB_PRP_NM,POPART_V,OJ_CONS_RT,AM_CONS_RT", replace=True, batch_size=50000, location=loc_ga, retries=2, dag=dag) delete_lpimsmart_mysql >> load_bq_lpimsmart_to_mysql