大数据必备知识:数据的分类方式

爱职场
爱职场
爱职场
76
文章
0
评论
2020-04-1802:05:00 评论 190 3516字
摘要

之前介绍了数据驱动增长的三个要素,其中数据是最关键的要素,是一切数据工作都的根本。针对数据这个要素,除了之前专门介绍了数据的本质和价值外,本文再来探讨一下数据分类。

数据分类在收集、处理和应用数据过程中非常重要。数据的分类方式很多,每种方式都有特别的作用。数据工作中不同角色往往需要理解和掌握不同的分类方式,以便更好地组织、管理、分析和应用数据。

比如,数据平台架构师必须理解每个组件适合处理什么类型的数据,数据仓库工程师需要根据数据类型采取适合的数据清洗方法,数据分析人员必须知道数据的组织结构才能找到想要的数据。

下面将逐个介绍各种常见分类方式,并简单介绍每种分类的使用场景,以及对每个角色的重要程度。

(1)从字段类型上:文本类(string、char、text等)、数值类(int、float、number等)、时间类(data、timestamp等)

  • 文本类数据常用于描述性字段,如姓名、地址、交易摘要等。这类数据不是量化值,不能直接用于四则运算。在使用时,可先对该字段进行标准化处理(比如地址标准化)再进行字符匹配,也可直接模糊匹配。
  • 数值类数据用于描述量化属性,或用于编码。如交易金额、额度、商品数量、积分数、客户评分等都属于量化属性,可直接用于四则运算,是日常计算指标的核心字段。邮编、身份证号码、卡号之类的则属于编码,是对多个枚举值进行有规则编码,可进行四则运算,但无实质业务含义,不少编码都作为维度存在。
  • 时间类数据仅用于描述事件发生的时间,时间是一个非常重要的维度,在业务统计或分析中非常重要。

这种分类方式是最基本的,和很多场景有关。其一在系统设计时,需要确定每个字段的类型,以便设计数据库结构。其二,在数据清洗时,文本类数据往往很难清洗,而且很多文本类数据也没有清洗的必要,比如备注或客户评论。数值类和时间类数据是清洗的重点,这类字段在业务上一般都有明确的取值范围,比如年龄必须大于0。对于不合法的取值,通常用默认值填充。其三,在建立维度模型时,数值类中的编码型字段和时间类字段通常作为维度,数值类中的量化属性作为度量。

该分类对每种角色的重要程度:

  • 数据平台架构师:★
  • 数据仓库工程师:★★★
  • 数据分析和挖掘人员:★★

(2)从数据结构上:结构化数据、半结构化数据、非结构化数据

  • 结构化数据通常是指用关系数据库方式记录的数据,数据按表和字段进行存储,字段之间相互独立。
  • 半结构化数据是指以自描述的文本方式记录的数据,由于自描述数据无需满足关系数据库上那种非常严格的结构和关系,在使用过程中非常方便。很多网站和应用访问日志都采用这种格式,网页本身也是这种格式。
  • 非结构化数据通常是指语音、图片、视频等格式的数据。这类数据一般按照特定应用格式进行编码,数据量非常大,且不能简单地转换成结构化数据。

这种分类方式近几年特别重要,相关的场景包括:其一,结构化数据是传统数据的主体,而半结构化和非结构化数据是大数据的主体。后者的增长速度比前者快很多,大数据的量这么大,主要是因为半结构化和非结构化数据的增长速度太快。其二,在数据平台设计时,结构化数据用传统的关系数据库便可高效处理,而半结构化和非结构化数据必须用Hadoop等大数据平台。其三,在数据分析和挖掘时,不少工具都要求输入结构化数据,因此必须把半结构化数据先转换成结构化数据。

该分类对每种角色的重要程度:

  • 数据平台架构师:★★★
  • 数据仓库工程师:★★★
  • 数据分析和挖掘人员:★★★

(3)从描述事物的角度:状态类数据、事件类数据、混合类数据

  • 用数据来描述客观世界,一般可以从两个方面出发。第一方面是描述客观世界的实体,也即一个个对象,比如人、桌子、账户等等。对于这些对象,各有各的特征,不同种类的对象拥有不同的特征,比如人的特征包括姓名、性别和年龄,桌子的特征包括颜色和材质;对于同一种对象的不同个体,其特征值的不同,比如张三男20岁,李四女24岁。有些特征稳定不变,而另一些则会不断发生变化,比如性别一般不变,但账户金额、人的位置则随时可能变化。因此,可以使用一组特征数据来描述每个对象,这些数据可以随时间发生变化(数据的变化一方面依赖于对象的变化,另一方面依赖于变化反映到数据上的时间差),每个时点的数据反映这个时点对象所处的状态,因此称之为状态类数据。
  • 第二方面是描述客观世界中对象之间的关系,它们是怎么互动的,怎么发生反应的。我们把这一次次互动或反应记录下来,这类数据称之为事件类数据。比如客户到商店买了件衣服,这里出现三个对象,分别是客户、商店、衣服,三个对象之间发生了一次交易关系。
  • 混合类数据理论上也属于事件类数据范畴,两者的差别在于,混合类数据所描述的事件发生过程持续较长,记录数据时该事件还没有结束,还将发生变化。比如订单,从订单生成到结案整个过程需要持续一段时间,首次记录订单数据是在订单生产的时候,订单状态、订单金额后续还可能多次变化。

