浏览代码

Merge branch 'yifan' of ASJ_ADS/sync_amz_data into master

yifan_huang96 1 年之前
父节点
当前提交
27fa1367db
共有 2 个文件被更改,包括 117 次插入48 次删除
  1. 62 2
      start_sync_amz.py
  2. 55 46
      sync_amz_data/DataTransform/Data_ETL.py

+ 62 - 2
start_sync_amz.py

@@ -1,9 +1,69 @@
 from sync_amz_data.tasks.account import AccountTask
 from sync_amz_data.settings import LOG_CONF
-
+from sync_amz_data.DataTransform import Data_ETL
+from sync_amz_data.DataTransform.Data_ETL import Common_ETLMethod,SP_ETL,SB_ETL,SD_ETL
 import logging.config
+from apscheduler.schedulers.blocking import BlockingScheduler
+
 
 logging.config.dictConfig(LOG_CONF)
 
 if __name__ == '__main__':
-    AccountTask("3006125408623189").do({"record": "portfolios"})
+    # AccountTask("3006125408623189").do({"record": "portfolios"})
+
+    AWS_CREDENTIALS = {
+        'lwa_client_id': 'amzn1.application-oa2-client.ebd701cd07854fb38c37ee49ec4ba109',
+        'refresh_token': "Atzr|IwEBIL4ur8kbcwRyxVu_srprAAoTYzujnBvA6jU-0SMxkRgOhGjYJSUNGKvw24EQwJa1jG5RM76mQD2P22AKSq8qSD94LddoXGdKDO74eQVYl0RhuqOMFqdrEZpp1p4bIR6_N8VeSJDHr7UCuo8FiabkSHrkq7tsNvRP-yI-bnpQv4EayPBh7YwHVX3hYdRbhxaBvgJENgCuiEPb35Q2-Z6w6ujjiKUAK2VSbCFpENlEfcHNsjDeY7RCvFlwlCoHj1IeiNIaFTE9yXFu3aEWlExe3LzHv6PZyunEi88QJSXKSh56Um0e0eEg05rMv-VBM83cAqc5POmZnTP1vUdZO8fQv3NFLZ-xU6e1WQVxVPi5Cyqk4jYhGf1Y9t98N654y0tVvw74qNIsTrB-8bGS0Uhfe24oBEWmzObvBY3zhtT1d42myGUJv4pMTU6yPoS83zhPKm3LbUDEpBA1hvvc_09jHk7vUEAuFB-UAZzlht2C1yklzQ",
+        'lwa_client_secret': 'cbf0514186db4df91e04a8905f0a91b605eae4201254ced879d8bb90df4b474d',
+        'profile_id': "3006125408623189"
+    }
+    conn = Common_ETLMethod(**AWS_CREDENTIALS).clickhouse_connect()
+    timezone = Common_ETLMethod(**AWS_CREDENTIALS).timeZone()
+    print(timezone)
+
+    sched = BlockingScheduler()
+    sb_report = SB_ETL(**AWS_CREDENTIALS)
+    sched.add_job(lambda: sb_report.reportV3_purchasedAsinRecord_ETL(conn),'cron',hour=6,minute=45,second=0,timezone=timezone)
+    sched.add_job(lambda: sb_report.reportV2_campaignsRecord_ETL(conn),'cron',hour=6,minute=50,second=0,timezone=timezone)
+    sched.add_job(lambda: sb_report.reportV2_campaignsVideo_ETL(conn),'cron',hour=6,minute=55,second=0,timezone=timezone)
+    sched.add_job(lambda: sb_report.reportV2_adGroupsRecord_ETL(conn),'cron',hour=7,minute=0,second=0,timezone=timezone)
+    sched.add_job(lambda: sb_report.reportV2_adGroupsVideo_ETL(conn),'cron',hour=7,minute=5,second=0,timezone=timezone)
+    sched.add_job(lambda: sb_report.reportV2_adsRecord_ETL(conn),'cron',hour=7,minute=10,second=0,timezone=timezone)
+    sched.add_job(lambda: sb_report.reportV2_adsVideo_ETL(conn),'cron',hour=7,minute=15,second=0,timezone=timezone)
+    sched.add_job(lambda: sb_report.reportV2_keywordsRecord_ETL(conn),'cron',hour=7,minute=20,second=0,timezone=timezone)
+    sched.add_job(lambda: sb_report.reportV2_keywordsVideo_ETL(conn),'cron',hour=7,minute=25,second=0,timezone=timezone)
+    sched.add_job(lambda: sb_report.reportV2_placementRecord_ETL(conn),'cron',hour=7,minute=30,second=0,timezone=timezone)
+    sched.add_job(lambda: sb_report.reportV2_placementVideo_ETL(conn),'cron',hour=7,minute=35,second=0,timezone=timezone)
+    sched.add_job(lambda: sb_report.reportV2_searchtermsRecord_ETL(conn),'cron',hour=7,minute=40,second=0,timezone=timezone)
+    sched.add_job(lambda: sb_report.reportV2_searchtermsVideo_ETL(conn),'cron',hour=7,minute=45,second=0,timezone=timezone)
+    sched.add_job(lambda: sb_report.reportV2_targetsRecord_ETL(conn),'cron',hour=7,minute=50,second=0,timezone=timezone)
+    sched.add_job(lambda: sb_report.reportV2_targetsVideo_ETL(conn),'cron',hour=7,minute=55,second=0,timezone=timezone)
+
+    sp_report = SP_ETL(**AWS_CREDENTIALS)
+    sched.add_job(lambda: sp_report.reportV3_campaign_spCampaignsETL(conn),'cron',hour=8,minute=0,second=0,timezone=timezone)
+    sched.add_job(lambda: sp_report.reportV3_adGroup_spCampaignsETL(conn),'cron',hour=8,minute=5,second=0,timezone=timezone)
+    sched.add_job(lambda: sp_report.reportV3_campaignPlacement_spCampaignsETL(conn),'cron',hour=8,minute=10,second=0,timezone=timezone)
+    sched.add_job(lambda: sp_report.reportV3_targeting_spTargetingETL(conn),'cron',hour=8,minute=15,second=0,timezone=timezone)
+    sched.add_job(lambda: sp_report.reportV3_searchTerm_spSearchTermETL(conn),'cron',hour=8,minute=20,second=0,timezone=timezone)
+    sched.add_job(lambda: sp_report.reportV3_advertiser_spAdvertisedProductETL(conn),'cron',hour=8,minute=25,second=0,timezone=timezone)
+    sched.add_job(lambda: sp_report.reportV3_asin_spPurchasedProductETL(conn),'cron',hour=8,minute=30,second=0,timezone=timezone)
+
+    sd_report = SD_ETL(**AWS_CREDENTIALS)
+    sched.add_job(lambda: sd_report.reportV2_campaignsRecord_t2_ETL(conn),'cron',hour=8,minute=35,second=0,timezone=timezone)
+    sched.add_job(lambda: sd_report.reportV2_campaignsRecord_t3_ETL(conn),'cron',hour=8,minute=40,second=0,timezone=timezone)
+    sched.add_job(lambda: sd_report.reportV2_adGroupsRecord_t2_ETL(conn),'cron',hour=8,minute=45,second=0,timezone=timezone)
+    sched.add_job(lambda: sd_report.reportV2_adGroupsRecord_t3_ETL(conn),'cron',hour=8,minute=50,second=0,timezone=timezone)
+    sched.add_job(lambda: sd_report.reportV2_asins_t2_ETL(conn),'cron',hour=8,minute=55,second=0,timezone=timezone)
+    sched.add_job(lambda: sd_report.reportV2_asins_t3_ETL(conn),'cron',hour=9,minute=0,second=0,timezone=timezone)
+    sched.add_job(lambda: sd_report.reportV2_productAds_t2_ETL(conn),'cron',hour=9,minute=5,second=0,timezone=timezone)
+    sched.add_job(lambda: sd_report.reportV2_productAds_t3_ETL(conn),'cron',hour=9,minute=10,second=0,timezone=timezone)
+    sched.add_job(lambda: sd_report.reportV2_targets_t2_ETL(conn),'cron',hour=9,minute=15,second=0,timezone=timezone)
+    sched.add_job(lambda: sd_report.reportV2_productAds_t3_ETL(conn),'cron',hour=9,minute=20,second=0,timezone=timezone)
+    sched.add_job(lambda: sd_report.reportV2_campaign_matchedTarget_t2_ETL(conn),'cron',hour=9,minute=25,second=0,timezone=timezone)
+    sched.add_job(lambda: sd_report.reportV2_campaign_matchedTarget_t3_ETL(conn),'cron',hour=9,minute=30,second=0,timezone=timezone)
+    sched.add_job(lambda: sd_report.reportV2_adGroups_matchedTarget_t2_ETL(conn),'cron',hour=9,minute=35,second=0,timezone=timezone)
+    sched.add_job(lambda: sd_report.reportV2_adGroups_matchedTarget_t3_ETL(conn),'cron',hour=9,minute=40,second=0,timezone=timezone)
+    sched.add_job(lambda: sd_report.reportV2_targets_matchedTarget_t2_ETL(conn),'cron',hour=9,minute=45,second=0,timezone=timezone)
+    sched.add_job(lambda: sd_report.reportV2_targets_matchedTarget_t3_ETL(conn),'cron',hour=9,minute=50,second=0,timezone=timezone)
+
+    sched.start()

