每日一博 | Spark SQL 字段血缘在 vivo 互联网的实践
作者:vivo互联网服务器团队-Hao Guangshi 一、背景 字段血缘是在表处理的过程中将字段的处理过程保留下来。为什么会需要字段血缘呢? 有了字段间的血缘关系,便可以知道数据的来源去处,以及字段之间的转换关系,这样对数据的质量,治理有很大的帮助。 Spark SQL 相对于 Hive 来说通常情况下效率会比较高,对于运行时间、资源的使用上面等都会有较大的收益。 平台计划将 Hive 任务迁移到 Spark SQL 上,同时也需要实现字段血缘的功能。 二、前期调研 开发前我们做了很多相关调研,从中得知 Spark 是支持扩展的:允许用户对 Spark SQL 的 SQL 解析、逻辑计划的分析和检查、逻辑计划的优化、物理计划的形成等进行扩展。 该方案可行,且对 Spark 的源码没有改动,代价也比较小,确定使用该方案。 三、Spark SQL 扩展 3.1 Spark 可扩展的内容 SparkSessionExtensions 是比较重要的一个类,其中定义了注入规则的方法,现在支持以下内容: 【Analyzer Rules】逻辑计划分析规则 【Check Analysis Rule...

