原文链接:【KWDB 创作者计划】_【通过 Python 连接 KWDB 数据库】的完整步骤与示例-CSDN博客
作者:大师兄6668
通过 Python 连接 KWDB 的详细指南
在前两篇博文中,我们已经成功在 Centos 云服务中通过 Docker 安装了 KWDB,
在 CentOS 云服务中通过 Docker 安装 KWDB数据库
并且掌握了在云服务器上直接连接 KWDB 进行增删改查的操作方法。
【云服务器连接已部署 KWDB 并进行增删改查操作】完整指南
接下来,我们将深入探索如何通过 Python 语言连接 KWDB,借助 Python 丰富的生态库,进一步拓展 KWDB 在数据处理和应用开发方面的能力。
首先要确保你的 Python 版本为 3.10。Python 版本的兼容性对于各类库的使用至关重要,KWDB 与 Python 的交互在 Python 3.10 环境下能得到更好的支持。你可以通过 python3 --version 命令来检查当前 Python 版本,如果版本不符合要求,可前往 Python 官方网站 下载并安装 Python 3.10。
Psycopg 是 Python 中用于连接 PostgreSQL 数据库的常用库,KWDB 与 PostgreSQL 在协议上有一定的兼容性,因此我们可以使用 Psycopg 3 来连接 KWDB。通过以下命令安装 Psycopg 3:
pip3 install "psycopg[binary]"
该命令会自动从 Python Package Index(PyPI)下载并安装 Psycopg 3 及其依赖项。安装完成后,我们就为 Python 连接 KWDB 做好了必要的准备。
创建一个名为 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_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、最后关闭数据库连接。
将代码中的数据库链接 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。
我这里是通过本地 连接云服务器上docker部署好的KWDB。
连接方式为使用非安全模式的 默认用户root连接KWDB数据库,无需密码即可。
打码处为自己的云服务器ip。
完成上述配置后,在终端中进入 kwdb_test.py 文件所在目录,执行以下命令运行示例程序:
python3 kwdb_test.py
我这里是在 VS Code 中,点击菜单栏中的 “运行”,选择 “开始调试”,或者直接按快捷键F5。VS Code 会自动在集成终端中运行kwdb_test.py脚本。你也可以通过点击编辑器右上角的绿色三角形 “运行” 按钮来运行脚本。
执行程序后,如果一切顺利,你将在终端看到如下输出:
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,并且在创建了数据库 db_TimeSeries ,在其中创建了表 table1,插入了一条数据,同时也成功地将数据查询出来并打印显示。通过以上步骤,我们成功实现了通过 Python 连接 KWDB,并进行了基本的数据操作。
通过上述详尽步骤,我们顺利借助 Python 实现了与 KWDB 的连接,并完成了一系列基础数据操作。KWDB 作为一款功能强大的数据库,在时间序列数据处理领域优势显著。其独特的表结构设计,如我们创建的table1时序表,能高效存储和管理带有时间戳以及标签的数据,极大提升了时间序列数据的查询与分析效率。在与 Python 的协同工作中,借助 Psycopg 3 库,开发人员可以轻松地利用 Python 丰富的生态系统,对 KWDB 中的数据进行深度挖掘与处理。无论是构建实时数据监控系统,还是进行复杂的数据分析项目,KWDB 与 Python 的组合都能提供坚实的技术支撑。在实际应用中,开发者可依据具体业务场景,对代码中的数据结构、查询逻辑等进行优化,充分释放 KWDB 在海量数据存储、快速检索以及灵活数据处理方面的潜力,让其更好地服务于各类应用开发。若在实践过程中遭遇难题,欢迎在评论区分享交流,共同探索 KWDB 与 Python 结合的无限可能 。