hive表级血源解析

hive血源

通过查看代码 发现 hive 自带了 一个表级血源解析工具类

1
org.apache.hadoop.hive.ql.tools.LineageInfo

我们可以这样使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public static void main(String[] args) throws IOException, ParseException,  
SemanticException {
String query = "INSERT OVERWRITE TABLE TABL_A SELECT * FROM TABLE_B";
LineageInfo lep = new LineageInfo();
lep.getLineageInfo(query);
for (String tab : lep.getInputTableList()) {
System.out.println("InputTable=" + tab);
}
for (String tab : lep.getOutputTableList()) {
System.out.println("OutputTable=" + tab);
}
}


这样 就可以根据 hive sql 获取 表级血源

使用时 需要引入依赖

1
2
3
4
5
<dependency>  
<groupId>org.apache.hive</groupId>
<artifactId>hive-exec</artifactId>
<version>2.1.1</version>
</dependency>


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!