Logo
    立即注册
    数说方舟
    产品文档
    实践案例
    最近更新时间:2022-08-16 10:28:12

    互动量准确性校验

    需求

    互动量是社媒分析中常用的指标,一般是由评论数和点赞数相加得到,但根据不同的站点会有不同的计算方式,在巡检过程中发现数  

    样例数据

     

    字段描述

     

    各阵地互动量计算公式

    微博:互动量=转发数+评论数+点赞数 微信:互动量=在看数+点赞数+阅读数 小红书:互动量=评论数+点赞数+收藏数+转发数 B站:互动量=弹幕数+评论数+点赞数+投币数+收藏数+转发数 其他:互动量=评论数+点赞数

    根据计算公式,明显可以看出样例数据中第一条数据的互动量计算是错误的,质检需要把这个情况反馈出来

     

    需求分析

    需求总结为以下两点:

    1. 数据中出现的问题为指标列(互动量)与预期不符,具体表现为互动量不等于公式计算结果
    2. 互动量根据不同的站点,计算公式不一样

    不同阵地的计算方法,通过case when即可解决,由于目前数据质检的SQL输出只支持标量(一行数据),因此需要进行标量处理。将数据源中【互动量】列减去质检计算出来的【互动量】,若结果不为0,则说明【互动量】计算有问题,最后统计不为零的数量即可得出有多少数据是计算错误的。  

    自定义模板设计

    输入参数&输出指标确定

    输入参数:数据源,站点名称,转发数,评论数,点赞数,弹幕数,投币数,收藏数,在看数 输出指标:计算错误行数  

    SQL试运行

    此步骤用于验证SQL是否写对,统计结果是否如预期,目前XDP未提供试运行环境,用户需要在自己的客户端完成该工作。

    select count(1) from
    (select site_name,
    CASE
         WHEN site_name = '微博' then interaction_cnt - review_cnt - like_cnt - reposts_cnt
         WHEN site_name = '微信' then interaction_cnt - review_cnt - like_share_cnt - view_cnt
         WHEN site_name = '小红书' then interaction_cnt - review_cnt - like_cnt - reposts_cnt - collection_cnt
         WHEN site_name = '哔哩哔哩' then interaction_cnt - review_cnt - like_cnt - reposts_cnt - collection_cnt - barrage_cnt - specie_cnt
         ELSE interaction_cnt - review_cnt - like_cnt
    END as interaction_cnt_quantity
    from <code>3C_hot</code>) as t
    where interaction_cnt_quantity != 0

      运行结果

    试运行验证通过后,就可以将SQL中相关的参数改为占位符  

    改写带占位符的SQL

    由于质检模板本质上是一个函数,只在运行时传入参数进行实例化,因此,不能将实际的数据源、字段写入模板中,需要将试运行时的相关数据源、字段用占位符替代

    select count(1) as error_count  from
    (select ${column1},
    CASE
         WHEN ${column1} = '微博' then ${column2} - ${column3} - ${column4} - ${column5}
         WHEN ${column1} = '微信' then ${column2} - ${column3} - ${column7} - ${column8}
         WHEN ${column1} = '小红书' then ${column2} - ${column3} - ${column4} - ${column5} - ${column6}
         WHEN ${column1} = '哔哩哔哩' then ${column2} - ${column3} - ${column4} - ${column5} - ${column6} - ${column9} - ${column10}
         ELSE ${column2} - ${column3} - ${column4}
    END as interaction_cnt_quantity
    from ${schema_table1}) as t
    where interaction_cnt_quantity != 0

      改写占位符的时候,可以顺便把自定义模板也配置了

     

    规则配置&运行

    配置完自定义模板后,在创建质检规则时,就可以选择该模板。注意:要选择自定义模板

        配置数据源参数

    微信扫描二维码在线咨询