基于Hql的表级数据血缘

本文介绍了基于Hql的表级数据血缘,涉及预备知识、数据血缘的概念以及两种关键操作:Create Table As Select (CTAS)和Inserting data into Hive Tables from queries。通过分析Hive的AST抽象语法树,可以抽取源表和目标表的对应关系,实现血缘关系的确定。
摘要由CSDN通过智能技术生成
预备知识
  • 表级数据血缘:数据表的派生关系。
  • Hql: hive sql
  • 通过hive的hql parser在AST(抽象语法树)层级操作
  • 如果需要做字段血缘,在AST级别是可以完成的,不过需要熟悉大量的hql语法规则和其在ast中的实际表示。
  • 耳闻hive的ast并不好,也许是积重难返吧,新语法规则的引入必然要和旧的规则做妥协。可以换用spark sql的parser或者presto的parser。
参考
数据血缘
  • 分析过程:
    • 查看hql的官方文档,结合应用实例,分析确定存在血缘关系的hql有2种:
      • Create Table As Select (CTAS)
      • Inserting data into Hive Tables from queries
    • 了解基本的AST结构,分析上边2种hql的AST结构,从中抽取原表和目标表的对应关系。
  • hql获取:一种方式是通过hive hook的方式从hive server端获取。
  • 结论:搞清ast的结构,结果还是很清晰和简
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值