商业智能仪表盘的制作过程中,需要分别用到ETL功能、数据仓库功能、OLAP功能及数据可视化功能。
ETL是英文Extract-Transform-Load的首字母缩写,是将分析时使用的数据从数据源端经过抽取(Extract)、清洗转换(Transform)之后加载(Load)到数据仓库的过程。使用ETL功能的目的是将所有分析所需的分散在企业内外部的零乱、标准不统一、没有质量保证的数据整合到一起,为分析决策提供完整、高质量的数据信息。
ETL功能常见的执行顺序分为两类,一类是按照“ETL”的顺序执行,也就是先抽取,再清洗转换,最后加载,另一类是按照“ELT"的顺序执行,也就是先抽取,再加载,最后清洗转换。加载对象数据仓库的处理能力越强,处理数据量越大,清洗转换逻辑越复杂,越倾向于按照“ELT”的顺序执行。
ETL功能中的“E”表示抽取功能,其目的是将分析所需的所有相关数据从不同数据源中抽取出来为加载到数据仓库做准备。
ETL功能中的“T”表示清洗转换功能,其目的是保证数据的完整性与准确性。数据清洗的主要任务是过滤筛选不完整、错误及重复的数据记录。不完整数据主要指的是分析中需要用到而数据源中又有所缺失的数据记录。错误数据主要指的是有错误数值存在的数据记录,错误值可能来自不健全的业务系统、系统bug或人为输入信息错误。重复数据主要指的是在不应出现重复值的字段中出现重复值的情况,这多数是因为抽取合并数据时的逻辑错误,造成一表信息在多表中重复记录翻倍。
数据转换主要对“粒度”不一致及“规则”不一致的数据进行转换。在业务描述性分析中的“粒度”指的是观测业务的精细程度,而一个数据表中最小的业务观测粒度一般是这个数据表中主键所代表的业务记录单位。粒度越粗,一般越趋于对业务整体趋势进行描述分析;反之,粒度越细,一般越趋于对业务详情进行描述分析。
ETL功能有时还需要将非结构化数据转换为结构化数据,针对不同内容的非结构化数据,要编写不同逻辑的解读程序才能正确地转换为结构化数据。