说一说有哪些类型的OLAP数仓?

[AI 生成] 大数据数仓面试题 【大数据数仓面试精要】150字摘要 本文系统梳理大数据数仓核心面试考点: 架构设计:分层建模(ODS/DWD/DWS/ADS)、实时离线方案对比(Flink vs Hive) 建模实战:事实表三大类型(事务/周期/累积)、SCD解决方案(拉链表实现) 性能优化:数据倾斜处理(两阶段聚合/MapJoin)、存储策略(ORC/Parquet选型) 新技术:湖仓一体(Hudi/Iceberg)、OLAP引擎(ClickHouse/Doris对比) 生产案例:亿级数据同步优化、实时维度更新方案 涵盖建模方法到调优实 阅读详情

1.按数据量划分
对一件事物或一个东西基于不同角度,可以进行多种分类方式。对数仓产品也一样。偏实时的分析型数仓,Cloudera的Impala、Facebook的Presto和Pivotal的GreenPlum均属于这类系统;如果超过百亿级别数据量,那么一般选择离线数仓,如使用Hive或Spark等(SparkSQL3.0看起来性能提升很明显);对于数据量很小的情况,虽然是分析类应用,也可以直接选择普通的关系型数据库,比如MySQL等,“杀鸡焉用牛刀”。
2.按建模类型划分
下面我们主要关注数据量中等的分析型数仓,聚焦OLAP系统。根据维基百科对OLAP的介绍,一般来说OLAP根据建模方式可分为MOLAP、ROLAP和HOLAP 3种类型,下面分别进行介绍并分析优缺点。
(1)MOLAP
这应该算是最传统的数仓了,1993年Edgar F. Codd提出OLAP概念时,指的就是MOLAP数仓,M即表示多维(Multidimensional)。大多数MOLAP产品均对原始数据进行预计算得到用户可能需要的所有结果,将其存储到优化过的多维数组存储中,可以认为这就是上一篇所提到的“数据立方体”。
由于所有可能结果均已计算出来并持久化存储,查询时无需进行复杂计算,且以数组形式可以进行高效的免索引数据访问,因此用户发起的查询均能够稳定地快速响应。这些结果集是高度结构化的,可以进行压缩/编码来减少存储占用空间。
但高性能并不是没有代价的。首先,MOLAP需要进行预计算,这会花去很多时间。如果每次写入增量数据后均要进行全量预计算,显然是低效率的,因此支持仅对增量数据进行迭代计算非常重要。其次,如果业务发生需求变更,需要进行预定模型之外新的查询操作,现有的MOLAP实例就无能为力了,只能重新进行建模和预计算。

因此,MOLAP适合业务需求比较固定,数据量较大的场景。在开源软件中,由eBay开发并贡献给Apache基金会的Kylin即属于这类OLAP引擎,支持在百亿规模的数据集上进行亚秒级查询。

其架构图较直观得反映了基于cube的预计算模型(build),如下所示:

(2)ROLAP

与MOLAP相反,ROLAP无需预计算,直接在构成多维数据模型的事实表和维度表上进行计算。R即表示关系型(Relational)。显然,这种方式相比MOLAP更具可扩展性,增量数据导入后,无需进行重新计算,用户有新的查询需求时只需写好正确的SQL语句既能完成获取所需的结果。

但ROLAP的不足也很明显,尤其是在数据体量巨大的场景下,用户提交SQL后,获取查询结果所需的时间无法准确预知,可能秒回,也可能需要花费数十分钟甚至数小时。本质上,ROLAP是把MOLAP预计算所需的时间分摊到了用户的每次查询上,肯定会影响用户的查询体验。

当然ROLAP的性能是否能够接受,取决于用户查询的SQL类型,数据规模以及用户对性能的预期。对于相对简单的SQL,比如TPCH中的Query响应时间较快。但如果是复杂SQL,比如TPC-DS中的数据分析和挖掘类的Query,可能需要数分钟。

相比MOLAP,ROLAP的使用门槛更低,在完成星型或雪花型模型的构建,创建对应schema的事实表和维度表并导入数据后,用户只需会写出符合需求的SQL,就可以得到想要的结果。相比创建“数据立方体”,显然更加方便。

