当前课程知识点:大数据平台核心技术 > 第五讲 离线分布式关系型计算 > 关系型计算基本原理_1 > 离线分布式关系型计算_1(主讲人:王鹏飞)
亲爱的各位同学大家好
我是来自阿里云数据事业部
计算平台团队的王鹏飞
今天会和大家分享一下
分布式离线关系型计算的
基本原理和算法
说到关系型计算
可能大家会觉得略显陌生
但是说SQL大家一定会很熟
SQL全称结构化查询语言
被广泛用于关系型数据的
查询和处理
它的理念是告诉数据引擎
请完成什么样的计算
而不是如何完成这些计算
我们这次的分享不同
我们会聊一聊
如何在分布式上
完成这些计算
大家已经注意到
标题中离线分布式关系型
计算中的离线的二字
离线可以简单的理解成
数据一旦进入系统
就不会被改变
数据写入的过程当中
也不会被读取
读取的过程当中也不会被删除
实际应用中这是典型的
数据仓库场景
工程实践上
离线场景会极大的降低
系统实现难度
本次课程中我会首先用
比较朴素的方式简介一下
关系型计算几个
比较重要的方面
说一说逻辑查询计划
和物理查询计划
然后重点介绍集群上的连接
和聚合算法
最后会说一说工程实践上的
一些考虑的点和优化
首先给大家介绍一下
什么是关系型计算
然后我介绍的方式会比较朴素
首先说一说什么
叫做关系型数据
关系型数据实际上是由
行 列两个纬度
组成的二维数据
例如右边的那张图
它每行都包含所有列的数据
并且对应列的数据类型都相同
这个看上去是一个非常简单的
这个描述
但是实际上在使用的过程当中
这是一个一不小心
就会break掉的规则
它主要的这个计算
有那么几种
纵向切 横向切 聚合 连接
和基于窗口的计算
然后它还会有一些其他的
基于集合的计算
比如求并集和差集
但实际上并集和差集
可以由连接再加横向切
去计算出来
所以其他的集合运算
我们在这里并不介绍
纵向切是获取数据集的列
比如我们选择ID 姓名 年龄
这三列出来如下图所示
从左表当中我们纵向把
ID Name Age这三列切出来
切的结果就是这样
横向切和纵向切很类似
但是它是把一些行选择出来
比如说我们选择未婚的女士们
那么我们选出来的
是Married等于N的记录
聚合的典型应用
比如分别统计男士
和女士的数量
我们可以看到表当中
有一列叫做Gender
然后它标记了每一位用户
是男士还是女士
我们可以据此来统计出来
男士和女士的数量
对于这个应用
我们把所有是非Married
这个用户放到一起
放成一组分别是
张三 王五和周七
然后再把Married用户
放到一组分别是
李四 赵六和吴八
然后我们去分别数一数
每一组当中的记录条数
就会拿到这张表当中
男士有多少和女士有多少
聚合计算一般情况下
它会先按照不同的值去分组
然后再在每一组上
去计算这个结果
连接是一种非常
被使用非常广泛的计算
比如我们对于一张订单表
我们想了解这些订单
都是谁下的
大家注意到这张订单表里面
只有OrderID
UserID OrderDate和Cost
因为我们想知道这些
订单是谁下的
但是我们只有UserID
显然是不够的
那么需要知道用户名
所以这个时候就需要用到连接
我们需要把UserID
换成User的Name
我们把Orders和Users表
连接到一起
然后按照Orders表
当中的UserID
和Users表当中的ID
去做连接
连接结果如图所示
基于窗口的计算
我们以另外一个
具体的例子开始
分别在不同的类目当中
按照订单金额
从小到大给订单排序
它实际上定义的窗口是类目
然后在每个窗口内部
我们要把数据集
从小到大去排序
大家看到的结果就是这样
定义窗口它有几个比较
重要的这个要素
分别是说首先我们怎么给
整个数据集分组
按照上例
它是按照类目来分组的
在组内数据始终会排序的
这个例子当中它是从小到大
然后在组内数据是如何计算的
对于这个例子来说
它非常简单
它只是生成一个排名
-主讲人:武永卫
-主讲人:程永
-QUIZ--作业
-大纲
-初步认识大数据对分布式存储系统的需求
-理解大数据对分布式存储系统的需求
-具体说明大数据对分布式存储系统的需求
-大规模分布式存储的挑战
-小概率事件-Raid卡故障
-分布式存储系统举例
-分布式存储系统重要功能设计要点剖析
-链式写正常流程
-写流程的另一种常见方式:主从模式
-链式写异常流程
-写异常处理的另一种方法-Seal and New
--写异常处理的另一种方法-Seal and New(主讲人:姚文辉)
-读正常流程
-读流程优化-BackupRead
-IO QoS
-数据正确性:checksum
-数据可靠性-Replication
-数据均衡-Rebalance
-垃圾回收-Garbage collection
--垃圾回收-Garbage collection(主讲人:姚文辉)
-Erasure coding
-Erasure coding(3,2)写入和读取过程
--Erasure coding(3,2)写入和读取过程(主讲人:姚文辉)
-元数据管理的高可用性和可扩展性
-元数据管理的高可用性
-Paxos概要
-Raft
-元数据管理的可扩展性
-不同存储介质的特性
-盘古混合存储
-QUIZ--作业
-阿里云飞天分布式调度
-任务调度
-资源调度
-容错机制
-规模挑战
-安全域性能隔离
-分布式调度的发展方向
-QUIZ--作业
-数据格式和抽象
-分布式编程模型
-MapReuduce编程模型
-关系型数据编程模型
-分布式图计算模型
-分布式编程未来展望
-QUIZ--作业
-分布式事务
-分布式一致性算法
-两阶段提交与三阶段提交
-实践--介绍
-关系型计算基本原理_1
-关系型计算基本原理_2
-分布式环境中的连接计算和聚合计算
-其他计算和物理优化
-QUIZ--作业
-提纲
-课程背景介绍
-前序知识
-分布式节点距离计算法则
-数据分布策略
-分布式计算调度
-数据就近原则计算如何容错
-ODPS跨集群数据依赖
-QUIZ--作业
-主讲人:谢德军
--实践2:编写MR完成Group By+Join操作(主讲人:谢德军)
-增量计算和流式计算
-与批量计算的区别
-业界典型系统技术概要分析
-核心技术
-消息机制
-有状态计算、并行DAG、抢占式调度和资源隔离、Failover机制
--有状态计算、并行DAG、抢占式调度和资源隔离、Failover机制(主讲人:强琦)
-StreamSQL
-QUIZ--作业
-软硬件趋势、分布式计算简史与内存计算
-分布式计算
-内存计算
-统一的计算框架
-业界经典系统技术分析-spark&flink
--业界经典系统技术分析-spark&flink(主讲人:强琦)
-QUIZ--作业
-主讲人:褚葳
-QUIZ--作业
-分布式环境下的新问题
-工程实现范例
-课程设计相关问题