|  | @@ -139,6 +139,7 @@ class SP_ETL(SPClient,Common_ETLMethod):
 | 
											
												
													
														|  |          df_report['campaignId'] = df_report['campaignId'].astype("string")
 |  |          df_report['campaignId'] = df_report['campaignId'].astype("string")
 | 
											
												
													
														|  |          df_report['date'] = df_report['date'].astype("datetime64")
 |  |          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')
 |  |          df_report[df_report.select_dtypes('O').columns] = df_report[df_report.select_dtypes('O').columns].astype('string')
 | 
											
												
													
														|  | 
 |  | +        print(df_report)
 | 
											
												
													
														|  |          params['columns'].append('profileId')
 |  |          params['columns'].append('profileId')
 | 
											
												
													
														|  |          conn = self.clickhouse_connect()
 |  |          conn = self.clickhouse_connect()
 | 
											
												
													
														|  |          conn.insert_df("AllReport.SP_spCampaigns_campaignV3",df_report[params['columns']])
 |  |          conn.insert_df("AllReport.SP_spCampaigns_campaignV3",df_report[params['columns']])
 | 
											
										
											
												
													
														|  | @@ -437,12 +438,21 @@ class SB_ETL(SBClient,Common_ETLMethod):
 | 
											
												
													
														|  |              df_report[df_needManualAdd] = None
 |  |              df_report[df_needManualAdd] = None
 | 
											
												
													
														|  |          df_report['profileId'] = self.profile_id
 |  |          df_report['profileId'] = self.profile_id
 | 
											
												
													
														|  |          params['columns'].append('profileId')
 |  |          params['columns'].append('profileId')
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        df_report[['campaignId','adGroupId']] = df_report[['campaignId','adGroupId']].astype("string")
 | 
											
												
													
														|  | 
 |  | +        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')
 | 
											
												
													
														|  | 
 |  | +        conn = self.clickhouse_connect()
 | 
											
												
													
														|  | 
 |  | +        conn.insert_df("AllReport.SB_sbPurchasedProduct_asinV3",df_report[params['columns']])
 | 
											
												
													
														|  | 
 |  | +        print("插入完成")
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |          return df_report[params['columns']]
 |  |          return df_report[params['columns']]
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      def reportV2_campaignsRecord_ETL(self,**params):
 |  |      def reportV2_campaignsRecord_ETL(self,**params):
 | 
											
												
													
														|  |          today = datetime.today()
 |  |          today = datetime.today()
 | 
											
												
													
														|  |          if params.get("date")==None:
 |  |          if params.get("date")==None:
 | 
											
												
													
														|  |              params["date"] = (datetime(today.year,today.month,today.day,tzinfo=timezone.utc)-timedelta(days=1)).strftime("%Y%m%d")
 |  |              params["date"] = (datetime(today.year,today.month,today.day,tzinfo=timezone.utc)-timedelta(days=1)).strftime("%Y%m%d")
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |          params['record_type']='campaigns'
 |  |          params['record_type']='campaigns'
 | 
											
												
													
														|  |          if params.get('metrics')==None:
 |  |          if params.get('metrics')==None:
 | 
											
												
													
														|  |              params['metrics'] = ['campaignId',
 |  |              params['metrics'] = ['campaignId',
 | 
											
										
											
												
													
														|  | @@ -467,8 +477,8 @@ class SB_ETL(SBClient,Common_ETLMethod):
 | 
											
												
													
														|  |                                   'campaignRuleBasedBudget',
 |  |                                   'campaignRuleBasedBudget',
 | 
											
												
													
														|  |                                   'campaignStatus',
 |  |                                   'campaignStatus',
 | 
											
												
													
														|  |                                   'dpv14d',
 |  |                                   'dpv14d',
 | 
											
												
													
														|  | -                                 'topOfSearchImpressionShare'
 |  | 
 | 
											
												
													
														|  | -                                 'unitsSold14d',
 |  | 
 | 
											
												
													
														|  | 
 |  | +                                 'topOfSearchImpressionShare',
 | 
											
												
													
														|  | 
 |  | +                                 'unitsSold14d'
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |              ]
 |  |              ]
 | 
											
												
													
														|  |          list_report = self.get_v2_report(record_type=params['record_type'],report_date=params["date"],metrics=params['metrics'])
 |  |          list_report = self.get_v2_report(record_type=params['record_type'],report_date=params["date"],metrics=params['metrics'])
 | 
											
										
											
												
													
														|  | @@ -477,8 +487,19 @@ class SB_ETL(SBClient,Common_ETLMethod):
 | 
											
												
													
														|  |          df_needManualAdd = [i for i in params['metrics'] if i not in df_report.columns]
 |  |          df_needManualAdd = [i for i in params['metrics'] if i not in df_report.columns]
 | 
											
												
													
														|  |          if len(df_needManualAdd)>0:
 |  |          if len(df_needManualAdd)>0:
 | 
											
												
													
														|  |              df_report[df_needManualAdd] = None
 |  |              df_report[df_needManualAdd] = None
 | 
											
												
													
														|  | 
 |  | +        date = datetime.strptime(params['date'], '%Y%m%d')
 | 
											
												
													
														|  | 
 |  | +        df_report['date'] = date
 | 
											
												
													
														|  | 
 |  | +        params['metrics'].append('date')
 | 
											
												
													
														|  |          df_report['profileId'] = self.profile_id
 |  |          df_report['profileId'] = self.profile_id
 | 
											
												
													
														|  |          params['metrics'].append('profileId')
 |  |          params['metrics'].append('profileId')
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        df_report[['campaignId']] = df_report[['campaignId']].astype("string")
 | 
											
												
													
														|  | 
 |  | +        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')
 | 
											
												
													
														|  | 
 |  | +        conn = self.clickhouse_connect()
 | 
											
												
													
														|  | 
 |  | +        conn.insert_df("AllReport.SB_campaignsV2",df_report[params['metrics']])
 | 
											
												
													
														|  | 
 |  | +        print("插入完成")
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |          return df_report[params['metrics']]
 |  |          return df_report[params['metrics']]
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      def reportV2_campaignsVideo_ETL(self,**params):
 |  |      def reportV2_campaignsVideo_ETL(self,**params):
 | 
											
										
											
												
													
														|  | @@ -528,8 +549,19 @@ class SB_ETL(SBClient,Common_ETLMethod):
 | 
											
												
													
														|  |          df_needManualAdd = [i for i in params['metrics'] if i not in df_report.columns]
 |  |          df_needManualAdd = [i for i in params['metrics'] if i not in df_report.columns]
 | 
											
												
													
														|  |          if len(df_needManualAdd)>0:
 |  |          if len(df_needManualAdd)>0:
 | 
											
												
													
														|  |              df_report[df_needManualAdd] = None
 |  |              df_report[df_needManualAdd] = None
 | 
											
												
													
														|  | 
 |  | +        date = datetime.strptime(params['date'], '%Y%m%d')
 | 
											
												
													
														|  | 
 |  | +        df_report['date'] = date
 | 
											
												
													
														|  | 
 |  | +        params['metrics'].append('date')
 | 
											
												
													
														|  |          df_report['profileId'] = self.profile_id
 |  |          df_report['profileId'] = self.profile_id
 | 
											
												
													
														|  |          params['metrics'].append('profileId')
 |  |          params['metrics'].append('profileId')
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        df_report[['campaignId']] = df_report[['campaignId']].astype("string")
 | 
											
												
													
														|  | 
 |  | +        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')
 | 
											
												
													
														|  | 
 |  | +        conn = self.clickhouse_connect()
 | 
											
												
													
														|  | 
 |  | +        conn.insert_df("AllReport.SB_campaignsVideoV2",df_report[params['metrics']])
 | 
											
												
													
														|  | 
 |  | +        print("插入完成")
 | 
											
												
													
														|  | 
 |  | +        # print(df_report[params['metrics']].info())
 | 
											
												
													
														|  |          return df_report[params['metrics']]
 |  |          return df_report[params['metrics']]
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      def reportV2_placementRecord_ETL(self,**params):
 |  |      def reportV2_placementRecord_ETL(self,**params):
 | 
											
										
											
												
													
														|  | @@ -563,17 +595,26 @@ class SB_ETL(SBClient,Common_ETLMethod):
 | 
											
												
													
														|  |                                   'campaignRuleBasedBudget',
 |  |                                   'campaignRuleBasedBudget',
 | 
											
												
													
														|  |                                   'campaignStatus',
 |  |                                   'campaignStatus',
 | 
											
												
													
														|  |                                   'dpv14d',
 |  |                                   'dpv14d',
 | 
											
												
													
														|  | -                                 'unitsSold14d',
 |  | 
 | 
											
												
													
														|  | 
 |  | +                                 'unitsSold14d'
 | 
											
												
													
														|  |                  ] #'placement'
 |  |                  ] #'placement'
 | 
											
												
													
														|  |          # print(date)
 |  |          # print(date)
 | 
											
												
													
														|  |          list_report = self.get_v2_report(record_type=params['record_type'],report_date=params["date"],metrics=params['metrics'],segment='placement')
 |  |          list_report = self.get_v2_report(record_type=params['record_type'],report_date=params["date"],metrics=params['metrics'],segment='placement')
 | 
											
												
													
														|  | -        # print(list_report)
 |  | 
 | 
											
												
													
														|  |          df_report = pd.json_normalize(list_report)
 |  |          df_report = pd.json_normalize(list_report)
 | 
											
												
													
														|  |          df_needManualAdd = [i for i in params['metrics'] if i not in df_report.columns]
 |  |          df_needManualAdd = [i for i in params['metrics'] if i not in df_report.columns]
 | 
											
												
													
														|  |          if len(df_needManualAdd)>0:
 |  |          if len(df_needManualAdd)>0:
 | 
											
												
													
														|  |              df_report[df_needManualAdd] = None
 |  |              df_report[df_needManualAdd] = None
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        date = datetime.strptime(params['date'], '%Y%m%d')
 | 
											
												
													
														|  | 
 |  | +        df_report['date'] = date
 | 
											
												
													
														|  |          df_report['profileId'] = self.profile_id
 |  |          df_report['profileId'] = self.profile_id
 | 
											
												
													
														|  | -        params['metrics'].append('profileId')
 |  | 
 | 
											
												
													
														|  | 
 |  | +        params['metrics'].extend(['placement','date','profileId'])
 | 
											
												
													
														|  | 
 |  | +        df_report[['campaignId']] = df_report[['campaignId']].astype("string")
 | 
											
												
													
														|  | 
 |  | +        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')
 | 
											
												
													
														|  | 
 |  | +        conn = self.clickhouse_connect()
 | 
											
												
													
														|  | 
 |  | +        conn.insert_df("AllReport.SB_campaignsPlacementV2",df_report[params['metrics']])
 | 
											
												
													
														|  | 
 |  | +        print("插入完成")
 | 
											
												
													
														|  | 
 |  | +        # print(df_report[params['metrics']].info())
 | 
											
												
													
														|  |          return df_report[params['metrics']]
 |  |          return df_report[params['metrics']]
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      def reportV2_placementVideo_ETL(self,**params):
 |  |      def reportV2_placementVideo_ETL(self,**params):
 | 
											
										
											
												
													
														|  | @@ -607,7 +648,7 @@ class SB_ETL(SBClient,Common_ETLMethod):
 | 
											
												
													
														|  |                  'currency',
 |  |                  'currency',
 | 
											
												
													
														|  |                  'dpv14d',
 |  |                  'dpv14d',
 | 
											
												
													
														|  |                  'vctr',
 |  |                  'vctr',
 | 
											
												
													
														|  | -                'vtr'
 |  | 
 | 
											
												
													
														|  | 
 |  | +                'vtr',
 | 
											
												
													
														|  |                  'video5SecondViewRate',
 |  |                  'video5SecondViewRate',
 | 
											
												
													
														|  |                  'video5SecondViews',
 |  |                  'video5SecondViews',
 | 
											
												
													
														|  |                  'videoCompleteViews',
 |  |                  'videoCompleteViews',
 | 
											
										
											
												
													
														|  | @@ -624,8 +665,19 @@ class SB_ETL(SBClient,Common_ETLMethod):
 | 
											
												
													
														|  |          df_needManualAdd = [i for i in params['metrics'] if i not in df_report.columns]
 |  |          df_needManualAdd = [i for i in params['metrics'] if i not in df_report.columns]
 | 
											
												
													
														|  |          if len(df_needManualAdd)>0:
 |  |          if len(df_needManualAdd)>0:
 | 
											
												
													
														|  |              df_report[df_needManualAdd] = None
 |  |              df_report[df_needManualAdd] = None
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        date = datetime.strptime(params['date'], '%Y%m%d')
 | 
											
												
													
														|  | 
 |  | +        df_report['date'] = date
 | 
											
												
													
														|  |          df_report['profileId'] = self.profile_id
 |  |          df_report['profileId'] = self.profile_id
 | 
											
												
													
														|  | -        params['metrics'].append('profileId')
 |  | 
 | 
											
												
													
														|  | 
 |  | +        params['metrics'].extend(['placement','date','profileId'])
 | 
											
												
													
														|  | 
 |  | +        df_report[['campaignId']] = df_report[['campaignId']].astype("string")
 | 
											
												
													
														|  | 
 |  | +        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')
 | 
											
												
													
														|  | 
 |  | +        # print(df_report.info())
 | 
											
												
													
														|  | 
 |  | +        conn = self.clickhouse_connect()
 | 
											
												
													
														|  | 
 |  | +        conn.insert_df("AllReport.SB_campaignsPlacementVideoV2",df_report[params['metrics']])
 | 
											
												
													
														|  | 
 |  | +        print("插入完成")
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |          return df_report[params['metrics']]
 |  |          return df_report[params['metrics']]
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      def reportV2_adGroupsRecord_ETL(self,**params):
 |  |      def reportV2_adGroupsRecord_ETL(self,**params):
 | 
											
										
											
												
													
														|  | @@ -640,7 +692,7 @@ class SB_ETL(SBClient,Common_ETLMethod):
 | 
											
												
													
														|  |                  'adGroupId',
 |  |                  'adGroupId',
 | 
											
												
													
														|  |                  'adGroupName',
 |  |                  'adGroupName',
 | 
											
												
													
														|  |                  'impressions','clicks', 'cost',
 |  |                  'impressions','clicks', 'cost',
 | 
											
												
													
														|  | -                'attributedBrandedSearches14d'
 |  | 
 | 
											
												
													
														|  | 
 |  | +                'attributedBrandedSearches14d',
 | 
											
												
													
														|  |                  'attributedConversions14d',
 |  |                  'attributedConversions14d',
 | 
											
												
													
														|  |                  'attributedConversions14dSameSKU',
 |  |                  'attributedConversions14dSameSKU',
 | 
											
												
													
														|  |                  'attributedDetailPageViewsClicks14d',
 |  |                  'attributedDetailPageViewsClicks14d',
 | 
											
										
											
												
													
														|  | @@ -667,8 +719,19 @@ class SB_ETL(SBClient,Common_ETLMethod):
 | 
											
												
													
														|  |          df_needManualAdd = [i for i in params['metrics'] if i not in df_report.columns]
 |  |          df_needManualAdd = [i for i in params['metrics'] if i not in df_report.columns]
 | 
											
												
													
														|  |          if len(df_needManualAdd)>0:
 |  |          if len(df_needManualAdd)>0:
 | 
											
												
													
														|  |              df_report[df_needManualAdd] = None
 |  |              df_report[df_needManualAdd] = None
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        date = datetime.strptime(params['date'], '%Y%m%d')
 | 
											
												
													
														|  | 
 |  | +        df_report['date'] = date
 | 
											
												
													
														|  |          df_report['profileId'] = self.profile_id
 |  |          df_report['profileId'] = self.profile_id
 | 
											
												
													
														|  | -        params['metrics'].append('profileId')
 |  | 
 | 
											
												
													
														|  | 
 |  | +        params['metrics'].extend(['date','profileId'])
 | 
											
												
													
														|  | 
 |  | +        df_report[['campaignId','adGroupId']] = df_report[['campaignId','adGroupId']].astype("string")
 | 
											
												
													
														|  | 
 |  | +        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')
 | 
											
												
													
														|  | 
 |  | +        print(df_report.info())
 | 
											
												
													
														|  | 
 |  | +        conn = self.clickhouse_connect()
 | 
											
												
													
														|  | 
 |  | +        conn.insert_df("AllReport.SB_adGroupsV2",df_report[params['metrics']])
 | 
											
												
													
														|  | 
 |  | +        print("插入完成")
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |          return df_report[params['metrics']]
 |  |          return df_report[params['metrics']]
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      def reportV2_adGroupsVideo_ETL(self,**params):
 |  |      def reportV2_adGroupsVideo_ETL(self,**params):
 | 
											
										
											
												
													
														|  | @@ -721,8 +784,17 @@ class SB_ETL(SBClient,Common_ETLMethod):
 | 
											
												
													
														|  |          df_needManualAdd = [i for i in params['metrics'] if i not in df_report.columns]
 |  |          df_needManualAdd = [i for i in params['metrics'] if i not in df_report.columns]
 | 
											
												
													
														|  |          if len(df_needManualAdd)>0:
 |  |          if len(df_needManualAdd)>0:
 | 
											
												
													
														|  |              df_report[df_needManualAdd] = None
 |  |              df_report[df_needManualAdd] = None
 | 
											
												
													
														|  | 
 |  | +        date = datetime.strptime(params['date'], '%Y%m%d')
 | 
											
												
													
														|  | 
 |  | +        df_report['date'] = date
 | 
											
												
													
														|  |          df_report['profileId'] = self.profile_id
 |  |          df_report['profileId'] = self.profile_id
 | 
											
												
													
														|  | -        params['metrics'].append('profileId')
 |  | 
 | 
											
												
													
														|  | 
 |  | +        params['metrics'].extend(['date','profileId'])
 | 
											
												
													
														|  | 
 |  | +        df_report[['campaignId','adGroupId']] = df_report[['campaignId','adGroupId']].astype("string")
 | 
											
												
													
														|  | 
 |  | +        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')
 | 
											
												
													
														|  | 
 |  | +        # print(df_report.info())
 | 
											
												
													
														|  | 
 |  | +        conn = self.clickhouse_connect()
 | 
											
												
													
														|  | 
 |  | +        conn.insert_df("AllReport.SB_adGroupsVideoV2",df_report[params['metrics']])
 | 
											
												
													
														|  | 
 |  | +        print("插入完成")
 | 
											
												
													
														|  |          return df_report[params['metrics']]
 |  |          return df_report[params['metrics']]
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -769,8 +841,19 @@ class SB_ETL(SBClient,Common_ETLMethod):
 | 
											
												
													
														|  |          df_needManualAdd = [i for i in params['metrics'] if i not in df_report.columns]
 |  |          df_needManualAdd = [i for i in params['metrics'] if i not in df_report.columns]
 | 
											
												
													
														|  |          if len(df_needManualAdd)>0:
 |  |          if len(df_needManualAdd)>0:
 | 
											
												
													
														|  |              df_report[df_needManualAdd] = None
 |  |              df_report[df_needManualAdd] = None
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        date = datetime.strptime(params['date'], '%Y%m%d')
 | 
											
												
													
														|  | 
 |  | +        df_report['date'] = date
 | 
											
												
													
														|  |          df_report['profileId'] = self.profile_id
 |  |          df_report['profileId'] = self.profile_id
 | 
											
												
													
														|  | -        params['metrics'].append('profileId')
 |  | 
 | 
											
												
													
														|  | 
 |  | +        params['metrics'].extend(['date','profileId'])
 | 
											
												
													
														|  | 
 |  | +        df_report[['campaignId','adGroupId','targetId']] = df_report[['campaignId','adGroupId','targetId']].astype("string")
 | 
											
												
													
														|  | 
 |  | +        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')
 | 
											
												
													
														|  | 
 |  | +        print(df_report.info())
 | 
											
												
													
														|  | 
 |  | +        conn = self.clickhouse_connect()
 | 
											
												
													
														|  | 
 |  | +        conn.insert_df("AllReport.SB_targetsV2",df_report[params['metrics']])
 | 
											
												
													
														|  | 
 |  | +        print("插入完成")
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |          return df_report[params['metrics']]
 |  |          return df_report[params['metrics']]
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      def reportV2_targetsVideo_ETL(self,**params):
 |  |      def reportV2_targetsVideo_ETL(self,**params):
 | 
											
										
											
												
													
														|  | @@ -828,8 +911,17 @@ class SB_ETL(SBClient,Common_ETLMethod):
 | 
											
												
													
														|  |          df_needManualAdd = [i for i in params['metrics'] if i not in df_report.columns]
 |  |          df_needManualAdd = [i for i in params['metrics'] if i not in df_report.columns]
 | 
											
												
													
														|  |          if len(df_needManualAdd)>0:
 |  |          if len(df_needManualAdd)>0:
 | 
											
												
													
														|  |              df_report[df_needManualAdd] = None
 |  |              df_report[df_needManualAdd] = None
 | 
											
												
													
														|  | 
 |  | +        date = datetime.strptime(params['date'], '%Y%m%d')
 | 
											
												
													
														|  | 
 |  | +        df_report['date'] = date
 | 
											
												
													
														|  |          df_report['profileId'] = self.profile_id
 |  |          df_report['profileId'] = self.profile_id
 | 
											
												
													
														|  | -        params['metrics'].append('profileId')
 |  | 
 | 
											
												
													
														|  | 
 |  | +        params['metrics'].extend(['date','profileId'])
 | 
											
												
													
														|  | 
 |  | +        df_report[['campaignId','adGroupId','targetId']] = df_report[['campaignId','adGroupId','targetId']].astype("string")
 | 
											
												
													
														|  | 
 |  | +        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')
 | 
											
												
													
														|  | 
 |  | +        # print(df_report.info())
 | 
											
												
													
														|  | 
 |  | +        conn = self.clickhouse_connect()
 | 
											
												
													
														|  | 
 |  | +        conn.insert_df("AllReport.SB_targetsVideoV2",df_report[params['metrics']])
 | 
											
												
													
														|  | 
 |  | +        print("插入完成")
 | 
											
												
													
														|  |          return df_report[params['metrics']]
 |  |          return df_report[params['metrics']]
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      def reportV2_keywordsRecord_ETL(self,**params):
 |  |      def reportV2_keywordsRecord_ETL(self,**params):
 | 
											
										
											
												
													
														|  | @@ -881,8 +973,17 @@ class SB_ETL(SBClient,Common_ETLMethod):
 | 
											
												
													
														|  |          df_needManualAdd = [i for i in params['metrics'] if i not in df_report.columns]
 |  |          df_needManualAdd = [i for i in params['metrics'] if i not in df_report.columns]
 | 
											
												
													
														|  |          if len(df_needManualAdd)>0:
 |  |          if len(df_needManualAdd)>0:
 | 
											
												
													
														|  |              df_report[df_needManualAdd] = None
 |  |              df_report[df_needManualAdd] = None
 | 
											
												
													
														|  | 
 |  | +        date = datetime.strptime(params['date'], '%Y%m%d')
 | 
											
												
													
														|  | 
 |  | +        df_report['date'] = date
 | 
											
												
													
														|  |          df_report['profileId'] = self.profile_id
 |  |          df_report['profileId'] = self.profile_id
 | 
											
												
													
														|  | -        params['metrics'].append('profileId')
 |  | 
 | 
											
												
													
														|  | 
 |  | +        params['metrics'].extend(['date','profileId'])
 | 
											
												
													
														|  | 
 |  | +        df_report[['campaignId','adGroupId','keywordId','applicableBudgetRuleId']] = df_report[['campaignId','adGroupId','keywordId','applicableBudgetRuleId']].astype("string")
 | 
											
												
													
														|  | 
 |  | +        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')
 | 
											
												
													
														|  | 
 |  | +        # print(df_report.info())
 | 
											
												
													
														|  | 
 |  | +        conn = self.clickhouse_connect()
 | 
											
												
													
														|  | 
 |  | +        conn.insert_df("AllReport.SB_keywordsV2",df_report[params['metrics']])
 | 
											
												
													
														|  | 
 |  | +        print("插入完成")
 | 
											
												
													
														|  |          return df_report[params['metrics']]
 |  |          return df_report[params['metrics']]
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      def reportV2_keywordsVideo_ETL(self,**params):
 |  |      def reportV2_keywordsVideo_ETL(self,**params):
 | 
											
										
											
												
													
														|  | @@ -938,8 +1039,17 @@ class SB_ETL(SBClient,Common_ETLMethod):
 | 
											
												
													
														|  |          df_needManualAdd = [i for i in params['metrics'] if i not in df_report.columns]
 |  |          df_needManualAdd = [i for i in params['metrics'] if i not in df_report.columns]
 | 
											
												
													
														|  |          if len(df_needManualAdd)>0:
 |  |          if len(df_needManualAdd)>0:
 | 
											
												
													
														|  |              df_report[df_needManualAdd] = None
 |  |              df_report[df_needManualAdd] = None
 | 
											
												
													
														|  | 
 |  | +        date = datetime.strptime(params['date'], '%Y%m%d')
 | 
											
												
													
														|  | 
 |  | +        df_report['date'] = date
 | 
											
												
													
														|  |          df_report['profileId'] = self.profile_id
 |  |          df_report['profileId'] = self.profile_id
 | 
											
												
													
														|  | -        params['metrics'].append('profileId')
 |  | 
 | 
											
												
													
														|  | 
 |  | +        params['metrics'].extend(['date','profileId'])
 | 
											
												
													
														|  | 
 |  | +        df_report[['campaignId','adGroupId','keywordId']] = df_report[['campaignId','adGroupId','keywordId']].astype("string")
 | 
											
												
													
														|  | 
 |  | +        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')
 | 
											
												
													
														|  | 
 |  | +        print(df_report.info())
 | 
											
												
													
														|  | 
 |  | +        conn = self.clickhouse_connect()
 | 
											
												
													
														|  | 
 |  | +        conn.insert_df("AllReport.SB_keywordsVideoV2",df_report[params['metrics']])
 | 
											
												
													
														|  | 
 |  | +        print("插入完成")
 | 
											
												
													
														|  |          return df_report[params['metrics']]
 |  |          return df_report[params['metrics']]
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      def reportV2_searchtermsRecord_ETL(self,**params):
 |  |      def reportV2_searchtermsRecord_ETL(self,**params):
 | 
											
										
											
												
													
														|  | @@ -974,8 +1084,17 @@ class SB_ETL(SBClient,Common_ETLMethod):
 | 
											
												
													
														|  |          df_needManualAdd = [i for i in params['metrics'] if i not in df_report.columns]
 |  |          df_needManualAdd = [i for i in params['metrics'] if i not in df_report.columns]
 | 
											
												
													
														|  |          if len(df_needManualAdd)>0:
 |  |          if len(df_needManualAdd)>0:
 | 
											
												
													
														|  |              df_report[df_needManualAdd] = None
 |  |              df_report[df_needManualAdd] = None
 | 
											
												
													
														|  | 
 |  | +        date = datetime.strptime(params['date'], '%Y%m%d')
 | 
											
												
													
														|  | 
 |  | +        df_report['date'] = date
 | 
											
												
													
														|  |          df_report['profileId'] = self.profile_id
 |  |          df_report['profileId'] = self.profile_id
 | 
											
												
													
														|  | -        params['metrics'].append('profileId')
 |  | 
 | 
											
												
													
														|  | 
 |  | +        params['metrics'].extend(['query','date','profileId'])
 | 
											
												
													
														|  | 
 |  | +        df_report[['campaignId','adGroupId','keywordId']] = df_report[['campaignId','adGroupId','keywordId']].astype("string")
 | 
											
												
													
														|  | 
 |  | +        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')
 | 
											
												
													
														|  | 
 |  | +        # print(df_report.info())
 | 
											
												
													
														|  | 
 |  | +        conn = self.clickhouse_connect()
 | 
											
												
													
														|  | 
 |  | +        conn.insert_df("AllReport.SB_keywordsQueryV2",df_report[params['metrics']])
 | 
											
												
													
														|  | 
 |  | +        print("插入完成")
 | 
											
												
													
														|  |          return df_report[params['metrics']]
 |  |          return df_report[params['metrics']]
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      def reportV2_searchtermsVideo_ETL(self,**params):
 |  |      def reportV2_searchtermsVideo_ETL(self,**params):
 | 
											
										
											
												
													
														|  | @@ -1021,8 +1140,17 @@ class SB_ETL(SBClient,Common_ETLMethod):
 | 
											
												
													
														|  |          df_needManualAdd = [i for i in params['metrics'] if i not in df_report.columns]
 |  |          df_needManualAdd = [i for i in params['metrics'] if i not in df_report.columns]
 | 
											
												
													
														|  |          if len(df_needManualAdd)>0:
 |  |          if len(df_needManualAdd)>0:
 | 
											
												
													
														|  |              df_report[df_needManualAdd] = None
 |  |              df_report[df_needManualAdd] = None
 | 
											
												
													
														|  | 
 |  | +        date = datetime.strptime(params['date'], '%Y%m%d')
 | 
											
												
													
														|  | 
 |  | +        df_report['date'] = date
 | 
											
												
													
														|  |          df_report['profileId'] = self.profile_id
 |  |          df_report['profileId'] = self.profile_id
 | 
											
												
													
														|  | -        params['metrics'].append('profileId')
 |  | 
 | 
											
												
													
														|  | 
 |  | +        params['metrics'].extend(['query','date','profileId'])
 | 
											
												
													
														|  | 
 |  | +        df_report[['campaignId','adGroupId','keywordId']] = df_report[['campaignId','adGroupId','keywordId']].astype("string")
 | 
											
												
													
														|  | 
 |  | +        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')
 | 
											
												
													
														|  | 
 |  | +        # print(df_report.info())
 | 
											
												
													
														|  | 
 |  | +        conn = self.clickhouse_connect()
 | 
											
												
													
														|  | 
 |  | +        conn.insert_df("AllReport.SB_keywordsQueryVideoV2",df_report[params['metrics']])
 | 
											
												
													
														|  | 
 |  | +        print("插入完成")
 | 
											
												
													
														|  |          return df_report[params['metrics']]
 |  |          return df_report[params['metrics']]
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      def reportV2_adsRecord_ETL(self,**params):
 |  |      def reportV2_adsRecord_ETL(self,**params):
 | 
											
										
											
												
													
														|  | @@ -1042,6 +1170,7 @@ class SB_ETL(SBClient,Common_ETLMethod):
 | 
											
												
													
														|  |                  'cost',
 |  |                  'cost',
 | 
											
												
													
														|  |                  'applicableBudgetRuleId',
 |  |                  'applicableBudgetRuleId',
 | 
											
												
													
														|  |                  'applicableBudgetRuleName',
 |  |                  'applicableBudgetRuleName',
 | 
											
												
													
														|  | 
 |  | +                'attributedBrandedSearches14d',
 | 
											
												
													
														|  |                  'attributedConversions14d',
 |  |                  'attributedConversions14d',
 | 
											
												
													
														|  |                  'attributedConversions14dSameSKU',
 |  |                  'attributedConversions14dSameSKU',
 | 
											
												
													
														|  |                  'attributedDetailPageViewsClicks14d',
 |  |                  'attributedDetailPageViewsClicks14d',
 | 
											
										
											
												
													
														|  | @@ -1061,7 +1190,7 @@ class SB_ETL(SBClient,Common_ETLMethod):
 | 
											
												
													
														|  |                  'dpv14d',
 |  |                  'dpv14d',
 | 
											
												
													
														|  |                  'unitsSold14d',
 |  |                  'unitsSold14d',
 | 
											
												
													
														|  |                  'vctr',
 |  |                  'vctr',
 | 
											
												
													
														|  | -                'attributedBrandedSearches14d'
 |  | 
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |                  ] #
 |  |                  ] #
 | 
											
												
													
														|  |          # print(date)
 |  |          # print(date)
 | 
											
												
													
														|  |          list_report = self.get_v2_report(record_type=params['record_type'],report_date=params["date"],metrics=params['metrics'])
 |  |          list_report = self.get_v2_report(record_type=params['record_type'],report_date=params["date"],metrics=params['metrics'])
 | 
											
										
											
												
													
														|  | @@ -1070,8 +1199,18 @@ class SB_ETL(SBClient,Common_ETLMethod):
 | 
											
												
													
														|  |          df_needManualAdd = [i for i in params['metrics'] if i not in df_report.columns]
 |  |          df_needManualAdd = [i for i in params['metrics'] if i not in df_report.columns]
 | 
											
												
													
														|  |          if len(df_needManualAdd)>0:
 |  |          if len(df_needManualAdd)>0:
 | 
											
												
													
														|  |              df_report[df_needManualAdd] = None
 |  |              df_report[df_needManualAdd] = None
 | 
											
												
													
														|  | 
 |  | +        date = datetime.strptime(params['date'], '%Y%m%d')
 | 
											
												
													
														|  | 
 |  | +        df_report['date'] = date
 | 
											
												
													
														|  |          df_report['profileId'] = self.profile_id
 |  |          df_report['profileId'] = self.profile_id
 | 
											
												
													
														|  | -        params['metrics'].append('profileId')
 |  | 
 | 
											
												
													
														|  | 
 |  | +        params['metrics'].extend(['date','profileId'])
 | 
											
												
													
														|  | 
 |  | +        df_report[['campaignId','adGroupId','adId','applicableBudgetRuleId']] = df_report[['campaignId','adGroupId','adId','applicableBudgetRuleId']].astype("string")
 | 
											
												
													
														|  | 
 |  | +        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')
 | 
											
												
													
														|  | 
 |  | +        # print(df_report.info())
 | 
											
												
													
														|  | 
 |  | +        print(df_report[params['metrics']].info())
 | 
											
												
													
														|  | 
 |  | +        conn = self.clickhouse_connect()
 | 
											
												
													
														|  | 
 |  | +        conn.insert_df("AllReport.SB_adsV2",df_report[params['metrics']])
 | 
											
												
													
														|  | 
 |  | +        print("插入完成")
 | 
											
												
													
														|  |          return df_report[params['metrics']]
 |  |          return df_report[params['metrics']]
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      def reportV2_adsVideo_ETL(self,**params):
 |  |      def reportV2_adsVideo_ETL(self,**params):
 | 
											
										
											
												
													
														|  | @@ -1086,9 +1225,9 @@ class SB_ETL(SBClient,Common_ETLMethod):
 | 
											
												
													
														|  |                  'adGroupId',
 |  |                  'adGroupId',
 | 
											
												
													
														|  |                  'adGroupName',
 |  |                  'adGroupName',
 | 
											
												
													
														|  |                  'adId', 'impressions','clicks', 'cost',
 |  |                  'adId', 'impressions','clicks', 'cost',
 | 
											
												
													
														|  | -                'attributedBrandedSearches14d',
 |  | 
 | 
											
												
													
														|  |                  'applicableBudgetRuleId',
 |  |                  'applicableBudgetRuleId',
 | 
											
												
													
														|  |                  'applicableBudgetRuleName',
 |  |                  'applicableBudgetRuleName',
 | 
											
												
													
														|  | 
 |  | +                'attributedBrandedSearches14d',
 | 
											
												
													
														|  |                  'attributedConversions14d',
 |  |                  'attributedConversions14d',
 | 
											
												
													
														|  |                  'attributedConversions14dSameSKU',
 |  |                  'attributedConversions14dSameSKU',
 | 
											
												
													
														|  |                  'attributedDetailPageViewsClicks14d',
 |  |                  'attributedDetailPageViewsClicks14d',
 | 
											
										
											
												
													
														|  | @@ -1125,8 +1264,17 @@ class SB_ETL(SBClient,Common_ETLMethod):
 | 
											
												
													
														|  |          df_needManualAdd = [i for i in params['metrics'] if i not in df_report.columns]
 |  |          df_needManualAdd = [i for i in params['metrics'] if i not in df_report.columns]
 | 
											
												
													
														|  |          if len(df_needManualAdd)>0:
 |  |          if len(df_needManualAdd)>0:
 | 
											
												
													
														|  |              df_report[df_needManualAdd] = None
 |  |              df_report[df_needManualAdd] = None
 | 
											
												
													
														|  | 
 |  | +        date = datetime.strptime(params['date'], '%Y%m%d')
 | 
											
												
													
														|  | 
 |  | +        df_report['date'] = date
 | 
											
												
													
														|  |          df_report['profileId'] = self.profile_id
 |  |          df_report['profileId'] = self.profile_id
 | 
											
												
													
														|  | -        params['metrics'].append('profileId')
 |  | 
 | 
											
												
													
														|  | 
 |  | +        params['metrics'].extend(['date','profileId'])
 | 
											
												
													
														|  | 
 |  | +        df_report[['campaignId','adGroupId','adId','applicableBudgetRuleId']] = df_report[['campaignId','adGroupId','adId','applicableBudgetRuleId']].astype("string")
 | 
											
												
													
														|  | 
 |  | +        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')
 | 
											
												
													
														|  | 
 |  | +        # print(df_report.info())
 | 
											
												
													
														|  | 
 |  | +        conn = self.clickhouse_connect()
 | 
											
												
													
														|  | 
 |  | +        conn.insert_df("AllReport.SB_adsVideoV2",df_report[params['metrics']])
 | 
											
												
													
														|  | 
 |  | +        print("插入完成")
 | 
											
												
													
														|  |          return df_report[params['metrics']]
 |  |          return df_report[params['metrics']]
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  class SD_ETL(SDClient,Common_ETLMethod):
 |  |  class SD_ETL(SDClient,Common_ETLMethod):
 | 
											
										
											
												
													
														|  | @@ -1861,7 +2009,9 @@ if __name__ == '__main__':
 | 
											
												
													
														|  |          'lwa_client_secret': 'cbf0514186db4df91e04a8905f0a91b605eae4201254ced879d8bb90df4b474d',
 |  |          'lwa_client_secret': 'cbf0514186db4df91e04a8905f0a91b605eae4201254ced879d8bb90df4b474d',
 | 
											
												
													
														|  |          'profile_id': "3006125408623189"
 |  |          'profile_id': "3006125408623189"
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  | -    ac_etl = SP_ETL(**AWS_CREDENTIALS)
 |  | 
 | 
											
												
													
														|  | 
 |  | +    ac_etl = Acount_ETL(**AWS_CREDENTIALS)
 | 
											
												
													
														|  |      # print(ac_etl.budget_ETL(campaign_ids=["126327624499318"]))
 |  |      # print(ac_etl.budget_ETL(campaign_ids=["126327624499318"]))
 | 
											
												
													
														|  | -    print(ac_etl.reportV3_campaign_spCampaignsETL(**{}))
 |  | 
 | 
											
												
													
														|  | 
 |  | +    print(ac_etl.portfolio_ETL(**{}))
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    ###
 | 
											
												
													
														|  |  
 |  |  
 |