+ 55 - 46
sync_amz_data/DataTransform/Data_ETL.py

@@ -89,6 +89,12 @@ class Common_ETLMethod(BaseClient):
         else:
             return '-'
 
+    def id_type_trans(self,df):
+        id_columns = [i for i in df.columns if 'id' in i.lower() and 'bid' not in i.lower()]
+        df[id_columns] = df[id_columns].fillna(-1).applymap(lambda x: round(int(x), 0)).astype("string")
+        df[id_columns] = df[id_columns].applymap(lambda x: '' if x == '-1' else x)
+        return df
+
     def type_trans(self, df_report, columns: list, timeZone_: str, extra_columns: list = []):
         # 添加字段
         df_report['profileId'] = self.profile_id
@@ -102,9 +108,7 @@ class Common_ETLMethod(BaseClient):
         columns.extend(["timeZone", "profileId"])
 
         # 修改字段类型
-        id_columns = [i for i in columns if 'id' in i.lower() and 'bid' not in i.lower()]
-        df_report[id_columns] = df_report[id_columns].fillna(-1).applymap(lambda x: round(int(x), 0)).astype("string")
-        df_report[id_columns] = df_report[id_columns].applymap(lambda x: '' if x == '-1' else x)
+        df_report = self.id_type_trans(df_report)
         df_report['date'] = df_report['date'].astype("datetime64")
 
         # df_report[df_report.select_dtypes('O').columns] = df_report[df_report.select_dtypes('O').columns].astype('string')
