火山引擎 DataLeap 构建 Data Catalog 系统的实践(二):技术与产品概览
技术与产品概览
架构设计
暂时无法在{app_display_name}文档外展示此内容
元数据的接入
元数据接入支持 T+1 和近实时两种方式
上游系统:包括各类存储系统(比如 Hive、 Clickhouse 等)和业务系统(比如数据开发平台、数据质量平台等)
中间层:
ETL Bridge:T+1 方式运行,通常是从外部系统拉取最新元数据,与当前 Catalog 系统的元数据做对比,并更新差异的部分
MQ:用于暂存各类元数据增量消息,供 Catalog 系统近实时消费
与上游系统打交道的各类 Clients,封装了操作底层资源的能力
核心服务层
系统的核心服务,根据职责的不同,细拆为以下子服务:
Catalog Service:支持元数据的搜索、详情、修改等核心服务
Ingestion Service:接受外部系统调用,写入元数据,或主动从 MQ 中消费增量元数据
Resource Control Plane:通过各类 Clients,与底层的存储或业务系统交互,操作底层资源,比如建库建表,能力可插拔
Q&A Service:问答系统相关能力,支持对元数据的字段含义、使用场景等提问和回答,能力可插拔
ML Service:负责封装与机器学习相关的能力,能力可插拔
API Layer:以 RESTful API 的形式整合系统中的各类能力
存储层
针对不同场景,选用的不同的存储:
Meta Store:存放全量元数据和血缘关系,当前使用的是 HBase
Index Store:存放用于加速查询,支持全文索引等场景的索引,当前使用的是 ElasticSearch
Model Store:存放推荐、打标等的算法模型信息,使用 HDFS,当 ML Service 启用时使用
元数据的消费
数据的生产者和消费者,通过 Data Catalog 的前端与系统交互
下游在线服务可通过 OpenAPI 访问元数据,与系统交互
Metadata Outputs Layer:提供除了 API 之外的另外一种下游消费方式
MQ:用于暂存各类元数据变更消息,格式由 Catalog 系统官方定义
Data warehouse:以数仓表的形式呈现的全量元数据
产品功能升级
暂时无法在{app_display_name}文档外展示此内容
产品能力上的升级迭代,大致分为以下几个阶段:
基础能力建设(2017-2019):数据源主要是离线数仓 Hive,支持了 Hive 相关库表创建、元数据搜索与详情展示、表之间血缘,以及将相关表组织成业务视角的数据专题等
中阶能力建设(2019-2020 年中):数据源扩展了 Clickhouse 与 Kafka,支持了 Hive 列血缘,Q&A 问答系统等
架构升级(2020 年中-2021 年初):产品能力迭代放缓,基于新设计升级架构
能力提升与快速迭代(2021 年至今):数据源扩展为包含离线、近实时、业务等端到端系统,搜索和血缘能力有明显增强,探索机器学习能力,产品形态更成熟稳定。另外我们还具备了 ToB 售卖的能力。
评论