数据百科

您现在的位置是:首页 > 大数据 > 数据仓库

oracle

数据仓库建设以及选择

2020-01-08 21:07:12数据百科
不管什么平台,或者自研,都需要,调度系统,任务上下线,集群监控,任务管理,数据分析界面,血缘关系,数据质量管理平台等等这些 数据源有哪些?业务库,埋点,日志,非关系型数据库,文件,接口等等 有
不管什么平台,或者自研,都需要,调度系统,任务上下线,集群监控,任务管理,数据分析界面,血缘关系,数据质量管理平台等等这些
数据源有哪些?业务库,埋点,日志,非关系型数据库,文件,接口等等
有没有实时需要?业务库是datax还是sqoop还是kettle?日志或者文件是flume,logstach还是什么?
我不说技术点,我只说构建数仓的步骤和每个步骤需要考虑什么,解决什么问题,这些了解了,把能解决这些问题的技术放进去就行了
先说离线,不同数据源根据不同策略入仓之后就要考虑数仓的逻辑搭建,因为平台选完了就是物理构建完成了。
首先考虑分层,参考阿里onedata,ods-dwd-dws-ads,百度一大堆
然后是数据模型,参考kimball或者Inmon,快速开发出结果一般都是kimball,也就是维度模型,onedata也是在kimball基础上出现的
数据源入仓说了啊,不同数据源不同策略。
数据模型我们一般kimball的维度模型。开发过程就是确定业务过程,确定粒度,确定维度,确定事实。
还缺一个报表,离线一般是为了报表和一些数据应用的离线计算部分。离线计算部分可以在数仓完成,报表需要找一个。
数仓里面数据处理好了之后有两种选择,一个是把结果同步到一个olap,报表查olap,另一个是报表直接用impala或者spark sql查询数仓的结果
这个架构是离线数仓的整个数据流向,每个过程需要一些技术手段。这个流程打通之后,数仓的demo就通了。
通了之后就要考虑其他东西了,比如元数据管理?血缘关系?数据质量管理?数据模型构建原则,到最后的数据治理等等。
这些都弄完了,就可以开始或者并行开始构建实时数仓了
元数据管理一般自己开发个小系统,把元数据搞出来一顿操作,可以用来解决,指标一致性问题等等。不过这个地方说的只是数据的元数据,元数据其实很大,也不细说了。
血缘关系的话,目前分为表血缘和任务血缘,暂时没见过字段的血缘
有关实时数仓。一般分为lambda架构和kappa架构
选个消息队列,kafka或者MQ,数据实时发布到消息队列,逻辑分层和离线数仓一样,中间过程用flink处理然后再写到消息队列。最后把结果写到hbase或者其他数据库,然后结果备份一份到hive
还有一种是lambda架构,一部分实时计算,结果写到olap,另一部分离线数仓计算写到olap,离线和实时合并
这个架构问题是解决不了不可加或者半可加指标的计算