有分析表明,虽然ROLAP的性能比如MOLAP,但由于其灵活性、扩展性,ROLAP的使用者是MOLAP的数倍。

(3)HOLAP

MOLAP和ROLAP各有优缺点,而且是互斥的。如果能够将两者的优点进行互补,那么是个更好的选择。而HOLAP的出现就是这个目的,H表示混合型(Hybrid),这个想法很朴素直接。对于查询频繁而稳定但又耗时的那些SQL,通过预计算来提速;对于较快的查询、发生次数较少或新的查询需求,像ROLAP一样直接通过SQL操作事实表和维度表。

目前似乎没有开源的OLAP系统属于这个类型,一些大数据服务公司或互联网厂商,比如HULU有类似的产品。相信未来HOLAP可能会得到进一步发展,并获得更大规模的使用。

(4)HTAP

从另一个维度看,HTAP也算是一种OLAP类型的系统,是ROLAP的一个扩展,具备了OLAP的能力。最新发展显示,有云厂商在HTAP的基础上做了某种妥协,将T(transaction)弱化为S(Serving),朝HSAP方向演进。关于HTAP/HSAP,本文不做进一步展开,可自主查询其他资料。

主流的OLAP数仓系统很多,包含上面所述的各种类型,下图是Gartner 2019 年发布的数据分析市场排名:

图片

可以发现,传统的商业厂商和闭源的云服务厂商占据了绝大部分市场。大部分系统笔者只听过而没有研究过。作为屁股在互联网公司的数据库/数据仓库开发者,本文后续主要聚焦在基于Hadoop生态发展的开源OLAP系统(SQL on Hadoop)。

OLAP极简教程: 主流的 OLAP 引擎介绍 什么是OLAP ?随着互联网、物联网、5G、人工智能、云计算等技术的不断发展,越来越多的数据在互联网上产生,对互联网的运营也开始进入精细化,因此大数据、数据分析、数字营销开始变成每个互联网...... 阅读详情

相关推荐

olap扫盲教程

OLTP(On-Line Transaction Processing联机事务处理系统):传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,如银行交易,即记录即时的增、删、改、查,就是我们经常应用的东西,这是数据库的基础。 OLAP:数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。

Pytorch学习(二)使用 torchvision

Pytorch学习(二)准备数据集torchvision三级目录 准备数据集 在训练神经网络前,必须有数据。可以使用以下几个数据提供源。 准备图片数据集 一、CIFAR-10CIFAR-10 二、ImageNetImageNet 三、ImageFolderImageFolder 四、LSUN ClassificationLSUN Classification 五、COCO (Captioning and Detection)COCO torchvision 为了方便加载以上五种数据库的数据,torchvis

weixin_42835514的博客 1864

