Python连接kylin的代码
import pandas as pd
import sqlalchemy # Kylinpy 是一个提供 SQLAlchemy 方言实现的 Python 库
def get_kylin_data(sql, project_name='SDK_DataWarehouse'):
kylin_engine = sqlalchemy.create_engine('kylin://用户名:密码@IP地址:7070/{}'.format(project_name),
connect_args={'timeout': 30})
df = pd.read_sql(sql, kylin_engine)
return df
很多博客上都是这么写的,用sqlalchemy来构建连接。我这里取数是直接用的pandas,将引擎传进去即可。
测试都没问题,在上线的时候遇到一个问题。
问题描述
sqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:kylin
很明显,是在构造kylin_engine
对象的时候,sqlalchemy.create_engine()
方法出错了。
解决方案
很明显,是提示缺少了某个库,无法导入,但不知道具体是什么,只提到了跟kylin有关。
经过线上和线下的库对比,原来是缺少了这个库: kylinpy
pip install kylinpy
安装好了就解决了。我也在requirements.txt文件里面添加上了这个依赖。
我猜原因可能是,sqlalchemy
事先根本不知道我会使用kylin,所以没有自动把这个依赖库安装上。
后记
经过这次错误提醒,我明白了,sqlalchemy
库在构造引擎的时候,会调用对应引擎的包,比如在构造mysql
引擎的时候,应该要对应的安装上pymysql
,同理,其他也可以类推。
另外,欢迎加入 Python数据分析 QQ群,号码:628966400
任何相关问题都可以在群里提出!!!