KaiwuDBKaiwuDB

KWDB 创作者计划 | 通过 Python 连接 KWDB 数据库的完整步骤与示例

2025-04-27

原文链接:【KWDB 创作者计划】_【通过 Python 连接 KWDB 数据库】的完整步骤与示例-CSDN博客

作者:大师兄6668


通过 Python 连接 KWDB 的详细指南

在前两篇博文中,我们已经成功在 Centos 云服务中通过 Docker 安装了 KWDB,

在 CentOS 云服务中通过 Docker 安装 KWDB数据库

并且掌握了在云服务器上直接连接 KWDB 进行增删改查的操作方法。

【云服务器连接已部署 KWDB 并进行增删改查操作】完整指南

接下来,我们将深入探索如何通过 Python 语言连接 KWDB,借助 Python 丰富的生态库,进一步拓展 KWDB 在数据处理和应用开发方面的能力。



一、环境准备

1. Python 版本要求

首先要确保你的 Python 版本为 3.10。Python 版本的兼容性对于各类库的使用至关重要,KWDB 与 Python 的交互在 Python 3.10 环境下能得到更好的支持。你可以通过 python3 --version 命令来检查当前 Python 版本,如果版本不符合要求,可前往 Python 官方网站 下载并安装 Python 3.10。

KWDB 创作者计划 | 通过 Python 连接 KWDB 数据库的完整步骤与示例(图1)


2. 安装 Psycopg 3

Psycopg 是 Python 中用于连接 PostgreSQL 数据库的常用库,KWDB 与 PostgreSQL 在协议上有一定的兼容性,因此我们可以使用 Psycopg 3 来连接 KWDB。通过以下命令安装 Psycopg 3:


pip3 install "psycopg[binary]"

KWDB 创作者计划 | 通过 Python 连接 KWDB 数据库的完整步骤与示例(图2)

该命令会自动从 Python Package Index(PyPI)下载并安装 Psycopg 3 及其依赖项。安装完成后,我们就为 Python 连接 KWDB 做好了必要的准备。



二、编写 Python 代码


1. 创建 Python 文件

创建一个名为 kwdb_test.py 的 Python 文件,你可以使用任何文本编辑器来完成这一步,例如在 Linux 系统中使用 vim kwdb_test.py 命令即可创建并打开该文件。

我这里是在 VS Code 中编写的 Python 代码。


在 VS Code 中,点击菜单栏中的 “文件”,选择 “新建文件”,然后将文件保存为 kwdb_test.py。你也可以通过快捷键 Ctrl+N(Windows/Linux)或 Command+N(Mac)新建文件,再通过 Ctrl+S(Windows/Linux)或 Command+S(Mac)进行保存。


KWDB 创作者计划 | 通过 Python 连接 KWDB 数据库的完整步骤与示例(图3)


2. 编写代码内容

将以下示例代码复制到 kwdb_test.py 文件中:

#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
import psycopg
def main():
    url = "postgresql://test:KWdb%212022@127.0.0.1:26257/defaultdb"
    # for secure connection mode
    # url = "postgresql://root@127.0.0.1:26257/defaultdb"
    # url += "?sslrootcert=D:\\Tools\\test\\example-app-c\\example-app-cpp\\ca.crt"
    # url += "&sslcert=D:\\Tools\\test\\example-app-c\\example-app-cpp\\client.root.crt"
    # url += "&sslkey=D:\\Tools\\test\\example-app-c\\example-app-cpp\\client.root.key"
    print(url)
    try:
        con = psycopg.connect(url, autocommit=True)
        print("Connected!")
        cur = con.cursor()
    except psycopg.Error as e:
        print(f"Failed to connect to Kaiwudb: {e}")
    sql = "CREATE TS DATABASE db_TimeSeries"
    try:
        cur.execute(sql)
        print('数据库创建成功!')
    except psycopg.Error as e:
        print(f"Failed to DROP table: {e}")
    sql = """
    CREATE TABLE db_TimeSeries.table1 (
        k_timestamp timestamp NOT NULL, 
        voltage double, 
        current double, 
        temperature double
    ) TAGS (
        number int NOT NULL
    ) PRIMARY TAGS(number) 
    ACTIVETIME 3h
    """
    try:
        cur.execute(sql)
    except psycopg.Error as e:
        print(f"Failed to create table: {e}")
    sql = """
    INSERT INTO db_TimeSeries.table1 
    VALUES ('2024-07-01 10:00:00', 220.0, 3.0, 20.5, 123)
    """
    try:
        cur.execute(sql)
    except psycopg.Error as e:
        print(f"Failed to insert data: {e}")
    sql = "SELECT * from db_TimeSeries.table1"
    try:
        cur.execute(sql)
        rows = cur.fetchall()
        for row in rows:
            print(f"k_timestamp: {row[0]}, voltage: {row[1]}, current: {row[2]}, temperature: {row[3]}, number: {row[4]}")
    except psycopg.Error as e:
        print(f"Failed to insert data: {e}")
    cur.close()
    con.close()
    return
