数据采集过程包括集成、导入、格式化。
数据采集过程中首先集成来自不同来源的数据。数据集成要考虑存储架构、采集方式、接口方式、采集周期等。
在存储架构方面,可以考虑在数据源侧设置数据暂存区(Staging Area),也可以考虑在采集平台侧设置的暂存区。靠根据数据量和累计速度来设置合理大小的数据暂存区,防止数据溢出。
在存取方式方面,可以根据应用的需要采用不同的存取方式。采集方式包括单个采集和批量采集两种类型,对于数据量小、时效性要求高的应用,可以采用单个采集的方式,当数据形成后可以立即同步到数据仓库。比如用于审计的操作日志,可以采用单个采集的方式,当操作日志产生后就实时地同步到数据仓库。对于文件多而且实时性要求相对较低的数据,可以等文件数达到一定规模或者达到一定的时间周期后,批量采集或者推送到数据仓库。
在接口方式方面,对于批量采集的数据,可以考虑采用FTP方式,对于单个采集的数据,可以采用API或者Web Services接口的方式。
在采集周期方面,通常是采集周期越短,数据的实时性越高,数据分析的结果越及时。企业可以根据应用的需要设置不同的采集周期,要考虑数据暂存区能否满足要求。
在数据导入方面,根据数据规模大小分为三种导入类型。
第一种是数据量大而且需要导入数据定义的场景,比如数据定义包括索引、分区等,可以考虑采用大文件导入方式,这样可以保证数据源的完整性。
第二种是对于数据源结构简单、导入文件多、规模大的数据,可以采用批量文件导入的方式,这样可以看到导入过程中产生的错误,并及时纠正,保证数据导入的质量。
最后一种是对于数据量小的单个文件,比如某些代码表、配置文件等,可以通过数据导入工具逐个导入,这种方式比较简单灵活。
数据采集阶段的数据规范化工作非常重要,因为数据分析必须基于一个统一的标准,而多种数据源就某一个数据通常会存在形成和内容上的不同。比如在A数据源中,日期格式以“年-月-日”形式存储,而B数据源中以“月-日-年”形成存储,因此需要将这两种数据源中的格式进行统一。
也有的字段存储的数据类型不一样,比如在A数据源中,年龄字段以字符串格式存放,而B数据源中以整型格式存放,需要将两个字段统一为一种数据类型。还有的数据在不同数据源中存放的内容不一样,但是表达的是同一个意思。比如A数据源中的“性别”是“M”和“F”代表“男”和“女”,而B数据源中“性别”则是用“1”代表“男”,而用“0”代表“女”,因此需要实现两种数据源“性别”在语义上的统一。
不同数据源在同一数据上存在差异的原因是信息系统设计时并没有考虑到其它信息系统或者不同的应用提供商并没有遵循共同的编码规范。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/194794.html