全部产品
Search
文档中心

实时数仓Hologres:Serverless Computing

更新时间:Dec 17, 2024

Hologres支持Serverless Computing,您可以指定大SQL作业(例如CPU或内存开销大的SQL作业)在全托管的Serverless Computing资源池进行,无需预留固定规格的计算资源,且各作业还可使用独立的Serverless Computing资源,确保作业之间资源隔离,避免了资源竞争与相互干扰的情况。

重要

Serverless Computing功能已于北京时间2024年07月01日起正式收费,功能定价详情请参见计费概述

功能说明

在未开启Serverless Computing的情况下,执行大SQL作业需要预留充足的计算资源,而大SQL作业通常只会在一天中的某个时间段被执行,其余时间则会导致预留资源的闲置和浪费。此外,由于大SQL作业之间没有实现资源隔离,作业之间会相互竞争共享资源,从而彼此产生干扰,并可能导致性能的不稳定,即抖动现象。

开启Serverless Computing后,大SQL作业可在实例独享资源外的Serverless Computing资源池进行,避免资源争抢和资源浪费。使用Serverless Computing后,无需在独享实例中为大SQL作业预留计算资源,同时SQL作业的稳定性会得到显著提升。

开启Serverless Computing的架构图如下。image

适用场景

Serverless Computing功能的适用场景如下:

  • 适用于大SQL作业频繁出现OOM(Out of Memory,内存溢出)报错,期望提升作业成功率和实例稳定性的场景。

    • 场景示例:当前独享实例规格较小,独享计算资源量较少,大数据量导入或大数据量查询的作业频繁遇到OOM报错。

    • 优化建议:推荐使用Serverless Computing执行该部分作业,最多可使用独享实例计算资源的3倍资源,作业执行期间,该部分资源不与其他任务共享,可显著提升大作业执行成功率和生产实例稳定性。

  • 适用于当前实例在流量低峰期资源闲置较多,期望提升资源利用率、降低成本的场景。

    • 场景示例:当前实例为了处理部分低频率的大作业而扩容计算资源,这些大作业每天执行的总时长小于8小时。

    • 优化建议:推荐使用Serverless Computing执行该部分作业,对独享实例的预留计算资源进行缩容,即可显著提高独享实例资源利用率,无需为大量闲置资源付费,仅需为大作业的计算资源实际使用量付费。

  • 适用于当前实例在流量高峰期资源紧张,且通过分时弹性增加一倍资源仍难以缓解资源压力,期望进一步提升资源量、解决流量峰值问题的场景。

    推荐按用户或查询队列级别进行设置,在流量高峰期,使用Serverless Computing执行某个用户或某个查询队列的全部请求。由于Serverless Computing最多可申请本实例独享计算资源的三倍资源,因此可显著缓解流量高峰时的查询压力。

Serverless Computing计算资源不能完全替代独享计算资源,主要区别在于:

  • Serverless Computing计算资源由当前可用区所有用户共享,用户之间公平调度,查询请求可能会受当前Serverless Computing Pool的资源水位影响而增加排队时长;独享计算资源为当前实例预留,实例或计算组在running状态时不会回收,不会受其他用户实例影响。因此,在查询延时敏感的场景下,更适合使用独享计算资源。

  • Serverless Computing无法支持在线服务场景,包括Flink实时写入、DataWorks数据集成实时写入、Holo Client实时写入、通过Fixed Plan的在线点查等,详情请参见Fixed Plan加速SQL执行。如果您有通过Fixed Plan优化的各类场景需求,该部分场景需要通过独享计算资源运行。

相关文档