1

我有键值格式的日志。这些键值对可以针对不同的日志进行更改。想要对其进行分析。由于它是非结构化的,我认为我应该放入 dynamodb 但对于分析而言,redshift 更好。我也可能不必将所有键值保留到 redshift 中,但这是可选的。我在想的几个选项:

  1. 将日志放入 S3。然后使用复制命令;但我找不到如何在 COPY 命令中将键值转换为 JSON 格式的方法,因为复制只需要 json 或 csv !
  2. 使用Kinesis Stream获取流式日志文件。但是,使用这些日志文件的最佳方式是什么?通过Lambda 或 Kinesis 客户端库!我在想的一种选择是使用 kinesis 代理格式化程序将文件格式化为 JSON,但这不是很灵活。在那之后呢!
  3. 将日志文件放入 cloudwatch 日志中!但是如何消费呢
4

2 回答 2

2

亚马逊 AWS 发布了一个关于它的非常有趣的博客。看看这是否满足您的要求。

使用 AWS EMR 和 DataPipeline 对 Web 服务器日志进行 ETL 处理

对于实时,您还可以查看反向工程 Kinesis Firehose Stream。它将您的数据直接传输到 S3 或 Redshift。您可以修改 Kinesis 生产者或发布者以转换 json 或 csv 格式的日志以执行加载操作。

请在下方评论以获得更多帮助。

于 2016-07-13T05:50:43.100 回答
1

如果您在 S3 中有数据,请尝试使用 AWS Data Pipeline 中的“将数据从 S3 加载到 Redshift”模板。该模板负责将数据从 S3 加载到 redshift

注意:它可能会使用 EMR,因此可能会启动 EC2 来处理数据,直到将它们加载到 redshift。

于 2016-07-08T11:16:40.393 回答