123456789101112131415161718192021222324252627282930313233343536373839404142 |
- import requests
- import json
- import datetime
- from odps import ODPS
- # ODPS服务配置
- ODPS_CONFIG = {
- 'ENDPOINT': 'http://service.cn.maxcompute.aliyun.com/api',
- 'ACCESSID': 'LTAIWYUujJAm7CbH',
- 'ACCESSKEY': 'RfSjdiWwED1sGFlsjXv0DlfTnZTG1P',
- }
- class OdpsDataCount:
- @classmethod
- def get_data_count(cls, project, table, dt, url, name, channel_id):
- odps = ODPS(
- access_id=ODPS_CONFIG['ACCESSID'],
- secret_access_key=ODPS_CONFIG['ACCESSKEY'],
- project=project,
- endpoint=ODPS_CONFIG['ENDPOINT']
- )
- try:
- sql = f'SELECT targetcnt FROM {project}.{table} WHERE dt = "{dt}" and user = "{url}" and name = "{name}" and channel = "{channel_id}"'
- with odps.execute_sql(sql).open_reader() as reader:
- row = next(reader)
- data_value = row['targetcnt'] if row else None
- except Exception as e:
- print(f"An error occurred: {e}")
- return None
- return data_value
- @classmethod
- def main(cls, channel_id, name, url):
- # url ='3xcvnyxrngrpwem'
- # channel_id = '快手'
- dt = datetime.datetime.now().strftime('%Y%m%d')
- project = 'loghubods'
- table = 'spider_supply_targetcnt'
- data_count = cls.get_data_count(project=project, table=table, dt=dt, url=url, name=name, channel_id=channel_id)
- return data_count
- if __name__ == '__main__':
- OdpsDataCount.main()
|