Aws Vpc 流日志从 s3 到 athena

Aws Vpc flow logs to athena from s3

我打算将当前位于 s3 中的 vpc 流日志推送到 athena 中。 每当 vpc 流日志将日志文件推送到 s3 事件时,将触发将数据发送到 athena 并检查是否有超过 30 天的数据将其删除。

有什么建议吗??

我的意见:使用复制命令将日志放入 redshift。

使用的查询: 创建外部 TABLE 如果不存在 vpc_flow_logs ( 版本整数, 帐户字符串, 接口字符串, 源地址字符串, 目标地址字符串, 源端口整数, 目的港诠释, 协议诠释, numpackets int, numbytes bigint, 开始时间整数, 结束时间, 动作字符串, 日志状态字符串 ) 分区依据(date 日期) 行格式分隔 由 ' ' 终止的字段 地点 's' TBLPROPERTIES ("skip.header.line.count"="1");

Amazon Athena 中的数据不是 "stored"。 相反,在 Amazon Athena 中配置了一个 table,它 指向数据 位于 Amazon S3。

当查询在 Amazon Athena 中运行时,它会自动查看该位置的所有文件

因此,无需移动或复制日志文件。只需将 Athena table 指向当前存储日志文件的位置。

如果您希望删除旧日志(只有 30 天的数据),请配置 Amazon S3 Object lifecycle management 以在 30 天后删除文件。

参见:Querying Amazon VPC Flow Logs - Amazon Athena

如果您希望经常分析数据,那么将数据加载到 Amazon Redshift 中可能是值得的。这是因为 Amazon Athena 是根据从磁盘读取的数据量收费的。因此,运行 跨数据的许多查询可能更昂贵 。或者,您可以将日志文件转换为压缩的 Parquet 格式,这使得 Athena 查询效率更高,从而减少从磁盘读取的数据量,从而降低使用 Athena 的成本。但是,请从上述建议开始,看看您在做出更改之前最终使用了多少 Athena。