7.1.1 数仓元数据平台(数据地图)
7.1.1.1 数据地图作用
在数仓体系中,数据地图(Data Map)是元数据管理的核心功能之一,它通过可视化、可检索的方式呈现数仓中所有数据资产的分布、关联关系及关键属性,帮助用户快速理解数据、定位数据并评估数据价值。其核心作用可概括为 "让数据资产'可寻、可知、可用、可管'",具体如下:
- 数据资产的 "导航系统":解决 "数据在哪里" 的问题
数仓往往包含海量表、字段、指标、ETL 任务等资产(例如大型互联网公司的数仓可能有上万张表),用户(如分析师、数据开发、业务人员)常面临 "找不到需要的数据" 的困境。
数据地图通过以下方式实现 "导航":
- 全局可视化:以拓扑图、层级树等形式展示数仓的库、表、字段、指标之间的归属关系(如 "业务域→数据主题→表→字段" 的层级结构),类似 "文件夹目录" 但更直观。
- 精准检索:支持按表名、字段名、业务标签(如 "订单""用户")、负责人等多维度检索,快速定位目标数据(例如搜索 "支付金额" 可直接找到相关表及字段)。
- 数据资产的 "说明书":解决 "数据是什么" 的问题
找到数据后,用户需要明确 "数据的含义、质量、规则",否则可能因误解数据而导致决策错误。数据地图通过元数据聚合,提供数据的 "全景说明书":
- 基础属性说明:
- 表的存储引擎、大小
- 业务上下文:标记数据所属的业务域(如 "交易域""用户域")、适用场景(如 "大促分析""财务对账")、更新频率(如 "实时同步""T+1 更新"),帮助用户判断数据是否符合需求。
- 数据血缘关联:展示数据的上下游链路(如 "订单表" 的字段来自哪些上游表,又被哪些下游报表 / 指标引用),帮助用户理解 "数据从哪里来,到哪里去"。并根据血缘关系进行通知
- 质量指标:展示数据的完整性(如字段非空率)、准确性(如与业务系统的一致性)、时效性(如延迟时长),避免用户使用 "脏数据"(例如某张表的 "订单状态" 字段空值率达 30%,数据地图会标注风险)。
- 数据协作的 "连接器":提升跨团队数据使用效率
数仓的使用涉及数据开发、分析师、业务方等多角色,数据地图可作为协作枢纽,减少沟通成本:
- 责任到人:明确每张表、每个指标的负责人(如开发 owner、业务 owner),用户有疑问时可直接联系对接人,避免 "数据没人管"。
- 权限指引:标注数据的访问权限(如 "公开可见""部门内可见""需申请权限"),并提供权限申请入口,简化数据获取流程。
- 变更通知:当数据结构发生变更(如字段新增 / 删除)、计算逻辑调整时,数据地图会自动同步元数据并推送通知给相关用户(如依赖该表的分析师),避免因 "不知情" 导致的分析错误。
- 数据治理的 "监控台":支撑数仓的规范化运营
对数据团队而言,数据地图是数据治理的重要工具,帮助发现并解决数仓中的潜在问题:
- 冗余识别:通过分析表的使用频率、重复字段,识别冗余资产(如两张表存储相同的 "用户注册时间" 但来源不同),推动数据瘦身。
- 合规审计:记录数据的访问日志、敏感字段(如手机号、身份证)的分布,确保符合数据安全法规(如 GDPR、国内《数据安全法》)。
- 资产盘点:统计数仓的表数量、字段数量、指标覆盖率等,量化数据资产规模及质量,为数仓优化提供依据(如优先重构高频使用但质量差的表)。
7.1.1.2 数据地图功能设计
7.1.1.2.1 地图门户
功能定位:作为数据地图的入口,提供全局概览和导航能力
核心功能:
- 数据资产总览:展示数仓规模(表数量、数据量、分区数)、数据增长趋势
- 主题域导航:按业务主题域组织数据资产,支持多层级分类
- 搜索与发现:支持表名、字段名、负责人、描述等多维度搜索
- 热门资产:基于访问频率和关注度推荐常用数据资产
- 最新变更:展示最近更新的表、新增字段等变更信息
- 数据质量概览:关键指标的质量监控结果汇总
技术实现:
- 使用图数据库存储数据资产关系,支持高效检索
- 实现全文搜索引擎,支持模糊搜索和自动补全
- 基于用户行为数据实现智能推荐

