如何使用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

 

posted @ 2021-02-22 00:05  tochenwei  阅读(1821)  评论(0编辑  收藏  举报