妙用Dataphin的Python三方包管理

本文涉及的产品
智能数据建设与治理Dataphin,200数据处理单元
简介: Dataphin 中的 Python 计算任务不随意增加内置 module 是为了避免安装包过大和升级时间延长。用户可通过执行 "pip list" 或 "pip3 list" 查看内置 module 列表。 Dataphin 的 Python 环境在镜像中固定,无法用户直接修改,但 v3.14 版本起支持在线安装或上传安装三方包,预安装后在任务中显式引入。对于依赖操作系统库的 module,用户需上传包含相应程序的自定义安装包进行预安装。此外,此功能也可扩展用于管理 shell 任务所需的系统程序。

Dataphin 中使用 Python 计算任务时,经常会遇到想要使用的 module 未被系统内置。那为什么 Dataphin 不能随时增加内置 module,也不在新版本中添加更多 module 呢?


问: Datpahin 目前内置了哪些 module,都是什么版本?

答: 各个版本的内置 module 清单可能会有差异,可以在 shell 任务中执行 “pip list” (Python 2.7) 或 “pip3 list” (Python 3.7)来查看内置的 module 清单。


问: Dataphin 每个新版本为啥不能定期将用户所需要的 module 额外内置进去?

答: Dataphin 的用户比较多,各家所需要的 module 不一样,module 版本也有差异。如果全部都内置,安装包会膨胀得很大,升级部署的时间会变长。


问: Dataphin 为啥不能由用户自行管理内置 module,让用户随时可以添加新的 module?

答: Dataphin 是容器化部署,通过镜像文件分发安装部署文件,镜像生成后无法在用户侧修改。Python 的执行环境在镜像中已经固定不可修改,每次运行 Python 脚本,是从镜像“克隆”出的一个可运行的“实例”。在这个“实例”里面,可以安装新的 module,但是运行结束后,“实例”整个会被销毁。所有对“实例”环境本身的“变更”,如安装 Python module,都随之销毁了。


Python 三方包管理

Dataphin 在 v3.14 版本上线了 Python 三方包管理功能,提供了以下能力:

  1. 在线安装 Python 三方包(v4.0+),支持输入 module 的名称,系统自动连接镜像源安装指定 module 在所选 Python 版本下的最新版本。支持配置企业自有的镜像源。使用在线安装的前提是,Dataphin 可以连接到镜像源。连接内置镜像源,需要能连接访问公网。
  2. 上传安装,如果无法使用在线安装或安装过程需要有其他操作,可以使用此种方式。具体使用方式可查看产品文档或根据页面提示说明。


Dataphin 的“Python 三方包”管理功能中的安装实际上是“预安装”,作用是下载安装资源(在线安装)或校验安装资源是否满足安装条件(上传安装)。预安装会在一个虚拟环境真实执行一遍安装动作,成功安装后,整个虚拟环境就被销毁了。当任务需要使用三方包时,需要在任务上显式引入已安装(已预安装)的 module,每次执行 Python 脚本时,系统都会自动在本次的“实例”中重新安装 module ,执行结束后,“实例”就被销毁了。任务显式引入 module 的方式如下:


  1. 新建 Python 或 shell 任务对话框,“Python 三方包”下拉多选所需 module


  1. 编辑 Python 或 shell 任务,在“属性-Python 三方包”中设置 module



Python 三方包管理进阶使用

有一些 Python module 除了 Python 资源外,还依赖操作系统的一些 lib。安装这类 module,可能会遇到 module 安装成功,但是无法正常使用,错误信息告知所依赖外部 lib/程序不存在或版本不满足。下面通过一个示例来说明。


Dataphin 内置的 pyodps 的版本是 0.8.0,有的用户可能需要使用更高版本的 pyodps,比如 0.11.6 。在“Python 三方包”中安装 pyodps-0.11.6 (在线安装或上传*.whl 均可)后,实验执行见下图


可以看到:

  1. pyodps-0.11.6 安装成功
  2. from dataphin import odps 时报错了,提示当前版本依赖 OpenSSL 1.1.1+,而系统当前 OpenSSL 的版本是 1.0.2k。OpenSSL 是操作系统的一个程序,通过 SSL/TLS 方式连接外部服务时,需要调用该程序。


升级 pyodps 到 0.11.6,除了 pyodps 本身外,还需要升级操作系统下的 OpenSSL。下文是步骤说明:

  1. 在本地新建目录(文件夹) openssl
  2. 下载 openssl-1.1.1,下载地址为:  https://www.openssl.org/source/old/1.1.1/openssl-1.1.1k.tar.gz,保存到 openssl 目录下
  3. 在 openssl 目录下新建 shell 脚本 setup.sh, 代码内容如下
#!/bin/bash
# setup.sh

# 执行安装
tar -zxvf openssl-1.1.1k.tar.gz
cd openssl-1.1.1k/
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib
make
make install
mv /usr/bin/openssl /usr/bin/openssl.bak
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl

