对于那些不知道的人来说,Matillion是一个ETL/ELT工具,可以用来处理雪花数据流(以及其他)。一个有趣的特性是,我们可以用bash或python编写脚本任务。
我过去在方面也有过类似的经验,在那里也可以在任务中编写C#。
IMHO显示了两个大的缺陷
存储为"blob“的
。
Matillion“作业”存储为json,并且像SSIS一样,不可能比较同一作业的两个版本,无论更改有多小,在一个简单的文本窗口中在python中编码一些很大的东西是不可想象的。
因此,我想在Matillion之外编写Python代码,并将Matillion任务作为我在外部编写的不同函数/包之间的“粘合剂”。
有人有这样做的经验吗?
如何使我的Python文件/包可供Matillion脚本使用?我如何处理我的工作的不同Matillion“版本”中的Python包的不同版本?
谢谢
发布于 2021-11-01 17:58:19
我相信你现在可能已经想出了什么办法。对于每个人来说,如果他们正在寻找,以下是另一种方法:
在Matillion中有一个python脚本组件。我们可以使用它来触发Matillion之外的python脚本。我一直在用下面的片段来做这件事:
import sys
import os
return_var=os.system("sshpass -p <Remote_Machine_User_Password> ssh <Remote_Machine_User>@<Remote_Machine_IP> -o StrictHostKeyChecking=no '/path/to/python/executable/in/remote/machine /path/to/python/script/in/remote/machine'")
print(return_var)谢谢!
发布于 2020-06-16 05:12:00
要回答您的问题:“如何使我的Python文件/包可供Matillion脚本使用?我如何处理我的工作中不同版本的Python包?”
我认为Matillion中的"bash“组件将对您有所帮助。这里唯一的要求是,您应该能够将ssh从单体服务器转移到存在外部python包的任何其他服务器。
在Matillion作业的bash组件中,只需将ssh代码包含到远程服务器和命令行中,就可以执行python包。我相信“这里的医生”或“这里的文件”将对你有帮助:
ssh -T $remote_server_ip << doc
ls -lrt
python /path/to/python_script/python_script.py
doc关于您关于版本控制的问题,我不确定,但我也有兴趣知道一个解决方案。
谢谢
https://stackoverflow.com/questions/60524644
复制相似问题