1.4. REDLIN - Exploring Lineage Graphs

In all examples a view TEST_S.TEST_V is releated to a given sql. The lineage is given as diagram and as csv.

1.4.1. Simple SQL

1select a,a as b, a as "b", a as c, a as d, a as e, a as f, a as g
2from test_s.test_t
3where b=10
4group by b
5order by b

1.4.1.1. Diagram

           graph LR
      TEST_T.A --> TEST_V.A["TEST_V.A<br> <i><small>TEST_T.A AS A</small></i>"]
      TEST_T.A --> TEST_V.C["TEST_V.C<br> <i><small>TEST_T.A AS C</small></i>"]
      TEST_T.A --> TEST_V.D["TEST_V.D<br> <i><small>TEST_T.A AS D</small></i>"]
      TEST_T.A --> TEST_V.E["TEST_V.E<br> <i><small>TEST_T.A AS E</small></i>"]
      TEST_T.A --> TEST_V.F["TEST_V.F<br> <i><small>TEST_T.A AS F</small></i>"]
      TEST_T.A --> TEST_V.G["TEST_V.G<br> <i><small>TEST_T.A AS G</small></i>"]
      TEST_T.A --> TEST_V.b["TEST_V.b<br> <i><small>TEST_T.A AS b</small></i>"]

    

1.4.1.2. Table

TABLE

NAME

REFERENCED_TABLE

REFERENCED_NAME

EXPRESSION

SCHEMA

REFERENCED_SCHEMA

REFERENCED_ITEM_ID

REFERENCED_INSTANCE

REFERENCED_SYSTEM_NAME

REFERENCED_COLUMN_DATATYPE

REFERENCED_OBJECT_TYPE

VERSION_ID

ITEM_ID

EXPRESSION_ID

INSTANCE

SYSTEM_NAME

COLUMN_DATATYPE

OBJECT_TYPE

TEST_V

A

TEST_T

A

TEST_T.A AS A

TEST_S

TEST_S

1e2d9a2ab50f614669a0970ae4eafa1d

test

test

VARCHAR(10)

TABLE

2026-06-30

13ec829ae54fba0abef07a01f1c63054

20a9976e546e97d5567b729d757c5fb8

test

test

VARCHAR(10)

VIEW

TEST_V

C

TEST_T

A

TEST_T.A AS C

TEST_S

TEST_S

1e2d9a2ab50f614669a0970ae4eafa1d

test

test

VARCHAR(10)

TABLE

2026-06-30

d2361f1201028d81fd4cd0e52f1a0707

f1dedafe724ca0b1af3c0de0cac9332a

test

test

DECIMAL(2,0)

VIEW

TEST_V

D

TEST_T

A

TEST_T.A AS D

TEST_S

TEST_S

1e2d9a2ab50f614669a0970ae4eafa1d

test

test

VARCHAR(10)

TABLE

2026-06-30

008c32f57c4ebd8b58ac08bdc72aa64b

65ce126b70c1205d8ffb573975a5316b

test

test

DECIMAL(2,0)

VIEW

TEST_V

E

TEST_T

A

TEST_T.A AS E

TEST_S

TEST_S

1e2d9a2ab50f614669a0970ae4eafa1d

test

test

VARCHAR(10)

TABLE

2026-06-30

c11bf10cd272b845f506ff898a0f4a28

535ae1b55b1af28b7632b408acc20c20

test

test

DATE

VIEW

TEST_V

F

TEST_T

A

TEST_T.A AS F

TEST_S

TEST_S

1e2d9a2ab50f614669a0970ae4eafa1d

test

test

VARCHAR(10)

TABLE

2026-06-30

4decc2ba35f6c74cedd22c9e90091c89

ce73922b146af340994f2206b27b01e8

test

test

DATE

VIEW

TEST_V

G

TEST_T

A

TEST_T.A AS G

TEST_S

TEST_S

1e2d9a2ab50f614669a0970ae4eafa1d

test

test

VARCHAR(10)

TABLE

2026-06-30

763b3871b6b5d7fa5b91748aa719d946

c88ce7772672deecea8ec2ac6630a146

test

test

DATE

VIEW

TEST_V

b

TEST_T

A

TEST_T.A AS “b”

TEST_S

TEST_S

1e2d9a2ab50f614669a0970ae4eafa1d

test

test

VARCHAR(10)

TABLE

2026-06-30

5e70bf215d57a883e3ef2eb53f4a9122

2136e31f00e42149333a9e666980dab5

test

test

VARCHAR(10)

VIEW

1.4.1.3. Explanations/Remarks

For each column in the view test_s.test.v a row was generated pointing to test_s.test_t.a.

Lower case column name was propagated correctly.

Columns from where, group by or order by are not part of the lineage.

1.4.2. Analytic Functions

1select  max(a) over(partition by b order by c) as a,
2      b as "b",a as c,a as d,a as e,b as f,b as g
3from test_t

1.4.2.1. Diagram

           graph LR
      TEST_T.A --> TEST_V.A["TEST_V.A<br> <i><small>MAX(TEST_T.A) OVER (PARTITION BY TEST_T.B ORDER BY C NULLS LAST) AS A</small></i>"]
      TEST_T.B --> TEST_V.A["TEST_V.A<br> <i><small>MAX(TEST_T.A) OVER (PARTITION BY TEST_T.B ORDER BY C NULLS LAST) AS A</small></i>"]
      TEST_V.C --> TEST_V.A["TEST_V.A<br> <i><small>MAX(TEST_T.A) OVER (PARTITION BY TEST_T.B ORDER BY C NULLS LAST) AS A</small></i>"]
      TEST_T.A --> TEST_V.C["TEST_V.C<br> <i><small>TEST_T.A AS C</small></i>"]
      TEST_T.A --> TEST_V.D["TEST_V.D<br> <i><small>TEST_T.A AS D</small></i>"]
      TEST_T.A --> TEST_V.E["TEST_V.E<br> <i><small>TEST_T.A AS E</small></i>"]
      TEST_T.B --> TEST_V.F["TEST_V.F<br> <i><small>TEST_T.B AS F</small></i>"]
      TEST_T.B --> TEST_V.G["TEST_V.G<br> <i><small>TEST_T.B AS G</small></i>"]
      TEST_T.B --> TEST_V.b["TEST_V.b<br> <i><small>TEST_T.B AS b</small></i>"]

    

1.4.2.2. Table

TABLE

NAME

REFERENCED_TABLE

REFERENCED_NAME

EXPRESSION

TABLE

NAME

REFERENCED_TABLE

REFERENCED_NAME

EXPRESSION

TEST_V

A

TEST_T

A

MAX(TEST_T.A) OVER (PARTITION BY TEST_T.B ORDER BY C NULLS LAST) AS A

TEST_V

A

TEST_T

B

MAX(TEST_T.A) OVER (PARTITION BY TEST_T.B ORDER BY C NULLS LAST) AS A

TEST_V

A

TEST_V

C

MAX(TEST_T.A) OVER (PARTITION BY TEST_T.B ORDER BY C NULLS LAST) AS A

TEST_V

C

TEST_T

A

TEST_T.A AS C

TEST_V

D

TEST_T

A

TEST_T.A AS D

TEST_V

E

TEST_T

A

TEST_T.A AS E

TEST_V

F

TEST_T

B

TEST_T.B AS F

TEST_V

G

TEST_T

B

TEST_T.B AS G

TEST_V

b

TEST_T

B

TEST_T.B AS “b”

1.4.2.3. Explanations/Remarks

TEST_V.A depends on A,B,C