对于那些不知道的人,Matillion 是一个 ETL/ELT 工具,可用于处理雪花数据流(以及其他)。一个有趣的特性是我们可以用 bash 或 python 编写脚本任务。
过去我在使用 SQL Server Integration Services 时也有过类似的经历,也可以在任务中编写 C#。
恕我直言,这提出了两个大缺陷
- 存储为“blob”的 SSIS 包使它们非常不适合版本控制。任何微小的变化(比如只是调整管道上的任务)通常会使两个版本之间的比较几乎不可能
- 在任务之间共享代码非常困难(有可能吗???)
Matillion“作业”存储为 json,并且与 SSIS 一样,无法比较同一作业的两个版本,无论变化有多大。此外,在简单的文本窗口中用 python 编写大代码也是不可想象的
所以,我想在 Matillion 之外编写我的 Python 代码,并使用 Matillion 任务作为我在外面编写的不同函数/包之间的“粘合剂”。
有人有这样做的经验吗?
如何使我的 Python 文件/包可用于 Matillion Python 脚本?如何在我的工作的不同 Matillion“版本”中处理不同版本的 Python 包?
谢谢