商业智能的发展趋势及关键技术盘点
|
ETL是Bl/DW(Business Intelligence)的核心和灵魂,它在商业智能系统中占据举足轻重的作用。在整个BI项目中最难部分是用户需求分析和模型设计,而ETL规则设计和实施则是工作量最大的,约占整个项目的60%~80%。可见ETL的重要性,ETL设计的正确性和合理性,直接影响整个BI项目的效率和质量。
数据清洗和转换
ETL过程中最复杂的是数据清洗和转换,它通常是与业务需要和后期的数据分析和数据挖掘直接相关的,也是BI项目中资源密集程度最高的步骤。数据清洗的目的是除去数据中的“噪声(noise)”和不相关的信息。数据转换的目的是将源数据的数据值与类型转换为同一的格式。数据清洗和转换通常包括以下处理。
数据类型的转换:这是数据转换中最简单的任务,由需要通常将布尔类型转换为整数类型;或连续的数据类型根据一定原则转变为离散的值;对数据进行归一化等。
数据分组:有时可能有许多不同的值(状态)出现在离散列中,为了减少模型的复杂性需要把这些值分组,例如职业可能有几十种不同的值,如软件工程师、电子工程师、硬件工程师、顾问等,我们可以用一个“工程师’’来对其进行归纳,以减少模型的复杂度。
数据聚集:聚集计算的结果是根据用户可能的查询预先计算好的汇总数据。比如希望通过每个客户的详细通话记录对客户进行细分,派生出呼叫次数和平均通话时间等属性列。
离群点的处理:离群点称为孤立点,是数据集中的异常事例,这些事例是少数的情况,但却影响一般数据分析模型的准确性,需要对它们单独进行处理。通常情况是直接删除这些孤立点,对正常数据进行建模。但有时候对这些点的分析却有非常重要的意义,比如信用卡欺诈检测和网络入侵检测等。
缺失值处理:从不同数据源集成过来的数据,由于多方面原因存在很多的缺失的数据,这些空值的存在严重影响了正常的数据分析工作,必须对其进行处理。目前有一些方法来处理这种问题,利用平均值代替或者用常见的值代替或者直接产出带空值的记录,无论使用怎么的方法,都必须看实际业务对数据的要求和对模型准确性的要求程度。
还有其它的数据清洗和转换任务,在具体操作中,我们需要使用相应的工具来解决业务问题,确保数据的正确性及可用性。
ETL的挑战
ETL系统是一个复杂的系统工程,虽然ETL已经进入实用阶段,但还有许多阻碍其应用的情况。主要体现在异构数据源的结构差别和数据源数据质量方面。ETL的各个数据源位于不同的网络和操作系统,在数据格式定义,数据结构和接口方面都存在很大差异,给数据提取工作带来很多的麻烦。而且现有不同数据库系统存在无法解决的脏数据,包括命名格式不规范,滥用缩写词、惯用语、数据录入错误、数据重复、数据丢失、单位尺度不一致等。其中对数据集成和清洗影响最大的是以下问题。
(编辑:PHP编程网 - 湛江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

