【问题标题】:Aws: best approach to process data from S3 to RDSAws:处理从 S3 到 RDS 的数据的最佳方法
【发布时间】:2018-01-12 12:55:31
【问题描述】:

我想,我正在尝试实施一个非常简单的过程,但我真的不知道什么是最好的方法。

我想从 S3 读取一个大的 csv(大约 30gb)文件,进行一些转换并将其加载到 RDS MySQL 中,我希望这个过程是可复制的。

我认为最好的方法是 Aws 数据管道,但我发现这项服务更适合在多次转换后将来自不同来源的数据加载到 redshift。 我还看到创建管道的过程很慢而且有点混乱。 然后我找到了Coursera的dataduct wrapper,但是经过一番研究,这个项目似乎已经被放弃了(最后一次提交是一年前)。

所以我不知道是否应该继续尝试使用 aws 数据管道或采取其他方法。

我还阅读了 AWS Simple Workflow 和 Step Functions,但我不知道它是否更简单。 然后我看了一个AWS的胶水的视频,看起来不错,可惜还没有,不知道亚马逊什么时候推出。

如你所见,我有点迷茫,谁能启发我?

提前致谢

【问题讨论】:

  • Data Pipeline 在 Redshift 之前就已经存在,所以我不确定你为什么认为它主要是为将数据加载到 Redshift 中而设计的。我同意建立管道是缓慢而混乱的。您使用 RDS MySQL 而不是 RDS Aurora 的任何原因? Aurora 能够直接从 S3 中的 CSV 文件加载数据(类似于 Redshift)。
  • 我认为这是因为几乎所有预制模板和示例都涉及加载到 Redshift。 Aurora作为MySQL可以直接加载一个csv,问题是我需要在加载之前转换数据。

标签: amazon-web-services etl


【解决方案1】:

如果您尝试将它们放入 RDS 以便查询它们,还有其他选项不需要将数据从 S3 移动到 RDS 来执行类似 SQL 的查询。

您现在可以使用Redshift spectrum 从 S3 读取和查询信息。

使用 Amazon Redshift Spectrum,您可以高效地从 Amazon S3 中的文件中查询和检索结构化和半结构化数据,而无需将数据加载到 Amazon Redshift 表中

第 1 步:为 Amazon Redshift 创建 IAM 角色

第 2 步:将 IAM 角色与您的集群关联

第 3 步:创建外部架构和外部表

第 4 步:在 Amazon S3 中查询您的数据

或者,如果 Redshift 对于需要的工作来说马力太大,您也可以使用 Athena 来查询 S3 中的数据。

Amazon Athena 是一种交互式查询服务,可让您轻松使用标准 SQL 直接在 Amazon Simple Storage Service (Amazon S3) 中分析数据。

【讨论】:

  • 很高兴知道,但我确实需要将数据加载到 RDS MySql 中的关系数据库中,并且我需要这个过程在将来可以复制。由于应用程序要求,我需要它,;-)。
【解决方案2】:

您可以使用 ETL 工具对 csv 数据进行转换,然后将其加载到 RDS 数据库中。有许多开源工具不需要大量的许可成本。这样,您可以将数据提取到工具中,进行转换,然后该工具会将数据加载到您的 MySQL 数据库中。例如,有 Talend、Apache Kafka 和 Scriptella。这里有一些information 用于比较。

我认为 Scriptella 将是这种情况下的一个选择。它可以使用 SQL 脚本(或其他脚本语言),并具有 JDBC/ODBC 兼容的驱动程序。有了这个,您可以创建一个脚本来执行您的转换,然后将数据加载到您的 MySQL 数据库中。而且您将使用熟悉的 SQL(我假设您已经可以创建 SQL 脚本),因此没有很大的学习曲线。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-19
    • 2017-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-18
    • 2021-12-27
    • 2020-06-21
    相关资源
    最近更新 更多