用python批量插入clickhouse

用python批量插入clickhouse

以下是一个示例代码,演示了如何使用clickhouse_driver模块实现批量插入和分布式查询

import clickhouse_driver
import random

# connect to the ClickHouse cluster
conn = clickhouse_driver.Client(
    host='localhost',
    port=9000,
    database='test',
    user='default',
    password=''
)

# create a test table
conn.execute('CREATE TABLE IF NOT EXISTS test (id Int32, value String) ENGINE = Memory')

# generate test data
data = [(i, f'value_{
      
      i}') for i in range(1000)]

# batch insert data into ClickHouse
conn.execute('INSERT INTO test (id, value) VALUES', data)

# distributed query across multiple ClickHouse nodes
query = 'SELECT count(*) FROM test'
result = conn.execute(query, distributed=True)
print(f'Total records: {
      
      result[0][0]}')

在这个例子中,我们首先创建一个ClickHouse连接对象,并通过execute()方法执行SQL语句创建了一个测试表。然后,我们使用Python内置的random模块生成了1000个随机数据,以元组的形式保存在data列表中。

接下来,我们使用execute()方法和INSERT语句将这1000条数据批量插入到ClickHouse测试表中。

最后,我们通过execute()方法和SELECT语句进行了一次分布式查询,返回了插入的数据总数,并打印到了控制台上。

需要注意的是,使用分布式查询需要在连接到ClickHouse数据库时设置distributed=True参数。此外,clickhouse_driver模块还提供了其他一些高级特性,如批量插入、异步查询等,可以根据实际需求进行选择和使用。

Guess you like

Origin blog.csdn.net/haoyuxuanyuan/article/details/129336908