@@ -201,7 +205,7 @@ class SP_ETL(SPClient, Common_ETLMethod):
         df_report = self.type_trans(df_report, params['columns'], timeZone_, extra_columns=[])
 
         conn.insert_df("AmazonReport.SP_spCampaigns_campaignV3", df_report[params['columns']])
-        print("插入完成")
+        print("插入完成SP_spCampaigns_campaignV3")
         return df_report[params['columns']]
 
     def reportV3_adGroup_spCampaignsETL(self, conn, params={}):
@@ -236,7 +240,7 @@ class SP_ETL(SPClient, Common_ETLMethod):
         df_report = self.type_trans(df_report, params['columns'], timeZone_, extra_columns=[])
 
         conn.insert_df("AmazonReport.SP_spCampaigns_adGroupV3", df_report[params['columns']])
-        print("插入完成")
+        print("插入完成SP_spCampaigns_adGroupV3")
         return df_report[params['columns']]
 
     #
@@ -272,7 +276,7 @@ class SP_ETL(SPClient, Common_ETLMethod):
         df_report = self.type_trans(df_report, params['columns'], timeZone_, extra_columns=[])
 
         conn.insert_df("AmazonReport.SP_spCampaigns_placementV3", df_report[params['columns']])
-        print("插入完成")
+        print("插入完成SP_spCampaigns_placementV3")
 
         return df_report[params['columns']]
 
@@ -313,7 +317,7 @@ class SP_ETL(SPClient, Common_ETLMethod):
         df_report = self.type_trans(df_report, params['columns'], timeZone_, extra_columns=[])
 
         conn.insert_df("AmazonReport.SP_spTargeting_targetingV3", df_report[params['columns']])
-        print("插入完成")
+        print("插入完成SP_spTargeting_targetingV3")
 
         return df_report[params['columns']]
 
@@ -354,7 +358,7 @@ class SP_ETL(SPClient, Common_ETLMethod):
         df_report = self.type_trans(df_report, params['columns'], timeZone_, extra_columns=[])
 
         conn.insert_df("AmazonReport.SP_spSearchTerm_searchTermV3", df_report[params['columns']])
-        print("插入完成")
+        print("插入完成SP_spSearchTerm_searchTermV3")
 
         return df_report[params['columns']]
 
@@ -392,7 +396,7 @@ class SP_ETL(SPClient, Common_ETLMethod):
         df_report = self.type_trans(df_report, params['columns'], timeZone_, extra_columns=[])
 
         conn.insert_df("AmazonReport.SP_spAdvertisedProduct_advertiserV3", df_report[params['columns']])
-        print("插入完成")
+        print("插入完成SP_spAdvertisedProduct_advertiserV3")
 
         return df_report[params['columns']]
 
@@ -428,7 +432,7 @@ class SP_ETL(SPClient, Common_ETLMethod):
         df_report = self.type_trans(df_report, params['columns'], timeZone_, extra_columns=[])
 
         conn.insert_df("AmazonReport.SP_spPurchasedProduct_asinV3", df_report[params['columns']])
-        print("插入完成")
+        print("插入完成SP_spPurchasedProduct_asinV3")
 
         return df_report[params['columns']]
 
@@ -464,8 +468,10 @@ class SB_ETL(SBClient, Common_ETLMethod):
         list_targets = list(self.iter_targets())
         df_targets = pd.json_normalize(list_targets)
         # df_targets = self.TZ_Deal(df_targets, ["extendedData.creationDateTime", "extendedData.lastUpdateDateTime"])
-        df_targets = self.expression_split(df_targets, "resolvedExpressions")
-
+        # df_targets = self.expression_split(df_targets, "resolvedExpressions")
+        df_targets = self.id_type_trans(df_targets)
+        df_targets['resolvedExpressions_type'] = df_targets['resolvedExpressions'].map(lambda x:self.get_keyOvalue(x,'type'))
+        df_targets['resolvedExpressions_value'] = df_targets['resolvedExpressions'].map(lambda x:self.get_keyOvalue(x,'value'))
         return self.columnsName_modify(df_targets)
 
     def budget_ETL(self, campaign_ids: list):
@@ -500,7 +506,7 @@ class SB_ETL(SBClient, Common_ETLMethod):
         df_report = self.type_trans(df_report, params['columns'], timeZone_, extra_columns=[])
 
         conn.insert_df("AmazonReport.SB_sbPurchasedProduct_asinV3", df_report[params['columns']])
