Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Batch、MPP、Cube 和 Hadoop

Batch、MPP、Cube 和 Hadoop

作者头像
Fred Liang
发布于 2018-12-27 09:16:58
发布于 2018-12-27 09:16:58
2.7K0
举报
文章被收录于专栏:Fred LiangFred Liang

Batch:批处理 MPP:大规模并行处理 Cube:多维立方体 Hadoop:是一款支持数据密集型分布式应用程序

Batch

只关注批处理任务相关的问题,如事务、并发、监控、执行等,并不提供相应的调度功能。因此,如果我们希望批处理任务定期执行,可结合 Quartz 等成熟的调度框架实现。

MPP

MPP (Massively Parallel Processing),即大规模并行处理,在数据库非共享集群中,每个节点都有独立的磁盘存储系统和内存系统,业务数据根据数据库模型和应用特点划分到各个节点上,每台数据节点通过专用网络或者商业通用网络互相连接,彼此协同计算,作为整体提供数据库服务。非共享数据库集群有完全的可伸缩性、高可用、高性能、优秀的性价比、资源共享等优势。

简单来说,MPP是将任务并行的分散到多个服务器和节点上,在每个节点上计算完成后,将各自部分的结果汇总在一起得到最终的结果(与Hadoop相似)。

MPP数据库适合存储高密度价值数据,并且是长期存储和多次使用,所以MPP并行数据库会花大量经历在Load阶段,把数据处理成适合分析格式。带来的优点是查询速度快,通常在秒计甚至毫秒级以内就可以返回查询结果。缺点是不支持细粒度的容错,不支持高并发,集群数量扩展有上限,执行引擎和存储紧耦合导致数据难以被其他分析引擎进行分析。

Cube

cube是一个非常重要的概念,是多维立方体的简称,主要是用于支持联机分析应用(OLAP),为企业决策提供支持。Cube就像一个坐标系,每一个Dimension代表一个坐标系,要想得到一个一个点,就必须在每一个坐标轴上取得一个值,而这个点就是Cube中的Cell。

Hadoop

原理更类似batch processing,更细粒度切分task,worker能者多劳(每个worker上执行的任务可以是不平均,不一致的)。单独worker看,性能不及MPP,但是胜在scalability优异,几百个节点是没问题的,在集群性上远胜MPP。

MPP VS Hadoop

原文:https://www.zhihu.com/question/27589901/answer/52144108

MPP和SQL on Hadoop的最大区别就在于,MPP架构是Full-SQL compatiable的,实现不局限于将Query分解为一连串的MR job去执行。并且由于每一列的数据类型进行了特定的压缩和编码(比如run-length/delta/bytecoding),能做的优化要比单纯的MapReduce多很多,效率自然也要高不少。相较于SQL on Hadoop,MPP更适合做interactive ad-hoc analysis,前者则更适用于对于海量数据做批处理或者需要使用UDF(自定义函数)的场景。在Scalability方面,MPP相较Hadoop类系统要差,依赖于定制硬件,而且没有可靠的开源实现。

SQL on Hadoop

SQL-on-Hadoop架构可以分为两类:

  • SQL over Processing Framework:例如SparkSQL,Drill/Datameer,Presto,Impala
  • OLAP over Hadoop:例如Kylin,Druid,AtScale,Kyvos

SQL over Processing Framework系统的共同特点是“Hadoop通用计算框架+SQL解析引擎”,存储层、执行引擎层、SQL解析层三者分离,可以方便替换执行引擎,对使用者而言,同一份数据可以采用不同并行执行引擎来分析。优点是灵活性高,支持细粒度容错,集群扩展性好,缺点是效率无法保证。

