本文将介绍一些生成直接数据流的SQL元素,这些元素是生产数据流的主要原型。
示例语句:
SELECT a.empName "eName" FROM scott.emp a Where sal > 1000
目标列“eName”的数据来自scott.emp.empName列,所以我们有这样一个直接的数据流:
scott.emp.empName -> direct -> RS-1."eName"
选择列表生成的结果集RS-1是一个关系,包括列和行。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <dlineage> <table id="2" schema="scott" name="scott.emp" alias="a" type="table" coordinate="[2,6,0],[2,17,0]"> <column id="3" name="empName" coordinate="[1,8,0],[1,17,0]"/> </table> <resultset id="5" name="RS-1" type="select_list" coordinate="[1,8,0],[1,25,0]"> <column id="6" name=""eName"" coordinate="[1,8,0],[1,25,0]"/> </resultset> <relation id="1" type="fdd" effectType="select"> <target id="6" column=""eName"" parent_id="5" parent_name="RS-1" coordinate="[1,8,0],[1,25,0]"/> <source id="3" column="empName" parent_id="2" parent_name="scott.emp" coordinate="[1,8,0],[1,17,0]"/> </relation> </dlineage>
上述关系表示从id=3的源列到id=6的目标列的数据流.
数据流图示:
在数据流分析过程中,function起着关键作用,它接受列作为参数,并生成可能是标量值或集合值的结果。
select round(salary) as sal from scott.emp
在上述SQL中,从列salary到round函数生成一个直接数据流:
scott.emp.salary -> direct -> round(salary) -> direct -> sal
数据流图示:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <dlineage> <table id="2" schema="scott" name="scott.emp" type="table" coordinate="[1,34,0],[1,43,0]"> <column id="3" name="salary" coordinate="[1,14,0],[1,20,0]"/> </table> <resultset id="5" name="RS-1" type="select_list" coordinate="[1,8,0],[1,28,0]"> <column id="6" name="sal" coordinate="[1,8,0],[1,28,0]"/> </resultset> <resultset id="8" name="FUNCTION-1" type="function" coordinate="[1,8,0],[1,21,0]"> <column id="9" name="round" coordinate="[1,8,0],[1,13,0]"/> </resultset> <relation id="1" type="fdd" effectType="select"> <target id="6" column="sal" parent_id="5" parent_name="RS-1" coordinate="[1,8,0],[1,28,0]"/> <source id="9" column="round" parent_id="8" parent_name="FUNCTION-1" coordinate="[1,8,0],[1,13,0]"/> </relation> <relation id="2" type="fdd" effectType="function"> <target id="9" column="round" parent_id="8" parent_name="FUNCTION-1" coordinate="[1,8,0],[1,13,0]"/> <source id="3" column="salary" parent_id="2" parent_name="scott.emp" coordinate="[1,14,0],[1,20,0]"/> </relation> </dlineage>
数据流图示:
如果您关闭“show function”,设置“/if”选项,数据流结果如下:
马哈鱼数据血缘分析器: https://sqlflow.gudusoft.com
马哈鱼数据血缘分析器中文网站: https://www.sqlflow.cn