小型数据仓库的建设
我从事数据仓库很多年了,今天闲下来做一下总结。
中小型数据仓库一般指的是,每天往数据库加载数据量在亿条以下的数据仓库。这种数据仓库一般都是业务比较简单,数据交易量不大的公司为了数据分析本公司的业务情况而建立的。 比如说小型的业务公司,大型公司但是业务较为单一。 以下是3年前在一家以小额贷款催收公司从0到1搭建数据仓库的过程。 我进入这家公司时,就是以建立数据仓库,数据分析团队而进入的。 当时完全是因为大数据是很新潮的概念,所有的科技公司,言必说大数据。而这家公司也是想借着大数据浪潮将自家的业务往上靠,融资也好,真的做出智能产品也好。在这样的背景下,我进入了这家公司。 小额贷款公司发放贷款后,贷款人逾期后,会将案例发送给催收公司进行催收,这家公司就是专门做催收业务的。 这家公司通过对接小额贷款公司和多个催收公司,将小额贷款公司待催收的案件发送给不同的催收公司进行催收,将小额贷款公司的佣金和催收公司进行分成实现盈利。 由于是对接了多家贷款公司和多个催收公司,商务规则如下: 1.小额贷款公司: 1>不同的贷款公司不同的佣金,案例越多的公司佣金越低 2>不同的案例不同的佣金,逾期时间越长的佣金越高 3>不同的产品不同的佣金,视产品而定
2.催收公司和催收员: 1>每个催收公司佣金越低,分配案件越多 2>每个催收公司分配的案件有上限 3>催收员的分配案件有上限
3.待催收案件 1>案件当天分配 2>超过一定时间,催收员可以主动退回案件,案件将进入资源池重新分配 3>案件如果回款,最后一位催收员将被记录为催收人员进行佣金分配 4>案件逾期时间越长,金额越大,佣金比例越大
公司的系统功能包括接收待催收案件,分配案件,监管催收员等,催收员必须登录公司系统才能查看待催收案件的相关信息,催收员必须通过公司系统拨打电话和发送短信。 公司整个案件的分配流程大体如下: 1.案件分配流程: 接收案件 》判断催收员是否可接收案件 》 分配案件 2.催收流程: 催收员登录系统 》 查看当前接收的案件信息 》 通过系统拨打电话或者发送短信 3.佣金分配流程: 接收案件回款信息 》 与贷款公司进行佣金结算 》 与催收公司进行佣金结算,并提供催收员的催收回款记录
因此整个过程中,公司主要接收2类信息,一类是案件信息,包括债务人的个人信息和债务人的贷款信息,所贷款的产品信息。一类是债务人的回款信息。
公司通过数据仓库系统,想实现的目标有: 1.通过待催收案件数据,分析各个贷款产品的逾期情况,提供给上游进行贷款产品的调整。 2.通过整合债务人信息,分析债务人在各家小额贷款公司的贷款情况,提供给上游进行风险分析。 3.通过整合催收员信息,分析催收人员催收案件特点,更有效率的进行催收。 4.通过分析机器人催收和催收员催收,将更容易的案件分配给智能机器人进行催收,减少佣金支出。 5.通过分析案件信息,分析可直接从小额贷款公司购买的资产包,实现更大比例的获利。
整个数据仓库的技术架构如下: 整个数据仓库使用了阿里云的RDSmysql数据库为主数据库,使用datax从业务系统mysql数据库中将数据抽取到数据仓库中,使用python和sql语言对数据进行处理,使用airflow作为调度工具。 1.RDS 1套,空间5TB,阿里云负责主备 2.ETL服务器,2台,主备结构,安装airflow最为调度。使用DATAX负责数据的抽取和加载。使用python脚本,sql,mysql存储过程实现数据的处理。
根据公司对数据仓库的规划和目标,对整个数据仓库划分为以下3个主题: 案件主题:整合案件信息 债务人主题:整合债务人信息 催收员主题:整合催收员信息
数据仓库分为3层: stg层,存储datax直接抽取的数据 ods层,整合stg层数据,沉淀为数据仓库历史性数据 dwd层,整个ods层,形成轻度汇总层数据 st层,最终结果展示层数据