掌握Sql-On-Hadoop的核心类别与性能比较

0 下载量 55 浏览量 更新于2024-08-29 收藏 335KB PDF 举报
本文将深入探讨SQL on Hadoop的核心技术,特别是针对AtScale在2016年发布的《Hadoop商务智能基准》(The Business Intelligence for Hadoop Benchmark)[15]中的性能评估。报告指出,SQL on Hadoop系统的性能受到多种因素的影响,包括查询的数据量、查询类型(如join表数量、表大小以及是否包含聚合操作)、并发用户量等。没有单一的系统能在所有场景中占据绝对优势,例如,Impala和Presto在高并发场景中表现出色,而SparkSQL在大表Join方面有较好表现。 SQL on Hadoop的分类主要依据查询的响应时间,将其分为三类: 1. **批处理SQL (BatchSQL)**:这类查询的响应时间通常在分钟或小时级别,主要用于复杂的数据提取、转换和加载(ETL)、数据挖掘和高级分析。由于批处理SQL的延迟较高,系统必须支持查询内容错,即当节点故障或任务失败时,应能重试失败的任务而非整个查询。Hive和早期版本的SparkSQL属于批处理SQL范畴。 2. **交互式SQL (InteractiveSQL)**:交互式查询对延迟有严格要求,通常在毫秒到秒级别,用户会频繁地在同一个表上执行不同查询。这类系统注重低延迟,不特别强调查询内的容错,允许重新提交查询以快速恢复。典型的交互式SQL系统有Presto、Impala、Drill和HAWQ。尽管SparkSQL的查询速度也非常高效,但同样适用于交互式查询。 3. **操作性SQL (OperationSQL)**:这类查询需要极快的响应时间,通常要求延迟在1秒以内,主要用于实时操作和监控。操作性SQL系统如HB等,它们对性能有着苛刻的要求,以确保快速的响应。 理解这些分类有助于选择最适合特定业务需求的SQL on Hadoop解决方案。在实际应用中,开发者和管理员需要根据查询的性质、数据规模和吞吐量要求来权衡性能和容错策略,以优化SQL on Hadoop的使用。同时,随着技术的发展,新的SQL on Hadoop工具不断涌现,性能和功能也在持续改进,持续关注市场动态和技术更新对于保持竞争力至关重要。