首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有可能在Matillion中编写“适当的”Python代码?

是否有可能在Matillion中编写“适当的”Python代码?
EN

Stack Overflow用户
提问于 2020-03-04 11:05:23
回答 2查看 980关注 0票数 1

对于那些不知道的人来说,Matillion是一个ETL/ELT工具,可以用来处理雪花数据流(以及其他)。一个有趣的特性是,我们可以用bash或python编写脚本任务。

我过去在方面也有过类似的经验,在那里也可以在任务中编写C#。

IMHO显示了两个大的缺陷

存储为"blob“的

  1. SSIS包使它们非常不适合版本控制。任何微小的更改(比如在管道上调整任务)通常都会使两个版本(实际上是任务之间的impossible
  2. Sharing代码)进行比较,这是非常困难的(可以吗?)

Matillion“作业”存储为json,并且像SSIS一样,不可能比较同一作业的两个版本,无论更改有多小,在一个简单的文本窗口中在python中编码一些很大的东西是不可想象的。

因此,我想在Matillion之外编写Python代码,并将Matillion任务作为我在外部编写的不同函数/包之间的“粘合剂”。

有人有这样做的经验吗?

如何使我的Python文件/包可供Matillion脚本使用?我如何处理我的工作的不同Matillion“版本”中的Python包的不同版本?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2021-11-01 17:58:19

我相信你现在可能已经想出了什么办法。对于每个人来说,如果他们正在寻找,以下是另一种方法:

在Matillion中有一个python脚本组件。我们可以使用它来触发Matillion之外的python脚本。我一直在用下面的片段来做这件事:

代码语言:javascript
复制
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)

谢谢!

票数 2
EN

Stack Overflow用户

发布于 2020-06-16 05:12:00

要回答您的问题:“如何使我的Python文件/包可供Matillion脚本使用?我如何处理我的工作中不同版本的Python包?”

我认为Matillion中的"bash“组件将对您有所帮助。这里唯一的要求是,您应该能够将ssh从单体服务器转移到存在外部python包的任何其他服务器。

在Matillion作业的bash组件中,只需将ssh代码包含到远程服务器和命令行中,就可以执行python包。我相信“这里的医生”或“这里的文件”将对你有帮助:

代码语言:javascript
复制
ssh -T $remote_server_ip << doc
ls -lrt
python /path/to/python_script/python_script.py

doc

关于您关于版本控制的问题,我不确定,但我也有兴趣知道一个解决方案。

谢谢

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60524644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档