概述
使用基于MaxCompute云数据仓库的企业,由于业务的差异,会创建多project进行数据隔离。同时也因为业务的差异,每个project需要跑的任务量、业务紧急程度等也有差异,因此不同project对计算资源的需求也不一致。本文我们一起探讨如何通过MaxCompute管家实现MaxCompute包年包月的资源隔离。
背景信息
- 默认预付费Quota:购买包年包月计算资源后,默认创建的配额组,该配额组不支持修改;升级或降配时,对应的CU量都在这个配额组中进行增减。
- 管家中支持创建配额组(自定义配额组),自定义的配额组里预留CU的最小值和非预留CU的值将从默认配额组对应的值里进行扣减。
- 所有配额组预留CU的最小值相加等于购买的预留CU量;所有配额组的非预留CU值相加等于购买的非预留CU量。
-
配额组中,预留CU的最小和最大值分别代表:
- 最小值:保障值。
-
最大值:可使用的最大值(最大可设置为购买的预留CU量)。当有多个配额组且配置了最小值<最大值是,一旦有配额组资源为空闲的时候,则可以占用。
>当有配额组最小值<最大值 时,说明配额组是有可能会抢占其他配额组空闲资源,因此会导致所有配额组都是共享(当前账号当前region范围)资源组。
使用案例
需求背景
公司使用到MaxComput进行大数据开发、分析、挖掘的业务大致为:数仓开发和生产、运营分析需求、算法挖掘。因而也创建了不同的project进行数据业务划分,project业务特点如下:
- 数仓project,分开发和生产,且按数仓模型分层划分project。
- 运营分析project,主要提供给业务部分进行日常数据分析取数,根据业务部分需求建不同部门专用project。
- 算法挖掘,分开发和生产,根据作业周期特点划分project。
根据前期业务评估当前购买的计算资源为预留CU量1000CU,非预留CU量600CU。现在需要将这些计算资源合理的进行隔离分配,以便能最大化提升资源使用率。
资源划分
资源划分可参考几个注意点:
- 高保障project主要配预留CU,非预留CU可作为加持资源。
- 预留CU最小值要根据实际配置避免滥用。
- 对于非高保障,优先级也不高但是会有可能请求大量资源的项目,对应配额组的最大值建议控制范围,影响以免其他资源组资源。
- 平均占用资源时间较长的考虑隔离独立配额组,同时最大值建议控制范围。
- 对时效性要求不高,资源占用频率高可以考虑非预留CU。
- 可根据实际情况结合资源分时功能。
- 因为默认配额组不可修改包括CU最大值,若不想让某些项目发起的任务可能会占用所有的CU量,那么可以考虑默认配额组不关联项目。由于默认配额组预留CU最小值不能为0,则可以留1CU,然后其他配额组里配置预留CU最小值<最大值,则其他配额组也依然能占用这1CU。
配额组设计如下:
综上所述,因为考虑到业务特点,配额组的预留CU最大值都进行了限制,避免严重影响其他配额组的最低保障值。在MaxCompute管家上进行配额组设计管理时,按上述表格,默认配额组不能关联项目,但预留CU最小值又必须大于0,可以选择保留1CU,可以选择上述数仓开发项目最小CU值减1。具体配置步骤如下:
- 先进行分时设置,把配额分为00:00:00-09:00:00、09:00:00-23:59:59 两个时段。
- 再分别新增配额组,设置 数仓生产、数仓开发、运营、算法相关配额组。
- 最后分别将项目关联对应的配额组,默认配额组不关联项目。
总结
随着业务变化,配额组的划分也会可能需要随之变化,所以有必要随时监控配额组的使用情况,以便及时对配额组进行调整。关于配额组监控,您可以通过云监控的"MaxCompute-包年包月Quota组资源"指标进行监控,详情请参考文档j监控告警。
另外,您还可以结合MaxCompute更多的资源管理功能如包年包月项目任务使用按量付费资源、包年包月项目任务优先级进行更精细的资源管理。