瀏覽代碼

Update alg_growth_3rd_gh_reply_video_v1: remove old data

StrayWarrior 5 月之前
父節點
當前提交
054d539897
共有 2 個文件被更改,包括 28 次插入0 次删除
  1. 14 0
      alg_growth_3rd_gh_reply_video_v1.py
  2. 14 0
      db_helper.py

+ 14 - 0
alg_growth_3rd_gh_reply_video_v1.py

@@ -302,9 +302,23 @@ def build_and_transfer_data(run_dt, run_hour, project, **kwargs):
     # sync to MySQL
     data_to_insert = [tuple(row) for row in final_df.itertuples(index=False)]
     data_columns = list(final_df.columns)
+    max_time_to_delete = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
     mysql = MysqlHelper(CONFIG.MYSQL_GROWTH_INFO)
     mysql.batch_insert(RDS_RANK_RESULT_TABLE, data_to_insert, data_columns)
 
+    # remove old data of same version
+    for key in final_df['strategy_key'].unique():
+        sql = f"""
+            update {RDS_RANK_RESULT_TABLE}
+            set is_delete = 1
+            where
+                dt_version = '{dt_version}'
+                and strategy_key = '{key}'
+                and create_time < '{max_time_to_delete}'
+                and is_delete = 0
+        """
+        rows = mysql.execute(sql)
+
 
 def main_loop():
     argparser = ArgumentParser()

+ 14 - 0
db_helper.py

@@ -362,6 +362,20 @@ class MysqlHelper(object):
         conn.close()
         return data
 
+    def execute(self, sql):
+        conn = pymysql.connect(**self.mysql_info)
+        cursor = conn.cursor()
+        try:
+            cursor.execute(sql)
+            affected_rows = cursor.rowcount
+            conn.commit()
+            return affected_rows
+        except Exception as e:
+            conn.rollback()
+            raise e
+        finally:
+            conn.close()
+
     def batch_insert(self, table, data, columns=None):
         """
         data: data, list[tuple] or list[dict]