ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

数据中台与数据治理:从元数据管理到冷热分层落地

数据中台与数据治理:从元数据管理到冷热分层落地 简介这份资源是一份关于数据中台与数据治理服务的完整方案PPT面向智慧城市、政务数字化及企业数据架构相关人员重在解决数据孤岛、数据资产难沉淀、数据治理体系缺失等常见问题。资源包内共1个文件为50页的.pptx演示文稿整体大小约2.7MB便于直接查阅与二次编辑目前已有82人学习下载。内容从“数据中台是什么”展开系统对比数据中台与传统数仓的差异梳理数据化工作框架、数据中台建设步骤、组织架构设计并融入数据标准、数据质量、数据安全等治理维度后附案例分享。对需要撰写政务或企业数据中台方案、梳理数据治理思路的读者是一份性价比较高的参考素材。1. 数据中台不是数仓是数据治理的作战地图在智慧城市“一网通办”的现场经常能看到这样的怪相数据中台建了各委办局还是在各自割据的数据库里取数数据标准各说各话同一家企业的名称在这个系统里叫“阿里巴巴”在那个系统里叫“阿里集团”。这份《优数据中台与数据治理服务方案》讲的是一个更本质的问题——数据中台不是数据仓库的升级版而是数据治理落地的载体。它把数据采集、存储、治理、服务串成一条数据供应链业务部门产生数据中台反哺业务而数据治理贯穿全程。适合正在做政务数据资源盘点、数据资产平台建设的团队也适合想搞清楚“数据治理车轮图”和“冷热数据分层”的从业者。下文按方案结构拆解并补上可复现的SQL和设计步骤。2. 数据中台与传统数仓的分水岭从离线口径到全域数据资产2.1 数据中台解决的是数据供应链问题方案里定义“数据化”为利用政务服务过程中各部门业务系统产生的、和一切可以获取的数据进行整体建模和二次加工产生新数据用于驱动政府管理效率、提升服务能力。这个过程包含业务活动数据化、数据运营、数据治理三个层面。数据中台在这里不是单纯的数据平台而是一个“数据大脑”负责汇聚全域数据拒绝数据烟囱统一建模并提供统一的数据服务。传统数仓围绕某个业务主题做报表而数据中台要支撑随时变化的业务应用这就决定了它的建设模式必须自底向上迭代。数据中台还能把数据组织规划纳入体系没有组织支撑数据标准就是一句空话。所以在方案里数据中台的价值被概括为汇聚数据、检验数据质量、支持应用高效落地、指导数据化整体规划。这五项能力环环相扣缺了治理汇聚起来的就是一堆垃圾缺了服务数据资产又变回孤岛。实际上很多项目把数仓和中台做成了两套并行系统这是最浪费的。中台的建设应该以数仓能力的自然演进为前提存量数仓的规范和血缘可以直接迁移到中台的元数据中心继续使用。2.2 六个维度的差异对比对比维度传统数仓数据中台建设模式自顶向下业务分析驱动延续性低自底向上随业务需求迭代升级数据源业务数据库结构化数据为主业务数据、日志、埋点、IoT、爬虫、社会数据数据开发ODS/EDW/ETL切割到不同厂商工具一站式可视化数据开发统一操作数据管理离线规范和文档治理成本高元数据统一入口资产在线化数据应用单一主题BI报表烟囱式建设全域数据打通支撑业务创新技术架构关系型数据库离线分析分布式引擎离线/实时/即时/智能计算这张表基本是方案里那页对比的扩写。实际选型时我一般会先用这张表判断当前项目到底该叫“数仓”还是“中台”。如果业务方只是要固定的月度报表上中台反而会背上治理包袱如果要做跨域数据分析、实时服务那传统数仓的离线口径肯定拖后腿。判断方法很简单看是否有“跨部门高频共享数据”“实时决策”“数据资产自助分析”这三个需求有三个中的两个就要往中台方向设计否则不如先把数仓做好。2.3 元数据是治理的第一块地基方案里有一张“数据化工作框架图”我把它理解成一张车轮图中心是数据资产、数据资源、数据应用辐条是数据标准、数据质量、数据组织和数据安全。数据治理不是某一个环节而是对整个数据化架构的搭建。数据标准负责统一口径数据质量保证加工过程不出错数据组织解决谁来做数据安全保证数据不被窃取和丢失。这四根辐条缺一根车轮就会颠簸。而数据治理流程的第一步是先把元数据管起来。元数据就是关于数据的数据表结构、字段含义、分区信息、责任人都算元数据。没有元数据管理数据血缘就像断了的线后面做质量追踪和影响分析都无从下手。数据血缘分为表级和字段级字段级血缘可以通过解析SQL生成很多商业工具自带开源项目如Apache Atlas可以基于Hook自动采集Hive的DDL/DML血缘。我建议至少做到表级血缘覆盖100%字段级血缘覆盖核心指标相关链路。下面的SQL是常见做法用来从Hive Metastore里采集元数据为血缘和资产盘点打基础SELECT d.Name AS database_name, t.TBL_NAME AS table_name, t.TBL_TYPE AS table_type, p.PARAM_VALUE AS last_ddl_time FROM metastore.DBS d JOIN metastore.TBLS t ON d.DB_ID t.DB_ID JOIN metastore.TABLE_PARAMS p ON t.TBL_ID p.TBL_ID WHERE p.PARAM_KEY lastDdlTime ORDER BY d.Name, t.TBL_NAME;这段SQL从Hive的元数据库直接读取库、表、类型和最近DDL时间。参数说明DBS是数据库表TBLS是数据表TABLE_PARAMS存表级属性lastDdlTime表示最后一次结构调整时间。采集结果可以写入元数据管理表之后做血缘追溯和影响分析都靠它。注意不同的元数据存储位置略有差异如果是Atlas或Glue就要通过对应的API拉取。另外元数据管理工具在盘点阶段的额外价值是可以自动生成数据地图让各委办局自己看到名下有哪些数据资产这比发Excel表格让人填有效得多。3. 从盘点资产到建设平台政务数据中台落地的四个步骤方案把建设步骤拆成四步数据资源盘点、数据应用梳理、数据资产平台建设、运营组织设计。这四步不是瀑布流而是迭代循环每完成一轮数据资产就厚一层。下面按实际项目中的操作顺序展开。3.1 数据资源盘点权责清单与血缘关系第一步是搞清楚“有什么数据”。按编办“三定方案”梳理部门的职责、业务活动、业务系统以及系统产生的数据。输出物包括职责目录、系统目录、数据目录。进一步形成数据责任目录、数据需求目录和数据负面目录。盘点时重点看哪些部门有系统支撑、系统数据能否共享、是否存在僵死系统、数据安全性如何。这些内容在方案里被列为“梳理直接成果物”和“间接成果物”直接成果物是三本目录间接成果物是数据血缘关系。没有系统支撑的部门要考虑线下数据的采集方式比如通过统一报表入口或者OCR识别纸质材料。我一般会先用元数据工具把存量系统的表清单导出来再人工核对业务含义。工具上可以用开源的数据地图框架也可以直接用下面的SQL统计各库表的规模和活跃度SELECT d.Name AS database_name, COUNT(t.TBL_ID) AS table_count, SUM(CAST(p.PARAM_VALUE AS BIGINT)) AS total_size_bytes FROM metastore.DBS d LEFT JOIN metastore.TBLS t ON d.DB_ID t.DB_ID LEFT JOIN metastore.TABLE_PARAMS p ON t.TBL_ID p.TBL_ID AND p.PARAM_KEY totalSize GROUP BY d.Name ORDER BY total_size_bytes DESC;这段SQL统计每个数据库下的表数量和总存储字节。参数里totalSize是表文件的总大小单位字节table_count用于判断数据源是否庞大。如果某个库的表数量很多但大小很小可能是碎片化严重需要考虑小文件合并常见做法是设置Hive的hive.merge.mapfilestrue和hive.merge.size.per.task256000000把小于256MB的orc或parquet文件合并减少NameNode压力。盘点结果记得输出一张数据资源清单至少包含系统名称、数据库名、表名、字段数、存储量、责任人、共享等级。3.2 数据应用梳理指标、标签与场景拆解第二步是搞清楚“数据拿来干什么”。把数据应用场景层层拆解到指标和标签粒度再依据场景标准、指标和报表体系构建数据模型。比如“领导驾驶舱”可以拆成“一网通办办件量”“办结率”“群众满意度”等指标。指标需要统一口径否则不同部门报上来的数字对不上。建指标时建议维护一张指标字典表结构类似这样CREATE TABLE dim_metric ( metric_id STRING COMMENT 指标ID, metric_name_zh STRING COMMENT 指标中文名, biz_domain STRING COMMENT 业务域, owner_dept STRING COMMENT 责任部门, calculation_logic STRING COMMENT 计算逻辑, data_origin STRING COMMENT 数据来源表, granularity STRING COMMENT 统计粒度日/周/月, update_freq STRING COMMENT 更新频率, effective_date STRING COMMENT 生效日期 ) COMMENT 指标字典表 PARTITIONED BY (dt STRING) STORED AS PARQUET;建表逻辑说明metric_id是唯一主键calculation_logic要写到能直接翻译成SQL的程度data_origin指向来源表保证血缘可追溯。这样后续开发指标时直接查这张字典就能生成加工SQL避免同一指标三套算法。注意PARTITIONED BY (dt)用分区管理版本每天全量快照方便回溯口径变更。这一阶段还要输出“数据服务规划”明确哪些指标要开放成API哪些指标只能在内网报表中使用这直接决定后面的服务开发工作量。3.3 数据资产平台建设建模、抽取与OneService第三步是建设平台。技术架构上方案强调分布式引擎、离线/实时/即时/智能计算同时通过OneData做标准化建模OneID做实体识别OneService做统一数据服务。数据模型设计分三层概念模型确定主题和边界逻辑模型做粒度划分、事实量度、分割策略物理模型确定存储结构、索引和存放位置。这里我不建议一上来就照着数据仓库三层规范硬套。对于政务场景ODS层保留原始数据DWD层做清洗和标准化DWS层出汇总指标ADS层服务应用四层足够用。层数越多调度链路越长治理难度越大。实操中物理模型要特别关注分区和文件格式。下面是一张订单事实表的分区设计示例CREATE TABLE dws_order_fact ( order_id STRING, user_id STRING, dept_code STRING, order_amount DECIMAL(18,2), order_status STRING ) COMMENT 订单事实表 PARTITIONED BY (dt STRING, biz_type STRING) STORED AS ORC TBLPROPERTIES (orc.compressSNAPPY);分区字段dt按日划分biz_type按业务类型划分例如appointment、approval。这样既能按天增量导入又能按业务类型做资源隔离。存储格式选ORC并加Snappy压缩是对Hive查询比较稳妥的组合。需要实时计算时再用Flink或Spark Streaming把Kafka里的数据写入同样的分区表。注意实时链路要设置水位线watermark避免迟到的数据晚到造成结果回刷。另外OneService的设计要点是统一服务层对上层暴露“主题逻辑表”屏蔽物理表的复杂性。比如前端要查“企业开办时长”后端可能跨了三个库、五张表OneService把这套逻辑封装成一个接口调用方不用关心物理存储。关于数据开发平台我一般建议用Apache DolphinScheduler做工作流编排它支持DAG可视化、定时调度、失败重试还能和Shell、SQL、Python任务混合编排。ETL任务上线前先在测试环境跑一遍数据血缘校验确认输入输出表的字段映射没有错位再发布到生产。这里有个容易踩的坑Hive的静态分区和动态分区混用时必须先处理动态分区的字段顺序否则日志会报错“Dynamic partition strict mode”。遇到这个错误时检查是否把动态分区的字段放在了SELECT列的最后或者临时执行set hive.exec.dynamic.partition.modenonstrict但生产环境不建议默认放开还是从SQL结构上解决。3.4 组织架构与运营体系设计第四步是定人。方案里特别提到“数据组织人的保障和标准体系”实际操作中我会建议每个业务部门指定一名“数据管家”负责提炼本部门数据、确认业务架构并持续运营共享数据。中台侧设置数据治理委员会负责发布标准、仲裁指标口径。没有组织保障前面建的资产平台会逐渐变成僵尸平台。这一阶段的产出物是数据责任人矩阵表结构很简单数据域、表名、业务责任人、技术责任人、发布状态。有了矩阵后续出问题就能直接找到对应的人而不是通过群里吼。从项目管理的角度这四步每一步都要有评审节点尤其是指标口径确认会一定要让业务负责人签字避免后续反复。4. 数据治理服务怎么落地标准、质量、安全与冷热分层前文已经把资产平台搭起来了这一章回到治理本身。数据治理流程通常分四步定标准、做质检、控安全、分层存储。其中冷热数据的处理是最近项目里问得最多的方案虽然没有大篇幅讲但结合数据供应链的架构治理必须覆盖到存储成本。4.1 数据治理流程与车轮图回看车轮图告诉我们数据标准是纲领数据质量是生命线数据组织是执行力数据安全是底线。具体到流程上标准先行然后根据标准配置质量规则安全检查跟着数据资产上线走生命周期管理则持续运行。下面这张表是我在政务项目里常用的治理环节清单治理环节输入产出典型工具标准定义业务术语、指标口径数据标准文档、码表规范Excel、数据字典平台质量检测源系统表、数仓表质量报告、问题工单Great Expectations、自定义SQL安全分级数据分类分级规则脱敏策略、权限矩阵Apache Ranger、KMS生命周期访问热度、存储时间冷热分层、归档策略OSS生命周期、Hive分区迁移很多项目把治理做成了“一次性清洗”其实是错的。治理流程应该像轮子一样转起来源系统变更时标准跟着变质量规则跟着调安全策略跟着改。另外治理的数据范围要扩展到非结构化数据PPT里明确提到了“日志数据”“爬虫数据”这些数据同样要过标准、质量、安全三道关否则中台建成后非结构化数据会成为新的黑盒子。4.2 数据质量校验SQL模板与规则配置数据质量规则可以配置在调度任务里最常见的是完整性、唯一性、有效性、及时性四类。下面是一段空值率和唯一性检测的SQL模板-- 质量检测dwd_user_info 表 SELECT COUNT(*) AS total_cnt, SUM(CASE WHEN user_name IS NULL OR TRIM(user_name) THEN 1 ELSE 0 END) AS null_name_cnt, SUM(CASE WHEN id_card IS NULL OR LENGTH(id_card) 18 THEN 1 ELSE 0 END) AS invalid_id_cnt, COUNT(*) - COUNT(DISTINCT user_id) AS duplicate_user_cnt FROM dwd_user_info WHERE dt ${bizdate};说明total_cnt是当日记录数null_name_cnt检查用户名字段是否为空invalid_id_cnt检查身份证号长度是否合法duplicate_user_cnt通过COUNT(DISTINCT user_id)计算重复量。根据结果设定阈值比如空值率超过0.1%就触发告警并阻止下游任务运行。在调度系统里可以设置质量检查节点的失败策略为“失败即阻断”这是治理从“事后补救”转向“事前拦截”的关键点。这里要提醒一点质量规则不要只盯着数仓表源系统的输入数据也要检测。现实里经常出现源系统接口字段截断导致下端所有指标全部异常而数仓里的质量规则因为上下游数据都处理过反而不容易暴露这个问题。下面是一个质量规则配置表方便直接落到元数据管理平台规则ID规则名称适用表关键字段阈值失败动作DQ001空值率dwd_user_infouser_name0.1%阻断DQ002唯一性dwd_user_infouser_id0阻断DQ003有效值dwd_user_infoid_card0.2%告警4.3 冷热数据识别与归档表设计数据中台运行一年后存储成本会飙升。热数据每天被查询冷数据可能半年没人碰。常见的做法是分层存储热数据放在性能型存储温数据放标准存储冷数据放归档存储或直接归档表。识别冷热的依据通常是“最近N天访问频率”“数据最后修改时间”。下面是用分区表做冷热迁移的示例-- 创建归档表结构与来源表一致 CREATE TABLE dwd_order_archive LIKE dwd_order_partition; -- 将超过180天未更新的分区数据移入归档表 INSERT OVERWRITE TABLE dwd_order_archive PARTITION (dt) SELECT * FROM dwd_order_partition WHERE dt ${archive_date} AND dt NOT IN (SELECT DISTINCT dt FROM dwd_order_partition WHERE last_update_time ${archive_date}); -- 删除来源表对应的旧分区 ALTER TABLE dwd_order_partition DROP IF EXISTS PARTITION (dt ${archive_date});逻辑说明第一步用CREATE TABLE ... LIKE复用原表结构第二步把业务日期小于归档日期的分区插入归档表last_update_time是记录最后更新时间用于排除最近还有更新的数据第三步删除原表旧分区释放存储。这里要注意ALTER TABLE ... DROP会物理删除数据执行前一定要确认归档表中数据完整常见做法是先SELECT COUNT(*)对比两边数量再做删除。另外归档表同样要设置生命周期比如在对象存储上配置归档存储规则将90天前的.orc文件自动转为低频访问180天前的转为归档进一步降低成本。对于Hive表除了分区分层还可以考虑用SHOW TABLE EXTENDED查看空表的比例把连续半年无读写的表直接标记为冷表下电处理。冷热分层的收益在政务大数据场景尤其明显因为历史办件数据会无限累积但查询表基本都是近三个月的数据。4.4 非结构化数据治理从爬虫到知识库非结构化数据治理是数据治理流程里最容易忽略的一块但政务场景里大量存在——PDF文件、执法记录仪视频、爬虫抓取的网页、交互日志等。方案在数据源里明确包含“爬虫数据”和“日志数据”这些非结构化数据不能直接进数仓要先做解析和特征提取。常见流程是上传对象存储触发函数计算做OCR或语音识别把提取的文本写入结构化表再用NLP打标签最后接入知识库或者提供检索服务。每一步都要记录元数据包括文件来源、解析时间、识别率、敏感级别否则数据治理又会出现一个死角。实践中爬虫数据的治理要先做robots协议合规确认再设定采集频率和去重逻辑入库后要做数据质量检测比如时间字段异常、HTML残留等。日志数据则要重点做时间校准和字段映射因为不同系统的日志格式差距很大统一Stage表是省力的做法。5. 智慧城市案例的复现要点从领导驾驶舱到数据API方案最后用案例收尾这里我挑三个可复现的点。5.1 报表分析与领导驾驶舱的场景映射这部分本质是把指标字典里的指标映射到页面。注意“一网通办”和“一网协同”的指标来源不同前者来自政务服务办件库后者来自内部办公系统两个数据域需要先在OneData中做完统一用户ID匹配。做数据大屏前先列出所有卡片的数据口径表格和业务方逐项确认再进入开发。5.2 数据服务API的封装与调用OneService把指标和标签封装成API供业务系统调用。常见做法是用API网关暴露HTTP接口底层查ClickHouse或HBase。下面是一个查询办件指标的curl示例curl -X POST https://api.example.com/v1/metrics \ -H Content-Type: application/json \ -d {metric:done_cnt,dimensions:{dept:city_admin},start:2025-01-01,end:2025-01-31}参数说明metric对应指标字典里的IDdimensions是统计维度start/end是时间范围。返回的结果应包含数据值和血缘标识方便前端展示时溯源。API的鉴权可以用AppKey和签名网关层记录调用日志并设置每分钟限流值防止某个业务方的异常调用拖垮整个中台。5.3 算法类数据应用的迭代路径比如企业风险预警需要将治理后的数据组合成特征宽表用Spark训练模型再通过OneService发布。注意样本标签要由业务部门确认不能自己拍板。模型上线后要监控特征分布漂移当入口流量明显变化时回看数据血缘确认是不是上游口径变了。5.4 一条验证数据治理效果的链路最后分享一个我常用的验证技巧——挑一个跨部门指标比如“企业开办平均用时”从中台API取数再和两个局委办的原始报表手工对账。如果对不上用血缘图谱从指标倒查到底表看是口径不一致还是加工链路出问题。这个验证过程每季度做一次能逼着治理规则真正落地而不是停留在PPT上。本文还有配套的精品资源点击获取
返回列表