血缘管理

血缘管理页面用于展示表和作业的血缘关系。用户可以通过选择已注册数据源下的指定表,来查看所选表的血缘关系。通过选择特定作业,可以查看所选作业的血缘关系,以及手动添加血缘。

进入血缘页面的步骤如下:

  1. 在顶部导航栏中选择[数据运营平台],进入数据运营平台页面。

  1. 单击左侧导航树中的[资产中心]菜单项,进入资产中心。资产中心缺省展示总览页面。

  1. 单击左侧二级导航树中的[血缘管理]菜单项,进入血缘管理页面。

查看血缘关系

查看血缘关系的步骤如下:

  1. 在血缘管理页面上方的搜索区域中,选择特定的表或作业。

搜索类型:在下拉框中选择待查看血缘关系的对象类型,包括“表”和“作业”。当选择“表”时,后方的参数为“表名”。当选择“作业”时,后方的参数为“作业名”。

表名:在下拉框中选择数据源,并选择要查看的表。

作业名:在下拉框中选择作业类型,并选择要查看的作业。有四种作业类型可选择,分别是:DI作业、实时作业、离线作业、管道作业。

  1. 点击后方的图标,下方展示区域中会展示出指定表或作业的血缘关系。

  1. 在展示区域的右上角,提供了刷新、展开节点和收起节点操作图标。

数据信息

在血缘管理的展示区域中,点击表节点或其下的字段节点,可以查看表节点或字段节点的详细信息。

对于查询出的血缘关系图,点击某个表节点,页面右侧会弹出节点信息栏,展示该表的节点信息和所属作业的信息。

在血缘管理的展示区域中,当表已展开时,点击表下的字段,页面右侧会弹出节点信息栏,展示字段的节点信息。字段的节点信息包括:名称、节点类型、字段类型和字段类别。

血缘管理支持的SQL解析能力

对于不同类型的作业,血缘管理支持的SQL解析能力不同。

DI作业的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>1b = '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;

 

实时作业的SQL解析能力

如果实时计算作业使用了joinwindowjoincepsplit数据处理组件,则无法查看该实时计算作业的血缘关系。

如果实时计算作业中的数据源表节点开启了时间属性,并且时间属性字段在随后的数据处理流程中参与了运算,则无法查看该实时计算作业的血缘关系。

 

对于实时作业,可以解析的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>1b = '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解析能力

对于离线作业,可以解析的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>1b = '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;