用仓库和集市来作为一种形象比喻,存储历史数据的地方叫做数据仓库,将数据提供给最终用户分析的地方叫做数据集市。形象之处在于仓库的集中和集市的发散,这意思也就是将"数据"当作一种货物来看待。
一直以来,隐隐有个问题没有去思考。这"数据"跟"货物"的区别在于什么地方?
至少,货物从仓库搬到集市,仓库里面可就是空了。但数据不一样,从仓库到集市,只是复制,或者是在聚集一下。如果将数据当作一种对象的话,这个区别必须得考虑一下。传统有形的货物,可以非常清晰地,将一个包装箱当作一个对象,比如用RFID技术就可以非常容易标识"这个"箱子。即便是箱子里面整整齐齐码着一百本书,这每本书也是很容易就可以标识的,同样可以使用RFID来标识。这些货物只能移动,复制?恐怕只有聚宝盆才能完成。
假设真有个聚宝盆吧,像《天书奇潭》里面那样,跳进去一个老头,出来好多同样的老头。可这些老头是如何区别的呢?长相,一摸一样;名字也是一样;不知道dna是不是一样了。可又非常明显地,他们是不同的老头。
数据也是一样。在数据仓库中,必定存在同样的数据。这里说的同样,是指粒度一样,属性、度量都一样的数据。譬如数据仓库中有一个粒度为(月、地区、产品)的销量数据集,数据集市中也有,只是为了查询方面,将它复制过来而已。他们在记录上表现是一样的,可明显,他们又是不同的。但一般来说,没有一个标志能够标识他们的不同。虽然可以说,"他们位于的表不同"。
曾经倡导过在ETL中设计一个"数据单元"的东西,设想中,这就是一个可标识的最小数据单位。但还是没想清楚如何去表示它。通过数据粒度来标识?那原子数据的数据单元是什么?是单条记录吗?
转而间,又会怀疑为什么冒出这样的想法。难道因为平常的货物可以标识,就一定要标识一份数据吗?如今RFID技术在很多领域已经热火朝天,在物流、零售、赌场甚至电信里面也已经开始尝试了。前段时间,聊天,说国外某个赌场用了RFID技术,在每个筹码上都装了这个设备。因此,一个赌徒,怀揣多少筹码,每个筹码都投向哪个机器都能监控并记录下来。这些数据就是下一步分析的原料,可以帮助赌场设定机器的多少、布局,帮助分析如何鼓励一位赌徒投入更多的赌注。
其实对于作BI、作数据分析的来说,关心的就是这些原料。如果你要分析数据仓库的设计、使用状况,以作优化,却不能将数据集标识出来,甚至是将某个操作标识出来,那也是巧妇难为无米之炊。其实这就是元数据的作用了,早先时候的数据仓库,太多人工处理,只知道一个表里面有若干字段,却不知道有什么样的数据(多长时间的,什么粒度的)。
说到这里,发现跟开始的内容有些跑题。开始说的是"数据"这种东西的特点是什么,数据的流动,我们通常可以称为ETL,和平常的货物流转有什么不同。
还记得几个月前有位朋友将ETL流程比作自来水的处理,经过一道道工序,得到比较纯净的水。这个比喻其实也存在同样的问题,水只是移动。
责编:姜玲
微信扫一扫实时了解行业动态
微信扫一扫分享本文给好友