-        print("插入完成")
+        print("插入完成SB_sbPurchasedProduct_asinV3")
 
         return df_report[params['columns']]
 
@@ -532,7 +538,7 @@ class SB_ETL(SBClient, Common_ETLMethod):
         df_report = self.type_trans(df_report, params['metrics'], timeZone_, extra_columns=[])
 
         conn.insert_df("AmazonReport.SB_campaignsV2", df_report[params['metrics']])
-        print("插入完成")
+        print("插入完成SB_campaignsV2")
 
         return df_report[params['metrics']]
 
@@ -564,7 +570,7 @@ class SB_ETL(SBClient, Common_ETLMethod):
         df_report = self.type_trans(df_report, params['metrics'], timeZone_, extra_columns=[])
 
         conn.insert_df("AmazonReport.SB_campaignsVideoV2", df_report[params['metrics']])
-        print("插入完成")
+        print("插入完成SB_campaignsVideoV2")
         # print(df_report[params['metrics']].info())
         return df_report[params['metrics']]
 
@@ -592,7 +598,7 @@ class SB_ETL(SBClient, Common_ETLMethod):
         df_report = self.type_trans(df_report, params['metrics'], timeZone_, extra_columns=['placement'])
 
         conn.insert_df("AmazonReport.SB_campaignsPlacementV2", df_report[params['metrics']])
-        print("插入完成")
+        print("插入完成SB_campaignsPlacementV2")
         # print(df_report[params['metrics']].info())
         return df_report[params['metrics']]
 
@@ -624,7 +630,7 @@ class SB_ETL(SBClient, Common_ETLMethod):
         # print(df_report.info())
 
         conn.insert_df("AmazonReport.SB_campaignsPlacementVideoV2", df_report[params['metrics']])
-        print("插入完成")
+        print("插入完成SB_campaignsPlacementVideoV2")
 
         return df_report[params['metrics']]
 
@@ -655,7 +661,7 @@ class SB_ETL(SBClient, Common_ETLMethod):
         # print(df_report.info())
 
         conn.insert_df("AmazonReport.SB_adGroupsV2", df_report[params['metrics']])
-        print("插入完成")
+        print("插入完成SB_adGroupsV2")
 
         return df_report[params['metrics']]
 
@@ -687,7 +693,7 @@ class SB_ETL(SBClient, Common_ETLMethod):
         # print(df_report.info())
 
         conn.insert_df("AmazonReport.SB_adGroupsVideoV2", df_report[params['metrics']])
-        print("插入完成")
+        print("插入完成SB_adGroupsVideoV2")
         return df_report[params['metrics']]
 
     def reportV2_targetsRecord_ETL(self, conn, params={}):
@@ -717,7 +723,7 @@ class SB_ETL(SBClient, Common_ETLMethod):
         # print(df_report.info())
 
         conn.insert_df("AmazonReport.SB_targetsV2", df_report[params['metrics']])
-        print("插入完成")
+        print("插入完成SB_targetsV2")
 
         return df_report[params['metrics']]
 
@@ -750,7 +756,7 @@ class SB_ETL(SBClient, Common_ETLMethod):
         # print(df_report.info())
 
         conn.insert_df("AmazonReport.SB_targetsVideoV2", df_report[params['metrics']])
-        print("插入完成")
+        print("插入完成SB_targetsVideoV2")
         return df_report[params['metrics']]
 
     def reportV2_keywordsRecord_ETL(self, conn, params={}):
@@ -781,7 +787,7 @@ class SB_ETL(SBClient, Common_ETLMethod):
         # print(df_report.info())
 
         conn.insert_df("AmazonReport.SB_keywordsV2", df_report[params['metrics']])
-        print("插入完成")
+        print("插入完成SB_keywordsV2")
         return df_report[params['metrics']]
 
     def reportV2_keywordsVideo_ETL(self, conn, params={}):
