更新时间:2025-11-28 GMT+08:00
分享

基本概念

弹性资源池

专属的计算资源,不同弹性资源上的计算资源完全隔离,弹性资源池内的不同队列资源可以共享,并可以根据队列资源负载配置策略进行分时弹性扩缩容,满足不同的业务需求。

DLI存储资源

DLI存储资源是DLI服务内部存储的资源,用于存储数据库和DLI表,是向DLI导入数据的必备条件,体现用户数据存储在DLI中的数据量。

弹性资源池相关基本概念

本节介绍实际CUs、已使用CUs、CU范围、规格(包周期CU)的含义。

  • 实际CUs在CU范围的[最小值, 最大值]区间内随队列负载自动弹性。
  • 当实际CUs≤规格时,全部按包周期单价计费,无按需费用。
  • 当实际CUs>规格时,差额按按需单价每小时补收。
图1 DLI实际CUs 、已使用CUs、CU范围、规格关系图

弹性资源池CU设置相关约束

  • 弹性资源池CU范围minCU小于等于实际CUs,如果扩容时minCU的目标值大于实际CUs,需要先扩容实际CUs,否则修改失败。
  • 弹性资源池中所有队列的最小CU数之和需要小于等于弹性资源池的最小CU数。
  • 弹性资源池中任意一个队列的最大CU必须小于等于弹性资源池的最大CU。
  • 调整队列的CU范围、弹性资源池规格变更、弹性资源池的CU设置,均在下一个整点生效。
  • 通过增加队列调整弹性资源池的实际CUs,立即生效。
  • 实际CUs是弹性资源池当前分配的可用于运行作业的计算资源总量(单位CUs)。同时作为计费的直接依据。
  • 实际CUs的计算规则:
    • 当资源池中没有队列时:实际CUs等于弹性资源池的最小CU。
    • 当资源池中有队列时,实际CUs的计算公式:
      • 实际CUs=max{(min[sum(队列maxCU),弹性资源池maxCU]), 弹性资源池minCU} 。

      • 计算结果需满足为16CUs的倍数,如果不能整除16CUs则向上取整。
  • 计费模式:
    表1 计费模式

    计费模式

    计费对象

    说明

    按需

    按照实际CUs大小收费。

    参考弹性资源池计费模式说明

    包年包月

    分为规格内、超出规格的两部分来计费

    • 规格的部分按包周期计费。
    • 超出规格的部分:(实际CUs-规格)的部分按需计费。成本优化:为了满足该场景下更优惠的计费,则可以通过规格变更的方式,将弹性资源池的规格扩大到与实际CUs一致,则所有实际CUs按包周期计费,整体相比原来更优惠。详细操作指导请参考弹性资源池规格变更
  • 实际CUs与弹性资源池扩容的关系

    弹性资源池的“扩容”或“缩容”就是指调整资源池的“实际CUs”。

    了解弹性资源池扩容或缩容实际CUs计算公式

  • 实际CUs的分配示例:

    表2所示,弹性资源池实际CUs分配的计算过程如下:

    1. 计算队列maxCU之和:sum(队列maxCU)= 32 + 56 = 88CUs。
    2. 比较队列maxCU之和与弹性资源池maxCU,两者取最小值:min(88CUs,112CUs) = 88CUs。
    3. 再与弹性资源池minCU做比较取最大值:max(88CUs,64CUs)=88CUs
    4. 检查88CUs是否为16CU的倍数,由于88不能被16整除,故向上取整为96CUs。
      表2 弹性资源池实际CUs分配示例

      场景说明

      资源类型

      CU范围

      新建弹性资源池64-112CUs

      添加了两个队列,分别为队列A和队列B。两个队列设置的CU范围如下:

      • 队列A的CU范围:16-32CUs
      • 队列B的CU范围:16-56CUs

      弹性资源池

      64-112CUs

      队列A

      16-32CUS

      队列B

      16-56CUS

  • 定义:

    已使用CUs等于当前时刻真正被作业或任务占用且正在运行的CU数量。

  • 与实际CUs的区别:

    实际CUs是平台为该资源池分配的总量;已使用CUs是其中“正在跑任务”的那一部分。

  • 约束与限制
    • HetuEngine场景下,已使用CUs和实际CU一致。
    • 其它引擎(如 Flink、Spark)允许实际CUs > 已使用CUs,差值即为“空闲可立即使用”部分。
图2 已使用CUs

CU范围是弹性资源池扩缩容的“安全栅栏”,由“最小CU”和“最大CU”两条边界组成,弹性资源池的实际CUs在这个区间里自动伸缩,避免无限制的资源扩容风险。

