start_sync_amz.py 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430
  1. import time
  2. import pandas as pd
  3. from retry import retry
  4. from sync_amz_data.settings import LOG_CONF
  5. import logging.config
  6. logging.config.dictConfig(LOG_CONF)
  7. from sync_amz_data.public.amz_ad_client import shop_infos
  8. from sync_amz_data.DataTransform.Data_ETL import Common_ETLMethod,SP_ETL,SB_ETL,SD_ETL
  9. from apscheduler.schedulers.blocking import BlockingScheduler
  10. from datetime import datetime,timedelta
  11. def pre_func(AWS_CREDENTIALS,date_):
  12. conn = SB_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  13. sb_report = SB_ETL(**AWS_CREDENTIALS)
  14. try:
  15. sb_report.reportV3_campaign_sbCampaigns_ETL(conn,params={"startDate":date_,"endDate":date_,"date":date_.replace("-","")})
  16. except:
  17. conn = SB_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  18. sb_report.reportV3_campaign_sbCampaigns_ETL(conn, params={"startDate": date_, "endDate": date_,
  19. "date": date_.replace("-", "")})
  20. try:
  21. sb_report.reportV3_adGroup_sbAdGroup_ETL(conn,params={"startDate":date_,"endDate":date_,"date":date_.replace("-","")})
  22. except:
  23. conn = SB_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  24. sb_report.reportV3_adGroup_sbAdGroup_ETL(conn, params={"startDate": date_, "endDate": date_,
  25. "date": date_.replace("-", "")})
  26. try:
  27. sb_report.reportV3_sbCampaignPlacement_ETL(conn,params={"startDate":date_,"endDate":date_,"date":date_.replace("-","")})
  28. except:
  29. conn = SB_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  30. sb_report.reportV3_sbCampaignPlacement_ETL(conn, params={"startDate": date_, "endDate": date_,
  31. "date": date_.replace("-", "")})
  32. try:
  33. sb_report.reportV3_sbTargeting_ETL(conn,params={"startDate":date_,"endDate":date_,"date":date_.replace("-","")})
  34. except:
  35. conn = SB_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  36. sb_report.reportV3_sbTargeting_ETL(conn, params={"startDate": date_, "endDate": date_,
  37. "date": date_.replace("-", "")})
  38. try:
  39. sb_report.reportV3_sbSearchTerm_ETL(conn,params={"startDate":date_,"endDate":date_,"date":date_.replace("-","")})
  40. except:
  41. conn = SB_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  42. sb_report.reportV3_sbSearchTerm_ETL(conn, params={"startDate": date_, "endDate": date_,
  43. "date": date_.replace("-", "")})
  44. try:
  45. sb_report.reportV3_sbAds_ETL(conn, params={"startDate":date_,"endDate":date_,"date":date_.replace("-","")})
  46. except:
  47. conn = SB_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  48. sb_report.reportV3_sbAds_ETL(conn, params={"startDate": date_, "endDate": date_,
  49. "date": date_.replace("-", "")})
  50. try:
  51. sb_report.reportV3_purchasedAsinRecord_ETL(conn,params={"startDate":date_,"endDate":date_,"date":date_.replace("-","")})
  52. except:
  53. conn = SB_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  54. sb_report.reportV3_purchasedAsinRecord_ETL(conn, params={"startDate": date_, "endDate": date_,
  55. "date": date_.replace("-", "")})
  56. try:
  57. sb_report.reportV3_purchasedAsinRecord_ETL(conn,params={"startDate":date_,"endDate":date_,"date":date_.replace("-","")})
  58. except:
  59. conn = SB_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  60. sb_report.reportV3_purchasedAsinRecord_ETL(conn, params={"startDate": date_, "endDate": date_,
  61. "date": date_.replace("-", "")})
  62. try:
  63. sb_report.reportV2_campaignsRecord_ETL(conn,params={"startDate":date_,"endDate":date_,"date":date_.replace("-","")})
  64. except:
  65. conn = SB_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  66. sb_report.reportV2_campaignsRecord_ETL(conn, params={"startDate": date_, "endDate": date_,
  67. "date": date_.replace("-", "")})
  68. try:
  69. sb_report.reportV2_campaignsVideo_ETL(conn,params={"startDate":date_,"endDate":date_,"date":date_.replace("-","")})
  70. except:
  71. conn = SB_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  72. sb_report.reportV2_campaignsVideo_ETL(conn, params={"startDate": date_, "endDate": date_,
  73. "date": date_.replace("-", "")})
  74. try:
  75. sb_report.reportV2_adGroupsRecord_ETL(conn,params={"startDate":date_,"endDate":date_,"date":date_.replace("-","")})
  76. except:
  77. conn = SB_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  78. sb_report.reportV2_adGroupsRecord_ETL(conn, params={"startDate": date_, "endDate": date_,
  79. "date": date_.replace("-", "")})
  80. try:
  81. sb_report.reportV2_adGroupsVideo_ETL(conn,params={"startDate":date_,"endDate":date_,"date":date_.replace("-","")})
  82. except:
  83. conn = SB_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  84. sb_report.reportV2_adGroupsVideo_ETL(conn, params={"startDate": date_, "endDate": date_,
  85. "date": date_.replace("-", "")})
  86. try:
  87. sb_report.reportV2_adsRecord_ETL(conn,params={"startDate":date_,"endDate":date_,"date":date_.replace("-","")})
  88. except:
  89. conn = SB_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  90. sb_report.reportV2_adsRecord_ETL(conn, params={"startDate": date_, "endDate": date_,
  91. "date": date_.replace("-", "")})
  92. try:
  93. sb_report.reportV2_adsVideo_ETL(conn,params={"startDate":date_,"endDate":date_,"date":date_.replace("-","")})
  94. except:
  95. conn = SB_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  96. sb_report.reportV2_adsVideo_ETL(conn, params={"startDate": date_, "endDate": date_,
  97. "date": date_.replace("-", "")})
  98. try:
  99. sb_report.reportV2_keywordsRecord_ETL(conn,params={"startDate":date_,"endDate":date_,"date":date_.replace("-","")})
  100. except:
  101. conn = SB_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  102. sb_report.reportV2_keywordsRecord_ETL(conn, params={"startDate": date_, "endDate": date_,
  103. "date": date_.replace("-", "")})
  104. try:
  105. sb_report.reportV2_keywordsVideo_ETL(conn,params={"startDate":date_,"endDate":date_,"date":date_.replace("-","")})
  106. except:
  107. conn = SB_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  108. sb_report.reportV2_keywordsVideo_ETL(conn, params={"startDate": date_, "endDate": date_,
  109. "date": date_.replace("-", "")})
  110. try:
  111. sb_report.reportV2_placementRecord_ETL(conn,params={"startDate":date_,"endDate":date_,"date":date_.replace("-","")})
  112. except:
  113. conn = SB_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  114. sb_report.reportV2_placementRecord_ETL(conn, params={"startDate": date_, "endDate": date_,
  115. "date": date_.replace("-", "")})
  116. try:
  117. sb_report.reportV2_placementVideo_ETL(conn,params={"startDate":date_,"endDate":date_,"date":date_.replace("-","")})
  118. except:
  119. conn = SB_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  120. sb_report.reportV2_placementVideo_ETL(conn, params={"startDate": date_, "endDate": date_,
  121. "date": date_.replace("-", "")})
  122. try:
  123. sb_report.reportV2_searchtermsRecord_ETL(conn,params={"startDate":date_,"endDate":date_,"date":date_.replace("-","")})
  124. except:
  125. conn = SB_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  126. sb_report.reportV2_searchtermsRecord_ETL(conn, params={"startDate": date_, "endDate": date_,
  127. "date": date_.replace("-", "")})
  128. try:
  129. sb_report.reportV2_searchtermsVideo_ETL(conn,params={"startDate":date_,"endDate":date_,"date":date_.replace("-","")})
  130. except:
  131. conn = SB_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  132. sb_report.reportV2_searchtermsVideo_ETL(conn, params={"startDate": date_, "endDate": date_,
  133. "date": date_.replace("-", "")})
  134. try:
  135. sb_report.reportV2_targetsRecord_ETL(conn,params={"startDate":date_,"endDate":date_,"date":date_.replace("-","")})
  136. except:
  137. conn = SB_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  138. sb_report.reportV2_targetsRecord_ETL(conn, params={"startDate": date_, "endDate": date_,
  139. "date": date_.replace("-", "")})
  140. try:
  141. sb_report.reportV2_targetsVideo_ETL(conn,params={"startDate":date_,"endDate":date_,"date":date_.replace("-","")})
  142. except:
  143. conn = SB_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  144. sb_report.reportV2_targetsVideo_ETL(conn, params={"startDate": date_, "endDate": date_,
  145. "date": date_.replace("-", "")})
  146. conn.close()
  147. time.sleep(5)
  148. conn = SP_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  149. sp_report = SP_ETL(**AWS_CREDENTIALS)
  150. try:
  151. sp_report.reportV3_campaign_spCampaignsETL(conn,params={"startDate":date_,"endDate":date_,"date":date_.replace("-","")})
  152. except:
  153. conn = SP_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  154. sp_report.reportV3_campaign_spCampaignsETL(conn, params={"startDate": date_, "endDate": date_,
  155. "date": date_.replace("-", "")})
  156. try:
  157. sp_report.reportV3_adGroup_spCampaignsETL(conn,params={"startDate":date_,"endDate":date_,"date":date_.replace("-","")})
  158. except:
  159. conn = SP_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  160. sp_report.reportV3_adGroup_spCampaignsETL(conn, params={"startDate": date_, "endDate": date_,
  161. "date": date_.replace("-", "")})
  162. try:
  163. sp_report.reportV3_campaignPlacement_spCampaignsETL(conn,params={"startDate":date_,"endDate":date_,"date":date_.replace("-","")})
  164. except:
  165. conn = SP_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  166. sp_report.reportV3_campaignPlacement_spCampaignsETL(conn, params={"startDate": date_, "endDate": date_,
  167. "date": date_.replace("-", "")})
  168. try:
  169. sp_report.reportV3_targeting_spTargetingETL(conn,params={"startDate":date_,"endDate":date_,"date":date_.replace("-","")})
  170. except:
  171. conn = SP_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  172. sp_report.reportV3_targeting_spTargetingETL(conn, params={"startDate": date_, "endDate": date_,
  173. "date": date_.replace("-", "")})
  174. try:
  175. sp_report.reportV3_searchTerm_spSearchTermETL(conn,params={"startDate":date_,"endDate":date_,"date":date_.replace("-","")})
  176. except:
  177. conn = SP_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  178. sp_report.reportV3_searchTerm_spSearchTermETL(conn, params={"startDate": date_, "endDate": date_,
  179. "date": date_.replace("-", "")})
  180. try:
  181. sp_report.reportV3_advertiser_spAdvertisedProductETL(conn,params={"startDate":date_,"endDate":date_,"date":date_.replace("-","")})
  182. except:
  183. conn = SP_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  184. sp_report.reportV3_advertiser_spAdvertisedProductETL(conn, params={"startDate": date_, "endDate": date_,
  185. "date": date_.replace("-", "")})
  186. try:
  187. sp_report.reportV3_asin_spPurchasedProductETL(conn,params={"startDate":date_,"endDate":date_,"date":date_.replace("-","")})
  188. except:
  189. conn = SP_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  190. sp_report.reportV3_asin_spPurchasedProductETL(conn, params={"startDate": date_, "endDate": date_,
  191. "date": date_.replace("-", "")})
  192. conn.close()
  193. time.sleep(5)
  194. conn = SD_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  195. sd_report = SD_ETL(**AWS_CREDENTIALS)
  196. try:
  197. sd_report.reportV3_campaign_sdCampaigns_ETL(conn,params={"startDate":date_,"endDate":date_,"date":date_.replace("-","")})
  198. except:
  199. conn = SD_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  200. sd_report.reportV3_campaign_sdCampaigns_ETL(conn, params={"startDate": date_, "endDate": date_,
  201. "date": date_.replace("-", "")})
  202. try:
  203. sd_report.reportV3_campaignMT_sdCampaigns_ETL(conn,params={"startDate":date_,"endDate":date_,"date":date_.replace("-","")})
  204. except:
  205. conn = SD_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  206. sd_report.reportV3_campaignMT_sdCampaigns_ETL(conn, params={"startDate": date_, "endDate": date_,
  207. "date": date_.replace("-", "")})
  208. try:
  209. sd_report.reportV3_adgroup_sdAdGroup_ETL(conn,params={"startDate":date_,"endDate":date_,"date":date_.replace("-","")})
  210. except:
  211. conn = SD_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  212. sd_report.reportV3_adgroup_sdAdGroup_ETL(conn, params={"startDate": date_, "endDate": date_,
  213. "date": date_.replace("-", "")})
  214. try:
  215. sd_report.reportV3_adgroupMT_sdAdGroup_ETL(conn,params={"startDate":date_,"endDate":date_,"date":date_.replace("-","")})
  216. except:
  217. conn = SD_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  218. sd_report.reportV3_adgroupMT_sdAdGroup_ETL(conn, params={"startDate": date_, "endDate": date_,
  219. "date": date_.replace("-", "")})
  220. try:
  221. sd_report.reportV3_targeting_sdTargeting_ETL(conn,params={"startDate":date_,"endDate":date_,"date":date_.replace("-","")})
  222. except:
  223. conn = SD_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  224. sd_report.reportV3_targeting_sdTargeting_ETL(conn, params={"startDate": date_, "endDate": date_,
  225. "date": date_.replace("-", "")})
  226. try:
  227. sd_report.reportV3_targetingMT_sdTargeting_ETL(conn,params={"startDate":date_,"endDate":date_,"date":date_.replace("-","")})
  228. except:
  229. conn = SD_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  230. sd_report.reportV3_targetingMT_sdTargeting_ETL(conn, params={"startDate": date_, "endDate": date_,
  231. "date": date_.replace("-", "")})
  232. try:
  233. sd_report.reportV3_asin_sdPurchasedProduct_ETL(conn,params={"startDate":date_,"endDate":date_,"date":date_.replace("-","")})
  234. except:
  235. conn = SD_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  236. sd_report.reportV3_asin_sdPurchasedProduct_ETL(conn, params={"startDate": date_, "endDate": date_,
  237. "date": date_.replace("-", "")})
  238. try:
  239. sd_report.reportV3_advertiser_sdAdvertisedProduct_ETL(conn,params={"startDate":date_,"endDate":date_,"date":date_.replace("-","")})
  240. except:
  241. conn = SD_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  242. sd_report.reportV3_advertiser_sdAdvertisedProduct_ETL(conn, params={"startDate": date_, "endDate": date_,
  243. "date": date_.replace("-", "")})
  244. # sd_report.reportV2_campaignsRecord_t2_ETL(conn,params=para)
  245. # sd_report.reportV2_campaignsRecord_t3_ETL(conn,params=para)
  246. # sd_report.reportV2_adGroupsRecord_t2_ETL(conn,params=para)
  247. # sd_report.reportV2_adGroupsRecord_t3_ETL(conn,params=para)
  248. # sd_report.reportV2_asins_t2_ETL(conn,params=para)
  249. # sd_report.reportV2_asins_t3_ETL(conn,params=para)
  250. # sd_report.reportV2_productAds_t2_ETL(conn,params=para)
  251. # sd_report.reportV2_productAds_t3_ETL(conn,params=para)
  252. # sd_report.reportV2_targets_t2_ETL(conn,params=para)
  253. # sd_report.reportV2_targets_t3_ETL(conn,params=para)
  254. # sd_report.reportV2_campaign_matchedTarget_t2_ETL(conn,params=para)
  255. # sd_report.reportV2_campaign_matchedTarget_t3_ETL(conn,params=para)
  256. # sd_report.reportV2_adGroups_matchedTarget_t2_ETL(conn,params=para)
  257. # sd_report.reportV2_adGroups_matchedTarget_t3_ETL(conn,params=para)
  258. # sd_report.reportV2_targets_matchedTarget_t2_ETL(conn,params=para)
  259. # sd_report.reportV2_targets_matchedTarget_t3_ETL(conn,params=para)
  260. conn.close()
  261. time.sleep(5)
  262. def amz_report(AWS_CREDENTIALS,para=None):
  263. count = 1
  264. list_date = [((datetime.today()+timedelta(days=i)).date()).isoformat() for i in range(-2,-20,-1)]
  265. conn = SB_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  266. # conn.command('')
  267. if para is not None:
  268. list_date = [para['startDate']]
  269. # print(list_date)
  270. delete_list = [
  271. 'SB_sbAdGroup_adGroupV3',
  272. 'SB_sbAds_adsV3',
  273. 'SB_sbCampaigns_campaignV3',
  274. 'SB_sbCampaigns_placementV3',
  275. 'SB_sbPurchasedProduct_asinV3',
  276. 'SB_sbSearchTerm_searchTermV3',
  277. 'SB_sbTargeting_targetingV3',
  278. 'SD_advertiser_sdAdvertisedProductV3',
  279. 'SD_asin_sdPurchasedProductV3',
  280. 'SD_sdAdGroup_adGroupMatchedTargetV3',
  281. 'SD_sdAdGroup_adGroupV3',
  282. 'SD_sdCampaigns_campaignMatchedTargetV3',
  283. 'SD_sdCampaigns_campaignV3',
  284. 'SD_targeting_sdTargetingMatchedTargetV3',
  285. 'SD_targeting_sdTargetingV3',
  286. 'SP_spAdvertisedProduct_advertiserV3',
  287. 'SP_spCampaigns_adGroupV3',
  288. 'SP_spCampaigns_campaignV3',
  289. 'SP_spCampaigns_placementV3',
  290. 'SP_spPurchasedProduct_asinV3',
  291. 'SP_spSearchTerm_searchTermV3',
  292. 'SP_spTargeting_targetingV3']
  293. for date_ in list_date:
  294. print(date_)
  295. print(date_.replace("-", ""))
  296. # amz_report(conn, AWS_CREDENTIALS, para={"startDate": date_, "endDate": date_, "date": date_.replace("-", "")})
  297. if count==1:
  298. for i in delete_list:
  299. conn.command(f"delete from AmazonReport.{i} where date='{list_date[-2]}' and profileId='{AWS_CREDENTIALS['profile_id']}'")
  300. count+=1
  301. try:
  302. refresh_token = shop_infos(AWS_CREDENTIALS['profile_id'])['refresh_token']
  303. AWS_CREDENTIALS['refresh_token'] = refresh_token
  304. pre_func(AWS_CREDENTIALS,date_)
  305. except Exception as e:
  306. print(e)
  307. pre_func(AWS_CREDENTIALS,date_)
  308. try:
  309. conn = SP_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  310. date_list = []
  311. for table_name in delete_list:
  312. try:
  313. locals()[table_name] = conn.query_df(
  314. f"select date,SUM(impressions) as impressions from AmazonReport.`{table_name}` group by date,profileId")
  315. except:
  316. try:
  317. locals()[table_name] = conn.query_df(
  318. f"select date,SUM(salesOtherSku1d) as salesOtherSku1d from AmazonReport.`{table_name}` group by date,profileId")
  319. except:
  320. try:
  321. locals()[table_name] = conn.query_df(
  322. f"select date,SUM(salesBrandHalo) as salesBrandHalo from AmazonReport.`{table_name}` group by date,profileId")
  323. except:
  324. locals()[table_name] = conn.query_df(
  325. f"select date,SUM(sales14d) as sales14d from AmazonReport.`{table_name}` group by date,profileId")
  326. locals()[table_name].columns = ['date', 'refer_']
  327. locals()[table_name]['refer_'] = locals()[table_name]['refer_'].astype('float64')
  328. todayMinus2 = (datetime.today().date() + timedelta(days=-2))
  329. reback_21days = (todayMinus2 + timedelta(days=-23)).isoformat()
  330. df = pd.date_range(start=reback_21days, end=todayMinus2.isoformat(), freq='1d')
  331. df1 = pd.DataFrame(df, columns=['date_'])
  332. merge_df = df1.merge(locals()[table_name], left_on=['date_'], right_on=['date'], how='left')
  333. rel = merge_df.query("date_!=date or refer_<1 or refer_.isna()")['date_'].map(
  334. lambda x: x.date().isoformat()).tolist()
  335. print(rel,date_list)
  336. if len(rel)>0:
  337. for date in rel:
  338. date_list.extend([date])
  339. conn.command(
  340. f"delete from AmazonReport.`{table_name}` where date='{date}' and profileId='{AWS_CREDENTIALS['profile_id']}'")
  341. if len(date_list)>0:
  342. print(list(set(date_list)))
  343. for date_retry in list(set(date_list)):
  344. try:
  345. pre_func(AWS_CREDENTIALS, date_retry)
  346. except:
  347. pre_func(AWS_CREDENTIALS, date_retry)
  348. except:
  349. conn = SP_ETL(**AWS_CREDENTIALS).clickhouse_connect()
  350. date_list = []
  351. for table_name in delete_list:
  352. try:
  353. locals()[table_name] = conn.query_df(
  354. f"select date,SUM(impressions) as impressions from AmazonReport.`{table_name}` group by date,profileId")
  355. except:
  356. try:
  357. locals()[table_name] = conn.query_df(
  358. f"select date,SUM(salesOtherSku1d) as salesOtherSku1d from AmazonReport.`{table_name}` group by date,profileId")
  359. except:
  360. try:
  361. locals()[table_name] = conn.query_df(
  362. f"select date,SUM(salesBrandHalo) as salesBrandHalo from AmazonReport.`{table_name}` group by date,profileId")
  363. except:
  364. locals()[table_name] = conn.query_df(
  365. f"select date,SUM(sales14d) as sales14d from AmazonReport.`{table_name}` group by date,profileId")
  366. locals()[table_name].columns = ['date', 'refer_']
  367. locals()[table_name]['refer_'] = locals()[table_name]['refer_'].astype('float64')
  368. todayMinus2 = (datetime.today().date() + timedelta(days=-2))
  369. reback_21days = (todayMinus2 + timedelta(days=-23)).isoformat()
  370. df = pd.date_range(start=reback_21days, end=todayMinus2.isoformat(), freq='1d')
  371. df1 = pd.DataFrame(df, columns=['date_'])
  372. merge_df = df1.merge(locals()[table_name], left_on=['date_'], right_on=['date'], how='left')
  373. rel = merge_df.query("date_!=date or refer_<1 or refer_.isna()")['date_'].map(
  374. lambda x: x.date().isoformat()).tolist()
  375. print(rel, date_list)
  376. if len(rel) > 0:
  377. for date in rel:
  378. date_list.extend([date])
  379. conn.command(
  380. f"delete from AmazonReport.`{table_name}` where date='{date}' and profileId='{AWS_CREDENTIALS['profile_id']}'")
  381. if len(date_list) > 0:
  382. print(list(set(date_list)))
  383. for date_retry in list(set(date_list)):
  384. try:
  385. pre_func(AWS_CREDENTIALS, date_retry)
  386. except:
  387. pre_func(AWS_CREDENTIALS, date_retry)
  388. if __name__ == '__main__':
  389. # AccountTask("3006125408623189").do({"record": "portfolios"})
  390. AWS_CREDENTIALS = {
  391. 'lwa_client_id': 'amzn1.application-oa2-client.ebd701cd07854fb38c37ee49ec4ba109',
  392. 'refresh_token': "Atzr|IwEBIL4ur8kbcwRyxVu_srprAAoTYzujnBvA6jU-0SMxkRgOhGjYJSUNGKvw24EQwJa1jG5RM76mQD2P22AKSq8qSD94LddoXGdKDO74eQVYl0RhuqOMFqdrEZpp1p4bIR6_N8VeSJDHr7UCuo8FiabkSHrkq7tsNvRP-yI-bnpQv4EayPBh7YwHVX3hYdRbhxaBvgJENgCuiEPb35Q2-Z6w6ujjiKUAK2VSbCFpENlEfcHNsjDeY7RCvFlwlCoHj1IeiNIaFTE9yXFu3aEWlExe3LzHv6PZyunEi88QJSXKSh56Um0e0eEg05rMv-VBM83cAqc5POmZnTP1vUdZO8fQv3NFLZ-xU6e1WQVxVPi5Cyqk4jYhGf1Y9t98N654y0tVvw74qNIsTrB-8bGS0Uhfe24oBEWmzObvBY3zhtT1d42myGUJv4pMTU6yPoS83zhPKm3LbUDEpBA1hvvc_09jHk7vUEAuFB-UAZzlht2C1yklzQ",
  393. 'lwa_client_secret': 'cbf0514186db4df91e04a8905f0a91b605eae4201254ced879d8bb90df4b474d',
  394. 'profile_id': "3006125408623189"
  395. }
  396. try:
  397. refresh_token = shop_infos(AWS_CREDENTIALS['profile_id'])['refresh_token']
  398. AWS_CREDENTIALS['refresh_token'] = refresh_token
  399. except Exception as e:
  400. print(e)
  401. timezone_ = Common_ETLMethod(**AWS_CREDENTIALS).timeZone()
  402. print(timezone_)
  403. # amz_report(AWS_CREDENTIALS)
  404. sched = BlockingScheduler()
  405. sched.add_job(amz_report,'cron',hour=17,minute=0,second=0,timezone=timezone_, args=(AWS_CREDENTIALS, ))#,params={"startDate":"2023-11-04","endDate":"2023-11-04","date":"20231104"}
  406. sched.start()