文档首页/ 数据湖探索 DLI/ 最佳实践/ 数据分析/ 使用DLI进行账单分析与优化
更新时间:2024-04-30 GMT+08:00
分享

使用DLI进行账单分析与优化

应用场景

本文主要介绍如何使用华为云DLI上的实际消费数据(文中涉及账户的信息已脱敏),在DLI的大数据分析平台上进行分析,找出费用优化的空间,并给出使用DLI过程中降低成本的一些优化措施。

流程介绍

使用DLI进行账单分析与优化的操作过程主要包括以下步骤:

步骤1:获取消费数据。获取账户的实际消费数据。

步骤2:分析账户消费结构并优化。在DLI上分析账户消费结构,找出开支较大的资源或用户,并给出降底成本的优化措施。

资源和成本规划

表1 资源和成本规划

资源

资源说明

成本说明

DLI

数据湖探索(DLI)作为华为云大数据分析平台,其计费项包括存储费用与计算费用两项,计费类型包括包周期(包年包月),套餐包和按需计费三种。

DLI目前支持三种作业:SQL作业,Flink作业和Spark作业。

SQL作业的计费包括存储计费和计算计费,其中计算计费有包年包月计费和按需计费两种。
  • 包年包月计费根据购买周期进行扣费,推荐使用包年包月模式,价格优惠且在周期内独享计算资源。
  • 按需计费以小时为单位进行扣费。按需计费又分为按CU时计费和按扫描数据量计费,这两种计费方式是互斥的,可根据需要选择其中一种。建议优先选择按CU时计费,可资源独享,且成本核算清晰。同时,按CU时计费还提供套餐包的购买和使用。
    • CU时资费=CU数*使用时长*单价。使用时长按自然小时计费,不足一个小时按一个小时计费。
    • 扫描数据量资费=执行SQL时产生的扫描数据量*单价。如果计算任务超时或失败,则当次计算不收取费用。
  • Flink作业和Spark作业的计费只有计算计费,具体计费规则与SQL作业相同。

具体计费规则可以参考华为云官网价格详情

步骤1:获取消费数据

  1. 获取消费明细数据。
    1. 使用华为云账户登录控制台。
    2. 通过“费用中心”>“费用账单”进入费用中心。
      图1 费用账单
    3. 在“费用账单”界面,选择对应的“账期”,在“按产品汇总”下的搜索框下,选择“产品类型 > 数据湖探索DLI”。在消费汇总中可以发现DLI计算资源使用量消费最多。
      图2 费用汇总
    4. 单击“账单详情 > 自定义账单”,单击“维度设置”,选择“按使用量”。“统计周期”选择“明细”。在显示数据的标题行,“产品类型”选择“数据湖探索 DLI”,“产品”选择“DLI计算资源使用量”,单击“导出账单”。
      图3 导出消费数据
    5. 左侧导航栏,选择“导出记录”。下载对应的消费明细数据。

步骤2:分析账户消费结构并优化

  1. 在DLI上进行消费明细分析。
    1. 1下载的消费明细数据上传到已建好的OBS桶中。
    2. 在数据湖探索服务中创建表。
      1. 登录DLI控制台,左侧导航栏单击“SQL编辑器”,执行引擎选择“spark”,选择执行的队列和数据库。本次演示队列和数据库选择“default”。
      2. 下载的文件中包含时间用量等,按表头意义在DLI上创建表,具体可以参考如下示例,其中amount列为费用。
        CREATE TABLE `spending` (
          account_period string,
          EnterpriseProject string,
          EnterpriseProjectID string,
          accountID string,
          product_type_code string,
          product_type string,
          product_code string,
          product_name string,
          product_id string,
          mode string,
          time1 string,
          use_start string,
          use_end string,
          orderid string,
          ordertime string,
          resource_type string,
          resource_id string,
          resouce_name string,
          tag string,
          skuid string,
          `c22name` STRING,
          `c23name` STRING,
          `c24name` STRING,
          `c25name` STRING,
          `c26name` STRING,
          `c27name` STRING,
          `c28name` STRING,
          `c29name` STRING,
          size STRING,
          `c31name` STRING,
          `c32name` STRING,
          `c33name` STRING,
          `c34name` STRING,
          `c35name` STRING,
          `amount` STRING,
          `c37name` STRING,
          `c38name` STRING,
          `c39name` STRING,
          `c40name` STRING,
          `c41name` STRING,
          `c42name` STRING,
          `c43name` STRING,
          `c44name` STRING,
          `c45name` STRING,
          `c46name` STRING,
          `c47name` STRING,
          `c48name` STRING,
          `c49name` STRING,
          `c50name` STRING,
          `c51name` STRING,
          `c52name` STRING,
          `c53name` STRING,
          `c54name` STRING
        ) USING csv options (
          path 'obs://xxx/Spendings(ByTransaction)_20200501_20200531.csv',
          header true)
    3. 查询该时间内消费最高的resource_id, resource_name。

      通过以下语句,可以发现sql和flink队列使用的费用均为1842元,在总费用3754元中占比为98%。

      select resource_id, resouce_name, sum(size) 
         as usage, sum(amount) 
         as sum_amount 
         from spending 
         group by resource_id, resouce_name 
         order by sum_amount desc
      图4 查询结果
    4. 使用以下语句具体分析sql和flink这两个资源消费的时间段。
      select * from spending where resource_id = 'd91d4616-b10c-471a-820d-e676e6c5f4b4' order by ordertime

      可以发现sql队列从2020-05-14 17:00:00 GMT+08:00开始,每小时产生5.6元费用,持续到2020-05-28 10:00:00 GMT+08:00,说明这个sql队列在这段时间内持续使用。

      同样,也可以发现flink队列在2020-05-14 17:00:00 GMT+08:00到2020-05-28 10:00:00 GMT+08:00这段 内持续使用。

  2. 优化建议。

    通过以上分析,了解到sql和flink这两个队列几乎是在持续使用的,建议通过购买包周期队列来降低使用成本。另外,对于明确需要使用多少CU时的作业,也可以提前购买对应的CU时套餐包,来降低使用成本。

企业中的业务模式较多且经常变化,成本管理员通常并不能全面及时了解花销较大的业务在哪里,哪些是合理的,哪些是不合理的,通过在DLI中对费用明细进行分析,可以及时发现企业花销不合理的地方,及时进行成本管理,进一步降低企业使用华为云的成本。

相关文档