海量数据--在线大数据处理的理论与实践--淘宝沈询_WhisperXD

从需求出发来看关系模型与非关系模型--关系模型与非关系模型概述

1.层次模型
2.关系模型
3.ORMapping的作用:将对象模型转换为关系模型

从需求出发来看关系模型与非关系模型--时代的变革

从需求出发来看关系模型与非关系模型--时代的变革1

互联网在线处理的需求排序列表基本上可以认为是: 数据的扩展性>请求的响应时间尽可能短>down机时间尽可能短>成本尽可能低>可自动快速恢复>数据的读取一致性>程序开发者的方便与快速响应需求。

一个小型数据库的核心组件

数据库核心组件
映射(map)
存储数据并提供查询的结构
预写式日志(write-ahead logging,WAL)
记录每一次写操作
触发器(trigger)
锁(lock)
保证一个逻辑原子操作的完整性
排它锁(写锁)和共享锁(读锁)
执行优化器
输入 为 sql 的抽象语法树(ast),输出为执行计划
sql 解析器
将 sql 转化为抽象语法树

存储过程
核心目标: 让数据库端能够运行逻辑代码
优势:性能好,因为直接与内存交互,没有网络通信 延迟小 吞吐量大
可以用来封装一些需要该性能的小的逻辑单元
劣势:需要绑定到特定的数据库,大部分存储过程是面向过程的代码,运维难度比较大,不适合复杂业务逻辑
视图
空间换时间,利用不确定性变成确定性的方式,实现 join 查询速度的优化和聚焦

从外部查询看数据库的内部实现机制
李雷和韩梅梅的一次转账事务--事务系统概述

事务的 ACID
原子性 一致性 隔离性 持久性
隔离性的四个隔离级别 其实是对一致性和性能之间的一种取舍

数据的存储介质-磁盘的硬件特性
数据的存储介质-磁盘的RAID
数据的存储介质-固态存储SSD

数据映射--映射概述
数据映射--有序数组
数据映射--平衡二叉有序树

二叉树特性:

  1. 有一个 ROOT(根)节点 (数据访问起点)
  2. 一个节点有两个子节点
  3. 父节点都有一个到子节点的引用(指针)
    二叉排序树:
  4. 左子节点上的数据一定比父节点的数据小,右子节点的数据一定比父节点的数据大
    平衡二叉树:
    一个空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。
    平衡二叉排序树:
    满足以上条件
    中序遍历平衡二叉树其实就是对数据的有序遍历
    左根右的顺序

    让树能够保持有序的前提下尽可能平衡的主要方式
    AVL,Tree Heap,红黑树

数据映射--跳表(skiplist)

跳表基本结构

分层 高层数据少
最底层 level0 保存所有数据
写入时从最底层写入
读取时从最高层开始读
写入时通过计算概率决定是否向上层推

数据映射--B树

B树
B+树

问题:为什么 B 树用数组结构实现而不是链表
答:数组结构(有序)能够进行二分查找

映射的存储模型 – 面向列的存储和行存储
映射的存储模型 – 列存储
SQL解析与优化器 – 概述

SQL 执行大概流程

SQL解析与优化器 - 基于行存储的单表查询
SQL解析与优化器 - 基于列存储的单表查询
SQL解析与优化器 - 倒排索引(上)

分词 相关性

SQL解析与优化器 - 倒排索引(下)

海量数据 - join处理

inner join ,最强约束匹配,只有全部符合的数据才会留下。
Left join ,保留左表内所有数据,右表无对应的用NULL代替。
right join 保留右表内所有数据,左表无对应的用NULL代替。
Full join 保留左右表内所有数据,对应表内无对应的用NULL代替。
Cross join 将左表内的每一行数据与右表内的每一行数据进行关联后输出。笛卡尔积
join 算法
Nested loop
hash join
sort merge join
Nested loop 和hash join ,都能够比较轻松的处理小表和大表的取交集场景,其中nested loop要求大表有索引,如果小表可以完全的被放到内存中,那么hash join是一个比较好的处理大小表join的方式。
Sort merge join 则要求两张表都需要按照匹配条件排序,这个的构建成本略高,但它的优势是,排序过程对内存要求较低,并且可以充分的并行执行,因此可以发现,它经常出现在列存,倒排索引等各类条件变化频繁,数据量非常大的场景中。

海量数据-Group by Order by having

这类操作的核心就是帮助用户进行数据统计和分析。
对于group by ,一般的算法就是把数据按照by 后面的条件放到一个HashMap里,然后按照aggregation function(count,sum,max,min)进行一下聚合统计,然后走having进行结果集过滤就好
而对于order by ,如果order by的条件恰好在索引上,那么可以认为数据本身就是有序的,因此不需要其他处理,直接使用索引进行处理即可。
当然,如果没有索引,那么就需要创建一个临时表,然后在临时表内对数据进行排序

海量数据-事务原子性
海量数据-事务一致性1
海量数据-事务一致性2
海量存储之十六--一致性和高可用专题

2pc 脑裂

海量存储之十七--一致性和高可用专题

3pc

海量存储之十八--一致性和高可用专题

paxos zab

插一条
Paxos Made Simple【翻译】

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容