代码之家  ›  专栏  ›  技术社区  ›  Brian

寻找更好的架构从生产数据库生成报告

  •  0
  • Brian  · 技术社区  · 7 年前

    在我工作的公司里,我要做的工作之一是编写程序,利用生产数据库中存储的数据生成业务报告(例如,上个月访问我们网站的用户数)。

    我们使用AWS lambda函数和复杂的MySQL查询来生成报表(.csv文件)。

    enter image description here

    这种架构有一些缺点:

    1. MySQL查询通常很复杂。我是说他们包括很多 join 和子查询,这使得代码难以理解和维护。

    2. 数据库架构更改后,某些查询可能无法工作。

    3. AWSλ函数的最大超时时间为5分钟。当数据太大时,我们必须将一个lambda函数拆分为多个lambda函数。

    如何使用其他Amazon web服务来解决这些问题?

    我尝试过AWS Glue,但还没有找到一种简单的方法将复杂的MySQL查询转换为python脚本,以用于AWS Glue中的工作。

    Amazon Athena只能处理存储在S3中的数据。它不能直接处理存储在Amazon RDS中的数据。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Jørgen Frøland    7 年前

    我们使用Matillion(第三方软件)作为我公司的ETL工具,设计用于AWS(或谷歌)云。但这在很大程度上依赖于AWS Redshift。如果你能把你的数据移到Redshift并在那里工作,那么Matillion对你来说是一个非常好的选择。在Matillion中,您可以设置完成所有工作的工作流,并将其可视化到图表中。缺点是Matillion有成本。但既然你是指你的公司,我想你可以投资于其他工具。我还将Matillion与Lambda、S3、Redshift、Glue等一起使用,因为您可以在Matillion中运行Python脚本,所以可以根据需要组合这些脚本。

    另外,我不为马蒂利昂工作,也不会从推荐马蒂利昂中得到任何好处。

    推荐文章