OLAP over Hadoop系统的共同特点是预计算,即数据都以时间序列的方式进入系统并经过数据预聚合和建立索引,因为是预计算,所以应对多维查询时速度非常快(计算时间复杂度O(1))且稳定,支持高并发,支持集群扩展。缺点是灵活性较差。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【redis】Jedis 操作 Redis 基础指令(上)
如果 key 已经存在,并且是一个 string,命令会将 value 追加到原有 string 的后面。如果 key 不存在,则效果等同于 `set
椰椰椰耶
2025/03/18
820
【redis】Jedis 操作 Redis 基础指令(上)
【Redis】在Java中以及Spring环境下操作Redis
防止Redis的端口被黑客攻击     将云服务器的redis端口映射到本地主机中
用户11369558
2025/01/24
1180
【Redis】在Java中以及Spring环境下操作Redis
Jedis 对 Redis 的操作详解
本篇主要阐述Jedis对redis的五大类型的操作:字符串、列表、散列、集合、有序集合。
芋道源码
2018/12/11
2.4K0
redis学习(十二)
什么是Jedis 是 Redis 官方推荐的 java连接开发工具! 使用Java 操作Redis 中间件!如果你要使用 java操作redis,那么一定要对Jedis 十分的熟悉! 两者的命令一样。
崔笑颜
2020/09/11
6480
Redis系列(四)——JAVA连接使用redis(Jedis)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
逝兮诚
2019/10/30
9270
Redis系列(四)——JAVA连接使用redis(Jedis)
Java操作Redis数据库
不了解Redis数据库的大家可以参考前两节 Redis基础 点击此处 Redis基本操作 点击此处
暴躁的程序猿
2022/03/24
3950
Java操作Redis数据库
【Redis入门到精通五】Java如何像使用MySQL一样使用Redis(jedis安装及使用)
Java 操作 redis 的客⼾端有很多,其中最知名的是 jedis。把下面代码拷贝到Maven项目的pom.xml文件中就可以引入jedis的依赖了。
小皮侠
2024/09/25
990
【Redis入门到精通五】Java如何像使用MySQL一样使用Redis(jedis安装及使用)
Jedis常用操作
1. Key 查看服务器上 key 的值 [在这里插入图片描述] @Test public void demo1() { //创建Jedis对象 Jedis jedis = new Jedis("47.107.53.146", 6379); System.out.println("===遍历key*==="); Set<String> keys = jedis.keys("*"); for (String key :
兮动人
2022/02/25
4230
Redis-KV数据库Java连接以及Jedis包的使用
描述:Redis是一个开源的Key-Value数据缓存,和Memcached类似。现在基本上主流的语言都有客户端支持,比如java、C、C#、C++、php、Node.js、Go等。
全栈工程师修炼指南
2020/10/23
1.3K0
Redis-KV数据库Java连接以及Jedis包的使用
spring boot jedis_spring整合redis详解
1.1. 连接Redis注意事项 禁用Linux的防火墙:Linux(CentOS7)里执行命令 systemctl stop/disable firewalld.service redis.conf中注释掉bind 127.0.0.1 ,然后 protected-mode no
全栈程序员站长
2022/09/30
2280
Redis部分数据结构方法小结
Redis在工程开发中还是比较常用的Nosql内存数据库,简单巩固一下它的各种数据类型与用法~
用户3003813
2018/09/06
5990
Redis部分数据结构方法小结
Redis的Java客户端 Jedis
Jedis: 一款java操作redis数据库的工具. 使用步骤: 1. 下载jedis的jar包 2. 使用
暴躁的程序猿
2022/03/24
8300
Redis的Java客户端 Jedis
Redis学习(2)——Java中使用Jedis连接Redis
Redis不仅是使用命令来操作,现在基本上主流的语言都有客户端支持。在官方网站里列一些java的客服端,有Jedis、Redisson、Jredis、JDBC-Redis等。其中官方推荐使用Jedis和Redisso。在企业中用的最多的就是Jedis。
sunonzj
2022/06/21
8600
Redis学习(2)——Java中使用Jedis连接Redis
Redis是怎么对缓存下手的
Redis使用的是键值对数据模型,其中每个键都与一个值相关联。这种简单的数据模型使得Redis非常易于使用和理解。 Redis的数据模型基于键值对,其中每个键都与一个值相关联。以下是一些常用的概念和Java代码示例:
一只
2024/06/26
1170
缓存之Redis了解及使用
redis是一种支持Key-Value等多种数据结构的存储系统。可用于缓存,事件发布或订阅,高速队列等场景。该数据库使用ANSI C语言编写,支持网络,提供字符串,哈希,列表,队列,集合结构直接存取,基于内存,可持久化。
sucl
2019/08/07
5540
缓存之Redis了解及使用
快速学习Redis-Jedis客户端
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
cwl_java
2019/12/11
4140
redission jedis_redis could not get a resource
新建Maven工程——jedis_redisdemo,在POM文件中引入Jedis所需要的jar包
全栈程序员站长
2022/09/30
2700
redission jedis_redis could not get a resource
Java 中使用 Redis
  Jedis 是 Redis 官方推荐的 Java 连接开发工具。我们需要通过 Jedis 在 Java 中操作 Redis。
Demo_Null
2020/10/09
1.3K0
Java 中使用Redis 简单操作
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
zeekling
2022/08/26
2990
Jedis基础详解
Jedis 使用Java来操作Redis 什么是Jedis 是Redis官方推荐的Java操作Redis中间件, 如果你要使用Java操作Redis, 那么就该对jedis熟悉 测试 导入对应的依赖 <!-- 导入jedisd的包 --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.2.0</version>
后端码匠
2021/01/20
3.3K1
相关推荐
【redis】Jedis 操作 Redis 基础指令(上)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档