数据工程
- 一套体系,利用软件工程方法来加速数据到价值过程,即数据的产生、存储、获取、转换、服务的规模化最佳实践
生命周期
- 产生:源系统生成和传输数据的过程。源系统可以是多种类型,如IoT设备、应用程序的消息队列或事务数据库。数据工程师使用来自这些源系统的数据,但通常不拥有或控制这些系统
- 存储:涉及选择适当的存储解决方案以确保数据的有效保存和使用
- 获取:源系统中收集和传输数据的过程
- 转换:将数据从其原始形式转化为适合分析、建模或其他用途的过程
- 服务:涉及将已获取、存储和转换的数据提供给用户以实现其价值。数据服务包括分析、机器学习和反向ETL等多种用途
数据梳理
数据分级分类在多业态、多链路的复杂业务环境中,对数据进行分级分类是关键。需要从组织架构、业务流程等方面对数据进行主题域分组和实体属性的确定。这不仅有助于理解业务和数据全景图,便于后续的数据处理和使用,还能帮助明确数据边界,从而优化业务流程和数据管理。根据安全性对数据进行分级分类,也有助于制定数据共享策略。
统一口径在完成数据的分级分类后,需要统一实体和指标的口径。实体的口径统一是为了确保同一实体在不同业务系统中的定义和边界一致,从而避免业务传递中的歧义。指标的口径统一在数据分析和挖掘时尤为重要,以确保各指标信息的定义在不同业务场景下保持一致,便于准确的数据使用和比较。
约定数据 Owner数据 Owner 的梳理是为了明确在业务流程中谁对数据的各个实体和属性负责,确保数据的版本和边界一致。数据 Owner 负责定义数据的业务含义、业务边界、数据标准和使用权限,通过映射管理关系形成企业的数据管理体系。明确数据 Owner 也有助于追踪数据的修改历史,确保数据在使用过程中保持一致性和可靠性。
基于以上三个目标,构建数据标准管理流程
数据架构
数据集成
数据处理
数据测试
- 单元测试为基础确保最小逻辑的准确
- 分层测试试确保单个模型的数据质量:基于数据复用的分层模型,在保证低层数据、逻辑正确的情况下,才能为更高层次的功能与数据质量提供保证
- 数据端到端测试确保交付需求的质量:从数据源到最终结果的验证过程,由于端到端链路长,计算成本高,一般只做 happy path 测试
- 安全与性能测试
数据安全
基础设施安全
- 数据传输:需要考虑接口是否鉴权、传输协议是否安全、传输管道是否加密等因素。
- 数据存储:需要考虑文件系统是否加密,备份与容灾机制是否健全,存储介质是否可访问等因素。
- 数据计算:需要考虑是否有身份认证,密钥信息是否有妥善保管机制,计算过程中是否出现明文密钥信息等。
- 管理平台:需要考虑操作系统是否及时安装补丁,配置管理是否安全,托管平台是够安全等等
数据使用安全
- 数据加密
- 数据隔离:企业数据平台往往会整合众多业务系统数据,给不同业务域的人员使用,数据隔离能够有效划分数据界限,理清数据管理权限,帮助更好的管理数据资产。
- 数据访问控制:在数据隔离的基础上,针对不同角色的操作用户,划分不同权限,保证对数据权限的严格控制,做到每种角色对所需数据权限最小化原则,并提供权限申请功能,将数据权限管理纳入到流程之中,充分做到数据请求合理合规。
- 数据溯源追踪:在海量数据汇聚在数据平台的背景下,能够对数据链路追踪与溯源,在发现数据安全问题的情况下能够有迹可循,快速确定影响范围并及时补救,防止危机扩大。
- 数据管理:海量数据必然会产生大量的元数据,有效的元数据管理能够保证数据安全的有序推进。
- 数据销毁:在某些特殊情况下,对于敏感信息、机密信息,需要提供有效的数据销毁机制,来保证机密信息不被窃取,如企业内监管要求对部分数据的生命周期有对应的时间要求等。
- 监控与审计:数据既然作为企业资产,那么所有数据的读取、操作都需要记录相关操作记录,既可以用来分析企业数据安全状况,有效发现程序后门,还能帮助分析性能,更重要的是,对于不合规或危险操作,能够及时预警,将数据安全问题做到早发现、早解决。
隐私信息保护
- 去标识化:数据去标识化是从数据中移除标识信息的过程。直接标识符是指能够直接定位数据主体的数据,包括姓名、住址、身份证号、电话号码等;准标识符不能直接定位数据主体,但可以通过组合识别出数据主体,比如邮编、公司、生日、性别等
能力复用
- 基础能力复用:对于数据工程开发过程中的最佳实践,可以将其沉淀为数据开发工具,例如数据运维、中间表生成、ETL 自动生成、监控告警等等
- 平台能力复用:数据工程落地的形式都会是各种企业内部数据平台,平台之间应能互相配合,提供一站式的数据开发
- 解决方案复用:对于新业务,如果已经构建了其所属共性业务的解决方案,则可以通过调整方案进行快速定制
数据运营
持续更新与迭代的数据资产数据资产在前期被定义出来之后,还需要通过后续的持续维护才能够确保数据资产的有效性,数据资产目录是数据资产盘点以及后续维护的一个载体
低成本与人工干预的数据运维
- 基础设施运维:包括对底层技术组件(如 CPU、内存、网络、消息队列、存储/计算引擎等)的管理,确保大规模集群的稳定运行、环境隔离、容灾备份、预警和审计。
- 调度运维:涉及 ETL 异常后的处理,要求日志分级分类、ETL 幂等性、预警时效性和异常处理流程闭环,以确保快速定位和解决问题,保证数据准确性。
- 数据运维:处理数据源头的异常或变更,以及临时数据需求。要求快速响应,确保数据 owner 明确,避免旧数据覆盖新数据的问题。
- 安全运维:涵盖基础设施和数据层面的安全监控和管理,包括代码安全扫描、密钥和机密信息处理、PII 数据脱敏和权限控制,及时处理安全告警。
- 其他运维:主要包括开发部署和上线阶段的运维工作,确保系统和应用程序的平稳运行。
衡量运维工作的角度:
- 可伸缩的数据服务:业务对于数据的使用也就是变化的,我们定义好的数据服务也是需要跟着变化的,这里就要看数据服务在被使用的频率来评估是否要对数据服务进行扩缩容;对数据服务使用的正常和异常进行监控
- 持续的数据价值探索
- 持续孵化承接数据价值的智能应用
数据工程成熟度
- 基础设施与工具:数据工程的基础设施的终极形态应该是云服务那样的一站式、一键式环境搭建工具,并能够提供完整的 DevOps 能力
- 流程与协作:用敏捷还是用瀑布,取决于团队
- 人员能力与成长
- 是加快信息流动性,减少信息孤岛
- 细化分工:注重能力培养