数据仓库和OLAP实践教程(sql server.rar

数据仓库和OLAP实践教程(sql server

【Hadoop生态圈】7.离线OLAP引擎Hive入门教程

Hive是由Facebook开源的一款数据分析工具,主要用来进行数据提取,转换和加载(ETL)。Hive数据存储是基于Hadoop中的HDFS,它没有自己的存储系统,也没有专门的数据存储格式,它最大的魅力在于用户只需要专注于编写SQL,Hive帮用户把SQL转换为MapReduce程序完成对数据的分析。Hive自动将用户编写的SQL转换为MapReduce程序,处理位于HDFS上的结构化数据。Hive软件本身承担的是HQL语法解析编译称为MapReduce的功能职责。Hive优点:简易性。

皓亮君的博客 1316

歪枣网股票数据下载接口汇总一

歪枣网上下载接口动态信息如下: 接口名称:A股列表,接口描述:沪深京A股基本信息,接口地址:/doc/getStockHSABaseInfo?code=all&fields=code,name,stype,hsgt,bk,roe,zgb,ltgb&export=0&token= 请求参数描述: 参数名:code,参数描述:股票代码,支持批量查询,用逗号分隔,每次最多30个;若为all,则表示全部,即可获取任意一天内的所有数据。 请求参数描述: 参数名:fields,参数描述:数据字段

waizaowang的博客 2731

西门子 S7-200 SMART 系列六:手把手教你配置S7-200 SMART Modbus RTU

Modbus 是公开通信协议,其最简单的串行通信部分仅规定了在串行线路的基本数据传输格式。Modbus 具有两种串行传输模式,ASCII 和 RTU,它们定义了数据如何打包、解码的不同方式。支持 Modbus 协议的设备一般都支持 RTU 格式。

John_09040211的博客 7431

【JanusGraph】OLAP以spark为引擎,实现数据检索-(数据以RDD缓存内存)

实现思路: 检索hbase数据–》构建graphRDD --》 缓存rdd到内存 --》 获取缓存rdd数据(sc.getPersistendRdd) --》其他操作; 1 配置文件: 配置信息管理类:org.apache.tinkerpop.gremlin.hadoop.Constants #################################################### #### Gremlin hadoop configuration #### #

weixin_38602383的博客 482

VI恒流源原理详细分析(0~10V转0/4~20mA)

但是此电阻也不能无限增加,首先我们所列方程均是基于运放虚短虚断的假设,此假设又是基于运放输入阻抗无穷大,输出阻抗无穷小的前提条件,然而实际的运放并非理想运放,对于TL082IDR这款运放,其Rid(Common-mode input resistance)典型值为1TΩ,以此来看感觉1MΩ确实还不是很大,但是还有另一个影响因素需要考虑,那就是电路的抗干扰能力,原则上,电阻越大受到外部干扰的可能性越大。也就是实现Uin 0~10V变化时对应Iout 0~20mA的一个线性对应关系。

IOTBOT的博客 2900

数据仓库产品

1Oracle节点之间共享磁盘资源优点很常见,学习资料广泛,运维方便。缺点单个集群支持100左右节点,适合数据量小的场景2DB2集群版本DPF-IBM商业数据库,与IBM硬件兼容好,一般伴随商业选增中被企业使用;一体机形式销售自带数据引擎和查询工具,性能优秀,稳定易用,是大型企业商业数仓选型开源产品,性价比高。.........

m0_61059815的博客 2646

Autoware1.14-摄像头目标检测YOLO-V3

在Autoware1.14中部署YOLOV3

weixin_43687753的博客 3139

JMeter压力测试全攻略:从入门到精通

本文系统讲解JMeter压力测试的完整流程与结果评估方法。开篇介绍压力测试的核心概念及JMeter工具特性,随后从环境搭建入手,详细说明JDK配置、JMeter安装及中文界面设置。主体部分围绕测试流程展开,涵盖测试计划创建、线程组参数调优、HTTP请求配置、断言与监听器添加等实操步骤;结果评估环节深入解析聚合报告指标、结果树分析及性能瓶颈定位方法,并通过电商接口测试案例演示全流程应用。文末总结关键要点,为读者提供从基础操作到分布式压测、性能调优的进阶学习方向,助力掌握JMeter在系统性能评估中的核心应用。

邓邓子的博客 2416

关于OLAP数仓,这大概是史上最全面的总结!(万字干货)

关于数据仓库,早期分享过不少基础类文章,偶然间看到知乎上这篇关于OLAP的深度解读,从技术发展,产品选型,执行优化等方面做了详细的剖析,分享来给大家看看!全文10000字,读完需要30分...

weixin_45727359的博客 3238

C#客户端对接工厂MES的方法

本文介绍了使用C#实现WebApi客户端与工厂MES系统交互的方法。主要包括四个步骤:1)配置工控机IP地址;2)获取服务器URL;3)创建HttpHelper帮助类实现单例模式HttpClient,提供异步POST请求方法;4)通过实例化帮助类实现设备状态数据的JSON格式发送与接收。该方案采用异步通信方式,支持超时处理,能够满足大多数MES系统交互需求,帮助工程师快速完成设备与MES系统的数据对接。文中给出了核心代码片段和完整的数据交互流程示例。

weixin_39832501的博客 264

OLAP数仓面试

OLAP 指在线分析处理场景直白点说就是即用即查,主要是通过多种不同维度来进行深层次的数据分析。在传统的关系型数据库阶段,类似等数据库都可以满足OLAP分析,但是在大数据、多维度的情况下都存在严重的性能问题,甚至根本查询不出结果。随着大数据技术的发展,传统关系型数据库就被这类新技术取代。以spark为例,虽然相比 Mysql 这类传统数据库而言,在面向大数据的处理性能方面已经非常优秀,但是直接用spark来进行即席查询,时效性还是太慢了。

shan19920501的博客 1061

Linux系统故障排查思路实践教程(上)

本文主要介绍了Linux系统日志分析与常见故障排查的实用方法。首先从系统日志的分类及其涉及的日志文件进行说明;其次详细讲解了忘记用户密码的解决方案;接着对系统无法启动问题,提供了异常断电后修复文件系统、/etc/fstab文件丢失恢复等常见故障的处理方案。最后介绍了文件系统只读错误的排查思路和修复方法,包括磁盘空间检查、文件系统修复等实用技巧。全文提供了大量具体命令和操作流程,为Linux系统维护人员提供了实用的故障处理指南。

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 328

Codex入门10-Goal自主任务(进阶必学:设定目标就不管了,AI自己干活到完成)

/goal 是Codex CLI最强大的进阶功能——设定一个目标,AI就会制定计划、分步执行、自我测试、持续迭代,即使你关掉终端也会继续。本文详解/goal的工作原理、配置启用方法、常用命令(pause/resume/status/clear),以及如何写出高质量的目标描述让AI高效自主完成任务。

yueyeguzhuo的专栏 455

OLAP数仓进阶:主流开源OLAP系统的分类及核心技术点

作者介绍温正湖,网易杭研高级数据库技术专家,数字产业事业部大数据产品中心OLTP和OLAP内核团队负责人。负责网易大数据OLAP系统和OLTP关系型数据库内核相关的开发和运维工作。毕业1...

大数据星球-浪尖 2299

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

OLAP数仓入门:进阶篇

文章目录1. 有哪些类型的OLAP数仓?2. 有哪些常用的开源ROLAP产品? 导读:前一篇文章从OLTP出发,通过对比引出OLAP,进一步介绍了数仓的基本概念,包括多维数据模型、数据立方体及其典型操作等。本篇再进一步,将介绍OLAP的类型及其代表产品,并分析主流开源OLAP产品的核心技术点。 未看过前一篇文章的读者,欢迎做进一步了解: OLAP数仓入门:基础篇 1. 有哪些类型的OLAP数仓? 1. 按数据量划分 对一件事物或一个东西基于不同角度,可以进行多种分类方式。对数仓产品也一样。比如我们可以基

qq_24095055的博客 720

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

全面的关于OLAP数仓总结

有哪些类型的OLAP数仓?按数据量划分对一件事物或一个东西基于不同角度,可以进行多种分类方式。对数仓产品也一样。比如我们可以基于数据量来选择不同类型的数量,如下图所示:本系列文章主要关注的...

mm_ren的博客 228

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

收藏,一文了解OLAP数仓

一、有哪些类型的OLAP数仓?1.按数据量划分对一件事物或一个东西基于不同角度,可以进行多种分类方式。对数仓产品也一样。比如我们可以基于数据量来选择不同类型的数量,如下图所示:本系列文章主要关注的是数据量处于百万到百亿级别的偏实时的分析型数仓,Cloudera的Impala、Facebook的Presto和Pivotal的GreenPlum均属于这类系统;如果超过百亿级别数据量,那么一般选择离线数...

大数据星球-浪尖 376

OLAP数仓入门:基础篇

文章目录一 、什么是OLAP,其与OLTP有什么区别?1.什么是OLAP,其与OLTP有什么区别?2.MySQL等OLTP数据库能处理OLAP业务吗?3.OLAP的查询跟OLTP查询具体有那些不一样?4. 是否有可能将OLAP和OLTP统一起来?5. 数仓有哪些基础知识和概念?二 、说说数仓中数据的前世今生?1. 数仓中的数据从何而来?2. 数仓的作用有哪些?3. 数据在数仓中是如何组织的?4. 什么是多维数据模型?5. 什么是事实表?6. 什么是维度表?7. 什么是数据立方体?8. 数据立方体有哪些常见操

xingchensuiyue的博客 470
上一篇: 说说Flink集群有哪些角色?各自有什么作用?
下一篇: 说说你了解的exactly once
问道2020
博客等级 码龄8年 4粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值