体验GaussDB数据库应用程序Psycopg接口实验【华为云GaussDB:与数据库同行的日子】
实验背景
GaussDB作为华为自主研发的一款企业级分布式关系型数据库,具备PB级海量数据存储能力和企业级高可靠能力,也是国内首款纯软全密态数据库,支持国密算法、透明加密,并提供国内首个双集群强一致方案。
这么优秀的一款数据库服务,了解并熟悉如何使用其常用接口及基本配置操作就显得尤为重要了。
而用于连接数据库的接口,JDBC、ODBC和Psycopg就是其中最为常见的3种。本文用于体验GaussDB其中的一种:Psycopg接口,并能够掌握使用程序通过支持的接口访问数据库。
Psycopg接口
数据库Psycopg接口是一种用于执行SQL语句的Python API,可以为PostgreSQL、GaussDB、MogDB等数据库提供统一访问接口,应用程序可基于它进行数据操作。
它相比于其他接口,有以下优势和劣势。
优势:
- 完全支持Python DB API 2.0规范,以及安全的多线程支持。
- 是对libpq的封装,主要使用C语言实现,既高效又安全。
- 具有客户端游标和服务器端游标、异步通信和通知、支持“COPY TO/COPY FROM”功能。
- 支持多种类型Python开箱即用,适配PostgreSQL数据类型;通过灵活的对象适配系统,可以扩展和定制适配。
- 兼容Unicode和Python 3。
劣势:
- 需要安装libpq库,以及编译和安装psycopg2模块,这可能会增加部署的复杂性和成本。
- 可能不支持一些数据库的特定功能或扩展,例如JSONB、数组、枚举等,需要额外的适配器或转换器。
- 可能不兼容一些其他的Python框架或工具,例如ORM、SQLAlchemy等,需要进行额外的配置或修改。
介绍完Psycopg接口,接下来就是本文重点:体验GaussDB数据库应用程序Psycopg接口实验了。
环境准备 和 实验配置
具体的步骤和措施,可以查看第一篇《体验GaussDB数据库应用程序JDBC接口实验【华为云GaussDB:与数据库同行的日子】》。
同时,还可以查看另外一篇《体验GaussDB数据库应用程序ODBC接口实验【华为云GaussDB:与数据库同行的日子】》查看ODBC接口的使用体验。
掌握Psycopg的使用
1.加载驱动,连接数据库
在当前路径下,执行以下命令mkdir -p /opt/py/db/basic
,创建代码结构目录。
执行以下命令python3 -V
,验证python3运行命令是否就绪,回显结果输出如下:
在根目录中下载编译好的psycopg2压缩包并解压,解压完成后查看:
wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/3.0.0/x86/openGauss-3.0.0-CentOS-x86_64-Python.tar.gz
ls
tar -zxvf openGauss-3.0.0-CentOS-x86_64-Python.tar.gz
ls
接着将psycopg2拷贝到python安装目录的第三方包文件夹(即site-packages目录)下,并将lib文件夹中的内容移动到/usr/local/lib目录下:
mv psycopg2/ /usr/local/lib/python3.6/site-packages/
mv lib/* /usr/local/lib
使用以下命令:vim ~/.bash_profile
打开.bash_profile文件。
然后使用以下命令:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
将lib目录配置在LD_LIBRARY_PATH环境变量中。
使用以下命令:source ~/.bash_profile
使环境变量生效。
执行以下命令,在指定目录创建conn.py文件:
cd /opt/py/db/basic
touch conn.py
然后使用vi命令:vi conn.py
,将以下代码内容写入conn.py文件中。输入结束后,使用”:wq”保存退出vim编辑
import psycopg2
conn=psycopg2.connect(database="demo",user="db_dev",password="Huawei123#$",host="192.168.0.72",port=8000)
print("Conn database successfully")
执行以下命令python3 conn.py
,运行conn.py脚本。
回显结果信息末尾出现”Conn database successfully”,说明依据当前参数已正常连接数据库。
2、执行SQL语句
在/opt/py/db/basic目录下创建demo.py文件:
cd /opt/py/db/basic
touch demo.py
使用vi命令:vi demo.py
,将以下代码添加进demo.py文件中:
import psycopg2
conn=psycopg2.connect(database="demo",user="db_dev",password="Huawei123#$",host="192.168.0.72",port=8000)
#创建指针对象
cur=conn.cursor()
# 创建表
cur.execute("CREATE TABLE employee(id integer,name varchar,sex varchar);")
#插入数据
cur.execute("INSERT INTO employee(id,name,sex) VALUES(%s,%s,%s)",(1,'Steve','M'))
cur.execute("INSERT INTO employee(id,name,sex) VALUES(%s,%s,%s)",(2,'Emma','F'))
cur.execute("INSERT INTO employee(id,name,sex) VALUES(%s,%s,%s)",(3,'Chris','M'))
# 获取结果
cur.execute('SELECT * FROM employee')
results=cur.fetchall()
print (results)
# 关闭连接
conn.commit()
cur.close()
conn.close()
执行以下命令:python3 demo.py
,运行demo.py脚本
回显结果输入如下:
回显信息末尾出现表中的数据,说明依据当前脚本已经执行成功,并将表中的数据取出返回。
征文活动
我正在参加【有奖征文 第28期】华为云GaussDB:与数据库同行的日子!
链接:https://bbs.huaweicloud.com/blogs/415547
- 点赞
- 收藏
- 关注作者
评论(0)