1、数据研发需要与业务部门充分衔接,比如在数据调研中要与业务研发同学进行线上数据&结构访谈 2、在数据开发中,与分析&业务同学共同确认标准口径 3、在数据研发完成后对数据使用方进行数据发布与培训 4、除了需求调研,其他部分都进行了线上化,包括数据的模型设计,早期会手写mapping文档,后期逐步把mapping文档进行了线上化 5、整体的数据模型设计通过模型设计工具完成,包括从概念模型、逻辑模型到物理模型的设计 6、模型设计完成后,可以一键生成数据知识文档
数据研发完成,还需要关注数据生命周期 数据量的飞速增长不仅仅需要占用大量存储,比如像自建机房,会涉及扩充机柜、机房,往往会面临一些瓶颈 另外一方面,大量的数据会降低数据的计算效率,所以从数据的生成开始,就需要考虑生命周期,并且结合数据的使用情况制定数据归档、数据销毁等管理策略 1、降存量 通过数据压缩技术、降副本等方式,以及在数据模型更合理的设计 将存量数据存储降低 2、控增量 根据数据重要性,可恢复性等考量角度,确认数据的保留周期 并根据周期自动归档或删除 3、摊成本 可以通过一些算法,比如数据调用分布、需求来源等 把成本分摊到相应业务部门 让相关业务部门关注到成本
数据安全
针对用户敏感信息,需要在接入时考虑如何加密 1、通过一个独立的物理集群对敏感数据进行隔离与强管控 2、将数据划分不同的安全或敏感等级(例如有些财务数据的非常敏感,需要谨慎对外开放) 根据不同的等级设定不同的访问审批机制 在数据归档、销毁也需要制定好配套的安全管理措施,避免安全风险
数据质量管理
数据质量管理3个角度:准确性、及时性、一致性 管理的环节:事前、事中、事后、以及事故管理 针对数据运维的告警发送 传统的方式:短信、邮件、电话 将运维告警以数据接口的方式与这些工具进行对接,将告警发送到企业内部的即时通讯工具
数据应用架构
- 数据仓库(或者数据湖)
负责原始数据的计算 主要将数据落地到HDFS
- 数据引擎层
数据加工完成之后,会将数据推送到不同的引擎中 这一层之前提到选择非常多,可以根据自己的场景选择一个混搭组合 可选择的有Presto,Kylin,Druid,Mysql
- 数据服务层
通过统一化的SQL调用服务 屏蔽底层不同的数据引擎 为上层统一查询提供标准接口
- 指标平台
指标平台是一个非常关键的产品 定位于衔接数据研发与数据应用 包括指标的标准定义、逻辑、计算方式、分类等各项内容 指标分类上分为标准指标(指标口径经过审核过)、以及非标准指标
- 多维查询
一个即席查询工具 查询的数据主要来源指标平台 可以选定不同的指标维度组合进行结果呈现 用户可以一次性查询得到结果 也可以将查询结果配置成可视化的报表进行固化
- 中间是统一元数据管理
对整个架构中可以对外提供服务的元数据进行统一管理 (包括数仓的元数据、查询引擎的元数据、指标元数据等) 以及监控这些元数据的调用情况
- 最右侧是权限管理
权限管理关乎到数据安全 在设计上需要考虑周全,比如针对表级、指标级、维度级别都可以进行控制 同时产品层面也需要灵活配置权限审批级别与人员
- 面向用户使用层面
开放的是多维查询&可视化 用户通过多维去查询各类指标&维度数据 得到数据结果列表 再选择可视化配置面板,完成各类图表、表格的自主配置 并发布到个人看板或者业务大盘目录里 也可以将配置的数据看板进行灵活组合,定制成一个小型的数据产品