本工具专为解析SQL及其变体(如Hive SQL)设计,旨在自动识别和展示复杂的依赖关系网络,优化数据库管理和查询性能。
测试用例如下:
设置元数据服务:
```java
Delegate.getDelegate().setMetaColumnService(new IMetaColumnService() {
@Override
public List queryMetaColumn(String dbName, String tableName) {
return Collections.emptyList();
}
@Override
public boolean clearMetaColumnCache() {
return true;
}
});
```
设置通知服务:
```java
Delegate.getDelegate().setNoticeService(s->{});
```
具有子查询的SQL语句:
```sql
String hql = select id, name from (select id from table_1 where id={p0}) t1 inner join (select name --this is namen from table_2) t2;
```
获取id字段的血缘信息:
```java
LineageNode idNode = Delegate.getDelegate().getLineage(hql, id);
```
获取name字段的血缘信息:
```java
LineageNode nameNode = Delegate.getDelegate().getLineage(hql, name);
```
打印血缘关系:
```java
Utils.printLineage(idNode,nameNode);
```