反馈已提交

网络繁忙

高频指标借助参数实现轻量化修改

  • 文档创建者:Wendy123456
  • 历史版本:4
  • 最近更新:Wendy123456 于 2023-10-26
  • 1. 概述

    1.1 应用场景

    用户需要对活跃客户的占比进行分析,但由于不断变化的业务需求,活跃客户的定义会不定期修改。

    例如,上半年活跃客户被定义为在过去 3 个月内至少在商城下单 2 次的连锁客户,而下半年的定义则是在过去 6 个月内至少下单 3 次的客户。这种指标变化需要 IT 团队重新评估相关数据的计算逻辑,可能会带来繁重的工作量。

    1.2 实现思路

    将业务指标中的数值参数化,例如本文 1.1 节场景中的活跃客户指标:近 X 个月,下单次数,可作为参数进行自定义修改。

    1.3 注意事项

    本文示例不适合定期更新数据,只适合一次性取出活跃客户数据。

    1.4 任务展示

    FineDataLink 中的数据处理过程,详情参见:https://demo.finedatalink.com/ 「高频指标借助参数实现轻量化修改」。

    2. 操作步骤

    2.1 指标数值参数化准备

    活跃客户指标:近 X 个月,下单次数,保存在数据库表中,指标若发生变化,直接在数据库表中修改即可

    本文示例中,将下单次数(times)、近 X 个月(gap)保存在名为「参数」的表中。

    1698301054230225.png

    2.2 指标数值参数化

    1)新建定时任务,拖入「参数赋值」节点,定义参数:times(下单次数gap(近 X 个月)、first_day(当月第一天)、last_day(当月最后一天)。

    first_day(当月第一天)last_day(当月最后一天)便于后续条件分支节点判断是否是取出当月的活跃客户数据,当月和非当月取数 SQL 语句不同。

    SQL 语句如下:

    SELECT *,DATE_FORMAT(CURRENT_DATE, '%Y-%m-01') AS first_day,
    LAST_DAY(CURRENT_DATE) AS last_day FROM `demo1`.`参数`

    2.png

    点击数据预览,取出数据如下图所示:

    1698302775717772.png

    2)点击参数输出,将取出数据输出为参数。如下图所示:

    1698303107516572.png

    2.3 定义日期区间参数

    有时候用户需要取多个月份的活跃客户数据进行分析,本文示例中,定义数 time ,取出 2010 年 5、6、7月份的活跃客户数据。

    本文示例中,时间参数 time 是存在数据库表中进行维护,实际开发可按照业务情况进行取数。 

    1)新增「参数赋值」节点,取出 time 参数的值。如下图所示:

    6.png

    2)点击输出参数,定义参数 time 。如下图所示:

    7.png

    2.4 循环容器设置

    2.4.1 新增循环容器节点

    拖入「循环容器」节点,使用参数 time 依次取出 2010 年 5、6、7月份的活跃客户数据。

    循环容器节点中,选择遍历循环,勾选 time 参数。设置界面如下图所示:

    1698304138150520.png

    2.4.2 判断是否为当月

    循环容器节点中拖入条件分支节点,判断是否取出当月的活跃客户数据。

    1)拖入条件分支」、两个数据转换节点。

    2)若 time 参数介于 first_day 和 last_day 参数之间,执行数据转换节点(取出当月活跃客户数据);若 time 参数不介于 first_day 和 last_day 参数之间,执行数据转换1节点(取出 time 时间活跃客户数据)。

    条件分支」节点设置如下图所示:

    9.png

    2.4.3 取出当月活跃客户数据

    1)进入数据转换节点,拖入「DB表输入」算子,取出当月活跃客户数据。如下图所示:

    SQL 语句如下:取出订购日期」在近 6 月,且购买次数大于等于三次的客户数据。

    SELECT 订单ID, 客户ID, 订购日期, 运货商, 货主名称, 货主地址 
    FROM `demo1`.`订单`
    WHERE 订购日期 >= DATE_SUB(CURRENT_DATE, INTERVAL ${gap} MONTH)
    AND 客户ID IN (
        SELECT 客户ID
        FROM `demo1`.`订单`
        WHERE 订购日期 >= DATE_SUB(CURRENT_DATE, INTERVAL ${gap} MONTH)
        GROUP BY 客户ID
        HAVING COUNT(客户ID) >= ${times}
    )
    ORDER BY 客户ID, 订单ID;

    15.png

    点击数据预览,取出数据如下图所示:

    1698308362310843.png

    2)拖入「DB表输出」算子,将取出的活跃客户数据输出即可,写入方式选择追加写入数据

    3)点击右上角保存按钮。

    2.4.4 取出非当月活跃客户数据

    1)进入数据转换1节点,拖入DB表输入算子,取出非当月活跃客户数据。如下图所示:

    SQL 语句如下:取出订购日期在距离 time 参数 6 个月之内,且购买次数大于等于三次的客户数据。

    SELECT 订单ID, 客户ID,订购日期, 运货商, 货主名称, 货主地址 
    FROM `demo1`.`订单`
    WHERE 订购日期 BETWEEN DATE_SUB('${time}', INTERVAL ${gap} MONTH) AND '${time}'
    AND 客户ID IN (
        SELECT 客户ID
        FROM `demo1`.`订单`
        WHERE 订购日期 BETWEEN DATE_SUB('${time}', INTERVAL ${gap} MONTH) AND '${time}'
        GROUP BY 客户ID
        HAVING COUNT(客户ID) >= ${times}
    )
    ORDER BY 客户ID, 订单ID;

    17.png

    2)拖入DB表输出算子,将取出的活跃客户数据输出即可,写入方式选择追加写入数据

    3)点击右上角保存按钮。

    2.5 效果查看

    1)点击右上角保存并运行按钮,任务执行成功后,如下图所示:

    13.png

    2)数据库表数据如下图所示:

    1698308729615198.png

    3)用户若想知道当月活跃客户数,可筛选出「订购日期」在近六个月内的「客户ID」数量。




    附件列表


    主题: 数据开发
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持