互联网行业,除了内容量大之外,买卖时效性要求也很高,甚至很多是要求及时的。另外,互联网行业的买卖转变非常快,弗成能像传统行业一样,能够使用自顶向下的方法创建内容仓库,一劳永逸,它要求新的买卖很快能融入内容仓库中来,老的下线的买卖,能很方便的从现有的内容仓库中下线。
团体架构
如下图便是内容仓库的逻辑分层架构:
内容源
内容源,顾名思义便是内容的本原,互联网公司的内容本原跟着公司的规模扩张而呈递增趋势,同时自分歧的买卖源,好比埋点采集,客户上报等。
ODS层
内容仓库源头体系的内容表平日会原封不动地存储一份,这称为ODS层, ODS层也常常会被称为准备区,它们是后续内容仓库层加工内容的本原,同时ODS层也存储着汗青的增量内容或全量内容。
DW层
据仓库明细层和内容仓库汇总层是内容仓库的主题数据。DWD和DWS层的内容是ODS层经由ETL洗濯、转换、加载天生的,并且它们平日都是基于Kimball的维度建模理论来构建的,并通过同等性维度和内容总线来包管各个子主题的维度同等性。
DWS层
应用层汇总层主要是将DWD和DWS的明细内容在Hadoop平台进行汇总,然后将发生的效果同步到DWS内容库,供应给各个应用。
内容采集
内容采集的任务便是把内容从各种内容源中采集和存储到内容存储上,期间有可能会做一些简洁的洗濯。
对照常见的便是用户行为内容的采集。先做sdk埋点,通过kafka及时采集到用户的访问内容,再用spark做简洁的洗濯,存入hdfs作为内容仓库的内容源之一。
内容存储
跟着公司的规模络续扩张,发生的内容也越来越到,像一些大公司每天发生的内容量都在PB级别,传统的内容库已经不克满足存储要求,眼前hdfs是大内容情况下内容仓库/内容平台最完善的内容存储解决方案。
在离线较量方面,也便是对及时性要求不高的部门,Hive照样首当其冲的选择,丰富的内容类型、内置函数;压缩比非常高的ORC/PARQUET文件存储格式;非常方便的SQL支持,使得Hive在基于布局化内容上的统计阐发远远比MapReduce要高效的多,一句SQL能够完成的需求,开发MR可能必要上百行代码;而在及时较量方面,flink是最优的选择,不外眼前仅支持java跟scala开发。
内容同步
内容同步是指分歧内容存储体系之间要进行内容迁移,好比在hdfs上,大多买卖和应用因为效率的原因弗成以直接从HDFS上获取内容,因此必要将hdfs上汇总后的内容同步至其他的存储体系,好比mysql。
Sqoop能够做到这一点,然则Sqoop太甚沉重,并且不管内容量巨细,都必要启动MapReduce来执行,并且必要Hadoop集群的每台呆板都能访问买卖内容库。阿里开源的dataX是一个很好的解决方案。
维度建模
维度建模是专门用于阐发型内容库、内容仓库、内容集市建模的方法。
1、 星形模式
星形模式(Star Schema)是最常用的维度建模方式,下图展示了使用星形模式进行维度建模的关系布局:
本文地址:http://www.wbwb.net/bianchengyuyan/227660.html 转载请注明出处!