数据仓库技术在住建行业应用的工程实践(下)

上一篇主要和大家阐述了数据仓库的定义、数据仓库的特征结构以及如何构建数据仓库等概念。在这一篇,我想和大家分享一下我们在住建行业具体实施数据仓库中的心得与体会。

公共住房分析库的建设

在住建行业中应用中,很多系统已经持续服役10年以上,积累的数据量已经到了TB级别,同时陆续新建的系统又带来新鲜的数据,所以在进行数据分析建模之前需要建设数据平台,以实现数据大集中,减少人力去逐库逐系统地采集数据。

以公共住房业务的数据仓库建设流程为例,数据是从各个业务系统产生并存储到业务库;为了不影响业务系统的正常使用和不降低其性能,数据处理流程不宜直接使用业务库,宜从1:1的业务备份库获取数据;然后通过工具(例如Oracle的Goldengate)将业务库中的表按照业务需求同步到操作数据库(ODS)中;然后使用ETL工具根据上一篇提到的方法建立数据仓库和数据集市;最后,ODS库和数据集市皆可作为数据源供分析和展示之用。

(数据平台架构)

建设数据仓库需要注意按业务需求整合数据,过分冗余徒增资源消耗,缺表少字段会导致数据无法支撑业务需求的实现,只有保障好数据平台中数据的完整性,才能为接下来的数据分析打好基础。

我们在案例中遇到的业务需求对数据的实时性要求不高,按T+1的周期即可满足要求。所以我们将数据抽取安排在晚上执行。具体流程图如下:

(数据抽取流程图)

公共住房数据集市的建设

我们可以选用市场上比较成熟的ETL(Extract,Transform,Load)工具,其主要功能是将各种异构数据源中的数据抽取并处理,包括过滤、变形、星形模式转换、雪花形模式转换、数据仓库结构变形等等处理,然后将处理后的结果导出到不同的数据库、数据仓库、数据集市或数据文件中。

然后使用数据集管理工具创建数据仓库以及为报表、分析,以及绩效管理使用的数据集市。这里主要考虑我们要从种类繁多的数据源当中抽取操作性数据,合并以及转换数据,使数据达到业务需求范围内展示和分析的要求。

创建维度框架

维度框架定义了核心业务元素的层次结构,它展示了组织重新思考业务数据构建的一种方式,每一个分组后的维度包含的信息都是与特定的业务场景相关联。一个维度提供了分析的上下文,比如房源、保障对象、租金等。

引用维度包含引用结构(层次结构、自动等级的层次结构,以及表查找),和一个或多个模板。

层次结构 Hierarchies

层次结构提出了业务维度的特定视图。它包含在固定数量级的相关引用数据的的定义。每个级别包含一组在该数量级水平的成员数据。在等级上成员数据又分为父类水平,以及子类水平,有上下区分。

自动等级层次结构 Auto-level Hierarchies

自动等级的层次结构没有固定数量的等级概念,它是纯粹的父-子关系结构。例如:小区与房屋的关系。

查找 Lookups

查找是一个单一的层次结构,主要用于数据验证。

模板 Templates

模板为维度表定义的属性,以及行为,一个模板需要恰当的维护以及使用相应的引用维度表。

业务维度是分析报表的核心业务组成部分,比如在公共住房申请业务中,公共住房所在地和申请人户籍所在地存在约束,申请人可以申请何种类型的公共住房存在约束,申请人对审核状态比较关心,而住建局对办理时长存在考核要求等等条件,我们可以由此设计构建如下的维度:

户籍所在区维度

办理时长维度

业务类别维度

审核状态维度

( 时间维度表)

创建数据集市

构建一个数据集市的核心就是事实表的构建,事实构建器明确的指定如何提取、转换以及传递数据,数据可以来自于多个数据源,合并并且清洗,在事实表中聚合,最后联合维度数据形成一个或多个数据集市。

事实表中主要字段来源包括:

属性(Attribute)

属性元素并不是维度也不是量度信息,属性信息不像量度信息那样可以被聚合。

派生(Derivation)

派生元素是指从源数据得到,再通过使用定义的表达式以后计算出来的值。

维度(Dimension)

一个维度元素包含运用计量的数据的上下文,例如,一个区域房源数量的量度需要知道房源所在区的维度。

派生维度(Derived Dimension)

一个派生维度元素允许进行其他维度表的查找,而这个查找值可以从之前的派生的查找或则计算中获得。

量度(Measure)

量度元素是一个可以进行计算和分析的值,比如受理数量,轮候时长等等。

(在册分析事实表)

创建工作流

我们可以在ETL工具中设计工作流程,如下图所示

(工作流)

使用工作流可以使各个组件在一起进行有序的逻辑处理。一个Job可以包含多个节点,可以是进程里的一个个步骤。你可以将 Job 设置为多个不同的应用程序,比如确认的数据集市,构建一个状态通知,维度数据的预处理区构建,数据清洗,索引维护,应付不同达到率的源数据,分区任务,以及自定义的程序日志记录等等。

数据质量管理

分析数据来源于生产系统的数据,如果生产系统数据不规范,对数据分析会带来诸多麻烦,导致分析结果不准确,数据对账出现偏差,无法真实反应业务情况。在公共住房业务相关数据库中,我们发现的数据问题主要包括以下几种:

历史数据缺失

在历史数据的迁移过程中没有考虑数据的完整性,导致某些数据出现了完整性的错误,例如受理数量与办结、办理、作废数量之和不匹配。

基础数据不匹配

由于不同系统未能统一数据源,各自为营各行其政,导致同一对象的属性分类不一致。例如同一人的婚姻状况在不同表中存在已婚和未婚两种。

关键字段迁移错位

由于迁移数据的缘故,某些字段在迁移过程中迁到了错误的字段中。例如在地址字段中存在一批手机号码的记录。

填报信息数据不正确

由于填报时的疏忽,导致数据错误。例如:小区地址与小区名称完全一样,地址完全相同但小区名称完全不同。直接导致统计小区数量的时候得到三种结果:

非正常数据

由于系统BUG或各种异常导致的数据问题。例如办结状态的案件没有办结时间,办结时间小于受理时间。

在找出数据问题之后就需要进行数据清晰,许多不严重的问题都可以通过 ETL配合各种规则予以解决,剩下的则需要人工干预,具体处理流程如下:

(数据修正流程图)

两篇文章的分享

【上篇:数据仓库技术在住建行业应用的工程实践(上)】

,阐述了数据仓库的核心就是数据的建模与治理。数据仓库是出于分析性报告和决策支持目的而创建;是为需要业务智能的企业提供指导业务流程改进,控制时间、成本以及质量,激活数据资产,将IT与业务对齐,共同创造价值。

最近微信订阅号疯狂改版

小编好慌~

生怕大家在茫茫文海找不到我们

为此

请大家一定不要忘记

按以下三步

点亮我们的小星星哦~

如果你喜欢本文,请分享到朋友圈

想要获得更多信息,请关注我 ↓

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181019B1MOFI00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励