python连接dm8达梦数据库

本文共有2400个字,关键词:supersetDM达梦数据库

问题:python(superset)如何连接达梦数据库?sqlalchemy如何连接dm8?

解决:需要两个驱动dmPython,sqlalchemy_dm

方法:

1、复制dmPython,sqlalchemy等文件夹(本人superset和达梦数据库不在同一服务器,所以需要复制)

cd /opt/dm8   // 本人达梦数据库安装服务器
mkdir fakedm8
cp -r ./bin ./fakedm8
cp -r ./include ./fakedm8
cp -r ./drivers/python/dmPython/ ./fakedm8
// 注意:使用2.0.0报错AttributeError: type object 'DMDialect_dmPython' has no attribute 'dbapi'
// 使用1.1.10时报错AttributeError: 'DMExecutionContext_dmPython' object has no attribute 'compiled_parameters'
cp -r ./drivers/python/sqlalchemy1.4.6/ ./fakedm8
scp -r fakedm8/ hadoop01:~/   // 将复制的文件夹传送到superset服务器

2、配置fakedm8路径

mv ~/fakedm8/ /opt/module/
vim ~/.bash_profile  // 加入下面三行内容
    export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/module/fakedm8/bin"
    export DM_HOME="/opt/module/fakedm8"
    export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool
source ~/.bash_profile

3、安装dmPython,sqlalchemy_dm,注:需要使用superset(.venv)环境的python,并到相应目录下,安装前必须先执行了第2步,如果tmux的话,必须是在当前会话source ~/.bash_profile

cd /opt/module/fakedm8/dmPython
python setup.py install
cd /opt/module/fakedm8/sqlalchemy1.4.6
python setup.py install

4、重启superset

superset.sh restart  // 这个shell脚本请自己写或者手动kill superset进程

5、superset连接达梦的字符串

注意:此处schema不能当作数据处用/myschema
dm+dmPython://SYSDBA:SYSDBA@hadoop02:5236?schema=myschema

注意:连接的数据库需要指定primary key
测试通过:

环境:ubuntu
安装软件:sqalchemy==1.4.50
    dmPython、sqlalchemy1.4.6 是从x86,Redhat7安装文件中找的,测试从windows安装文件中找无用

sqlalchemy连接dm测试

from sqlalchemy import create_engine
engine = create_engine('dm+dmPython://SYSDBA:SYSDBA@localhost:5236')

dmPython连接dm测试

import dmPython
cursor = dmPython.connect(user='SYSDBA', password='SYSDBA', server='127.0.0.1', port='5236', autoCommit=True).cursor()
#可以直接cursor = dmPython.connect()进行连接也可以cursor = dmPython.Connect()进行连接,三者完全等价。
city = cursor.execute('select * from DMHR.CITY')

注:
如果报错ImportError: libdmdpi.so: cannot open shared object file: No such file or directory
这是因为在当前tmux tab中没有运行source ~/.bash_profile

参考:

https://blog.csdn.net/it_farmer_01_17/article/details/130631766
https://blog.csdn.net/qqQi_/article/details/133064594  sqlalchemy连接操作数据库测试
https://blog.csdn.net/qq_43350987/article/details/120871363  dmPython连接操作数据库测试
版权声明:本文为作者原创,如需转载须联系作者本人同意,未经作者本人同意不得擅自转载。
添加新评论
暂无评论