odps_data.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import json
  2. from odps import ODPS
  3. # ODPS服务配置
  4. ODPS_CONFIG = {
  5. 'ENDPOINT': 'http://service.cn.maxcompute.aliyun.com/api',
  6. 'ACCESSID': 'LTAIWYUujJAm7CbH',
  7. 'ACCESSKEY': 'RfSjdiWwED1sGFlsjXv0DlfTnZTG1P',
  8. }
  9. class OdpsDataCount:
  10. @classmethod
  11. def get_data_count(cls, dt):
  12. odps = ODPS(
  13. access_id=ODPS_CONFIG['ACCESSID'],
  14. secret_access_key=ODPS_CONFIG['ACCESSKEY'],
  15. project="loghubods",
  16. endpoint=ODPS_CONFIG['ENDPOINT']
  17. )
  18. data_values = []
  19. try:
  20. sql = f'SELECT videoid,type,channel,time FROM loghubods.allaround_spider_recommend_video_hour WHERE dt = "{dt}" '
  21. with odps.execute_sql(sql).open_reader() as reader:
  22. for row in reader:
  23. data_values.append(json.dumps( {"video_id": row[0], "type": row[1], "channel": row[2], "time": row[3], "partition": str(dt)}, ensure_ascii=False ))
  24. except Exception as e:
  25. print(f"An error occurred: {e}")
  26. return data_values
  27. return data_values
  28. @classmethod
  29. def main(cls, dt):
  30. data_count = cls.get_data_count( dt= dt)
  31. return data_count
  32. if __name__ == '__main__':
  33. OdpsDataCount.main()