首页 > 云计算 > 公有云实践 > 亚马逊云科技助力小红书构建极速OLAP平台
关键字: [ 亚马逊云科技中国峰会2024, StarRocks, 极速Olap 平台, 亚马逊云科技构建, 数据存储Amazon S3, 弹性伸缩降本增效, 湖仓一体化架构]
本文字数: 2100, 阅读完需: 10 分钟
在” 亚马逊云科技中国峰会2024” 上, 亚马逊云科技解决方案架构师任田田和小红书技术专家杨正共同介绍了如何在亚马逊云科技上构建极速高性能的OLAP 平台。他们讨论了如何利用亚马逊云科技的多种服务和功能, 如Amazon EC2 Fleet 、Amazon EKS 、Amazon S3 、Amazon Web Services Glue Data Catalog 等, 构建高性能、高可用、可扩展且成本优化的OLAP 平台。他们分享了小红书在使用StarRocks 引擎替换Presto 引擎的实践, 展示了StarRocks 在性能、稳定性、正确性和兼容性方面的优势, 以及通过弹性伸缩实现降本增效的效果。此外, 亚马逊云科技技术服务经理吕文石还介绍了亚马逊云科技在运维自动化、异常检测和响应等方面的卓越运营实践, 以及企业级支持服务的价值。
以下是小编为您整理的本次演讲的精华,共1800 字,阅读时间大约是9 分钟。
在这场分享会上, 亚马逊云科技的解决方案架构师任田田首先概述了亚马逊云科技为客户提供的OLAP 选择。她介绍说, 亚马逊云科技托管的数据仓库包括Amazon Redshift, 这是一款基于列式存储和MPP 架构的数据仓库, 能高效执行复杂分析查询。如果借助Redshift Spectrum, 客户还可直接查询存储在S3 中的数据。对于复杂ETL 需求, 亚马逊云科技会推荐使用Amazon EMR, 这是一款面向阿帕奇生态的大数据分析及机器学习框架。任田田表示, 亚马逊云科技还有其他选项来支持不同场景的数据分析需求。此外,Amazon Marketplace 上也为客户提供了诸如StarRocks 、ByteHouse 等OLAP 引擎选择, 亚马逊云科技为不同数据规模、业务场景和行业背景的客户提供了灵活多样的选择。
小红书基于自身实际情况, 在ETL 场景下选择了Amazon EMR, 而在数据分析场景则主要使用StarRocks 。任田田接着详细介绍了如何在亚马逊云科技上构建StarRocks 平台。总体架构采用存算分离方式, 前端使用Amazon EC2 Fleet, 后端构建在Amazon EKS 之上的Kubernetes 集群, 也可直接部署在EC2 实例上。数据存储在S3, 外表元数据目录使用Amazon Web Services Glue Data Catalog, 运维推荐使用Amazon Systems Manager 等原生工具。
任田田强调,Amazon EC2 Fleet 可跨可用区提供高可用和弹性扩缩容能力, 支持混合使用不同实例类型和购买方式。她建议将需持续运行的工作负载使用预留实例, 而对于有弹性需求的部分, 使用Spot 实例可实现高达90% 的成本优化。在实例类型方面, 除了最初支持的英特尔x86 架构的C6i 实例外, 亚马逊云科技还新推出了基于Arm 架构的Graviton3 实例C7g, 根据StarRocks 的测试,C7g 相比C6i 可提供30%-50% 的性能提升, 再加上Graviton 实例本身的成本优势, 可实现50% 以上的性价比提升。
任田田还介绍了Amazon S3 的优势, 它几乎可无限扩展, 目前亚马逊云科技上已有EB 级别的客户。在性能方面,S3 标准存储如果遵循最佳实践, 可轻松实现每秒数十TB 的吞吐量, 并将小对象延迟控制在200 毫秒内。最新推出的S3 One Zone-IA 存储类型, 相比标准存储可将数据访问速度提升10 倍, 请求成本降低50% 。任田田表示, 亚马逊云科技一直致力于技术创新, 将创新成果回馈给用户, 让客户真正享受红利。
接下来, 小红书技术专家杨正分享了他们在亚马逊云科技上使用StarRocks 构建极速OLAP 平台的实践。杨正首先介绍了小红书数据平台的架构, 包括S3 存储层、Hive 和Iceberg 表格层、Spark 离线加工和Kafka/Flink 实时同步的数据加工层, 以及Spark 、Presto 、ClickHouse 和StarRocks 四款查询引擎层, 支持丰富的数据产品、BI 报表和自助分析平台等应用。
杨正解释说, 过去几年StarRocks 在小红书已广泛应用, 拥有50 多个集群、4 万多张表, 每日写入量千亿行、查询量上亿次, 平均时延小于200 毫秒。但存算一体模式需要通过Broker Load 或Stream Load 将实时离线数据同步到StarRocks, 会引入数据同步和冗余, 带来存储和计算资源消耗, 同时也给运维带来压力。在自助分析场景下, 由于需要同步数仓下所有上万张表、EB 级别的数据到OLAP 引擎, 这是不现实的。
之前小红书一直使用Presto 引擎支撑自助分析场景, 虽然性能优于Hive 和Spark, 但随着需求增长, 也逐渐不能满足性能和成本要求。使用Presto 存在技术架构复杂化、性能优化困难、主从模式稳定性问题等问题。
StarRocks 从3.0 版本开始主推湖上分析模式, 根据官方Benchmark, 相比Trino 和Presto,StarRocks 直接分析湖仓数据的性能会有3-5 倍的提升。将Presto 迁移到StarRocks 可获得多重优势: 性能提升意味着更好的性价比和降本增效; 可简化技术体系, 降低运维难度; 外表查询使用简单; 支持Java UDF 和Presto 方言, 有利于平滑迁移。
在正确性、稳定性、性能和兼容性四个方面, 小红书进行了全面验证。经过共同努力,StarRocks 的正确性问题基本得到修复。在稳定性方面, 小红书在3.2 版本基础上修复了多个Crash 问题, 实现了大查询拦截熔断策略, 避免集群资源打满, 压测显示StarRocks 稳定性明显优于Presto 。
在性能测试中, 小红书从实际流量随机抽取数千条查询, 进行10-30 并发的串行测试, 结果显示96% 的查询性能明显优于Presto, 在所有并发度下均有4-5 倍的性能提升。在兼容性上, 小红书在3.2 版本基础上对函数语法和表格式做了补齐, 最终StarRocks 对Presto 查询的兼容度可达94% 以上, 这推动了平滑迁移的进程。
为实现平稳迁移, 小红书采用了动态灰度策略。在Apache QB 这个分布式多租户的网关服务中, 查询路由功能可根据语法特性和集群负载将查询路由到合适的引擎执行; 查询灰度功能则可动态调整将查询路由到StarRocks 或Presto 的比例。在灰度过程中, 会利用集群低峰期资源进行数据比对, 确保数据一致性。只有当StarRocks 的性能、稳定性和正确性都达标, 才会动态增加灰度比例。整个0 到100% 的灰度过程持续了7 个月, 最终完全替代了Presto 引擎。迁移后, 平均查询性能是原Presto 的12 倍,P90 延迟降低92%, 过程平稳无重大事故。
为进一步降本增效, 小红书在StarRocks 上尝试了弹性伸缩。架构上,FE 和少量BE 使用包年包月实例作为常驻机器,90% 的BE 计算节点使用Amazon Web Services Spot 实例。小红书实现了BE 的自动化部署脚本,BE 可自动向FE 注册注销。在扩容时会自动向亚马逊云科技申请Spot 实例, 部署就绪后自动注册到FE 提供服务; 在缩容时通过服务关闭Hook 自动从FE 注销, 再将实例归还亚马逊云科技。
目前小红书采用固定时间段的弹性伸缩方式, 如高峰期9 点到24 点使用更多资源、较高竞价价格; 低峰期0 点到9 点将90% 资源归还, 节省大部分成本。通过这种方式, 在查询性能基本不变的情况下, 总成本降低了约30%-35% 。
未来, 小红书计划使用缓存、物化视图等提升查询性能; 通过湖仓一体化将现有存算一体和湖上分析融合, 进一步简化技术栈; 使用StarRocks 存算分离架构在性能无太大衰减的情况下, 进一步降低资源和运维成本。小红书对亚马逊云科技提供的高性能、高可用云平台和一路的支持服务表示感谢。
最后, 亚马逊云科技技术服务经理吕文石分享了为小红书提供支持的经验。他赞赏小红书对性能和稳定性的 追求, 如EC2 平均CPU 利用率在85% 以上, 高峰时段达99% 或100%, 就像是每天都在跑压测。吕文石认为, 亚马逊与小红书在追求 品质的道路上是相辅相成的。
吕文石引用Amazon Web Services CTO 的一句话” 世界就是一个巨大的草台班子, 每天都有事故发生”, 强调每个人都要做好充分准备, 降低灾害影响。亚马逊经过多年实践总结了卓越运营的方法论, 通过完善的运维流程和技术手段, 尽可能降低运营风险, 提高效率。
吕文石具体介绍了小红书的异常检测和自动化响应实践。异常检测依赖于CloudWatch 采集指标, 如磁盘空间告警会自动调用Lambda 或Systems Manager 删除日志; 告警阈值设定综合多维指标, 降低误报概率; 平台维护通知通过EventBridge 接收再由SNS 发送给业务方; 对于EC2 维护事件, 会自动调用Lambda 平滑退出应用并重启或刷新, 只有失败才人工处理。
吕文石强烈安利Amazon Systems Manager 这个集中的运维管理平台, 它包含Session Manager 无需安全组即可跳板机登录、State Manager 执行脚本任务、Fleet Manager 记录进程信息、远程桌面访问Windows 实例等多种免费工具, 可极大简化运维工作。
吕文石还介绍了亚马逊云科技企业级支持服务团队(TAM), 不仅解决技术问题、提供上线和实施支持, 还会进行成本分析帮助客户省钱, 榨干云服务价值, 就像” 薅净亚马逊的羊毛” 。他诚挚邀请更多客户订阅该服务, 获得如虎添翼的云上体验。
总的来说, 这场分享会深入探讨了在亚马逊云科技上构建高性能、低成本OLAP 平台的最佳实践, 分享了小红书真实的迁移案例, 展现了亚马逊云科技与客户的紧密合作与技术创新, 追求 性能的共同愿景。
下面是一些演讲现场的精彩瞬间:
亚马逊云科技中国峰会2024 演讲嘉宾介绍了亚马逊云科技为客户提供的OLAP 选项。
亚马逊云科技在存储性能方面持续创新, 推出新的 S3 One Zone-IA 存储类型, 可将数据访问速度提升 10 倍, 请求成本降低 50% 。
在小红书,StarRocks 已经有50 多个集群、4 万多个表,每日写入量千亿行、查询量上亿次,平均时延小于200 毫秒。
亚马逊云科技通过引入 StarRocks 引擎并优化路由规则, 实现了查询的高效兼容和灵活调度, 提升了数据分析能力。
亚马逊云科技通过自动化处理EC2 维护事件, 极大降低了应用中断的概率, 实现了灵活性和高可用性。
亚马逊云科技中国峰会2024: 强烈推荐使用 Systems Manager 集中管理平台, 包含多种运维工具, 如 Session Manager 、State Manager 和 Fleet Manager, 为您提供安全、高效的运维体验。
亚马逊云科技中国峰会2024: 邀请客户订阅ES 服务, 体验如鱼得水、如虎添翼、如鹰展翅的云上体验。
亚马逊云科技为客户提供了多种 OLAP 解决方案, 包括 Amazon Redshift 、Amazon EMR 和 Amazon Marketplace 上的第三方产品。小红书在亚马逊云平台上使用 StarRocks 构建了极速 OLAP 平台, 通过存算分离架构、弹性伸缩和成本优化等措施, 实现了高性能和降本增效。
小红书将 Presto 引擎平滑迁移到 StarRocks, 经过正确性、稳定性、性能和兼容性验证,StarRocks 相比 Presto 具有 4-5 倍的性能提升, 并简化了技术体系。通过动态灰度策略, 小红书在 7 个月内完成了平稳迁移, 平均查询性能提升 12 倍, 查询 P90 降低 92% 。
小红书利用 亚马逊云科技 的 Spot 实例和自动化部署脚本, 实现了 StarRocks 的弹性伸缩, 在查询性能基本不变的情况下, 总成本降低约 30%-35% 。未来, 小红书将进一步提升查询性能, 降低技术栈复杂度, 并探索存算分离架构以进一步降低成本。
亚马逊云科技提供了高性能、高可用的云平台和优质的客户服务, 助力小红书实现 性能和稳定性。亚马逊云科技 还提供了一整套云原生服务, 支持客户完成从观测到响应再到自动处置的整个运维流程, 提高运营效率。亚马逊云科技 企业级支持服务团队为客户提供全方位支持, 帮助客户充分利用云服务, 实现价值最大化。
2024 年 5 月 29 日,亚马逊云科技中国峰会在上海召开。峰会期间,亚马逊全球副总裁、亚马逊云科技大中华区总裁储瑞松全面阐述了亚马逊云科技如何利用在算力、模型、以及应用层面丰富的产品和服务,成为企业构建和应用生成式 AI 的首选。此外,活动还详细介绍了亚马逊云科技秉承客户至尚的原则,通过与本地合作伙伴一起支持行业客户数字化转型和创新,提供安全、稳定、可信赖的服务,以及持续深耕本地、链接全球,助力客户在中国和全球化发展的道路上取得成功。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70038688/viewspace-3021231/ ,如需转载,请注明出处,否则将追究法律责任。