计算实际CUs时,如果计算结果小于minCU则取minCU值为实际CUs的值;如果计算结果大于maxCU那么取maxCU为实际CUs的值。即实际CUs会始终保持在CU范围的区间内。

  • 最小CU(minCU)

    包周期模式下,最小CU等于规格,可通过“规格变更”调高最小CU。即当弹性资源池规格扩容时,CU范围的最小值与弹性资源池的规格(包周期CU)联动,当弹性资源池的规格变化后,CU范围的最小值会修改为与规格(包周期CU)一致,而最大CU 不变。

    弹性资源池缩容时,实际CUs不会低于该值,确保总有资源可立即接管作业。

    弹性资源池中所有队列的最小CU数之和需要小于等于弹性资源池的最小CU数。

  • 最大CU(maxCU)

    弹性资源池中任意一个队列的最大CU必须小于等于弹性资源池的最大CU。

    弹性资源池至少可以满足弹性资源池中所有队列按最小CU运行,尽量满足队列按最大CU运行。

规格时使用包周期方式购买的CU量,也是CU范围中的最小CU。

购买弹性资源池时选择的CU范围的最小值即弹性资源池规格。规格是包周期弹性资源池特有的。规格部分以包周期的计费,规格之外的部分按需计费。即将会产生包周期外的按需费用。

如需降低该场景下的整体成本,则可以通过弹性资源池规格变更的操作,扩大弹性资源池的规格(包周期CU)。规格变更成功后,新的规格(包周期CU)范围内所有资源均按照包年包月计费,相比变更前(部分按需计费)更优惠。

详细操作指导请参考弹性资源池规格变更

图3 弹性资源池包年/包月+按需计费模式 | 成本优化示例

数据库

数据库即按照数据结构来组织、存储和管理数据的仓库。DLI服务管理权限的基础单元是数据库,赋权以数据库为单位。

在DLI中,表和数据库是定义底层数据的元数据容器。表中的元数据让DLI知道数据所在的位置,并指定了数据的结构,例如列名称、数据类型和表名称。数据库是表的逻辑分组。

OBS表、DLI表、CloudTable表

不同表类型表示不同的数据存储位置。

  • OBS表表示数据存储在OBS服务的桶中。
  • DLI表表示数据存储在本服务内部的表中。
  • CloudTable表表示数据储存在CloudTable服务的表中。

可通过DLI创建表,与其他服务的数据进行关联,以此来实现不同数据源的联合查询分析。

元数据

元数据(Metadata)是用来定义数据类型的数据。主要是描述数据自身信息,包含源、大小、格式或其它数据特征。数据库字段中,元数据用于诠释数据仓库的内容。

SQL作业

在SQL作业编辑器执行的SQL语句、导入数据和导出数据等操作,在系统中对应的执行实体,称之为SQL作业。

SQL作业适用于使用标准SQL语句进行查询的场景。通常用于结构化数据的查询和分析。

Flink作业

Flink作业专为实时数据流处理设计,适用于低时延、需要快速响应的场景。适用于实时监控、在线分析等场景。

  • Flink OpenSource作业:提交作业时可以使用DLI提供的标准的连接器(connectors)和丰富的API,快速与其他数据系统的集成。
  • Flink Jar作业:允许用户提交编译为Jar包的Flink作业,提供了更大的灵活性和自定义能力。适合需要自定义函数、UDF(用户定义函数)或特定库集成的复杂数据处理场景。可以利用Flink的生态系统,实现高级流处理逻辑和状态管理。

Spark作业

Spark作业是指用户通过可视化界面和RESTful API提交的作业,支持提交Spark Core/DataSet/MLlib/GraphX等Spark全栈作业。

CU

CU是DLI计算资源的单位。 1CU= 1Core 4GMem。不同规格的计算资源对应的计算能力不一样,规格越高计算能力越好。

常量与变量

环境变量中,常量与变量的区别如下:

  • 常量在程序运行过程中,所表示的值是无法被改变的。
  • 变量是“可读、可写”,而常量是“只读”的。变量是在程序运行过程中,内部存储的值,随时可以被改变的一段内存地址。比如:int a = 123,这里的a就是一个整型变量。

表生命周期

DLI表数据的生命周期管理功能(dli.lifecycle.days),指表(分区)数据从最后一次更新的时间算起,在经过指定的时间后没有变动,则此表(分区)DLI自动回收。这个指定的时间就是生命周期。生命周期管理功能方便您释放存储空间,简化回收数据的流程。同时提供数据备份与恢复功能,避免因误操作丢失数据。

相关文档