7.1.1.2.2 表基础信息
功能定位:展示表的基本元数据和业务信息
- 基本信息:表名、所属主题域、负责人、创建时间、更新频率
- 业务描述:业务背景、使用场景、数据来源说明
- 技术参数:存储引擎、表类型、存储格式、压缩方式
- 数据量信息:记录数、数据大小、增长趋势
- 生命周期状态:开发中、已上线、已下线、已归档
- 权限信息:访问权限级别、授权用户 / 组

实现说明:
- 中文名称:
- 业务说明:模型创建阶段产出(模型设计系统信息)
- 创建时间:建表时间
- 最新更新时间:上次表更新数据时间
- owner:模型设计系统信息
- 引擎:hive,Detla,Iceberg,Starrocks
- 存储位置:
- hdfs: //***, obs://***8, starrocks: : *****
- 大小
- 分区形式:分区键(模型设计系统信息)
- 存储生命周期:保留最近多少天数据
- 归档周期:标准存储保留最近多少天数据
- 安全等级:安全打标结果(机器 or 人工)
- 拥有权限:读,写
- 更新任务:对应任务链接,约定任务调度平台上任务名称和表名必须一致,并且一个数据源只允许一个任务进行更新(链接到任务调度平台)
- 质量报警(最近 7 天列表):最近质量报警列表(来自 DQC),
- 变更记录:模型设计变更记录
7.1.1.2.3 分区信息
功能定位:展示分区表的组织结构和数据分布
核心功能:
- 分区结构:展示分区键、分区层级关系
- 分区数据量:各分区数据大小、记录数、存储成本
- 分区生命周期:分区创建时间、最后更新时间、过期策略
- 分区访问热度:基于历史访问记录的分区使用频率
- 分区管理:支持分区清理、修复等操作入口

实现说明:
- 分区名字:如果有多个分区列可以选择以哪个分区列展示
- 条数
- 大小
- 产出时间(最新更时间)
- 存储地址:
- 存储状态:标准,归档,归档中,解归档中(可以进行归档或者解归档)
- 如果状态是归档:

- 如果是:解归档中 可以点击详情 跳转到申请详情页面看:增加以下信息:提交人,时间,请求审批进度。

- 质量报警:DQC 的分区任务报警
7.1.1.2.4 字段信息

实现说明:
- 字段:模型设计系统信息,
- 类型:模型设计系统信息,
- 说明:
- 指标需要链接指标平台(此处有说明,并给出链接):
- 空值率:DQC 统计
- 安全打标:
- 报警:空置率,枚举等类型报警
- 字段使用统计:字段在查询中的使用频率
- 数据样例:随时抽取最新分区 100 条数据进行展示
7.1.1.2.5 数据血缘

实现说明:
- 上游数据:
- 状态:模型状态
- 来源:
- 离线调度系统任务依赖
- SQL 解析:解析任务本身依赖的静态表(无任务依赖)
- 上游追溯:快速查看上游任务血缘
- 下游数据:
- 状态:模型状态
- 来源:增加
- 手工录入、报表系统扫描等
- SQL 解析:画像,报表,数据服务
7.1.1.2.6 访问审计
功能定位:记录和分析数据的访问行为
核心功能:
- 访问日志:记录查询时间、用户、查询 SQL、执行结果
- 访问统计:按用户、表、时间段统计访问频率和数据量
- 异常访问检测:识别高频访问、大规模数据拉取等异常行为
- 用户行为分析:分析用户查询习惯,提供优化建议
- 合规审计:支持监管合规要求的访问记录查询
技术实现:
- 集成 SQL 解析器分析查询语义
- 使用分布式日志系统存储海量访问日志
- 应用机器学习算法识别异常访问模式

7.1.1.2.7 成本管理
功能定位:管理和优化数据存储成本
核心功能:
- 成本统计:按主题域、表、分区统计存储成本
- 存储效率分析:冷热数据分布、冗余数据检测
- 成本趋势:展示历史成本变化和预测趋势
- 优化建议:基于使用频率和数据价值提出存储优化建议
- 生命周期管理:支持数据归档、删除等操作
技术实现:
- 集成云厂商计费 API 获取存储成本数据
- 实现数据价值评估模型(综合访问频率、业务重要性等)
- 与数据治理系统联动,实现存储策略自动化执行

实现说明:最近一个计费周期(年 or 季度)
- 存储:
- 前天之前容量:
- 前天新增容量:
- 容量单价:
- 累计:sum(最近一个周期每天存储)
- 计算:
- 前天新增:
- 累计:sum(最近一个周期每天计算
- 均摊比例:按照计费周期访问次数占比