项目场景:
项目采用阿里的数据中台,需在datawork平台上部署python程序。平台中建立pyodps开发节点,可以做python程序部署。中台pyodps文件调试,拉取一遍数据后,程序报错,变量即释放。(20210424)(版本是python2.7)。项目中所有主机无法连接公网。
问题描述:
遇到以下几个问题:
1数据如何从中台读取。
解决:参考pyodps文档。https://pyodps.readthedocs.io/zh_CN/latest/base-tables.html#dataframe。
有两种读取方式,一odps执行sql,二odps直接取表名。
2datawork平台中执行sql遇到一万条数据限制。
解决方法:
一options.tunnel.limit_instance_tunnel参数,可以打开数据限制,文档中有解释。
二get_table,表名直接读取。
3datawork中需要配置odps连接参数么?
解决方法:
一、此项目,datawork中有前辈执行过Pyodps,所以,我只要Import包,就能直接用odps。(pyodps文档中有解释,odps配置一次参数,所有地方可运行。)
二、如果不是此项目,应当是需要配置一遍标识,密码,endpoint节点的。下方链接文档中无特别注释,所以我这么理解。
https://help.aliyun.com/document_detail/137514.html?spm=a2c4g.11186623.6.850.55a89afezCgJiz。
4pyodps涉及建模程序,调试报错,数据量大,慢。报错一遍即重来,要命。(另外,我没拆解成并行程序做计算。还有datawork太多人用,300万条数据也能拉取个17分钟,慢的时候40分钟。)【就get_table函数(这个量级不需要并行的,中台太慢了)】
解决方法:
一【我采取的】局域网内虚拟堡垒主机配置python环境,安装jupyter(或者anaconda)。然后下载pyodps相关包whl文件,coyp到主机上安装。
然后juypter上调试喽,不用一遍一遍拉取数据。
5juyper上pyodps参配置endpoint。中台运维说他不清楚哪个endpoint,给了一个,是错的,搞了我半天(项目过多,endpoint变动过)。(无法连接公网,不是公网endpoint)
解决方法:
一、我直接从datawork上,把odps的endpoint参数.print出来。搞定。
6endpoint是啥。
就是阿里中台 定义的接口,是一串域名地址,用于调度阿里数据中台的资源。