共计 1708 个字符,预计需要花费 5 分钟才能阅读完成。
更多技术交换、求职机会,欢送关注字节跳动数据平台微信公众号,回复【1】进入官网交换群
什么是数据品质
狭义上来说,数据品质的定义是数据满足一组固有个性(品质维度)要求的水平。业界通常有 6 个维度:
- 完整性:指数据的记录和信息是否残缺,是否存在缺失的状况。数据缺失次要包含记录的缺失和记录中某个字段信息的缺失,两者都会造成统计后果不精确,所以说完整性是数据品质最根底的保障。在做监控时,须要思考两个方面:数据条数是否少了;某些字段的取值是否缺失。完整性的监控,多呈现在日志级别的监控上,个别会在数据接入的时候来做数据完整性校验。
- 准确性:指数据中记录的信息和数据是否精确,是否存在异样或者谬误。个别准确性的监控多集中在对业务后果数据的监控,比方每日的沉闷、支出等数据是否失常。
- 一致性:指同一指标在不同中央的后果是否统一。数据不统一的状况,多呈现在数据系统达到肯定的复杂度后,同一指标会在多处进行计算,因为计算口径或者开发人员的不同,容易造成同一指标呈现不同的后果。
- 及时性:在确保数据的完整性、准确性和一致性后,接下来就要保障数据可能及时产出,这样能力体现数据的价值。及时性很容易了解,次要就是数据计算出来的速度是否够快,这点在数据品质监控中能够体现在监控后果数据是否在指定工夫点前计算实现。
- 规范性:指数据是否依照要求的规定进行存储,如邮箱校验、IP 地址校验、电话格局校验等,具备肯定的语义意义。
- 唯一性:指数据是否有反复,如字段的惟一值、字段的反复值等。咱们对数据品质有一些流程和标准,并针对上述一些维度开发了一套数据品质平台汇合在 Dataleap 中,次要关注数据品质及其生产链路。
上图展现了在数据开发的流程中,Dataleap 数据品质平台能够提供哪些性能:
- 数据探查:能够依据各种维度来查看数据明细和散布状况。
- 数据比照:开发同学可能常常会发现线上表和测试表不统一,所以咱们在工作上线的环节提供了数据比照的性能。
- 工作监控:监控线上数据,提供报警和熔断性能。
数据品质平台最有代表性的性能是:对数据开发平台产出的 Hive 表数据进行主键反复检测,如果存在反复则进行报警。数据品质监控最有用的场景是避免数据问题蔓延到上游。举个例子:数据工作产出一张 Hive 表,该表可能会同步一些信息到 Hive metastore(HMS)。HMS 的主从架构可能存在肯定的提早,假如 HMS 呈现问题,上游工作可能会读到脏数据,这时如果咱们应用数据品质监控,就能及时发现问题,阻止上游工作运行。
数据品质挑战
目前咱们的数据品质挑战有哪些?能够通过几个用户 case 理解一下。
User Story 1 某流量级产品商业化零碎,M 级日志条数 / 秒;心愿秒级监控日志提早、关键字段空值,T+1 检测日志稳定率。
User Story 2 某外部业务零碎,日志存储 ES;心愿每 5 分钟检测上一周期日志稳定状况。
User Story 3 某外部指标平台,业务数据由 Hive 定期同步到 ClickHouse;心愿每次同步工作后查看 Hive 与 ClickHouse 中的指标是否统一。
通过下面的介绍,大家应该也大抵分明了以后数据品质须要解决的问题。可能有些同学会说,数据品质平台我也做过,问题归总起来也不简单,总而言之就是对数据进行各种计算,比照计算来的阈值即可,个别间接依赖于 Spark 引擎或者 Hive 引擎计算即可。的确,其实这也是咱们 Dataleap 数据品质最开始的样子。那为什么会演变到目前这样,咱们面临了一些什么问题?
首先是场景需要非常复杂:
- 离线监控不再多说了,大家都相熟,次要是不同存储的数据品质监控,比方 Hive 或者 ClickHouse。
- 字节跳动外部的广告系统对时效性和准确性要求很高,用广告同学的话说,如果用微批零碎 10 min 才做一次检测,可能线上损失就上百万了甚至千万了。所以广告零碎同学对实时性要求绝对较高。
- 另外一个是简单拓扑状况下的流式提早监控。
- 最初是微批,指一段时间内的定时调度,有些 Kafka 导入 ES 的流式场景,须要每隔几分钟比照下前一周期。此外,字节跳动各种产品会产出海量的日志数据,咱们须要用无限的资源来满足大家对品质监控的需要。
面临这些挑战,咱们的解决方案是什么?请持续关注下篇文章。