一步一个脚印,一天一道面试题。
Spark 与 Presto 的对比:
纯主观感受:
我觉得 Presto 主要是支持的语法相对少,我使用复杂一点的 SQL
时(来点SQL函数,子查询),就用不了了。
但是快!
Spark:
- 优点:支持多种数据处理任务,包括批处理、流处理和机器学习;易于使用的 API 和丰富的生态系统;内存计算技术提高了处理速度;适合复杂的数据处理流程和机器学习任务。
- 缺点:对小型查询和交互式分析的性能可能不如专门的查询引擎;需要管理复杂的作业调度和资源配置;在低延迟查询方面可能表现不佳。
Presto:
优点:
- 高性能:Presto采用内存计算和并行执行机制,能够快速处理大规模数据查询,适合高性能的交互式查询。
- 灵活性:支持多种数据源和 ANSI SQL 标准,可以进行跨源的复杂查询和分析操作。
- 动态优化器:具备动态优化器功能,能够根据查询特性选择最佳执行计划,提升查询性能。
- 分布式架构:采用分布式共享无状态计算模型,具备高可伸缩性和容错性,适合大规模数据处理。
缺点:
- 不支持数据写入(重点):主要用于查询和分析数据,不直接支持数据写入操作。
- 复杂性:管理和配置相对复杂,需要一定的专业知识和经验。
- 适用场景受限:更适合于交互式查询,对于大规模批量数据处理可能不如 Spark 灵活。
- 资源消耗:由于内存计算和并行执行,可能消耗较多的资源,需要合理规划和管理资源。