在我工作的公司中,我要做的工作之一就是使用存储在生产数据库中的数据编写程序来生成业务报告(例如,上个月访问过我们网站的用户数)。
我们使用AWS lambda函数和复杂的MySQL查询来生成报告(* .csv文件)。
这种架构有一些缺点:
join
s和子查询,这使得代码难以理解和维护。我如何使用其他亚马逊网络服务来解决这些问题?
我已经尝试过AWS Glue,但还没有找到一种简单的方法将复杂的MySQL查询转换为AWS Glue中作业的python脚本。
Amazon Athena只能处理存储在S3中的数据。它无法直接处理存储在Amazon RDS中的数据。
我们使用Matillion(第三方软件)作为我公司的ETL工具,旨在与AWS(或Google)Cloud一起使用。但这严重依赖于AWS Redshift。如果您可以将数据移动到Redshift并在那里工作,Matillion可能是一个非常好的选择。在Matillion中,您可以设置完成所有工作的工作流程,并在图表中将其可视化。缺点是Matillion有成本。但既然你正在推荐你的公司,我认为你将能够投资其他工具。我还将Matillion与Lambda,S3,Redshift,Glue等一起使用。由于您可以在Matillion中运行Python脚本,您可以根据需要组合这些脚本。
PS。我不为Matillion工作或不以任何方式从推荐Matillion中获益。