在之前的文章中,我将数据搜集和数据处理环节类比为厨师收菜和洗菜,这段时间因公司新增了VERTICA数据库,进行了很多相关工作,在此总结一下使用Tableau Prep“洗菜”的基本步骤。
在《数据表合并经验总结》中我简述了如何筛选出有效的字段,以提升数据清洗的效率,本文也可以理解成是对其的延续和补充。
假设我们已经完成了上文所说的步骤,并生成一张参照表。且已经在Tableau Prep中完成了数据连接配置。
那么接下来的清洗过程大致可以按以下步骤进行:
-
筛选字段
根据参照表快速筛选出所需的字段。这个环节的重点是“少”,一定不要贪多,前面选的字段少,后面的处理才会高效,特别是涉及到一些联接、转置、聚合的情况,速度可能是天壤之别。 -
调整格式
对字段的格式进行调整,以保证后续的操作可以顺利进行。最常见的情况是源表中使用数字来指代状态或者时间,在此需要及时更正,以保证后续的步骤高校进行。 -
转换表
进行联接、转置、聚合等操作,重构表结构 -
新建字段
创建所需的计算字段 -
重命名字段
对字段名进行调整 -
分组和替换
对字段值进行调整,如重命名、分组等
然而,实际的清洗过程往往比这灵活(随意)得多,为了得到想要的数据,我们一定会不择手段,比如像这样
那么问题来了,上面这个步骤的意义何在呢?
答案是——提升效率
与其将之理解为步骤,不如果将之理解成优先级——在不影响结果的情况下,优先进行哪些操作。核心其实就一句话
“减小后续处理的数据量和复杂度”
举个反例来说,假如我们最先进行【分组】操作,那么后面的每一步,都要受到这个【分组】影响,一旦你重新修改了这个分组,后面的所有步骤都要重刷。如此一来,轻则费时,中则失败,重则卡死。再设想一下,如果你把上面的步骤全都反过来进行......那我只能祝你好运了。
所以本质上我还是在说熵减,毕竟我们要进行的是“清洗”不是“和泥”。
网友评论