DataBus项目学习总结

1、删除一张hive表的过程

(1)从数据库中将这张hive表删除。

(2)将hive表所拥有的列从hive_columns中删除。

(3)将hive表从hive_table中删除。

(4)判断元数据表是否对应着hive表

          I:不对应:表示该元数据表不存在任务。更新t_tables中该元数据表的hive_state字段和task_state字段,使其的值代表已经没有任务。

          II:对应:判断元数据所有hive表的task_state字段,若有一个hive表的task_state字段为2,即一个hive表有任务,则表示该元数据表存在任务;否则表示该元素据表不存在任务。仍然更新t_tables中该元数据表的hive_state字段和task_state字段。

(5)将任务从线程池中移除。

(6)从task_plan表中移除该hive表对应的所有任务。

 

2、问题

(1)父任务id(ftask_id)是什么?

当任务是库级的,才存在父任务id,父任务是虚的。例如一个库中有10张表,每张表上的任务是一个子任务,它们的父任务id是相同的。任务的默认ftask_id是-1,表示没有父任务。

(2)元数据表和hive表是1对多的关系,只要有一张hive表的task_state为2,就可以认为该元数据表是有任务的。

 

 

 

 

 

 

 

你可能感兴趣的:(DataBus项目)