Python操作Mysql、Redis、ClickHouse
首先用pip安装下面导的包
1.操作Mysql
1 import logging 2 import pymysql 3 4 5 def connect_test_db(): 6 return pymysql.connect(host='10.169.30.190', 7 port=3306, 8 user='root', 9 password='123456', 10 database='test', 11 charset='UTF8') 12 13 14 def select_sql(): 15 connect = connect_test_db() # 连接对象 16 cursor = connect.cursor() # cursor游标 17 18 try: 19 sql_str = "SELECT * FROM test.Student" 20 cursor.execute(sql_str) # 执行语句 21 realist = cursor.fetchall() # 拿到执行结果 22 23 for row in realist: 24 print(row) 25 26 except: 27 logging.exception('select operation error') 28 raise 29 finally: # 关流 30 cursor.close() 31 connect.close() 32 33 34 def insert_sql(): 35 connect = connect_test_db() # 连接对象 36 cursor = connect.cursor() # cursor游标 37 sql_str = "INSERT INTO test.Student VALUES('09','张三','1996-03-11','男')" 38 39 try: 40 connect.begin() # 开启事务 41 cursor.execute(sql_str) 42 connect.commit() # 提交sql 43 44 print('insert succeed') 45 except Exception as e: # 如果出现异常执行下面语句 46 print(e) 47 connect.rollback() # 回滚 48 finally: 49 cursor.close() 50 connect.close() 51 52 53 if __name__ == '__main__': 54 select_sql()
2.操作Redis
import redis pool = redis.ConnectionPool(host='10.169.30.190', port=6379, db=1) r = redis.Redis(connection_pool=pool) # redis默认端口是6379 def select(): r.set('name', 'Jack') r.set('age', 18, ex=2) # ex - 过期时间(秒) r.set('name', 'Tom', nx=True) # nx - 如果值为True则key存在不插入 print(r.get('name')) if __name__ == '__main__': select()
3.操作ClickHouse
注意:这里的端口是TCP协议的9000端口不是http的8123端口
import pandas from clickhouse_driver import Client client = Client(host='10.169.30.190', port='9000', user='default', password='default', database='default') def select(): sql = client.execute("SELECT * FROM default.clickStream") result = pandas.DataFrame(sql) # 执行语句并拿到返回结果 print(result) def insert(): sql = client.execute("INSERT INTO default.clickStream VALUES ('customer1', '2021-10-02', 'add_to_cart', 'US', " "568239 )") result = pandas.DataFrame(sql) print(result) if __name__ == '__main__': select()

浙公网安备 33010602011771号