数据转换就是将数据进行合并、清理和整合,通过转换从一种表现形式变为另一种表现形式,并能够实现不同的源数据在语义上保持一致性的过程。
由于数据量的不断增加,必然会出现原先的数据框架不能满足现阶段各方面要求的情况,此时就会面临从软件到数据库的全面升级。
由于每个软件其后的数据库框架与数据存储形式都是不同的,会导致由开始的数据库更换,到数据结构的更换,再到随后需要数据本身进行转换。
出于各种原因,我们可能会有转换数据的需求,比如希望部分数据转换后能使其与其他数据兼容、需要将部分数据移动到另一个系统、与其他数据连接、聚合数据中的信息等。
数据转换对于数据集成和数据管理等活动至关重要,数据转换可以包括一系列活动:转换数据类型、通过删除空值或重复数据来清理数据、丰富数据或执行聚合,具体执行步骤将取决于项目的实际需要。
——
数据转换通常会包含以下处理内容:
1.平滑处理
帮助除去数据中的噪声,主要技术方法有 Bin 方法、聚类方法和回归方法。
2.合计处理
对数据进行总结或合计操作。例如,每天的数据经过合计操作可以获得每月或每年的总额。这一操作常用于构造数据立方或对数据进行多粒度的分析。
3.数据泛化处理
用更抽象(更高层次)的概念来取代低层次或数据层的数据对象。
例如,街道属性可以泛化到更高层次的概念,如城市、国家,数值型的属性,如年龄属性,可以映射到更高层次的概念,如年轻、中年和老年。
4.规格化处理
将有关属性数据按比例投射到特定的小范围之中。例如,将工资收入属性值映射到 0 到 1 范围内。
5.属性构造处理
根据已有属性集构造新的属性,以帮助数据处理过程。
——
数据变换是数据清理过程的重要步骤,几乎所有的数据处理过程都会涉及该步骤。
数据转换常见的内容包括:数据类型转换、数据语义转换、数据值域转换、数据粒度转换、表/数据拆分、行列转换、数据离散化、数据离散化、提炼新字段、属性构造、数据压缩等。
1.数据类型转换
当数据来自不同数据源时,不同类型的数据源数据类型不兼容可能导致系统报错。这时需要将不同数据源的数据类型进行统一转换为一种兼容的数据类型。
2.数据语义转换
传统数据仓库中基于第三范式可能存在维度表、事实表等,此时在事实表中会有很多字段需要结合维度表才能进行语义上的解析。例如,假如字段M的业务含义是浏览器类型,其取值分为是1/2/3/4/5,这5个数字如果不加转换则很难理解为业务语言,更无法在后期被解读和应用。
3.数据粒度转换
业务系统一般存储的是明细数据,有些系统甚至存储的是基于时间戳的数据,而数据仓库中的数据是用来分析的,不需要非常明细的数据,一般情况下,会将业务系统数据按照数据仓库中不同的粒度需求进行聚合。
4.表/数据拆分
某些字段可能存储多中数据信息,例如时间戳中包含了年、月、日、小时、分、秒等信息,有些规则中需要将其中部分或者全部时间属性进行拆分,以此来满足多粒度下的数据聚合需求。同样的,一个表内的多个字段,也可能存在表字段拆分的情况。
5.行列转换
某些情况下,表内的行列数据会需要进行转换(又称为转置),例如协同过滤的计算之前,user和term之间的关系即互为行列并且可相互转换,可用来满足基于项目和基于用户的相似度推荐计算。
6.数据离散化
将连续取值的属性离散化成若干区间,来帮助消减一个连续属性的取值个数。例如对于收入这个字段,为了便于做统计,根据业务经验可能分为几个不同的区间:0~3000、3001~5000、5001~10000、10001~30000、大于30000,或者在此基础上分别用1、2、3、4、5来表示。
7.数据标准化
不同字段间由于字段本身的业务含义不同,有些时间需要消除变量之间不同数量级造成的数值之间的悬殊差异。例如将销售额进行离散化处理,以消除不同销售额之间由于量级关系导致的无法进行多列的复合计算。数据标准化过程还可以用来解决个别数值较高的属性对聚类结果的影响。
8.提炼新字段
很多情况下,需要基于业务规则提取新的字段,这些字段也称为复合字段。这些字段通常都是基于单一字段产生,但需要进行复合运算甚至复杂算法模型才能得到新的指标。
9.属性构造
有些建模过程中,也会需要根据已有的属性集构造新的属性。例如,几乎所有的机器学习都会讲样本分为训练集、测试集、验证集三类,那么数据集的分类(或者叫分区)就属于需要新构建的属性,用户做机器学习不同阶段的样本使用。
以上就是关于数据转换介绍的全部内容了,欢迎大家持续关注企通查。
领取专属 10元无门槛券
私享最新 技术干货