维度建模藏在外婆的旧账本里

我上周回浦口老小区搬东西。翻到床底那只樟木箱的时候,指尖沾了半层灰。翻出来的,是外婆记了四十年的账本。

写满歪字的旧账本

之前我总觉得外婆的记账本就是一堆乱涂的流水。今天买了三斤排骨,明天给外公买了贴膝盖的膏药,后天给我塞了十块钱买冰棍。她早年记性好的时候,翻两页就能找着对应数,后来年纪大了,眼睛花,记混是常有的事。上次家庭聚餐,她拉着我妈念叨,说记得2018年给我交高中择校费凑了两万,结果翻账本找了半个钟头,找着的是给舅舅凑开店本钱的那笔。她当时坐在餐桌旁,手指点着纸页,耳朵尖都红了,说自己老了,脑子不好使了。 我当时没好意思说,这哪是脑子不好使,是她最开始记的账太“重”了。每一行都把所有信息堆在一块儿,没有拆分,找起来自然费劲。我做数据这行快八年,天天跟数仓打交道,最知道这种全堆在一行的流水,查起来有多慢,冗余有多严重。现在想起来,她当时那点窘迫,我完全能共情——就像我之前帮刚入职的新人查数,他把所有字段都堆在一个宽表里,查个去年的销售数据要等半小时,急得满头汗的样子,跟外婆当时找不着账的样子,一模一样。
外婆用圆珠笔写的家庭收支旧账本内页
外婆用圆珠笔写的家庭收支旧账本内页
她也不是没试过改。大概是2015年左右,我回家的时候看见她把账本前面空出的几页,用尺子画了歪歪扭扭的格子。每一行固定分四栏:当天的日期、钱是从哪来的、钱花去了哪个方向、当时想留的碎碎念。最开始我以为她是照着小区里会计培训班的宣传单学的,后来问她才知道,根本没报班,就是上次记混了给我和舅舅的钱,自己琢磨出来的办法。“把同类型的东西放一块儿,找的时候就不用瞎翻了。”她当时剥着橘子跟我说,橘瓣的汁滴在格子线上,晕开一小片黄。

没人教过的建模逻辑

我盯着她画的那些格子看了好久,突然反应过来——这就是我天天挂在嘴边的维度建模啊。 之前在公司开评审会,我跟产品经理拍桌子的时候,说的最多的话就是,别把所有维度字段都堆在事实表里,要单独拆出来做维度表,减少冗余,加快查询速度。我当时以为这是我跟几个同事熬了好几个月,翻了几十本专业书才摸透的道理。结果外婆戴着老花镜,用五毛钱一支的圆珠笔,在没有网络、没有专业教材的老房子里,早就把这套逻辑用得门清。 她把所有常打交道的人,单独在账本最后留了三页纸记:菜场卖肉的张阿姨、小区诊所的王大夫、我、我妈、我舅舅、楼下收废品的李叔。每个人的名字后面,都标着点固定的信息:张阿姨的五花肉比别家贵五毛,王大夫的膏药贴了不过敏,我小时候每次要零花钱都买橘子汽水。这哪是什么小本本,这就是最朴素的维度表啊。她之前记流水的时候,每次提到张阿姨,都要写全“泰山新村菜场最里面摊位的张阿姨”,现在只要写个“张阿姨”,对应的所有固定信息都在最后那几页,找的时候翻过去就行,省了多少重复的字。 不过话说回来,谁规定维度建模就得是工程师的专利呢?
维度建模星型模型结构示意图
维度建模星型模型结构示意图
更绝的是她处理“变化”的办法。2019年我妈从国企退休,原来每个月15号给外婆打赡养费,改成了每个月10号打。换做以前的流水账,要么就硬把之前15号的记录划掉改成10号,要么就记混。结果外婆根本没动之前的旧记录,就在我妈那页的名字旁边,用铅笔轻轻写了一行“2019年起10号给钱”。 我当时看到那行铅笔字,差点笑出声。我们在公司花了好多精力讨论的缓慢变化维处理,说穿了不就是这个办法吗?不要随便修改历史记录,当维度的属性变了,就加个标记,把所有变化的痕迹都留着。既不破坏之前的记录,又能准确对应不同时间的状态。 说实话,我之前总觉得维度建模是个特别“高级”的技术,是坐在写字楼里的工程师,对着满屏的服务器、复杂的代码,琢磨出来的能支撑亿级查询的方法论。哪知道。普通人在过日子的过程里,为了把日子过明白,早就在无意识中,把这套逻辑摸得透透的。

存在云盘里的旧账

我这次搬东西,把外婆所有的账本都装在文件袋里带回了家。没有像之前做公司项目那样,搭什么复杂的数仓集群,就照着她当年画格子的逻辑,在云盘里建了三个简单的文件夹:一个放所有的日期维度,把每一年的节气、家里的大事都标在里面;一个放所有往来人的维度,把她记在最后几页的人名、对应的小备注都扫进去;最后一个文件夹,放每一笔收支的事实记录。 上周我妈找2008年我高考那年,外婆给我交报名费的数。我在云盘里搜了三秒就出来了——285块,备注栏里歪歪扭扭写着“大囡陪小囡去的,路上买了瓶橘子汽水”。 我妈当时盯着屏幕愣了好久,说她都忘了那天的事。她只记得那天太阳特别大,我考完出来满头汗,根本不记得我们在考点门口的小卖部,买了两瓶冰橘子汽水。 我没有把扫描件上的水渍、外婆打盹画的小圆圈、被虫蛀的小破洞修掉。就原样存着。 现在网上总有人说,以后大模型要把所有数据都堆在一块儿,什么维度什么表,都要被淘汰了。我每次刷到这种言论,就会想起外婆的旧账本。她从来没听过什么数仓,什么维度建模,更不知道什么是大模型。她只是想把日子记清楚,想在想起来的时候,能找着哪笔钱给我买过冰棍,哪笔钱给外公买过膏药,哪个老朋友曾经在她困难的时候帮过忙。 上次我给外婆打视频,说我把她的账本都存到网上了,以后什么时候找都不会丢。她在屏幕那头笑得皱纹都堆起来,说“那感情好,省得我下次翻半天找不着”。 我没跟她说,我做了这么多年的数据工作,最有价值的一次建模,根本不是在公司的项目里。是照着她四十年画在旧账本上的歪歪扭扭的格子,把那些藏在纸页褶皱里的日子,好好存着。

作者|大讲堂

排版|大讲堂

审核|白杨

免责声明:市场有风险,选择需谨慎!此文仅供参考,不作买卖依据。如有侵权请联系删除。
文章名称:维度建模藏在外婆的旧账本里
文章链接:https://m.lfdjt.com/info_23_28563.html