知识卡片
预计算的取舍
内容
视图设计是在批处理预计算量、视图大小和查询时计算量之间取平衡。预计算越多,查询越快但存储越大;预计算越少,服务层越灵活但延迟风险越高。
参考来源
- 位置:《大数据系统构建:可扩展实时数据系统构建原理与最佳实践》第10章《服务层概述》"10.1 服务层的性能指标"一节(源文件:_epub-src/OEBPS/Text/079.xhtml)
- 结论依据:原文对比[URL,hour]键/值索引与按URL汇总排序索引两种设计,说明前者延迟高、吞吐差("集群每秒只能服务2500个查询"),后者通过把预计算做得更彻底换取"只需要一次磁盘寻道和扫描",证明预计算量、视图大小与查询时计算量之间存在直接权衡。
- 原始内容:这两个示例证明了构建服务层索引的方式对查询的性能有显著影响……这个想法是将单个URL的页面浏览信息收集在同一个分区并进而存储。那么获取页面浏览量将只需要一次磁盘寻道和扫描,而不是大量的寻道次数……Lambda架构一个至关重要的优势是,它允许根据查询定制服务层来提升效率。