如何使用python3操作clickhouse
# pip3 install clickhouse-driver from clickhouse_driver import Client import random import string import datetime date = datetime.datetime.today() s_datetime = str(date.strftime("%Y-%m-%d")) def s_gen_username(): return random.choice('abcdefghijklmnopqrstuvwxyz') def s_gen_pwd(): return ''.join(random.sample('zyxwvutsrqponmlkjihgfedcba0123456789',6)) def s_gen_gender(): i = random.randint(1,2) if i == 1: return 'man' else: return 'woman' client = Client(host='127.0.0.1',port='9000',user='root' ,password='dLZWIZxt') # 创建数据库 sql = 'CREATE DATABASE testdb' # 创建表 sql = ''' CREATE TABLE if not exists testdb.members( `uid` Int64, `user_name` String, `pwd` String, `reg_time` DateTime, `gender` Enum8('man' = 1, 'woman' = 2)) ENGINE = MergeTree() PARTITION BY toYYYYMMDD(reg_time) ORDER BY uid SETTINGS index_granularity = 8192; ''' # client.execute(sql) # 查看表 sql = ''' SHOW TABLES FROM testdb; ''' # client.execute(sql) # 插入数据 for i in range(100001,10000000): y = i+1 sql = ''' insert into testdb.members values ({}, '{}', '{}', {}, '{}'); '''.format(y,s_gen_username(),s_gen_pwd(),s_datetime,s_gen_gender()) ans = client.execute(sql) #查询数据 sql = ''' SELECT * FROM testdb.members ORDER BY uid DESC LIMIT 10 ''' res = client.execute(sql) print(res)
demo.py
# pip3 install clickhouse-driver from clickhouse_driver import Client import random import string import datetime date = datetime.datetime.today() s_datetime = str(date.strftime("%Y-%m-%d")) client = Client(host='127.0.0.1',port='9000',user='default' ,password='') #查询数据 sql = ''' SELECT * FROM testdb.members ORDER BY uid DESC LIMIT 10 ''' result = client.execute(sql) print(result) # 修改数据 sql = ''' alter table testdb.members update user_name = 'jim' where uid in ( '1001'); ''' # result2 = client.execute(sql) # print(result2) sql = ''' SELECT * FROM testdb.members where uid in ( '1001'); ''' # result3 = client.execute(sql) # print(result3)
query.py