# 设置环境
echo "/usr/local/openssl/lib" | sudo tee /etc/ld.so.conf.d/openssl.conf
ldconfig
export PATH=/usr/local/openssl/bin:$PATH
  1. openssl 目录下的文件内容如下

  1. 选中 openssl-1.1.1k.tar.gz 和 setup.sh,打包为 openssl.zip,注意: setup.sh 必须在 openssl.zip 的根目录下。
  2. 在 “Python 三方包”管理中,“安装 Python Module”,选择“上传安装-自定义安装包”,上传 openssl.zip, 点击“确定”后开始预安装。

  1. 预安装成功后,在任务中增加 openssl 的引用,重新执行后见下图


写在最后

Python 三方包管理一开始的设计目标只是帮助用户更方便引入 Python module (在线安装或上传 *.whl 安装),发现某些 module 同时还需要对安装或升级操作系统的某些程序后,才增加了“上传自定义安装包”方式安装。聪明的你应该意识到,这种方式也可以用于在 shell 任务中安装一些 shell 任务所需要的系统程序。这个功能已经不完全是“Python 三方包”管理了,而是“三方程序”管理。

相关文章
|
安全 Python
使用Python3.7+Tornado5.1集成新浪微博三方登录(无需企业资质)
新浪微博:山寨版的twitter,各种粉丝的集散地,天朝人民的最爱,基本上网民都人手一个微博账号,所以使用新浪微博账号进行三方登录来提高用户登录体验就显得尤为重要,本次使用Python3+Tornado5来集成微博登录,记录一下,坑还是不少的。
使用Python3.7+Tornado5.1集成新浪微博三方登录(无需企业资质)
|
8月前
|
存储 数据采集 安全
瓴羊Dataphin数据安全能力再升级,内置分类分级模板、上线隐私计算模块
瓴羊Dataphin数据安全能力再升级,内置分类分级模板、上线隐私计算模块
233 0
|
2天前
|
安全 数据挖掘 大数据
开放、兼容的数据建设与治理平台——瓴羊Dataphin“进化论”
Dataphin的技术架构与实践路径,涵盖多引擎兼容、混合云架构、统一资产消费等方面,Dataphin通过持续升级,帮助企业实现全生命周期的数据资产管理,助力企业在大模型时代更好地“建好数据”、“用好数据”。
128 85
开放、兼容的数据建设与治理平台——瓴羊Dataphin“进化论”
|
2天前
|
数据采集 SQL 人工智能
瓴羊Dataphin:AI驱动的数据治理——千里之行,始于标准
数据标准是数据治理的核心抓手,通过梳理数据标准可以有效提升数据质量。瓴羊Dataphin平台利用AI技术简化数据治理流程,实现自动化的数据标准建立、质量规则构建和特征识别,助力企业在大模型时代高效治理数据,推动数据真正为业务服务。
51 26
|
23天前
|
数据采集 自然语言处理 供应链
央国企“严选”的瓴羊,如何让数据“供得出、流得动、用得好”?|【瓴羊Dataphin在信通院2024数据资产管理大会】
在产业变革新浪潮下,数据资产管理步入“繁花时代”,瓴羊高级解决方案专家黄彦之出席2024数据资产管理大会并分享了瓴羊基于12年阿里最佳数据实践,通过Dataphin等产品助力央国企数智化转型的路径与方法。大会发布《数据治理产业图谱3.0》,瓴羊Dataphin入选BUCM板块代表产品,彰显其领先经验。
95 18
|
23天前
|
数据采集 安全 大数据
“点数成金”时代,如何应用全域数据资产治理释放企业数据价值?【瓴羊Dataphin在信通院2024数据资产管理大会】
在“点数成金”时代,企业数据成为宝贵资产。12月18-19日,信通院“2024数据资产管理大会”在京举办,瓴羊政企金融事业部总监徐宁分享了Dataphin在数据治理领域的创新方法论与实践经验,强调数据资产双循环和元数据管理的重要性。瓴羊副总裁王赛获颁数据资产管理专家证书。
79 16
|
3月前
|
存储 人工智能 安全
【荣誉奖项】荣获2024数据治理优秀产品!瓴羊Dataphin联合DAMA发布数据管理技能认证
瓴羊Dataphin连续俩年获得DAMA年度优秀数据治理产品奖,本次与DAMA联合发布“DAMA x 瓴羊 数据管理技能认证”,助力提升全民数据素养。
186 0
【荣誉奖项】荣获2024数据治理优秀产品!瓴羊Dataphin联合DAMA发布数据管理技能认证
|
7月前
|
数据采集 数据可视化 数据管理
【企业实践】台州银行携手瓴羊Dataphin共建数据平台,打造小微金融治理新标杆
台州银行数据治理项目携手瓴羊Dataphin,荣获中国信息通信研究院评为“2023年铸基计划高质量数字化转型典型优秀案例”、数字化研究机构沙丘社区选为“2024中国数据资产管理最佳实践案例”双重认可。
596 4
【企业实践】台州银行携手瓴羊Dataphin共建数据平台,打造小微金融治理新标杆
|
8月前
|
存储 运维 大数据
瓴羊Dataphin发布新能力,实现一体化、轻量化、布局流通
瓴羊Dataphin发布新能力,实现一体化、轻量化、布局流通
196 0
|
8月前
|
人工智能 安全 大数据
喜报|瓴羊Dataphin入选上海市经信委2023创新攻关成果、IDC企业大数据治理研究代表产品
喜报|瓴羊Dataphin入选上海市经信委2023创新攻关成果、IDC企业大数据治理研究代表产品
111 0