
132
|
第
8
章
严格的延迟需求
如果要求低延迟,那么支持任务级别隔离的系统可能是最佳选择。
云部署
如果系统部署在云端,那么在使用特定的云服务时,它们可能已经为你选择好了隔离
级别。
8.1.3
性能
尽管引擎在执行作业时的性能非常重要,但我们不能只看那些能够执行特定工作负载的引
擎,虽然它们的速度很快。更重要的是了解工具在执行用例时具备怎样的性能。在某些情
况下,工具执行查询的速度可能很快,但涉及多个连接的复杂查询可能会存在性能问题。
来看看下面这些工具的属性。
Presto
Presto
提供了一个速度很快的执行引擎,但如果查询超过了内存限制就会出现问题。
Spark
Spark
很快,但目前不支持在多租户环境中使用外部工具(如商业智能工具)。
带有
Tez
引擎的
Hive
带有
Tez
引擎的
Hive
速度很快,但仍然需要处理
Hive
架构中的其他组件,如
Hive
Metastore
。
此外,对工具的选择可能会受到某些因素的驱动,比如决定将作业迁移出已有的系统。你
可能在
Teradata
系统中部署了现有的数据模型和查询。有很多
Teradata
应用程序使用了基
于索引列的本地连接,可以基于单个连接键快速连接多个表。如果这个数据模型已经使用
了多年,并且基于它构建了数千个作业,那么就很难将它迁移到不提供类似优化的执行引
擎。在这种情况下,
Hive
的分桶排序连接可以作为本地索引的替代方案,而其他引擎可能
无法支持这种模型。重要的是,你对工具的选择不仅受到原始性能的影响,还取决于实际
用例,所以最好先根据特定工作负载运行测试。 ...