我应该使用哪种AWS服务来处理大型文本文件?

时间:2018-06-24 18:38:55

标签: amazon-web-services amazon-s3 aws-lambda amazon-kinesis

我有一个用例,需要读取一个非常大的文本文件,其中最多可以包含一百万条记录。对于每条记录,我必须执行一些验证,然后将其转换为其他JSON,然后将其推送到SNS主题。我不需要顺序阅读它们,因此可以使用并行性。一种选择是将文件放入S3存储桶中,然后使用lambda处理文件,该文件将记录(散开地)散发到多个lambda函数中,这些函数负责转换(和验证),然后将其推送到SNS。另一种选择是使用运动学流,并使用多个lambda执行相同的操作。 Multiple Lambdas using kinesis streams

理想的方法是什么?

  1. S3-> Lambda->多个Lambdas-> SNS
  2. 运动->多个Lambda(或Lambda->多个Lambda-> SNS)

1 个答案:

答案 0 :(得分:2)

您可能想研究AWS Glue。该服务可以对S3中存储的大多数内容执行ETL,因此它可以避免您自己执行此操作的麻烦。结合S3触发Lambda,这可能是一个有趣的选择?

编辑: 如果可以使用RegExs解析文件,请尝试使用Athena吗?雅典娜相对便宜,可以轻松处理较大的文件。

如果记录的长度可预测,则可以使用Range请求在将文件传递给Lambda之前对文件进行分割,以防止长时间运行。

此外,您是否尝试过使用Lambda解析和分块文件? 100万条记录并不多,仅行拆分和传递(大块)验证(或也许是SNS)就不成问题了。