写点什么

Yelp 发布大规模管理 S3 服务器访问日志的方案

作者:Craig Risi

  • 2025-12-22
    北京
  • 本文字数:1663 字

    阅读完需:约 5 分钟

大小:822.81K时长:04:40
Yelp 发布大规模管理 S3 服务器访问日志的方案

在这篇工程实践文章中,Yelp 详细介绍了他们如何构建一套可扩展且具备成本效率的日志处理流水线,用于在全公司范围内处理 Amazon S3 的服务器访问日志(SAL),并成功突破了原始日志在高规模场景下面临的存储成本高、查询效率低等传统瓶颈。文章系统性地梳理了 Yelp 在日志体量、存储开销以及查询性能方面遇到的挑战,以及他们如何通过工程手段让对象级日志在大规模场景下变得可行。

 

目前,Yelp 每天都会产生 TB 级别的访问日志。这些日志虽然最初以纯文本形式写入,但随后会被转换为紧凑的 Parquet 格式归档文件,从而可以被 Amazon Athena 等查询工具高效分析。通过定期执行的“压缩”流程,原本分散的大量纯文本日志对象会被合并为数量更少、体积更大的 Parquet 文件,这一过程将整体存储空间减少了约 85%,同时将对象数量削减了 99.99% 以上。在显著降低存储成本的同时,也让权限排查、成本归因、事故调查以及数据保留分析等查询场景变得快速而经济。

 

在底层架构上,这套系统使用 AWS Glue Data Catalog 来统一管理跨多个 AWS 账号的日志 schema,并结合定时批处理作业、Lambda 函数以及基于分区投影的表设计,实现稳定且高度自动化的日志摄取流程。考虑到 SAL 本身允许延迟或重复投递日志,系统在写入时采用幂等设计,从而避免数据重复。同时,一旦日志内容被安全归档,原始对象就会被打上生命周期管理标签,按策略自动过期清理。

 

这套访问日志系统也支撑了多种关键的运维和治理场景。工程师可以查询某个具体对象在特定时间点是否被访问或被拒绝,用于权限和安全排查;也可以按 IAM 角色聚合 API 调用情况,从而分析不同服务或团队的访问成本;在数据治理层面,通过将访问日志与 S3 inventory 结合,团队能够识别长期未被访问的对象,并在确保安全的前提下进行清理。

Yelp 的这项工作具有双重意义。一方面,它证明了长期以来被认为“过于昂贵或难以运维”的 S3 对象级访问日志,在合理的架构设计下完全可以实现规模化落地;另一方面,它为希望提升云存储环境中可观测性、合规能力和审计能力的组织,提供了一套可参考的工程范式。随着企业对数据治理、审计以及成本可视化需求的持续增强,Yelp 的实践展示了一种在不显著推高存储成本的前提下,仍能保持良好查询能力的现实路径。

 

与 Yelp 的实践相呼应,业界也存在多种采用这种被 Yelp 称作是“大规模 S3 服务器访问日志”的类似设计模式方案。

 

例如,Upsolver 作为一款数据湖与 ETL 平台,内置了对 S3 访问日志的摄取支持,可将日志转换为面向分析的格式并针对查询引擎进行优化,其 S3 访问日志的处理流程与 Yelp 的方案高度相似,均围绕日志摄取、格式转换以及通过 Amazon Athena 等 SQL 引擎进行查询展开。这种方案让团队能跳过手搓自定义日志访问流水线的同时,仍能获得规模化日志分析的好处。

 

AWS 官方同样发布过一套基于 Glue 作业处理 S3 服务器访问日志的参考架构,尤其在与 Ray 结合用于可扩展的 Python 处理场景中具有参考价值。该方案通过对日志进行分区、转换为 Parquet 格式并注册到数据目录中,再使用 Athena 或可视化处理工具 Amazon QuickSight 进行分析,本质上复现了 Yelp 所采用的“压缩 + 表结构 + 数据目录 + 查询”的整体模式,只不过是以 AWS 托管方案的形式提供。

 

此外,在更通用的日志和事件型数据湖场景中,诸如 Apache Druid,以及 Presto/Trino 等系统,常被用作包括 S3 对象存储的底层查询引擎。当日志被转换为列式存储格式(如 Parquet、ORC,或通过 Apache Iceberg 等湖表格式进行管理)后,这些引擎可以作为可扩展、低延迟的查询层,为访问日志、审计日志或事件日志提供支撑。

 

对于需要近实时搜索与告警能力的场景(例如安全分析或异常检测),AWS 的博文中还提到了将 S3 访问日志通过 Lambda 和摄取管道导入 OpenSearch,并使用 Kibana 进行可视化分析的方案。虽然这种方式在长期存储效率上不如 Parquet + Athena 的组合,但在安全、合规或运维监控等场景中,可以提供更即时的调查与响应能力。

 

原文链接:

https://www.infoq.com/news/2025/12/yelp-s3-server-access-logs/

2025-12-22 10:121

评论

发布
暂无评论

AIP智能体平台:解锁未来软件开发的新篇章

大东(AIP智能体运营专员)

人工智能

数字先锋 | “点击就成片”,中国电商人是懂做生意的!

天翼云开发者社区

云计算 存储 智能算力

Babylon.js 开发框架的优缺点分析

北京木奇移动技术有限公司

软件外包公司 webgl开发 babylon.js

通过数据驱动的方式实现自动化测试框架封装

测试人

软件测试

Byteman 使用指南(一)

FunTester

人与AI协作的未来:共存还是竞争?

天津汇柏科技有限公司

AI 人工智能

《HAP信创生态白皮书》正式发布

明道云

首批!云高性能计算平台CHPC通过云超算资质测评,百度智能云引领算力服务新高度!

Baidu AICLOUD

高性能 高性能计算

软件工程3.0时代,AI落地研效成熟时

思码逸研发效能

研发效能 AIGC 研发效能度量 研发效能管理

Babylon.js 开发框架的主要特点

北京木奇移动技术有限公司

软件外包公司 webgl开发 babylon.js

腾讯一面:那些数据库的高频问题

王中阳Go

数据库 腾讯 MySQL 高可用 面试问题

AIP智能体平台:开启教育与科技的新篇章

大东(AIP智能体运营专员)

一文教你如何本地部署玩转DeepSeek-V3,免费体验100度算力包跑通!

九章云极DataCanvas

开发 #编程 DeepSeek v3

HttpRunner 接口测试框架

测试人

软件测试

信息安全小课堂开讲啦!大伙看这里!

行云管家

网络安全 信息安全 数据安全

HashData 数智一体化平台:践行「数据+AI」策略,助力企业释放数据价值

酷克数据HashData

敏捷不是拖延借口,如何把控准时交付?

禅道项目管理

敏捷开发 项目管理软件 优先级 准时交付 sprint计划

理工人的假期带娃搭子,和孩子一起动手建水塔,筑大坝……

博文视点Broadview

Three.js 的优缺点分析

北京木奇移动技术有限公司

three.js 软件外包公司 webgl开发

2024央国企十佳上云典型案例,拿下!

天翼云开发者社区

云计算 AI 公有云 混合云 大模型

鸿蒙原生游戏上新!《王者荣耀》鸿蒙版上线华为游戏中心

最新动态

Yelp 发布大规模管理 S3 服务器访问日志的方案_架构_InfoQ精选文章