java获取hive元数据信息_Hive SQL 元数据血缘管理

模板概述

基于 Antlr4 编译 hive 相关 xxx.g 文件生成对应的模板,如 hive 源码中:

f4bb42996cdb

image.png

编译完成生成对应 *.java 文件,Antlr4 详见:Antlr4

解析流程

Parser

f4bb42996cdb

image.png

重点:获取SELECT操作中的表和列的相关操作。其他操作这判断到字段级别。

实现思路:对AST深度优先遍历,遇到操作的token则判断当前的操作,遇到子句则压栈当前处理,处理子句。子句处理完,栈弹出。

处理字句的过程中,遇到子查询就保存当前子查询的信息,判断与其父查询的关系,最终形成树形结构;

遇到字段或者条件处理则记录当前的字段和条件信息、组成Block,嵌套调用。

TableBlood

重点:TableBlood 主要包含 HiveTableNode 与 HiveTableEdge

获取节点信息:

f4bb42996cdb

Node

获取边缘信息:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值