if __name__ == "__main__":
    main()


这段代码实现了以下功能:


1、尝试通过指定的 URL 连接到 KWDB 数据库。

2、创建 db_TimeSeries 数据库。

3、在 db_TimeSeries 数据库中创建一个名为 table1 的时序表,表结构包含时间戳 k_timestamp、电压 voltage、电流 current、温度 temperature 等字段,以及标签 number,4、并设置了表的活跃时间为 3 小时。

5、向 table1 表中插入一条数据。

6、查询 table1 表中的所有数据,并将结果打印输出。

7、最后关闭数据库连接。



三、配置数据库链接


1. 修改数据库链接

将代码中的数据库链接 url = "postgresql://test:KWdb%212022@127.0.0.1:26257/defaultdb" 修改为你自己真实的链接。假设你需要用本地连接云服务器上通过 Docker 部署好的 KWDB,且云服务器的 IP 为 your_cloud_server_ip,修改后的链接可能类似这样:

url = f"postgresql://test:KWdb%212022@{your_cloud_server_ip}:26257/defaultdb"


请确保链接中的用户名、密码、IP 地址、端口以及数据库名等信息准确无误,否则将无法成功连接到 KWDB。


KWDB 创作者计划 | 通过 Python 连接 KWDB 数据库的完整步骤与示例(图4)


我这里是通过本地 连接云服务器上docker部署好的KWDB。

连接方式为使用非安全模式的 默认用户root连接KWDB数据库,无需密码即可。

打码处为自己的云服务器ip。



四、执行示例程序


1. 运行代码

完成上述配置后,在终端中进入 kwdb_test.py 文件所在目录,执行以下命令运行示例程序:

python3 kwdb_test.py


我这里是在 VS Code 中,点击菜单栏中的 “运行”,选择 “开始调试”,或者直接按快捷键F5。VS Code 会自动在集成终端中运行kwdb_test.py脚本。你也可以通过点击编辑器右上角的绿色三角形 “运行” 按钮来运行脚本。


2. 查看结果

执行程序后,如果一切顺利,你将在终端看到如下输出:

postgresql://test:KWdb%212022@your_cloud_server_ip:26257/defaultdb
Connected!
k_timestamp: 2024-07-01 10:00:00+00:00, voltage: 220.0, current: 3.0, temperature: 20.5, number: 123


KWDB 创作者计划 | 通过 Python 连接 KWDB 数据库的完整步骤与示例(图5)


这表明已经成功连接到了 KWDB,并且在创建了数据库 db_TimeSeries ,在其中创建了表 table1,插入了一条数据,同时也成功地将数据查询出来并打印显示。通过以上步骤,我们成功实现了通过 Python 连接 KWDB,并进行了基本的数据操作。



五、总结


通过上述详尽步骤,我们顺利借助 Python 实现了与 KWDB 的连接,并完成了一系列基础数据操作。KWDB 作为一款功能强大的数据库,在时间序列数据处理领域优势显著。其独特的表结构设计,如我们创建的table1时序表,能高效存储和管理带有时间戳以及标签的数据,极大提升了时间序列数据的查询与分析效率。在与 Python 的协同工作中,借助 Psycopg 3 库,开发人员可以轻松地利用 Python 丰富的生态系统,对 KWDB 中的数据进行深度挖掘与处理。无论是构建实时数据监控系统,还是进行复杂的数据分析项目,KWDB 与 Python 的组合都能提供坚实的技术支撑。在实际应用中,开发者可依据具体业务场景,对代码中的数据结构、查询逻辑等进行优化,充分释放 KWDB 在海量数据存储、快速检索以及灵活数据处理方面的潜力,让其更好地服务于各类应用开发。若在实践过程中遭遇难题,欢迎在评论区分享交流,共同探索 KWDB 与 Python 结合的无限可能 。




体验全新的分布式多模数据库解决方案

企业版 社区版

KaiwuDB 是浪潮控股的数据库企业,面向工业物联网、数字能源、车联网、智慧产业等行业领域,提供稳定安全、高性能、易运维的创新数据软件与服务。

关注官方微信

友情链接:浪潮  

© 上海沄熹科技有限公司 Shanghai Yunxi Technology Co., Ltd.    沪ICP备2023002175号-1    网站服务协议   |   隐私政策
400-624-5688-7
服务与支持
marketing@kaiwudb.org.cn