跳到主要内容

Python Driver 开发 (自建)

本教程介绍如何通过 Python 连接本地部署的 Databend,并分别使用 databend-driverdatabend-sqlalchemy Connector 以及 Engine 三种方式完成建库、建表、写入、查询与清理等操作。

开始之前

请确认已成功安装本地 Databend,详见 本地与 Docker 部署

步骤 1:准备 SQL 账号

要让程序连接 Databend 并执行 SQL,需要在代码中提供具备相应权限的 SQL 用户。请在 Databend 中创建账号并授予必要权限。本教程示例使用用户名 user1、密码 abc123,由于程序会写入数据,因此用户需要 ALL 权限。关于 SQL 用户与权限管理,参见 User & Role

CREATE USER user1 IDENTIFIED BY 'abc123';
GRANT ALL on *.* TO user1;

步骤 2:编写 Python 程序

接下来编写一段简单程序与 Databend 交互,完成建表、插数与查询等操作。

  1. 安装 databend-driver。
pip install databend-driver
  1. 将以下代码保存为 main.py
main.py
from databend_driver import BlockingDatabendClient

# 示例:使用 SQL 用户 user1/abc123 连接本地 Databend。
client = BlockingDatabendClient('databend://user1:abc123@127.0.0.1:8000/?sslmode=disable')

# 创建游标与 Databend 交互
cursor = client.cursor()

# 创建数据库并切换
cursor.execute("CREATE DATABASE IF NOT EXISTS bookstore")
cursor.execute("USE bookstore")

# 创建表
cursor.execute("CREATE TABLE IF NOT EXISTS booklist(title VARCHAR, author VARCHAR, date VARCHAR)")

# 插入数据
cursor.execute("INSERT INTO booklist VALUES('Readings in Database Systems', 'Michael Stonebraker', '2004')")

# 查询数据
cursor.execute("SELECT * FROM booklist")
rows = cursor.fetchall()

# 打印结果
for row in rows:
print(f"{row[0]} {row[1]} {row[2]}")

# 清理资源
cursor.execute('DROP TABLE booklist')
cursor.execute('DROP DATABASE bookstore')

cursor.close()
  1. 执行 python main.py
python main.py
Readings in Database Systems Michael Stonebraker 2004
欢迎体验 Databend Cloud

基于 Rust + 对象存储构建的新一代多模态数仓,一个平台即可进行 BI、向量、全文检索及地理空间分析。

支持标准 SQL,自动弹性伸缩,助您快速构建现代化数据平台。

注册即领 ¥200 代金券。

注册体验