简介
- 主要接口是包
clickhouse_connect.driver中的Client对象。该核心包还包含各种辅助类和实用函数,用于与 ClickHouse 服务器通信,以及用于高级管理插入和选择查询的 “context” 实现。 clickhouse_connect.datatypes包为所有非 Experimental 的 ClickHouse 数据类型提供基础实现和子类。其主要功能是将 ClickHouse 数据序列化和反序列化为 ClickHouse “Native” 二进制列式格式,以实现 ClickHouse 与客户端应用程序之间最高效的数据传输。clickhouse_connect.cdriver包中的 Cython/C 类对一些最常见的序列化和反序列化进行了优化,与纯 Python 实现相比可显著提升性能。- 包
clickhouse_connect.cc_sqlalchemy中提供了一个 SQLAlchemy 方言,基于datatypes和dbi包构建。该实现支持 SQLAlchemy Core 功能,包括带有JOIN(INNER、LEFT OUTER、FULL OUTER、CROSS) 的SELECT查询、WHERE子句、ORDER BY、LIMIT/OFFSET、DISTINCT操作、带有WHERE条件的 lightweightDELETE语句、表反射,以及基本的 DDL 操作 (CREATE TABLE、CREATE/DROP DATABASE) 。虽然它不支持高级 ORM 功能或高级 DDL 功能,但提供了稳健的查询能力,适用于针对 ClickHouse 这一面向 OLAP 的数据库执行大多数分析型工作负载。 - 核心驱动和 ClickHouse Connect SQLAlchemy 实现是将 ClickHouse 连接到 Apache Superset 的首选方式。请使用
ClickHouse Connect数据库连接,或clickhousedbSQLAlchemy 方言连接字符串。
官方 ClickHouse Connect Python 驱动使用 HTTP 协议与 ClickHouse 服务器通信。因此,它支持 HTTP 负载均衡器,并且在使用防火墙和代理的企业环境中也能良好运行;但与基于 native TCP 的 协议 相比,其压缩率和性能略低,并且不支持某些高级功能,例如取消查询。对于某些用例,你也可以考虑使用采用基于 native TCP 的 协议 的 Community Python drivers。
要求与兼容性
¹ClickHouse Connect 已针对所列平台进行了专门测试。此外,广受好评的
cibuildwheel 项目还会为其支持的所有架构构建未经测试的二进制 wheel (带 C 优化) 。最后,由于 ClickHouse Connect 也可以作为纯 Python 运行,因此源码安装应可在任何较新的 Python 环境中正常工作。
²SQLAlchemy 支持仅限于 Core 功能 (查询、基本 DDL) 。不支持 ORM 功能。详情请参阅 SQLAlchemy 集成支持 文档。
³ClickHouse Connect 在官方支持范围之外的版本上通常也能良好运行。
安装
pip install clickhouse-connect
ClickHouse Connect 也可以从源码安装:
- 使用
git clone克隆 GitHub 仓库。 - (可选) 运行
pip install cython,以构建并启用 C/Cython 优化 - 切换到项目根目录,运行
pip install .
支持政策
基本用法
准备连接详情
你的 ClickHouse Cloud 服务的连接信息可在 ClickHouse Cloud 控制台中查看。
选择一个服务,然后点击 Connect:
选择 HTTPS。连接信息会显示在示例
curl 命令中。
如果你使用的是自管理 ClickHouse,则连接信息由你的 ClickHouse 管理员配置。
建立连接
- 连接到 localhost 上的 ClickHouse 服务器。
- 连接到 ClickHouse Cloud 服务。
使用 ClickHouse Connect 客户端实例连接到 localhost 上运行的 ClickHouse 服务器:
使用 ClickHouse Connect 客户端实例连接到 ClickHouse Cloud 服务:
与数据库交互
command 方法:
insert 方法,并传入包含行和值的二维数组:
query 方法: