栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

hive LineageState 分析

hive LineageState 分析

Task 类有变量 queryState。queryState 包含变量 lineageState。LineageState 用于为任务执行回调中用到的血缘信息。
为了掌握 LineageState,需要先掌握以下的几个类。

TableAliasInfo

TableAliasInfo 是 LineageInfo 的静态内部类。有两个变量,alias 是表的别名,table 是表对象。

public static class TableAliasInfo implements Serializable {

    String alias;
    private Table table;
  }
baseColumnInfo

baseColumnInfo 是 LineageInfo 的静态内部类。有两个变量,tabAlias 是表的别名对象,column 是列对象。

public static class baseColumnInfo implements Serializable {

    private TableAliasInfo tabAlias;
    private FieldSchema column;
  }
DataContainer 数据容器

表或者分区数据容器。因为查询的结果输出可能到一个表中,也有可能是表的一个分区。DataContainer 类可以包括这两种类型。

  public static class DataContainer implements Serializable {
  
   // 表的信息,如果数据容器是表
    private final Table tab;

   // 分区信息,如果数据容器是分区
    private final Partition part;
 }
DependencyType

DependencyType 是 LineageInfo 的静态内部枚举类。
有 3 个成员:

SIMPLE - 简单依赖:代表此列是其他表的列字段,没有经过任何转换。如 T2.c1 = T1.c1.expression - 表达式依赖:代表此列是从 UDF, UDAF, UDTF 或者集合操作(如 union 两个集合列)的结果。如 T2.c1 = T1.c1 + T3.c1.script - 脚本依赖:代表此列是用户脚本的输出结果。用户的脚本通过 TRANSFORM, MAP 或 REDUCE 语法或者从 PTF 执行链的结果。(PTF – PartitionedTableFunction:表分区函数)

 public static enum DependencyType {
 
    SIMPLE, expression, script
  }
DependencyKey

DependencyKey 表示一个字段。DependencyKey 用于索引映射 protected Map index;

public static class DependencyKey implements Serializable {

    // key 的数据容器
    private final DataContainer dc;

    // key 的字段信息。
    private final FieldSchema fld;
}
Dependency
// 用于跟踪 base column 的依赖信息
  public static class Dependency implements Serializable {

    private DependencyType type;

    
    private String expr;

    
    private Set baseCols;
}
Predicate

Predicate 是 LineageInfo 的静态内部类。

  public static class Predicate implements Serializable {

    
    private String expr;

    
    private Set baseCols = new linkedHashSet();
}
LineageInfo
public class LineageInfo implements Serializable {
   
  protected Map index;
}
LineageState
public class LineageState implements Serializable {

  
  private final Map dirToFop;

  
  private Index index;

  
  private final LineageInfo linfo;

  
  public LineageState() {
    dirToFop = new HashMap<>();
    linfo = new LineageInfo();
    index = new Index();
  }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/730538.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号