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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM