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