Power BI可视化大赛火热进行中,利用这个方法轻松脱敏你的数据
关于参赛的数据,可以使用自己的数据,也可以使用组委会提供的数据。你可能想用自己的数据(我也建议如此),毕竟对自己的数据结构以及其中的逻辑关系非常熟悉,可以更快的做出一个可视化报告,甚至你已经有了现成的报告,只需要集中精力修改美化就可以了,毕竟这是可视化大赛,报告的外观美观性评分占比最高(60%),这样不仅可以节省宝贵的时间,获奖几率也更大。但你可能又担心自己的真实数据泄露,其实大可不必担心,因为大赛组委会明确要求数据必须脱敏:所以你要做的,就是先对自己的数据脱敏,然后集中精力设计可视化报告。数据脱敏是将数据中的敏感信息进行一定的变形处理,抹去不适合对外展示的信息,这是对数据的保护,也是对你个人的保护,以免陷入不必要的纠纷。方法有很多种,这里介绍一下如何利用Power Query来实现对数据的快速脱敏。以这个简单的模型为例,其中有一个订单表和两个维度表,客户表和产品表:选择“删除间隔行”,如果要减少80%的数据量,可以这样来设置:
上图这几个数字的意思是,从第1行开始删除8行,保留之后的2行,然后再删除8行、保留2行,依此类推……,通过这个方式,就能够将数据量大幅降低,只有原来的20%。你可以根据需要填入适当的参数来缩减数据量,这种间隔穿插删除的好处是,每个维度都可以保留部分数据,而不是简单粗暴地直接把某些年份或者某些产品的数据全部删除。Number.RoundUp(Number.RandomBetween(0,10))可以生成1到10随机的整数,然后利用Date.AddDays将每一个日期往后移动相应的天数。同样可以利用上面的M函数生成随机数,下面的自定义列是将原来的订单额乘以一个随机的系数(1.1到1.2之间):这样随机的好处是,既抹去了具体金额,但整体上还保留原有数据的规律,对于可视化效果不会产生明显的影响。然后把原来的订单日期和销售额列删除,就得到一个脱敏后的订单表:对于这个表,真实的客户姓名肯定不能泄露,可以将客户姓名做一下变形,用下面的写法添加一列来代替姓名:
然后将原来的客户姓名列删除,就得到了脱敏后的客户表:
对于这个产品表,同样可以和客户表的处理方法一样,生成一列产品1、产品2的产品列来代替真实的产品名称。通过以上的操作,你的数据就变得“面目全非”了,但这样处理以后,你还不能在现有的基础直接加载到模型并制作报告,因为powerquery会保留每个处理步骤,通过查看前面的步骤依然可以看到脱敏前的数据。所以最后还需要是将脱敏后的数据导出来,才能彻底与脱敏前的数据断开联系,你可以参考这个方法将PowerBI中的数据导出到Excel:如果数据量大、表比较多,还利用DAX Studio,将模型中的数据表一次性导出来:脱敏后的表导出来保存,当你需要使用脱敏数据做报告,或者使用脱敏数据描述问题的时候,就可以直接导入使用了。关于数据脱敏,上面只是几个简单的思路和处理的方法,并不是必须对每一列或者每个维度都要这么做,你可以根据实际情况选择对某些关键信息脱敏,并不局限于这些方法,甚至也不局限于PowerQuery,用Excel同样可以做到。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。