欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 锐评 > 【Python】 使用 SQLAlchemy 连接 ClickHouse 数据库

【Python】 使用 SQLAlchemy 连接 ClickHouse 数据库

2025/2/22 2:10:23 来源:https://blog.csdn.net/qq_35240081/article/details/141114048  浏览:    关键词:【Python】 使用 SQLAlchemy 连接 ClickHouse 数据库

我最爱的那首歌最爱的angel
我到什么时候才能遇见我的angel
我最爱的那首歌最爱的angel
我不是王子也会拥有我的angel
                     🎵 张杰《云中的angel》


在这篇博客中,我们将介绍如何使用 SQLAlchemy 在 Python 中连接到 ClickHouse 数据库。ClickHouse 是一个开源的列式数据库管理系统,以其高速的实时数据分析能力著称。SQLAlchemy 是一个 Python 的 SQL 工具包和对象关系映射(ORM)库,它可以简化与数据库的交互。

前提条件

在开始之前,请确保你已经安装了以下组件:

  1. Python: 版本 3.6 或更高。

  2. ClickHouse: 本地或远程服务器上运行的 ClickHouse 实例。

  3. SQLAlchemy: 通过 pip 安装 SQLAlchemy:

pip install sqlalchemy

ClickHouse SQLAlchemy 驱动: 需要安装 ClickHouse 的 SQLAlchemy 驱动,以便通过 SQLAlchemy 连接 ClickHouse:

pip install clickhouse-sqlalchemy

第一步:配置连接

首先,我们需要配置 ClickHouse 数据库的连接设置。在提供的代码片段中,连接设置是从一个配置字典中获取的。以下是一个示例配置:

settings = {'CLICKHOUSE_DATABASE': {'username': 'default','password': '','host': '192.168.1.202','port': '8123','database': 'shujujiance'}
}# 第二步:生成 ClickHouse URI
接下来,我们使用配置中的信息生成连接 URI。这个 URI 将包含用户名、密码、主机地址、端口号和数据库名称。以下是生成 URI 的代码:```python
clickhouseConfig = settings['CLICKHOUSE_DATABASE']
clickhouseURI = f"clickhouse+http://{clickhouseConfig.get('username')}:{clickhouseConfig.get('password')}@{clickhouseConfig.get('host')}:{clickhouseConfig.get('port')}/{clickhouseConfig.get('database')}"
print(clickhouseURI)

生成的 clickhouseURI 可能类似于以下格式:

clickhouse+http://default:@192.168.1.202:8123/shujujiance

第三步:使用 SQLAlchemy 创建连接引擎

一旦我们有了正确的连接 URI,就可以使用 SQLAlchemy 的 create_engine 函数来创建连接引擎。这个引擎将被用于执行 SQL 查询和操作。

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker# 创建数据库引擎
engine = create_engine(clickhouseURI)# 创建一个新的会话类
Session = sessionmaker(bind=engine)# 创建会话对象
session = Session()

第四步:执行数据库操作

现在我们已经成功连接到 ClickHouse 数据库,可以通过 SQLAlchemy 执行各种数据库操作。例如,查询数据或插入新记录等。

以下是一个简单的查询示例:

result = session.execute("SELECT * FROM your_table_name")
for row in result:print(row)

总结

通过本文,你应该了解了如何配置并使用 SQLAlchemy 连接到 ClickHouse 数据库。SQLAlchemy 提供了强大的功能,不仅可以简化数据库操作,还可以与 ClickHouse 这样高效的分析数据库结合使用,处理大规模数据分析任务。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com