@@ -813,7 +819,7 @@ class SB_ETL(SBClient, Common_ETLMethod):
         # print(df_report.info())
 
         conn.insert_df("AmazonReport.SB_keywordsVideoV2", df_report[params['metrics']])
-        print("插入完成")
+        print("插入完成SB_keywordsVideoV2")
         return df_report[params['metrics']]
 
     def reportV2_searchtermsRecord_ETL(self, conn, params={}):
@@ -839,7 +845,7 @@ class SB_ETL(SBClient, Common_ETLMethod):
         # print(df_report.info())
 
         conn.insert_df("AmazonReport.SB_keywordsQueryV2", df_report[params['metrics']])
-        print("插入完成")
+        print("插入完成SB_keywordsQueryV2")
         return df_report[params['metrics']]
 
     def reportV2_searchtermsVideo_ETL(self, conn, params={}):
@@ -868,7 +874,7 @@ class SB_ETL(SBClient, Common_ETLMethod):
         # print(df_report.info())
 
         conn.insert_df("AmazonReport.SB_keywordsQueryVideoV2", df_report[params['metrics']])
-        print("插入完成")
+        print("插入完成SB_keywordsQueryVideoV2")
         return df_report[params['metrics']]
 
     def reportV2_adsRecord_ETL(self, conn, params={}):
@@ -897,7 +903,7 @@ class SB_ETL(SBClient, Common_ETLMethod):
         df_report = self.type_trans(df_report, params['metrics'], timeZone_, extra_columns=[])
 
         conn.insert_df("AmazonReport.SB_adsV2", df_report[params['metrics']])
-        print("插入完成")
+        print("插入完成SB_adsV2")
         return df_report[params['metrics']]
 
     def reportV2_adsVideo_ETL(self, conn, params={}):
@@ -930,7 +936,7 @@ class SB_ETL(SBClient, Common_ETLMethod):
         # print(df_report.info())
 
         conn.insert_df("AmazonReport.SB_adsVideoV2", df_report[params['metrics']])
-        print("插入完成")
+        print("插入完成SB_adsVideoV2")
         return df_report[params['metrics']]
 
 
@@ -958,7 +964,10 @@ class SD_ETL(SDClient, Common_ETLMethod):
     def targets_ETL(self, **param):
         list_targets = [row for _ in list(self.iter_targets(**param)) for row in _]
         df_targets = pd.json_normalize(list_targets)
-        df_targets = self.expression_split(df_targets, "resolvedExpression")
+        # df_targets = self.expression_split(df_targets, "resolvedExpression")
+        df_targets = self.id_type_trans(df_targets)
+        df_targets['resolvedExpressions_type'] = df_targets['resolvedExpressions'].map(lambda x:self.get_keyOvalue(x,'type'))
+        df_targets['resolvedExpressions_value'] = df_targets['resolvedExpressions'].map(lambda x:self.get_keyOvalue(x,'value'))
         return self.columnsName_modify(df_targets)
 
     def budget_ETL(self, campaignsIds: list):
@@ -1003,7 +1012,7 @@ class SD_ETL(SDClient, Common_ETLMethod):
         df_report = self.type_trans(df_report, params['metrics'], timeZone_, extra_columns=['tactic'])
 
         conn.insert_df("AmazonReport.SD_campaignsV2", df_report[params['metrics']])
-        print("插入完成")
+        print("插入完成SD_campaignsV2")
         return df_report[params['metrics']]
 
     def reportV2_campaignsRecord_t3_ETL(self, conn, params={}):
@@ -1024,7 +1033,7 @@ class SD_ETL(SDClient, Common_ETLMethod):
         df_report = self.type_trans(df_report, params['metrics'], timeZone_, extra_columns=['tactic'])
 
         conn.insert_df("AmazonReport.SD_campaignsV2", df_report[params['metrics']])
-        print("插入完成")
+        print("插入完成SD_campaignsV2")
         return df_report[params['metrics']]
 
     adGroups_metrics = [
@@ -1060,7 +1069,7 @@ class SD_ETL(SDClient, Common_ETLMethod):
         df_report = self.type_trans(df_report, params['metrics'], timeZone_, extra_columns=['tactic'])
 
         conn.insert_df("AmazonReport.SD_adGroupsV2", df_report[params['metrics']])
-        print("插入完成")
+        print("插入完成SD_adGroupsV2")
         return df_report[params['metrics']]
 
     def reportV2_adGroupsRecord_t3_ETL(self, conn, params={}):
@@ -1081,7 +1090,7 @@ class SD_ETL(SDClient, Common_ETLMethod):
         # print(df_report.info())
 
         conn.insert_df("AmazonReport.SD_adGroupsV2", df_report[params['metrics']])
-        print("插入完成")
+        print("插入完成SD_adGroupsV2")
         return df_report[params['metrics']]
 
     productAds_metrics = [
@@ -1117,7 +1126,7 @@ class SD_ETL(SDClient, Common_ETLMethod):
         df_report = self.type_trans(df_report, params['metrics'], timeZone_, extra_columns=['tactic'])
 
         conn.insert_df("AmazonReport.SD_adsV2", df_report[params['metrics']])
-        print("插入完成")
+        print("插入完成SD_adsV2")
         return df_report[params['metrics']]
 
     def reportV2_productAds_t3_ETL(self, conn, params={}):
@@ -1139,7 +1148,7 @@ class SD_ETL(SDClient, Common_ETLMethod):
         # print(df_report.info())
 
         conn.insert_df("AmazonReport.SD_adsV2", df_report[params['metrics']])
-        print("插入完成")
+        print("插入完成SD_adsV2")
         return df_report[params['metrics']]
 
     targets_metrics = [
@@ -1177,7 +1186,7 @@ class SD_ETL(SDClient, Common_ETLMethod):
         df_report = self.type_trans(df_report, params['metrics'], timeZone_, extra_columns=['tactic'])
         # print(df_report[params['metrics']].info())
         conn.insert_df("AmazonReport.SD_targetsV2", df_report[params['metrics']])
-        print("插入完成")
+        print("插入完成SD_targetsV2")
         return df_report[params['metrics']]
 
     def reportV2_targets_t3_ETL(self, conn, params={}):
@@ -1201,7 +1210,7 @@ class SD_ETL(SDClient, Common_ETLMethod):
         # print(df_report.info())
 
         conn.insert_df("AmazonReport.SD_targetsV2", df_report[params['metrics']])
-        print("插入完成")
+        print("插入完成SD_targetsV2")
         return df_report[params['metrics']]
 
     asins_metrics = [
@@ -1236,7 +1245,7 @@ class SD_ETL(SDClient, Common_ETLMethod):
         df_report = self.type_trans(df_report, params['metrics'], timeZone_, extra_columns=['tactic'])
         # print(df_report.info())
         conn.insert_df("AmazonReport.SD_asinsV2", df_report[params['metrics']])
-        print("插入完成")
+        print("插入完成SD_asinsV2")
         return df_report[params['metrics']]
 
     def reportV2_asins_t3_ETL(self, conn, params={}):
@@ -1259,7 +1268,7 @@ class SD_ETL(SDClient, Common_ETLMethod):
         df_report = self.type_trans(df_report, params['metrics'], timeZone_, extra_columns=['tactic'])
 
         conn.insert_df("AmazonReport.SD_asinsV2", df_report[params['metrics']])
-        print("插入完成")
+        print("插入完成SD_asinsV2")
         return df_report[params['metrics']]
 
     campaigns_MT_metrics = [
@@ -1300,7 +1309,7 @@ class SD_ETL(SDClient, Common_ETLMethod):
         df_report = self.type_trans(df_report, params['metrics'], timeZone_, extra_columns=['matchedTarget', 'tactic'])
 
         conn.insert_df("AmazonReport.SD_campaignsMatchedTargetV2", df_report[params['metrics']])
-        print("插入完成")
+        print("插入完成SD_campaignsMatchedTargetV2")
         return df_report[params['metrics']]
 
     def reportV2_campaign_matchedTarget_t3_ETL(self, conn, params={}):
@@ -1323,7 +1332,7 @@ class SD_ETL(SDClient, Common_ETLMethod):
         df_report = self.type_trans(df_report, params['metrics'], timeZone_, extra_columns=['matchedTarget', 'tactic'])
 
         conn.insert_df("AmazonReport.SD_campaignsMatchedTargetV2", df_report[params['metrics']])
-        print("插入完成")
+        print("插入完成SD_campaignsMatchedTargetV2")
         return df_report[params['metrics']]
 
     adGroups_MT_metrics = [
@@ -1361,7 +1370,7 @@ class SD_ETL(SDClient, Common_ETLMethod):
         df_report = self.type_trans(df_report, params['metrics'], timeZone_, extra_columns=['matchedTarget', 'tactic'])
 
         conn.insert_df("AmazonReport.SD_adGroupsMatchedTargetV2", df_report[params['metrics']])
-        print("插入完成")
+        print("插入完成SD_adGroupsMatchedTargetV2")
         return df_report[params['metrics']]
 
     def reportV2_adGroups_matchedTarget_t3_ETL(self, conn, params={}):
@@ -1383,7 +1392,7 @@ class SD_ETL(SDClient, Common_ETLMethod):
         df_report['tactic'] = 'Audiences targeting'  # {"T00020":"Contextual targeting","T00030":"Audiences targeting"}
         df_report = self.type_trans(df_report, params['metrics'], timeZone_, extra_columns=['matchedTarget', 'tactic'])
         conn.insert_df("AmazonReport.SD_adGroupsMatchedTargetV2", df_report[params['metrics']])
-        print("插入完成")
+        print("插入完成SD_adGroupsMatchedTargetV2")
         return df_report[params['metrics']]
 
     targets_MT_metrics = [
@@ -1419,7 +1428,7 @@ class SD_ETL(SDClient, Common_ETLMethod):
         df_report = self.type_trans(df_report, params['metrics'], timeZone_, extra_columns=['matchedTarget', 'tactic'])
 
         conn.insert_df("AmazonReport.SD_targetsMatchedTargetV2", df_report[params['metrics']])
-        print("插入完成")
+        print("插入完成SD_targetsMatchedTargetV2")
         return df_report[params['metrics']]
 
     def reportV2_targets_matchedTarget_t3_ETL(self, conn, params={}):
@@ -1440,7 +1449,7 @@ class SD_ETL(SDClient, Common_ETLMethod):
         df_report = self.type_trans(df_report, params['metrics'], timeZone_, extra_columns=['matchedTarget', 'tactic'])
 
         conn.insert_df("AmazonReport.SD_targetsMatchedTargetV2", df_report[params['metrics']])
-        print("插入完成")
+        print("插入完成SD_targetsMatchedTargetV2")
         return df_report[params['metrics']]
 
 
@@ -1454,10 +1463,10 @@ if __name__ == '__main__':
     conn = Common_ETLMethod(**AWS_CREDENTIALS).clickhouse_connect()
 
     # SD
-    ac_etl = SD_ETL(**AWS_CREDENTIALS)
+    ac_etl = SB_ETL(**AWS_CREDENTIALS)
     ls = ac_etl.targets_ETL()
     print(ls)
-    print(ls.tail(20).to_excel('obse1.xlsx'))
+    print(ls.to_excel('obse11.xlsx'))
     # ac_etl.reportV2_campaignsRecord_t2_ETL(conn)
     # ac_etl.reportV2_campaignsRecord_t3_ETL(conn)
     # ac_etl.reportV2_adGroupsRecord_t2_ETL(conn)