一、数据质量
完整性:指数据的记录和信息是否完整,是否存在缺失的情况。主要包括记录的缺失和字段的缺失。
准确性:指数据中信息、数据是否准确,是否存在异常或错误的信息。
一致性:数据的一致性。
及时性:数据及时呈现、产出。数据具有时效性。
结合项目,建议在数据的加工处理过程中,增加脏数据处理的步骤,这里需要依赖于业务数据的熟悉,
预知哪部分数据容易出问题。
质量管控方式:
1.上游数据机构、规则逻辑发生变化,要及时通知下游
2.数据生成加工各环节卡点校验,包括SQL扫描工具、代码测试、代码人工审核、生产数据试运行
3.数据风险监控:
数据源头校验:业务系统数据存表后,复制到备库中进行校验,不符合时通知相关人员。
离线数据校验:离线开发人员配置校验规则,可放在离线系统的起点监控。
及时性校验:ETL监控机制,生成数据超时则报警。
4.数据质量衡量
数据质量报警率
数据质量事件跟踪机制(故障定义、故障等级、故障处理、故障Review)
二、离线数据开发、
阿里数据研发岗位的工作大致可以概括为:了解需求->模型设计->ETL开发->测试->发布上线->日常运维->任务下线。与
传统的数据仓库开发( ETL )相比,阿里数据研发有如下几个特点:
业务变更频繁:业务发展非常快 ,业务需求多且变更频繁。
需要快速交付:业务驱动 ,需要快速给出结果。
频繁发布上线:迭代周期以天为单位,每天需要发布数次。
运维任务多:在集团公共层平均每个开发人员负责500多个任务。
系统环境复杂:阿里平台系统多为自研,且为了保证业务的发展,平台系统的迭代速度较快,平台的稳定性压力较大。
通过统一的计算平台(MaxCompute)、统一的开发平台(D2等相关平台和工具)、统一的数据模型规范和统一的数据研发规范,
可以在一定程度上解决数据研发的痛点
MaxCompute:支持SQL、MapReduce、Spark、Graph(面向迭代的图计算处理框架)、Shell、Java等。
SQLSCAN:校验代码规范类规则(表名、注释)
代码质量类规则(分母为零、NULL值、插入字段顺序)
代码性能类规则(分区裁剪失效、扫描大表提醒、重复计算检测)
三、实时数据开发
数据时效性一般分为三种(离线、准实时、实时)
离线:延迟时间粒度为天
准实时:延迟粒度为小时
实时:延迟时间粒度为秒
实时数据需要在流式处理系统中完成,流式数据处理技术是指业务系统每产生一条数,就立刻被采集并实时
发送到流式任务中进行处理,不需要定时调度任务来处理数据。
流式数据处理特征:
时效性高
常驻任务(一旦启动后一直运行,直到人为地终止)
性能要求高(若处理吞吐量跟不上采集吞吐量,则失去了实时特性)
应用局限性(计算成本大、业务逻辑复杂场景支持不足)
StreamCompute:阿里自研,其提供的SQL语义的流式数据分析能力(StreamSQL),让流数据分析门槛不再存在.
数据采集->数据处理->数据存储->数据服务
四、元数据
元数据是关于数据的数据,记录了数据从产生到消费的全过程。主要记录数据仓库的模型定义、各层级间
的映射关系、监控数据仓库的数据状态及ETL的任务运行状态。
1.技术元数据:
存储元数据,例如:表、分区信息、文件大小、列名、字段类型
计算元数据:作业运行信息、作业实例名称、输入输出、SQL、运行参数
开发平台数据同步、计算任务、任务调度等信息。如输入输出字段、任务依赖关系、运行类型
数据质量和运维相关元数据,如任务监控,运维报警,数据质量。
2.业务元数据:
Onedata元数据:维度及属性、业务过程、指标等
数据应用元数据,如数据报表、数据产品等配置和运行元数据。