sqlalchemy 插入数据到clickhouse
时间: 2023-10-16 21:07:17 浏览: 245
使用 SQLAlchemy 插入数据到 ClickHouse 数据库,需要先安装 ClickHouse 的 Python 驱动 clickhouse-driver。
下面是一个示例代码,假设已经有一个名为 test 的 ClickHouse 数据库,其中包含一个名为 student 的表,表结构如下:
```sql
CREATE TABLE test.student (
id Int32,
name String,
age Int32
) ENGINE = MergeTree() ORDER BY id;
```
现在要向 student 表中插入一条记录,可以使用以下代码:
```python
from datetime import datetime
from clickhouse_driver import Client
from sqlalchemy import create_engine, Column, Integer, String, DateTime
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
# 创建 ClickHouse 客户端
client = Client(host='localhost', port=9000, database='test')
# 创建 SQLAlchemy 引擎
engine = create_engine('clickhouse://localhost:9000/test')
# 创建 ORM 基类
Base = declarative_base()
# 定义 Student 模型
class Student(Base):
__tablename__ = 'student'
id = Column(Integer, primary_key=True)
name = Column(String)
age = Column(Integer)
created_at = Column(DateTime, default=datetime.now)
# 创建 ORM 会话
Session = sessionmaker(bind=engine)
session = Session()
# 创建一条记录
student = Student(id=1, name='John', age=25)
# 插入记录
session.add(student)
session.commit()
# 关闭 ORM 会话
session.close()
# 查询插入数据
result = client.execute('SELECT * FROM test.student')
print(result)
```
这里使用 SQLAlchemy 创建了一个名为 Student 的 ORM 模型,然后插入了一条记录。最后使用 ClickHouse 客户端查询 student 表中的数据并打印出来。
阅读全文