CkUtils.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. from clickhouse_driver.client import Client
  2. from model.common.log import logger
  3. log=logger()
  4. class CkUtils:
  5. def __init__(self):
  6. self.client = Client(host='cc-bp1h3yc7o3g3o7k64o.ads.aliyuncs.com',
  7. user='qucheng_ck',
  8. password='Qc123456',
  9. port='3306',
  10. send_receive_timeout=5)
  11. def execute(self, sql):
  12. self.client.execute(sql)
  13. def insertMany(self,table,col,data):
  14. """
  15. :param table: 表名 srt
  16. :param col: 字段名 srt eg: ”a,b,c“
  17. :param data: tuple
  18. :return:
  19. """
  20. max=200
  21. sql="insert into {} ({}) values ".format(table,col)
  22. if len(data) == 0:
  23. log.debug("data.len==0")
  24. return
  25. if len(data) <= max:
  26. sql = sql+str(data)[1:-1]
  27. # log.info(sql)
  28. # log.info("insert {} rows".format(len(data)))
  29. self.execute(sql)
  30. return
  31. else:
  32. sql2=sql+str(data[:max])[1:-1]
  33. # log.info(sql2)
  34. self.execute(sql2)
  35. # log.info("insert {} rows".format(max))
  36. self.insertMany(table,col,data[max:])
  37. if __name__ == '__main__':
  38. ck= CkUtils()
  39. a =ck.execute("desc order")
  40. print(a)