- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
Delta Architecture
Delta Lake + Apache Spark Structured Streaming
数据工程师的纠结与运维的凌乱
• Delta Lake基本原理
• Delta 架构
• Delta 架构的特性
• Delta 架构的经典案例 & Demo
• Delta Lake 社区
展开查看详情
1 .The Delta Architecture Delta Lake + Apache Spark Structured Streaming 李潇 (@gatorsmile) 2019 Oct. @ Shanghai
2 .自我介绍 • Tech Lead and Engineering Manager at Databricks • Apache Spark Committer and PMC Member • Previously, IBM Master Inventor • Spark, Database Replication, Information Integration • Ph.D. in University of Florida • Github: gatorsmile
3 .Delta Lake Joins the Linux Foundation! +
4 .
5 . Dominique Brezinski (Apple Inc.) Michael Armbrust (Databricks) 启程 亮相 Spark + AI Summit 2017/06 2017/10 2018/06 2019/04 2019/10 宣布 开源
6 . • 数据工程师的纠结与运维的凌乱 目录 • Delta Lake 基 本 原 理 • Delta 架 构 • Delta 架 构 的 特 性 • Delta 架 构 的 经 典 案 例 & Demo • Delta Lake 社区
7 . 项 目 经 理 如 是 说, Process data continuously and incrementally as new data arrive in a cost efficient way without having to choose between batch or streaming 数据工程师
8 . 项 目 经 理 如 是 说, Process data continuously and incrementally as new data arrive in a cost efficient way without having to choose between batch or streaming 数 据 工 程 师 的 第 一 份 架 构 草 图, Kinesis CSV, AI & Reporting JSON, TXT… Data Lake
9 . 数据工程师的第二份方案 Events Stream Stream Table AI & Reporting (Data gets written continuously) Spark 作 业 由 于 小 文 件 太 多导致不断变慢
10 . 数据工程师的第三份方案 Events Stream 额外的压缩导致延迟 Batch Batch Table AI & Reporting Table (Data gets written continuously) 每小时定期 压缩数据
11 . 数据工程师的第三份方案 Events Stream 业务不接受 超过1小时的延迟 Batch Batch Table AI & Reporting Table (Data gets written continuously) 每小时定期 压缩数据
12 . 数据工程师的第四份方案 Events Stream Stream Unified View Lambda 架 构 大幅增加 运营负担 Batch Batch Table 每小时定期 (Data gets written continuously) 压缩数据
13 . 数据工程师的第五份方案 Events Stream Stream Unified View AI & Reporting 数据验证 验证与其他 数据清理需 要批流各做 Batch Batch 一遍 Table 每小时定期 (Data gets written continuously) 压缩数据
14 . 数据工程师的第六份方案 Events Stream Stream Unified View AI & Reporting 数据验证 验证后的纠 错意味某些 Partition 需 Batch Batch 要重新处理 Table 每小时定期 (Data gets written continuously) 重新处理 压 缩 数 据
15 . 数据工程师的第七份方案 Events Stream Stream Unified View AI & Reporting 数据验证 数据湖的 Update / Merge 异 常 Batch Batch 复杂 Table 每小时定期 (Data gets written 压 缩 数 据 Update / Merge continuously) 重新处理
16 . 数据工程师的第七份方案 架 构 Events b d a La m Stream 奔 研 究 大 普 苦 心 Stream , 喜 Unified View 发 AI & Reporting 数据验证 年 研 数据湖的 半 Update / 过 Merge 异 常 经 Table (Data gets written Batch 每小时定期 正式上线! Batch 复杂 压 缩 数 据 Update / Merge continuously) 重新处理
17 . Diff Con 数据工程师的第七份 e ren方 案 cat t fie en ate ld t s n g yp e m a a m e lo a d i s c ll Events o w d a ta f r au s f il e t re m e ly s l e s s E x t io n s c o n at Stream a O p e r a f lic o n M e t ad t in d s B l o c k e d g s c Co m m a n 坑 爹 ven E h em H t u a o w a l Stream N o t F o u n d t o Unified C View o AI & Reporting e t t in g F ile 数 据 验 证 c o n s K e e p g n t rol 数 is据te湖 的 num n c y jo b re s u lt s b Update / ! ! ! c o n s is t e n t e r o Merge 异 常 IC A L : in f CRIT Batch Batch pa复r 杂 q s u e s ? ? ? u e t Table s h T每小 a b l 时 e Is 定 期 f il 骂 娘 (Data gets written R e f re 压 缩 数 据 Update / Merge e s 想 continuously) 重新处理 ?
18 . 面 对 Lambda 架 构,运 维 工 程 师 凌 乱 了 。。。 Events Stream Stream Unified View AI & Reporting 数据验证 数据湖的 Update / Merge 异 常 Batch Batch 复杂 Table 每小时定期 (Data gets written 压 缩 数 据 Update / Merge continuously) 重新处理
19 . 面 对 Lambda 架 构,运 维 工 程 师 凌 乱 了 。。。 急 ! Events 何 太 Stream 相 煎 力 , 易 , , 费 钱 费 统 局 已 Stream 不 此 方 案 了 解 决 系 取 价 值 维 数 据 验 证 评: Unified View 到 抽 AI & Reporting 费 中 运 砖 将 家 大 点 好 时 不 光 是 浪 去 从 数 据 数据湖的 Update / , 而 Merge 异 常 Batch 限 Batch 复杂 Table 每小时定期 (Data gets written 压 缩 数 据 Update / Merge continuously) 重新处理
20 . 项 目 经 理 如 是 说, Process data continuously and incrementally as new data arrive in a cost efficient way without having to choose between batch or streaming 数 据 工 程 师 的 第 一 份 架 构 草 图, Kinesis ? CSV, AI & Reporting 到底最初的方案, 哪里错了??? JSON, TXT… Data Lake 为何选择复[ keng ] 杂[ die ] 的 Lambda 架构!!!
21 . Kinesis ? CSV, AI & Reporting ?到底缺了什么? JSON, TXT… Data Lake 1)同 时 读 写, 并 且 要 保 证 数 据 的 一 致 性 2)可 以 高 吞 吐 从 大 表 读 数 据 3)遇 到 错 误 写 出 可 以 回 滚 和 删 改 4)在 线 业 务 不 下 线 的 同 时 可 以 重 新 处 理 历 史 数 据 5)处 理 迟 到 数 据 而 无 需 推 迟 下 阶 段 的 数 据 处 理
22 . Delta Structured + = 架构 Streaming • 批流合并,持续数据处理 • 按需随时可重新处理历史事件 • 独立且弹性扩展计算和存储资源
23 .Delta Lake 的 基 本 原 理
24 .Delta On Disk my_table/ Transaction Log _delta_log/ Table Versions 00000.json 00001.json (Optional) Partition Directories date=2019-01-01/ Data Files file-1.parquet
25 .Table = result of a set of actions Action Types • Change Metadata – name, schema, partitioning, etc. • Add File – adds a file (with optional statistics) • Remove File – removes a file Result: Current Metadata, List of Files, List of Txns, Version
26 .Atomicity 的 实 现 Changes to the table are stored as ordered, atomic units called commits Add 1.parquet 000000.json Add 2.parquet 000001.json Remove 1.parquet 。。。 Remove 2.parquet Add 3.parquet
27 . 乐观并发控制 1. Record start version 2. Record reads/writes Read: Schema Read: Schema 3. Attempt commit, check Write: Append Write: Append for conflicts among User 1 000000.json User 2 transactions 000001.json 4. If someone else wins, check if anything you 000002.json read has changed. 5. Try again.
28 . 大 规 模 元 数 据 的 处 理 – Use Spark!!! 上百万的commit log files! 如果解决海量元数据处理 ? Add 1.parquet Checkpoint Add 2.parquet Remove 1.parquet Remove 2.parquet Add 3.parquet
29 .Delta 架 构