从S3导入数据到SLS看似简单的数据搬运,实则面临三大核心技术挑战:
挑战一:海量小文件的实时发现
许多AWS服务(如CloudTrail、ALB)会持续向S3写入小文件,每分钟可能产生成百上千个文件。而S3的ListObjects API只支持按字典序遍历,不支持按时间过滤。假设bucket中已有上亿个历史文件,全量遍历可能需要数分钟,无法满足实时性要求。
挑战二:流量突发的弹性应对
业务流量波动性大,电商大促时日志量可能从平时每分钟1GB飙升到10GB甚至更高。系统需要在几分钟内自动感知变化并完成扩容,否则会导致数据积压影响实时分析和告警。
挑战三:数据格式多样性与成本控制
S3中的日志涉及多种压缩格式(gzip、snappy、lz4等)和数据格式(JSON、CSV、Parquet等),还可能包含脏数据。如果先原样导入再处理,会产生额外的存储和计算成本。