- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 视频嵌入链接 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
T3出行基于Apache Hudi与Alluxio 构建企业级高性能数据湖
T3出行基于Apache Hudi与Alluxio构建企业级高性能数据湖-张永旭
张永旭
T3出行大数据高级工程师,主要从事数据湖以及围湖生态建设的工作。Apache Hudi、Apache Zeppelin、Alluxio等多个开源项目的贡献者
T3出行:全国首家基于车联网的出行平台
展开查看详情
1 .T3出行基于Apache Hudi与Alluxio 构建企业级高性能数据湖 张永旭 | Big Data Sr. Engineer Alluxio Day 2021
2 . Agenda 1.T3GO data lake introduction 2.Why Apache Hudi Alluxio Day 3. Hudi & Alluxio practice 2021
3 .T3出行:全国首家基于车联网的出行平台 Alluxio Day 2021
4 .数据湖支撑T3智慧出行 ⼈ ⻋ 路 云 D river V ehicle R oad C loud • 背调数据 • ⻋况数据 • 路况数据 • ⻛控数据 数 • ⼈脸数据 • ⾏驶数据 • 环境数据 • 运⼒数据 据 采 • 交易数据 • 能耗数据 • 轨迹数据 • 交易数据 集 • ⾏为数据 • 事故数据 • POI数据 • 城市数据 • 驾驶数据 • 故障数据 • 异常数据 • ⽤户数据 • …… • …… • …… • …… 应 • 安全管理 • 运⼒调度 • 地图绘制 • 智能调度 ⽤ • 司机管理 • 主动维修 • 实时路况 • 智能决策 场 • UBI保险 • 产品改进 • 安全管理 • 智能营销 景 • 驾驶模式研究 • 运营定制⻋设计 • 市政管理 • 客户体验 • …… • …… • …… • …… Alluxio Day 2021
5 .什么是数据湖? AWS的定义: A data lake is a centralized repository that allows you to store all your structured and unstructured data at any scale. You can store your data as-is, without having to first structure the data, and run different types of analytics—from dashboards and visualizations to big data processing, real-time analytics, and machine learning to guide better decisions. 数据湖是一个集中式的存储库,允许您以任意规模存储所有结构化和非结构化数据。 您可以按原样存储数据(无需先对数据进行结构化处理),并运行不同类型的分析 – 从控制面板和可视化 到大数据处理、实时分析和机器学习,以指导做出更好的决策。 Alluxio Day 2021
6 .什么是数据仓库? AWS的定义: A data warehouse is a central repository of information that can be analyzed to make more informed decisions. Data flows into a data warehouse from transactional systems, relational databases, and other sources, typically on a regular cadence. Business analysts, data engineers, data scientists, and decision makers access the data through business intelligence (BI) tools, SQL clients, and other analytics applications. Data and analytics have become indispensable to businesses to stay competitive. Business users rely on reports, dashboards, and analytics tools to extract insights from their data, monitor business performance, and support decision making. Data warehouses power these reports, dashboards, and analytics tools by storing data efficiently to minimize the input and output (I/O) of data and deliver query results quickly to hundreds and thousands of users concurrently. 数据仓库是信息(对其进行分析可做出更明智的决策)的中央存储库。通常,数据定期从事务系统、关系数据库和其他来源流入数据仓库。 业务分析师、数据工程师、数据科学家和决策者通过商业智能 (BI) 工具、SQL 客户端和其他分析应用程序访问数据。 数据和分析已然成为各大企业保持竞争力所不可或缺的部分。企业用户依靠报告、控制面板和分析工具从其数据中获得洞察力、监控企业绩效 以及更明智地决策。数据仓库通过高效地存储数据以便最大限度地减少数据输入和输出 (I/O),并快速地同时向成千上万的用户提供查询结果, 为这些报告、控制面板和分析工具 由数据仓库提供支持 Alluxio Day 2021
7 .数据湖与数据仓库的区别与协作关系? 特性 数据仓库 数据湖 数据 来自事务系统,运营数据库和业务线应用程序的非关系数据 所有数据,包括结构化、半结构化和非结构化 Schema 通常在数据仓库实施之前设计,但是也可以在分析时编写 写入在分析时(读取型 Schema) (写入型 Schema 或读取型 Schema) 性价比 使用本地存储获得最快的查询结果 更快地获得查询结果,存储成本低,计算和存储分离 数据质量 可作为重要事实依据的高度监管数据 任何可以或无法进行监管的数据(例如原始数据) 用户 业务分析师、数据科学家和数据开发人员 业务分析师(使用监管数据)、数据科学家、数据开发人员、 数据工程师和数据架构师 分析 批处理报告、BI 和 可视化 机器学习、探索性分析、数据发现、流处理、运营分析、大 数据和特征分析 Alluxio Day 2021
8 .Snowflake——湖仓一体最成功的案例 HOT! Alluxio Day 2021
9 .Snowflake——设计思想解读 • Shared-Nothing 架构 -> Shared-Data 架构 • 存储计算分离:统一存储、弹性计算 • 数仓即服务:SaaS化体验,共享存储基础设施,计算多租户 • 持续高可用:在线升级,失败容错 • 结构化延伸到半结构化数据的处理支持 Alluxio Day 2021
10 .Shared-Nothing架构(优势) Network • Table 被跨节点进行水平分区 • 每个节点有自己的本地存储 • 每个节点只处理自己本地表分区的数据 CPU • 清晰简洁的处理机制 • 对于“星型”模型有良好的扩展性 Memory • 数仓领域的典型架构 Disk Alluxio Day 2021
11 . Shared-Nothing架构(劣势) Network • 耦合了计算与存储资源 • “弹性”不足 • 集群扩缩容需要重“分布”很多数据 CPU • 没法简单卸载不用的计算资源 • 有限的可用性 • 失败、升级显著影响性能并可能导致服务整体不可用 Memory • 同构的资源 VS 异构的负载 • 批量加载、报表、探索与分析 Disk Alluxio Day 2021
12 .Multi-Cluster, Shared-Data架构 Data Warehouse Cluster • 没有数据孤岛 • 存储从计算解耦 • 任意的数据 • 结构化&非结构化 • 无限扩容 • 多种尺寸(XL, XXL) Ad-Hoc Cluster ML Cluster • 低成本 • 按需计算 Data lake Storage OLAP Cluster ETL Cluster BI Cluster Alluxio Day 2021
13 .Multi-cluster, Shared-data • 所有数据存于一处 • 互不依赖、独立扩展的存储与计 算 • 即开即用,随时关闭的“计算” • 每个集群(理论上)可以访问全部数 据 Alluxio Day 2021
14 . T3出行存储计算分离的数据湖架构 Multiple calculation Computing Resource management YARN Orchestration acceleration Storage format Storage Data Lake Storage Aliyun OSS Alluxio Day 2021
15 .T3出行“围湖而建”的大数据生态体系 Alluxio Day 2021
16 . 为什么不使用传统的数据仓库 Order payment rate • Long business closed-loop window Pay the long tail: pay before the next trip! • The hot and cold data is updated randomly and cannot be identified • Multi-level update, long link, high cost Time Alluxio Day 2021
17 .超长的业务窗口导致订单分析回溯成本高 Order driver Vehicle Passenger Trip Order(Snapshot Table) order_id driver_id user_id veh_id … status create_time lastupdate_time … … … … … … … xxx xxx xxx xxx xxx end 2020-06-01 xx:xx:xx … … … … … … … The historical snapshot half year ago is no longer accessible! Driver(Snapshot Table) User(Snapshot Table) Trip(Snapshot Table) driver_id user_id veh_id Alluxio Day 2021
18 .数据摄取Pipeline无法保证可靠性 1. 10W data is successfully written 9.97W? 2. Incorrect calculation logic leads to dirty data? 3. Repeatedly write data due to unstable network? Data Ingest Data Processing Business system Data Warehouse BI / Report Alluxio Day 2021
19 . 总结 Pain points of Hadoop data warehouse system Low Reliability High Latency Small File Problem Missing Data Version Not support Incremental Processing Alluxio Day 2021
20 . Agenda 1.T3GO data lake introduction 2.Why Apache Hudi Alluxio Day 3. Hudi & Alluxio practice 2021
21 . Apache Hudi 介绍 Hadoop Upserts Deletes and Incrementals Manage DFS/cloud ultra-large-scale (hundreds of PB) analysis datasets Incremental data lake processing framework supporting insert, ACID Incremental update, and delete Joined Apache incubator in January 2019, graduated as TLP in May 2020 All cloud services (AWS/Tencent Cloud/Aliyun) are available Storage management Time travel out of the box Has been operating stably on Uber for nearly 4 years Alluxio Day 2021
22 .Hudi 插件化架构 Hudi DataSet Spark Spark Read Optimized Query COW Pluggable Index (Bloom/HBase) Flink Presto Pluggable Data format Increamental Query Java write (Avro, Parquet) read Hive Timeline MOR Metadata Snapshot Query Python Impala Storage type Query/View Pluggable Storage(HDFS, OSS, S3) Alluxio Day 2021
23 . Hudi 存储模式和视图 Storage Mode Supported Query Type Features Query Engine Snapshot Queries Incremental Queries Read Optimized Queries Hive Y Y - Spark SQL Y Y - • Read Heavy • Snapshot Query Copy On Write • Focus on low-latency queries • Incremental Query Spark Datasource Y Y - • Columnar Parquet data file Presto Y N - Impala Y N - Hive Y Y Y • Write Heavy Spark SQL Y Y Y • Snapshot Query • Focus on rapid data ingestion • Incremental Query Merge On Read • Columnar Parquet data file Spark Datasource Y N Y • Read Optimized • Line Avro incremental file Query Presto Y N Y Impala N N Y Alluxio Day 2021
24 .增量查询:Copy On Write Commit Commit Commit Time=0 Time=1 Time=2 Insert: A, B, C, D, E Update: E=>E’, A’=>A’’ Update: D=>D’, A=>A’ Insert: F File 0 File 0’ File 0’’ A, B A ’,B A’’, B File 1 File 1’ C, D C, D’ File 2 File 2’ E E’, F Snapshot : A,B,C,D,E A’,B,C,D’,E A’’,B,C,D’,E’,F Incremental : A,B,C,D,E A’,D’ A’’,E’,F Alluxio Day 2021
25 .增量查询:Merge On Read Commit Delta Commit Delta Commit Compaction Time=0 Time=1 Time=2 Commit Time=3 Update: E=>E’, A’=>A’’ Insert: A, B, C, D, E Update: D=>D’, A=>A’ Compaction Insert: F Log 0 File 0 Log 0 File 0’ A’ A’’, B A, B A’ A’’ File 1 Log 1’ File 1’ C, D D’ C, D’ File 2 Log 2 File 2’ E E’, F E’, F Snapshot : A,B,C,D,E A’,B,C,D’,E A’’,B,C,D’,E’,F A’’,B,C,D’,E’,F Incremental : A,B,C,D,E A’,D’ A’’,E’,F Read Optimized : A,B,C,D,E A,B,C,D,E A,B,C,D,E A’’,B,C,D’,E’,F Alluxio Day 2021
26 .时间旅行的查询让“时光倒流” Order driver Vehicle Passenger Trip Order(Snapshot Table) order_id driver_id user_id veh_id … status create_time lastupdate_time … … … … … … … xxx xxx xxx xxx xxx end 2020-06-01 xx:xx:xx … … … … … … … Take time back to the moment Hudi Feature: the order occurred! Time Travel Driver(v_2020-06-01) User(v_2020-06-01) Trip(v_2020-06-01) Data Version driver_id user_id veh_id Alluxio Day 2021
27 .Hudi保证数据摄取Pipeline的可靠性 Hudi MVCC writes update data to versioned Parquet/base and log files! Invisible ! 1. 10W data is successfully written 9.97W? 2. Incorrect calculation logic leads to dirty data? All data commit rollback ! 3. Repeatedly write data due to unstable network? Deduplication based on index ! Data Ingest Data Processing Business system Data Warehouse BI / Report Alluxio Day 2021
28 . Section Header 1.T3GO data lake introduction 2.Why Apache Hudi Alluxio Day 3. Hudi & Alluxio practice 2021
29 .为什么T3出行需要Alluxio Serious network delay when reading and writing Miss Cache ? Multi-cluster naming is not uniform Low cluster stability Serious network delay Low memory resource utilization Inefficient calculation High timeout tolerance T3 Trips Store Alluxio Day 2021