腾讯数据湖的元数据治理实践
如果无法正常显示,请先停止浏览器的去广告插件。
1. 腾讯数据湖的
元数据治理实践
吴怡雯 高级工程师
2. 目录 CONTENT
01 背景概述 03 在线目录
02 租户设计 04 离线治理
3. 01
背景概述
4. 数据仓库 VS 数据湖
Snowflake + 云厂商
数据仓库:面向主题的、集成的、相对稳定的、反映历史的数据集合,提供管理决策。(Bill Inmon,数仓
之父,1990)
数据湖:存储各类自然格式数据的系统,提供数据ETL操作。(James Dixon,Pentaho CTO ,2010)
优势 (DLC 为例 ) :
Ø 高时效:表格式 (Iceberg) 、存储缓存 (Alluxio)
Ø 低成本:对象存储 (COS) 、Serverless计算 (EKS)
Ø 易扩展:存算分离架构、多样化计算引擎 (Presto/Spark) 数据仓库 ( 分而治之 ) 数据湖 ( 无为而治 )
结构化数据
结构/半结构化数据
湖仓一体:数据湖(灵活性) + 数据仓库(建模/治理) Schema-on-Write
Schema-on-Read
数据质量高
数据质量较低
构建成本较大
构建成本较小
数据模型/数据分层
—
(ODS、CDM、ADS)
5. 腾讯数据湖架构
统一元数据:数据湖的基石和枢纽
避免陷入数据沼泽、可打通业务产品的数据孤岛,提供统一数据资产视图
3+2架构
6. 腾讯统一元数据架构
逻辑架构:在线 + 离线
常用Schema管理:Hive Metastore、AWS Glue
Hive数据模型,借鉴原生Hive设计
多租户管理:实现混合云场景的通用租户设计
服务架构:分层微服务 +K8S+CICD
服务分层解耦业务、便于团队协作
7. 02
租户设计
8. 多层级租户设计
基本框架与灵魂
元数据租户
最小租户粒度,可类比Hive Metastore
元数据租户=腾讯云账号+命名空间(别名)
支持不同元数据类型:Hive、MySQL等
业务租户
解耦通用元数据与具体业务
业务租户承担具体业务场景的关联
灵活的中间映射表维护
9. 03
在线目录
10. 业界方案
Hive Metastore :为SQL on Hadoop提供通用Schema管理
能与计算引擎无缝对接
方案一:Multiple Store
方案二:Multiple HMS
问题:大量数据连接维护、资源浪费、强绑定Hive
11. 架构及实现
Ø 版本:Hive 2.3.7
Ø 总接口167,已实现79 (73+6)
Ø 无缝适配多种引擎
实现方案:重新实现Hive Metastore RPC接口
12. Metastore深度优化
Ø 简化数据模型,减少关联查询
Ø 全新实现逻辑,避免冗余API调用
Ø 持久层框架由MyBatis替代JDO,支持读写分离
Hive Metastore 原生数据模型示例 (12)
自研 Metastore 数据模型示例 (6)
13. CBO统计元数据
Ø
Ø
Ø
Ø
SQL解析执行流程
多引擎通用的统计元数据
查询优化器:代数优化最短执行路径
CBO:感知数据
CBO要素= 统计信息 +代价模型
多引擎通用
14. 04
离线治理
15. 业界方案
开源方案层出不穷
基本模块:元模型定义、元数据采集、元数据加工及存储、元数据应用
基础组件:关系型数据库、索引数据库、图数据库、消息中间件、调度引擎
Apache Atlas
LinkedIn DataHub ( 由 Warehouse 重构 )
Lyft Amundsen
16. 架构与实现
与业务整合需要深度的二次开发
与开源治理系统对比
17. 非常感谢您的观看