问题拆解
一看这个标题就知道是一个极其麻烦的事,将一系列小问题串起来了,可以分解为以下几个问题:
使用dataworks连接oracle库获取数据 (以下统称DW)
用pyodps处理oracle的数据,并按时进行调度
将数据转换成Excel形式通过邮件发出
这么看来,一份工作干三份活真是刺激。
获取数据
首先得解决数据问题,怎样获取oracle的定制数据
开始考虑的是直接从pyodps脚本中直接建立oracle连接,因为需要运行特定的SQL,然而发现并不行,python连接oracle需要提供Oracle客户端才能连接,本地可以下载Oracle的客户端,连接Oracle从而执行pyodps,但是DW无法安装linux的Oracle客户端,因此这个方案被pass掉了
用数据集成的方式将所有的表同步到Maxcompute中(以下统称MC),但是通过过来后发现SQL中有Oracle的自定义函数(我真是服了),同步来的数据也没法使用(我再去写一个UDF来的时间比这个任务时间都长)。
实属是没办法了,想到了建立数据集成的方式,通过同步来将指定SQL的数据导入MC,但是通常都是