这种分类方式在数据仓库建模是特别重要。数据仓库需要保存各种历史数据,不同类型的历史数据保存方式差别很大。状态类数据保存历史的方式一般有两种:存储快照或者SCD方式。事件类数据一旦发生就已经是历史了,只需直接存储或者按时间分区存储。混合类数据保存历史比较复杂,可以把变化的字段分离出来,按状态类数据保存,剩下不变的则按事件类数据保存,使用时再把两者合并。另一个相关场景就客户画像,客户画像通常用状态类数据,对于和客户相关的事件类数据和混合类数据,也会转换成和状态类数据相同的形态。

该分类对每种角色的重要程度:

  • 数据平台架构师:★
  • 数据仓库工程师:★★★
  • 数据分析和挖掘人员:★★

(4)从数据处理的角度:原始数据、衍生数据

  • 原始数据是指来自上游系统的,没有做过任何加工的数据。虽然会从原始数据中产生大量衍生数据,但还是会保留一份未作任何修改的原始数据,一旦衍生数据发生问题,可以随时从原始数据重新计算。
  • 衍生数据是指通过对原始数据进行加工处理后产生的数据。衍生数据包括各种数据集市、汇总层、宽表、数据分析和挖掘结果等等。从衍生目的上,可以简单分为两种情况,一种是为提高数据交付效率,数据集市、汇总层、宽表都属于这种情况。另一种是为解决业务问题,数据分析和挖掘结果就属于这种。

这种分类方式主要用在管理数据上,对原始数据的管理和衍生数据的管理有一些差别。原始数据通常只要保留一份,衍生数据却不同,管理形式比较灵活,只要有利于提高数据分析和挖掘效率,产生更大的数据价值,任何形式都可以尝试。比如为每个业务条线定制个性化数据集市,提高每个业务条线的数据分析效率,虽然不同集市存在大量冗余的数据,但只要能大幅提高分析效率,用空间换时间也未尝不可。

该分类对每种角色的重要程度:

  • 数据平台架构师:★★
  • 数据仓库工程师:★★★
  • 数据分析和挖掘人员:★

(5)从数据粒度上:明细数据、汇总数据

  • 通常从业务系统获取的原始数据,是粒度比较小的,包括大量业务细节。比如,客户表中包含每个客户的性别、年龄、姓名等数据,交易表中包含每笔交易的时间、地点、金额等数据。这种数据我们称之为明细数据。明细数据虽然包括了最为丰富的业务细节,但在分析和挖掘时,往往需要进行大量的计算,效率比较低。
  • 为了提高数据分析效率,需要对数据进行预加工,通常按时间维度、地区维度、产品维度等常用维度进行汇总。分析数据时,优先使用汇总数据,如果汇总数据满足不了需求则使用明细数据,以此提高数据使用效率。

这种分类方式的相关场景有两种,一种是在数据仓库设计时,如何对数据进行汇总,按什么方式进行汇总,才能达到使用效率和汇总成本的平衡。另一种是数据分析人员在分析数据时,在明细数据、各种汇总数据之间选择合适的数据,以提高分析效率。

该分类对每种角色的重要程度:

  • 数据平台架构师:★
  • 数据仓库工程师:★★★
  • 数据分析和挖掘人员:★★★

(6)从更新方式上:批量数据、实时数据

  • 源系统提供数据时,不同的源系统有不同的提供方式,主要可以分为两种方式。 一种是批量方式 ,这种方式每隔一段时间提供一次,把该时段内所有变化的都提供过来。批量方式时效较低,大部分传统系统都采用T+1方式,业务用户最快只能分析到前一天的数据,看前一天的报表。
  • 另一种方式是实时方式,即每当数据发生变化或产生新数据,就会立刻提供过来。这种方式时效快,能有效满足时效要求高的业务,比如场景营销。但该方式对技术要求更高,必须保证系统足够稳定,一旦出现数据错误,容易造成较严重的业务影响。

这种分类方式也非常重要,目前有越来越多系统采取该方式提供数据。这对数据处理、数据分析和数据应用产生了巨大的影响。一方面能为业务提供近乎实时的数据和报表支持,实现高时效的业务场景。另一方面也极大地增加了数据架构、数据分析和应用的技术难度。

该分类对每种角色的重要程度:

  • 数据平台架构师:★★★
  • 数据仓库工程师:★★
  • 数据分析和挖掘人员:★★

End

作者:星星在火

来源:知乎

  • 我的微信公众号
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: