加入收藏 | 设为首页 | 会员中心 | 我要投稿 大同站长网 (https://www.0352zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

数据仓库深入了解

发布时间:2021-05-15 14:18:46 所属栏目:大数据 来源:互联网
导读:现在我们面临两个问题,第一就是ETL机制非常弱,基本上是原样将MySQL库导入到数仓;第二业务库变更后,需要重新构建,对于业务数据库的理解总是落后的。 那数仓有什么用呢,可以进行交互式查询,数据分析,数据挖掘,BI报表。 根据不同的理解,数仓也有很多的

现在我们面临两个问题,第一就是ETL机制非常弱,基本上是原样将MySQL库导入到数仓;第二业务库变更后,需要重新构建,对于业务数据库的理解总是落后的。

那数仓有什么用呢,可以进行交互式查询,数据分析,数据挖掘,BI报表。

根据不同的理解,数仓也有很多的分类,比如:

1:根据建模分为MOLAP,ROLAP,HOLAP

MOLAP需要进行预计算,将可能的查询结果存储起来,适合分析比较稳定的场景,Kylin是这个领域的解决方案。

ROLAP是目前的主流,基于关系模型,构建在多维数据模型上,一般通过SQL就能查询。

2:对于ROLAP:有两种解决方案,一种是宽表模型,比如现在比较流行的clockhouse;另外就是多表组合模型,比如Presto。

3:从实时性分:分为实时数仓和离线数仓,本文主要理解离线数仓,也叫批处理,就是数据是提前准备好的,比如Hadoop就是解决这类问题的。

4:对于OLAP来说,处理的数据是非常大的,为了加快处理,有两种解决方案:并行处理(比如 Hadoop 的Mapreduce,Spark,或者MPP架构的Presto),另外就是预计算(比如Kylin)。

那具体如何选型呢?

1:我们用的是比较常规的Hadoop,HDFS作为分布式存储,Mapreduce作为并行计算框架,但HDFS只是存储,没有结构化的概念,那怎么做数仓呢?

使用Hive解决了两个问题,首先它存储表结构元数据,其次Hive查询中的sql自动变为MR并行任务,MR从元数据中读取信息,然后去HDFS中读取数据,最后进行运算。

一般情况下这属于离线数仓,HDFS存储的是T-1的全量数据(不支持数据增删改查,只能整个文件覆盖),使用sqoop工具将MySQL导入到HDFS中。

2:MPP on Hadoop 的解决方案

由于MR操作HDFS的中间结果还是在磁盘,所以运算还是很慢的。

Presto是基于MPP架构,充分利用各个节点的cpu能力,中间结果放入内存,减少磁盘消耗。

比如Presto作为SQL执行引擎,本身不存储数据,它可以直接调用MySQL进行运算。

也可以调用Hive,读取元数据,然后操作HDFS的数据,进行并行运算。

有了Hive,有了Presto,结合可视化的BI工具,就能产生数据报表,进行数据分析和挖掘。

最后简单说下BI,有个公式:

BI平台=数据仓库+OLAP服务/报表。

(编辑:大同站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读