有赞大数据实践:Presto的高性能与应用场景解析

1 下载量 177 浏览量 更新于2024-08-28 收藏 167KB PDF 举报
"Presto在有赞的实践之路" 在有赞的实践中,Presto被广泛应用并经历了逐步演进的过程。Presto最初是为了解决Facebook在使用Hive进行交互式查询时遇到的高延迟问题而诞生的。与Hive相比,Presto专注于提供快速响应的查询性能,适用于需要快速获取结果的分析场景,其延迟可达到分钟级甚至亚秒级。 Presto的架构设计是其高性能的关键。它采用了分布式的模式,客户端(Client)向协调器(Coordinator)发送查询请求。SQL语句通过ANTLR解析器转化为抽象语法树(AST),然后通过元数据进行语义解析。解析后的数据生成逻辑执行计划,经过优化后被切割成不同的Stage,由工作节点(Worker)生成Task执行。每个Task会生成相应的物理执行计划,工作节点执行这些计划,而客户端持续从协调器获取查询结果。Presto的高性能得益于其全内存计算、查询计划优化、动态代码生成以及数据调度本地化等策略。 在有赞的使用场景中,Presto扮演了多个重要角色。首先,它作为数据平台(DP)的临时查询工具,支持探索性数据分析,并提供了数据安全措施如脱敏和审计。其次,Presto被用于商业智能(BI)报表引擎,帮助商家生成各种分析报告。此外,元数据系统利用Presto进行数据质量校验,而数据产品如CRM分析和人群画像等也依赖于Presto的计算能力。 在演进历程中,有赞最初将Presto与Hadoop集群混合部署,但遇到了性能波动的问题。当Hadoop离线任务占用大量磁盘IO带宽时,Presto的查询性能受到影响。这促使有赞对Presto的部署模式进行调整,以优化资源分配,确保更稳定、高效的查询性能。 Presto在有赞的应用展示了其在大数据环境中的灵活性和高性能优势,尤其是在交互式查询和实时分析方面。随着有赞对Presto的不断优化和改进,它已成为支撑公司数据服务的重要基础设施,满足了各种复杂业务场景的需求。