|
@@ -7,8 +7,13 @@ import warnings
|
|
|
warnings.filterwarnings('ignore')
|
|
|
pd.set_option('expand_frame_repr', False)
|
|
|
from datetime import datetime,timezone,timedelta
|
|
|
-
|
|
|
+import clickhouse_connect
|
|
|
class Common_ETLMethod:
|
|
|
+ def clickhouse_connect(self):
|
|
|
+ conn = clickhouse_connect.get_client(host='3.93.43.158', port=8123, username='root',
|
|
|
+ password='6f0eyLuiVn3slzbGWpzI')
|
|
|
+ return conn
|
|
|
+
|
|
|
def columnsName_modify(self,df):
|
|
|
"""
|
|
|
列名.换_,设置全部小写
|
|
@@ -131,7 +136,13 @@ class SP_ETL(SPClient,Common_ETLMethod):
|
|
|
if len(df_needManualAdd)>0:
|
|
|
df_report[df_needManualAdd] = None
|
|
|
df_report['profileId'] = self.profile_id
|
|
|
+ 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')
|
|
|
params['columns'].append('profileId')
|
|
|
+ conn = self.clickhouse_connect()
|
|
|
+ conn.insert_df("AllReport.SP_spCampaigns_campaignV3",df_report[params['columns']])
|
|
|
+ print("插入完成")
|
|
|
return df_report[params['columns']]
|
|
|
|
|
|
def reportV3_adGroup_spCampaignsETL(self,**params):
|
|
@@ -159,8 +170,15 @@ class SP_ETL(SPClient,Common_ETLMethod):
|
|
|
df_needManualAdd = [i for i in params['columns'] if i not in df_report.columns]
|
|
|
if len(df_needManualAdd)>0:
|
|
|
df_report[df_needManualAdd] = None
|
|
|
- df_report['profileId'] = self.profile_id
|
|
|
params['columns'].append('profileId')
|
|
|
+ df_report['profileId'] = self.profile_id
|
|
|
+
|
|
|
+ df_report['adGroupId'] = df_report['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.SP_spCampaigns_adGroupV3",df_report[params['columns']])
|
|
|
+ print("插入完成")
|
|
|
return df_report[params['columns']]
|
|
|
#
|
|
|
def reportV3_campaignPlacement_spCampaignsETL(self,**params):
|
|
@@ -190,6 +208,14 @@ class SP_ETL(SPClient,Common_ETLMethod):
|
|
|
df_report[df_needManualAdd] = None
|
|
|
df_report['profileId'] = self.profile_id
|
|
|
params['columns'].append('profileId')
|
|
|
+
|
|
|
+ df_report['placementClassification'] = df_report['placementClassification'].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.SP_spCampaigns_placementV3",df_report[params['columns']])
|
|
|
+ print("插入完成")
|
|
|
+
|
|
|
return df_report[params['columns']]
|
|
|
|
|
|
|
|
@@ -223,6 +249,14 @@ class SP_ETL(SPClient,Common_ETLMethod):
|
|
|
df_report[df_needManualAdd] = None
|
|
|
df_report['profileId'] = self.profile_id
|
|
|
params['columns'].append('profileId')
|
|
|
+
|
|
|
+ df_report[['keywordId','portfolioId','campaignId','adGroupId']] = df_report[['keywordId','portfolioId','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.SP_spTargeting_targetingV3",df_report[params['columns']])
|
|
|
+ print("插入完成")
|
|
|
+
|
|
|
return df_report[params['columns']]
|
|
|
|
|
|
def reportV3_searchTerm_spSearchTermETL(self,**params):
|
|
@@ -255,6 +289,14 @@ class SP_ETL(SPClient,Common_ETLMethod):
|
|
|
df_report[df_needManualAdd] = None
|
|
|
df_report['profileId'] = self.profile_id
|
|
|
params['columns'].append('profileId')
|
|
|
+
|
|
|
+ df_report[['keywordId','portfolioId','campaignId','adGroupId']] = df_report[['keywordId','portfolioId','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.SP_spSearchTerm_searchTermV3",df_report[params['columns']])
|
|
|
+ print("插入完成")
|
|
|
+
|
|
|
return df_report[params['columns']]
|
|
|
|
|
|
def reportV3_advertiser_spAdvertisedProductETL(self,**params):
|
|
@@ -285,6 +327,14 @@ class SP_ETL(SPClient,Common_ETLMethod):
|
|
|
df_report[df_needManualAdd] = None
|
|
|
df_report['profileId'] = self.profile_id
|
|
|
params['columns'].append('profileId')
|
|
|
+
|
|
|
+ df_report[['campaignId','adGroupId','adId','portfolioId']] = df_report[['campaignId','adGroupId','adId','portfolioId']].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.SP_spAdvertisedProduct_advertiserV3",df_report[params['columns']])
|
|
|
+ print("插入完成")
|
|
|
+
|
|
|
return df_report[params['columns']]
|
|
|
|
|
|
def reportV3_asin_spPurchasedProductETL(self,**params):
|
|
@@ -313,6 +363,14 @@ class SP_ETL(SPClient,Common_ETLMethod):
|
|
|
df_report[df_needManualAdd] = None
|
|
|
df_report['profileId'] = self.profile_id
|
|
|
params['columns'].append('profileId')
|
|
|
+
|
|
|
+ df_report[['campaignId','adGroupId','keywordId','portfolioId']] = df_report[['campaignId','adGroupId','keywordId','portfolioId']].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.SP_spPurchasedProduct_asinV3",df_report[params['columns']])
|
|
|
+ print("插入完成")
|
|
|
+
|
|
|
return df_report[params['columns']]
|
|
|
|
|
|
class SB_ETL(SBClient,Common_ETLMethod):
|
|
@@ -1780,8 +1838,7 @@ class SD_ETL(SDClient,Common_ETLMethod):
|
|
|
today = datetime.today()
|
|
|
if params.get("date") == None:
|
|
|
params["date"] = (
|
|
|
- datetime(today.year, today.month, today.day, tzinfo=timezone.utc) - timedelta(days=1)).strftime(
|
|
|
- "%Y%m%d")
|
|
|
+ datetime(today.year, today.month, today.day, tzinfo=timezone.utc) - timedelta(days=1)).strftime("%Y%m%d")
|
|
|
params['record_type'] = 'targets'
|
|
|
if params.get('metrics') == None:
|
|
|
params['metrics'] = self.targets_MT_metrics
|
|
@@ -1808,4 +1865,3 @@ if __name__ == '__main__':
|
|
|
# print(ac_etl.budget_ETL(campaign_ids=["126327624499318"]))
|
|
|
print(ac_etl.reportV3_campaign_spCampaignsETL(**{}))
|
|
|
|
|
|
- ####
|