IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 开发 | Python连接达梦数据库(DM8) -> 正文阅读

[大数据]开发 | Python连接达梦数据库(DM8)

参考文献
https://eco.dameng.com/docs/zh-cn/app-dev/python-python.html
https://eco.dameng.com/docs/zh-cn/start/python-development.html

概要

DMPython

dmPython 是 DM 提供的依据 Python DB API version 2.0 中 API 使用规定而开发的数据库访问接口
dmPython 实现这些 API,使 Python 应用程序能够对 DM 数据库进行访问

我的理解是:
dmPython是python的第三方库,提供了一些访问DM 数据库的模块和方法(例如:python程序调用方法dmPython.connect,即可连接DM 数据库)

DM DPI

dmPython 通过调用 DM DPI 接口完成 python 模块扩展
在其使用过程中,除 Python 标准库以外,还需要 DPI 的运行环境

我的理解是:
dmPython与DM DPI相比,更高级更抽象(是面向Python设计的接口,类似PHP的DM PHP);DM DPI负责实现较底层的一些模块或方法(即我认为DM DPI是面向DM数据库设计的接口),故dmPython需要调用DM DPI

【综上】
我认为,PHP程序与DM数据库的交互 = PHP程序 + dmPython + DM DPI + DM数据库

环境介绍

软件版本
DM数据库DM8
PythonPython 3.7.9

安装DM8数据库

参考:
https://eco.dameng.com/docs/zh-cn/start/install-dm-linux-prepare.html
https://blog.csdn.net/weixin_41709724/article/details/121101353

安装Python

  • 安装Python步骤(暂时略过)
Python版本如下
[root@dw1 dpi]# python3 --version
Python 3.7.9
  • 编译安装dmPython

检查编译工具gcc(如果没有就安装下)

[root@dw1 dpi]# rpm -qa|grep gcc
libgcc-7.3.0-20190804.35.p02.ky10.x86_64
gcc-7.3.0-20190804.35.p02.ky10.x86_64

检查是否有python3-devel(如果没有就安装下)

[root@dw1 dpi]# rpm -qa|grep python3-devel
python3-devel-3.7.9-6.ky10.x86_64

安装完 DM 数据库软件后,在安装路径下的 drivers 目录下,找到 dmPython 的驱动源码

[root@dw1 python]# cd /home/dmdba/dmdbms/drivers/python
[root@dw1 python]# ls
django155  django196  django223  django317  dmPython  sqlalchemy

进入到 dmPython 驱动源码目录

[root@dw1 python]# cd dmPython/
[root@dw1 dmPython]# pwd
/home/dmdba/dmdbms/drivers/python/dmPython

构建工具setup.py的应用场景
https://www.cnblogs.com/maociping/p/6633948.html

编译安装dmPython这个python包,安装到指定的python库里

[root@dw1 dmPython]# python3 setup.py install

执行编译安装后,dmPython被安装到了如下目录
[root@dw1 dmPython-2.3-py3.7-linux-x86_64.egg]# pwd
/usr/local/lib64/python3.7/site-packages/dmPython-2.3-py3.7-linux-x86_64.egg

可以看到生成了dmPython.py文件
[root@dw1 dmPython-2.3-py3.7-linux-x86_64.egg]# ll dmPython.py
-rw-r--r-- 1 root root 313 1130 15:24 dmPython.py

【注意 1】
dmPython 源码依赖 DM 安装目录中提供的 include 头文件,编译安装前需要检查是否安装 DM 数据库软件,并设置 DM_HOME 环境变量。

此处,直接在安装DM数据库的服务器中,运行Python程序

  • 检查dmPython安装情况

编译安装结束后使用 pip3 list 命令查看是否安装成功

[root@dw1 dmPython]# pip3 list | grep dmPython
dmPython               2.3
  • 设置LD_LIBRARY_PATH 环境变量

dmPython 通过调用 DM DPI 接口完成 Python 模块扩展。在其使用过程中,除 Python标准库以外,还需要 DPI 的运行环境。

配置环境变量LD_LIBRARY_PATH,便于需要调用libdmdpi.so时,可以找到它
vi /root/.bash_profile
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/dmdba/dmdbms/drivers/dpi/
source /root/.bash_profile

使用Python与DM数据库交互

dmPython接口详解
https://eco.dameng.com/docs/zh-cn/pm/dmpython-interface.html

通过Python交互式编程,与数据库进行交互
在这里插入图片描述
【注意 1】
数据库的IP、端口、用户名、密码需根据实际情况进行修改

Python返回的结果与disql查询的结果相同(SYSSSO、SYSDBA、SYS、SYSAUDITOR)

SQL> select username from dba_users;

行号     username  
---------- ----------
1          SYSSSO
2          SYSDBA
3          SYS
4          SYSAUDITOR

已用时间: 4.973(毫秒). 执行号:1200.

python代码如下:

python3 
import dmPython
conn=dmPython.connect(user='SYSDBA',password='SYSDBA',server='192.168.8.10', port=5236)
cursor = conn.cursor()
cursor.execute('select username from dba_users')
values = cursor.fetchall()
print(values)
cursor.close()
conn.close()

达梦云适配中心:
https://eco.dameng.com

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-12-03 13:06:19  更:2021-12-03 13:08:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:09:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码