搜索
写经验 领红包
 > 健康

数据仓库数据治理方案怎么写(数据仓库数据治理方案设计)

导语:数据仓库数据治理方案

数据仓库数据治理方案

数据仓库在数据治理时,通常建立数据模型,分层维护。一般有两种方式:

1. 面向未来可能或数据规划,从底层数据出发来模型构建;

2. 面向主题构建模型。减少模型涉及不到,和初期无法确定未来数据情况。

使用kylin构建数据仓库是怎么处理数据治理的呢?

kylin构建cube,可以多表关联构建。大多数复杂SQL需要经过拆分,多次汇总最后使ADS层数据得到构建。其中每一次任务构建,在kylin中设置定时策略构建。任务构建需要维护,当数据发生变化时,由重刷任务使数据更新完成。所以,kylin在数据治理时,有个极大的好处是,通过构建每一个数据展示任务,实际上已经提前做了分拆构建(人为拆分),并且它会去维护这些繁杂的任务以及定时更新策略。

有impala/kudu 构建的主要OLAP数据仓库,数据ETL任务设置定时策略可按一定频率刷新数仓数据。处理过程中包括新增数据和更新数据。

ODS : 数据ETL之后,在KUDU中存储的贴源数据即为ODS层数据,这里重点是维护ETL任务,保证增量数据新增和更新完成。另外需要对一些事实表建维表,包括时间,交易类型,支付类型,渠道,银行,商户类型等维表。使整体事实表和维表呈星形,在数据查询时,通过维表关联。这样好处是,能通过维表统计多种多样的维度数据统计。缺点是,在对一个本来简单的数据查询时,需要关联好几个维表,使其显得格外复杂。

DWS : 即为汇总层。主要任务是对主题数据汇总。

ADS: 主题数据物化层

数据治理实施方法

(一)、确定主题

各业务需求主题

(二)、确定量度

在确定了主题以后,将考虑要分析的技术指标,诸如年销售额之类。它们一般为数值型数据。或者将该数据汇总,或者将该数据取次数、独立次数或取最大最小值等,这样的数据称为量度。

量度是要统计的指标,必须事先选择恰当,基于不同的量度可以进行复杂关键性能指标(KPI)等的设计和计算。

(三)、确定事实数据粒度

在确定了量度之后,要考虑到该量度的汇总情况和不同维度下量度的聚合情况。考虑到量度的聚合程度不同,将采用“最小粒度原则”,即将量度的粒度设置到最小。

在采用“最小粒度原则”的同时,不必担心海量数据所带来的汇总分析效率问题,因为在后续建立多维分析模型(CUBE)的时候,会对数据提前进行汇总,从而保障产生分析结果的效率。

(四)、确定维度

维度是指分析的各个角度。例如希望按照时间,或者按照地区,或者按照产品进行分析,那么这里的时间、地区、产品就是相应的维度。基于不同的维度,可以看到各量度的汇总情况,也可以基于所有的维度进行交叉分析。

这里首先要确定维度的层次(HierarChy)和级别(Level)。在时间维度上,按照“年-季度-月”形成了一个层次,其中“年”、“季度”、“月”成为了这个层次的3个级别;同理,当建立产品维度时,可以将“产品大类-产品子类-产品”划为一个层次,其中包含“产品大类”、“产品子类”、“产品”三个级别。

(五)、创建事实表

在确定好事实数据和维度后,将考虑加载事实表。

做法是将原始表与维度表进行关联,生成事实表。事实表除了各维度代理键外,还有各量度数据,这将来自原始表,事实表中将存在维度代理键和各量度。

事实数据表是数据仓库的核心,需要精心维护,在JOIN后将得到事实数据表,一般记录条数都比较大,需要为其设置复合主键和索引,以呈现数据的完整性和基于数据仓库的查询性能优化。事实数据表与维度表一起放于数据仓库中,如果前端需要连接数据仓库进行查询,还需要建立一些相关的中间汇总表或物化视,以方便查询。

谈谈传统数仓技术构架

传统数仓通常都是通过HIVE来构建,部署个Hadoop,然后HIVE,以及hive需要的MySQL。

最多在加上Hbase,全是hadoop一套技术组件。离线数据通过sqoop同步到HIVE里,增量数据的处理方法很原始,就是每天做对数仓数据做个镜像,重新拉取。也有对需要更新的数据,通过扫表或解析MySQL日志发送kafka消息,在hive里对数仓数据删除,然后再插入。

另外,也有直接往Hbase里同步数据,主要解决存储的扩展问题。Hbase本身的查询性能也非常不错,及时现在也好像没有在查询性能上比他更好的存储组件。分析上通过impala,presto配合,一套数仓架构基础也能构建完成。数据质量方便不必说,分层质量的方案是很早就有的。

这种方式虽然耗时,在取数时,也因为是通过hive查询启动MapReduce程序,时效性很长,因此通常都是跑定时任务做报表统计。但总体上运行稳定,数据量不大的情况下,方案基本能应付支持。

因此新的架构出现,主要在解决取数快速,和能即查即用上。这就需要在存储和计算上解决查询快速和及时响应。存储上,会通过使用支持数据更新的存储如KUDU等分布式存储来提数仓数据及时更新,减少延时。计算分开来,有像impala,presto的内存计算查询引擎,直接查询底层存储数据聚合返回;也有想Spark SQL,Flink 这样的流式计算引擎,对存量数据启动内存任务计算获取数据,对增量数据也能支持流式计算纳入查询结果返回。

因此,分布式查询引擎和流式计算是新一代大数据技术核心。

附大数据整体架构图:

本文内容由小冰整理编辑!