Ash*_*han 3 amazon-s3 amazon-web-services amazon-dynamodb amazon-athena
我有一个用例来查询S3日志中的请求URL.亚马逊最近推出了Athena来查询S3文件内容.在成本和性能方面,最佳选择是什么?
对于通过Web日志运行查询,Amazon DynamoDB将是一个糟糕的选择.
DynamoDB速度非常快,但前提是您要根据主键(" 查询 ")检索数据.如果您正在对表中的所有数据运行查询(例如,要查找未编制索引的密钥中的特定IP地址),DynamoDB将需要扫描表中的所有行,这需要花费大量时间(" 扫描" ").例如,如果您的表配置为每秒100次读取并且您正在扫描10000行,则需要100秒(100 x 100 = 10000).
提示:不要在NoSQL数据库中执行全表扫描.
Amazon Athena是扫描日志文件的理想选择!无需预先加载数据 - 只需针对已存储在Amazon S3中的日志运行查询.使用标准SQL查找您正在寻找的数据.另外,您只需支付从磁盘读取的数据.文件格式有点奇怪,所以你需要正确的CREATE TABLE语句.
另一种选择是使用Amazon Redshift,它可以跨越数十亿行的GB,TB甚至PB数据.如果要对日志数据进行频繁的查询,Redshift非常棒.但是,作为标准SQL数据库,您需要将数据预加载到Redshift中.遗憾的是,Amazon S3日志文件不是CSV格式,因此您需要将文件ETL转换为合适的格式.对于偶尔的临时请求,这是不值得的.
许多人还喜欢使用Amazon Elasticsearch Service扫描日志文件.同样,文件格式需要一些特殊处理,加载数据的管道需要一些工作,但结果是对S3日志文件进行近实时交互式分析.
请参阅:使用ELK堆栈分析S3日志
| 归档时间: |
|
| 查看次数: |
2058 次 |
| 最近记录: |