血缘管理页面用于展示表和作业的血缘关系。用户可以通过选择已注册数据源下的指定表,来查看所选表的血缘关系。通过选择特定作业,可以查看所选作业的血缘关系,以及手动添加血缘。
进入血缘页面的步骤如下:
在顶部导航栏中选择[数据运营平台],进入数据运营平台页面。
单击左侧导航树中的[资产中心]菜单项,进入资产中心。资产中心缺省展示总览页面。
单击左侧二级导航树中的[血缘管理]菜单项,进入血缘管理页面。
查看血缘关系的步骤如下:
在血缘管理页面上方的搜索区域中,选择特定的表或作业。
搜索类型:在下拉框中选择待查看血缘关系的对象类型,包括“表”和“作业”。当选择“表”时,后方的参数为“表名”。当选择“作业”时,后方的参数为“作业名”。
表名:在下拉框中选择数据源,并选择要查看的表。
作业名:在下拉框中选择作业类型,并选择要查看的作业。有四种作业类型可选择,分别是:DI作业、实时作业、离线作业、管道作业。
在展示区域的右上角,提供了刷新、展开节点和收起节点操作图标。
在血缘管理的展示区域中,点击表节点或其下的字段节点,可以查看表节点或字段节点的详细信息。
表节点信息
对于查询出的血缘关系图,点击某个表节点,页面右侧会弹出节点信息栏,展示该表的节点信息和所属作业的信息。
节点信息包括:名称、节点类型、库名/模式名和数据源。
所属作业的信息包括:ID、类型、作业名和描述。如果当前表属于多个作业,则会有多个所属作业信息。
字段节点信息
在血缘管理的展示区域中,当表已展开时,点击表下的字段,页面右侧会弹出节点信息栏,展示字段的节点信息。字段的节点信息包括:名称、节点类型、字段类型和字段类别。
对于不同类型的作业,血缘管理支持的SQL解析能力不同。
如果DI作业包含表抽取组件,那么可以解析的SQL如下:
query: SELECT { * | projectItem [, projectItem ]* } FROM tableExpression [ WHERE booleanExpression ] [ GROUP BY { groupItem [, groupItem ]* } ] [ HAVING booleanExpression ] [ ORDER BY orderItem [, orderItem ]* ] [ LIMIT count ]
tableExpression: tableExpression [, tableExpression]* | '(' query ')' | tableName | tableExpression JOIN tableExpression [ON booleanExpression] |
参数说明见下表。
表-1 DI作业SQL语句参数说明
参数 |
说明 |
projectItem |
列名。 |
tableName |
表名。 |
booleanExpression |
条件表达式,例如a>1,b = 'c'等。 |
orderItem |
列名。 |
groupItem |
列名。 |
count |
查询的数量上限。 |
SQL语句示例如下:
select * from table1 where id = 1; select id, name from table1 where id = 1 and name = '小明'; select a.id, b.name from "pg". "table1" as a join "default". "table2" as b on a.id = b.id; |
如果实时计算作业使用了join、windowjoin、cep、split数据处理组件,则无法查看该实时计算作业的血缘关系。 如果实时计算作业中的数据源表节点开启了时间属性,并且时间属性字段在随后的数据处理流程中参与了运算,则无法查看该实时计算作业的血缘关系。 |
对于实时作业,可以解析的SQL如下:
query: SELECT { * | projectItem [, projectItem ]* } FROM tableExpression [ WHERE booleanExpression ] [ GROUP BY { groupItem [, groupItem ]* } ] [ HAVING booleanExpression ] [ ORDER BY orderItem [, orderItem ]* ] [ LIMIT count ]
tableExpression: tableExpression [, tableExpression]* | ‘(’ query ‘)’ | tableName | tableExpression [ ( LEFT | RIGHT | FULL ) [ OUTER ] ] JOIN tableExpression [ON booleanExpression] | tableExpression CROSS JOIN tableExpression |
参数说明见下表。
表-2 实时作业SQL语句参数说明
参数 |
说明 |
projectItem |
列名。 |
tableName |
表名。 |
booleanExpression |
条件表达式,例如a>1,b = 'c'等。 |
orderItem |
列名。 |
groupItem |
列名。 |
count |
查询的数量上限。 |
SQL语句示例如下:
select * from table1 where id = 1 order by name limit 10; select id from table1 group by id having id >1; select id, addr from table1 join table2 on id = sid where id > 1 select id, name from (select * from table1); |
对于离线作业,可以解析的SQL如下:
createTable: CREATE TABLE [ IF NOT EXISTS ] tableName [ '(' colName [,colName]* ')' ] AS query [[UNION [ALL | DISTINCT]] query]* INSERT INTO tableName [ '(' colName [, colName]* ')' ] query
query: SELECT { * | projectItem [, projectItem ]* } FROM tableExpression [ WHERE booleanExpression ] [ GROUP BY { groupItem [, groupItem ]* } ] [ HAVING booleanExpression ] [ ORDER BY orderItem [, orderItem ]* ] [ LIMIT count ]
tableExpression: tableExpression [,tableExpression]* | '(' query ')' | tableName | tableExpression [ ( LEFT | RIGHT | FULL ) [ OUTER ] ] JOIN tableExpression [ON booleanExpression] | tableExpression CROSS JOIN tableExpression |
参数说明见下表。
表-3 离线作业SQL语句参数说明
参数 |
说明 |
tableName |
表名。 |
colName |
列名。 |
projectItem |
列名。 |
booleanExpression |
条件表达式,例如a>1,b = 'c'等。 |
orderItem |
列名。 |
groupItem |
列名。 |
count |
查询的数量上限。 |
SQL语句示例如下:
create table if not exists 'deafult'.'table2' as select * from 'deafult'.'table1'; create table if not exists 'deafult'.'table3' as select id, addr from 'deafult'.'table1' join 'deafult'.'table2' on id = sid; create table if not exists 'deafult'.'table3' select * from 'deafult'.'table1' union select * from 'deafult'.'table2'; insert into 'deafult'.'table2' select * from 'deafult'.'table1'; insert into table3 select * from table1 join table2 on id = sid; |