Pandas 本身不支持 ClickHouse 相关操作, 本篇博客主要是记录一下自己封装的一些读写操作, 所以严格来说标题应该是: 如何从 ClickHouse 读取数据到 DataFrame 及将 DataFrame 写入 ClickHouse.
一. Pandas 读取 ClickHouse
GitHub 上面有几个 Python 操作 ClickHouse 的开源项目, 不过收藏数量都不多(几百个 star), 经过试用, 发现 clickhouse_driver 这个项目相对靠谱一点, 先使用 pip 安装 clickhouse_driver, 读取数据的代码如下:
from clickhouse_driver import Client
import pandas as pd
import re
client = Client(host='xxx', database='xxx', user='xxx', password='xxx')
def read_sql(sql):
data, columns = client.execute(sql, columnar=True, with_column_types=True)
df = pd.DataFrame({
re.sub(r'\W', '_', col[0]): d for d, col in zip