mysql—寻找更好的体系结构来从生产数据库生成报告

bd1hkmkf  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(444)

在我工作的公司里,我必须做的工作之一就是编写程序,利用生产数据库中存储的数据生成业务报告(例如,上个月访问我们网站的用户数)。
我们使用aws lambda函数和复杂的mysql查询来生成报告(*.csv文件)。

这种体系结构有一些缺点:
mysql查询通常很复杂。我的意思是他们包括很多 join s和子查询,这使得代码难以理解和维护。
数据库模式更改后,某些查询可能无法工作。
aws lambda函数的最大超时时间为5分钟。当数据太大时,我们必须将一个lambda函数拆分为多个lambda函数。
如何使用其他amazon web服务来解决这些问题?
我已经尝试过aws glue,但是还没有找到一种简单的方法将复杂的mysql查询转换成python脚本,以便在aws glue中执行任务。
amazon athena只能处理存储在s3中的数据。它不能直接处理存储在amazonrds中的数据。

w8rqjzmb

w8rqjzmb1#

我意识到你一年前就提出过这个问题——一个更快的方法是:
确定mysql表的刷新时间和策略,并使用该信息在matillion中设置数据管道,以增量方式将数据传递到snowflake/gcp/redshift。
创建报表sql的snowflake/gcp/redshift版本,然后对这些表生成报表。

rhfm7lfc

rhfm7lfc2#

我们使用matillion(第三方软件)作为我公司的etl工具,设计用于aws(或google)云。但这在很大程度上依赖于aws红移。如果您可以将数据移动到红移并从那里开始工作,matillion将是一个非常好的选择。在matillion中,您可以设置完成所有工作的工作流,并将其可视化为图表。缺点是matillion有成本。但既然你是指你的公司,我想你将能够投资额外的工具。我还将matillion与lambda、s3、redshift、glue等一起使用。因为您可以在matillion中运行python脚本,所以您可以根据需要组合这些脚本。
另外,我不为马蒂利昂工作,也不会从推荐马蒂利昂中获益。

相关问题