{"id":1974,"date":"2022-05-21T09:35:52","date_gmt":"2022-05-21T14:35:52","guid":{"rendered":"https:\/\/www.dpriver.com\/blog\/?p=1974"},"modified":"2022-05-21T09:37:53","modified_gmt":"2022-05-21T14:37:53","slug":"introduction-to-gudu-sqlflow-indirect-data-flow-pseudo-columns","status":"publish","type":"post","link":"https:\/\/www.dpriver.com\/blog\/2022\/05\/introduction-to-gudu-sqlflow-indirect-data-flow-pseudo-columns\/","title":{"rendered":"Introduction to Gudu SQLFlow Indirect Data Flow and Pseudo Columns"},"content":{"rendered":"<h2><a href=\"https:\/\/www.gudusoft.com\/\">Gudu SQLFlow<\/a> Indirect Data Flow &amp; Pseudo Columns\u00a0Introduction<\/h2>\n<p>This article describes some of the SQL elements that generate indirect data flow. Indirect data flow is typically generated by columns used in where clauses, group by clauses, aggregate functions, etc.<\/p>\n<p><span class=\"Y2IQFc\" lang=\"en\">To create indirect data flow between columns, we introduce a pseudocolumn: RelationRows.\u00a0<\/span><\/p>\n<p><span class=\"Y2IQFc\" lang=\"en\">RelationRows is a pseudocolumn of the relation, used to represent the number of rows in the relation. As the name suggests, RelationRows are not true columns in a relation (table\/result set etc).\u00a0<\/span><\/p>\n<p><span class=\"Y2IQFc\" lang=\"en\">Typically, it is used to represent the flow of data between columns and relationships.\u00a0The RelationRows pseudo-column can be used in both source and target relationships.\u00a0<\/span><\/p>\n<h3>1. RelationsRows in the target relationship<\/h3>\n<p>Take the following SQL as an example:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-1982 aligncenter\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/1-3.png\" alt=\"1\" width=\"746\" height=\"67\" srcset=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/1-3.png 746w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/1-3-300x27.png 300w\" sizes=\"(max-width: 746px) 100vw, 746px\" \/><\/p>\n<p>The total number of rows in the select list is affected by the value of the sal column in the where clause. Therefore, the indirect data flow is created like this:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-1984 aligncenter\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/2-1.png\" alt=\"2\" width=\"735\" height=\"60\" srcset=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/2-1.png 735w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/2-1-300x24.png 300w\" sizes=\"(max-width: 735px) 100vw, 735px\" \/><\/p>\n<p>Data flow diagram:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-1986 aligncenter\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/01-1.png\" alt=\"01-1\" width=\"396\" height=\"77\" srcset=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/01-1.png 396w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/01-1-300x58.png 300w\" sizes=\"(max-width: 396px) 100vw, 396px\" \/><\/p>\n<h3>2. RelationsRows in the source relation<\/h3>\n<p>Here is another example SQL:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-1989 aligncenter\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/3-1.png\" alt=\"3\" width=\"755\" height=\"73\" srcset=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/3-1.png 755w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/3-1-300x29.png 300w\" sizes=\"(max-width: 755px) 100vw, 755px\" \/><\/p>\n<p>The value of the count() function and sum(sal) function is affected by the number of rows in the scott.emp source table.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-1991 aligncenter\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/4-1.png\" alt=\"4\" width=\"730\" height=\"105\" srcset=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/4-1.png 730w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/4-1-300x43.png 300w\" sizes=\"(max-width: 730px) 100vw, 730px\" \/><\/p>\n<p>Data flow diagram:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-1994 aligncenter\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/02-1-1.png\" alt=\"02-1\" width=\"630\" height=\"139\" srcset=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/02-1-1.png 630w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/02-1-1-300x66.png 300w\" sizes=\"(max-width: 630px) 100vw, 630px\" \/><\/p>\n<h3>3. RelationshipsRows in table-level data flow relationships<\/h3>\n<p><span class=\"Y2IQFc\" lang=\"en\">RelationRows are also used to represent table-level data flows.\u00a0<\/span><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-1997 aligncenter\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/5-1.png\" alt=\"5\" width=\"732\" height=\"64\" srcset=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/5-1.png 732w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/5-1-300x26.png 300w\" sizes=\"(max-width: 732px) 100vw, 732px\" \/><\/p>\n<p>Table-level data flow is not built on the table, but on the pseudo column RelationRows, like this: t2.RelationRows -&gt; direct -&gt; t3.RelationRows<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-2000 aligncenter\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/03-1-1.png\" alt=\"03-1\" width=\"390\" height=\"58\" srcset=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/03-1-1.png 390w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/03-1-1-300x45.png 300w\" sizes=\"(max-width: 390px) 100vw, 390px\" \/><\/p>\n<p>There are two reasons to use the RelationRows pseudo-column to build a table-to-table data flow:<\/p>\n<ol>\n<li>This pseudo-column used to represent the table-to-column data flow will later be used to generate the table-to-table data flow if the user needs a table-level provenance model.<\/li>\n<li>If other columns from the same table are used in a column-to-column data flow that is itself in a table-to-table data flow, then this pseudo-column will enable a single table to contain both column-to-column data flow and table-to-table data flow.<\/li>\n<\/ol>\n<p>Take this SQL as an example:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-2002 aligncenter\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/6-1.png\" alt=\"6\" width=\"728\" height=\"101\" srcset=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/6-1.png 728w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/6-1-300x42.png 300w\" sizes=\"(max-width: 728px) 100vw, 728px\" \/><\/p>\n<p>The first create view statement will generate a column-level data flow between table t2 and view v1:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-2003 aligncenter\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/7.png\" alt=\"7\" width=\"731\" height=\"69\" srcset=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/7.png 731w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/7-300x28.png 300w\" sizes=\"(max-width: 731px) 100vw, 731px\" \/><\/p>\n<p>And the second alter table statement will generate table-level data flow between tables t2 and t3.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-2004 aligncenter\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/8.png\" alt=\"8\" width=\"728\" height=\"70\" srcset=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/8.png 728w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/8-300x29.png 300w\" sizes=\"(max-width: 728px) 100vw, 728px\" \/><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-2006 aligncenter\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/04-1-1.png\" alt=\"04-1\" width=\"635\" height=\"131\" srcset=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/04-1-1.png 635w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/04-1-1-300x62.png 300w\" sizes=\"(max-width: 635px) 100vw, 635px\" \/><\/p>\n<p>As you can see, table t2 involves the column-to-column data flow generated by the create view statement. It also involves the table-to-table data flow generated by the alter Table statement, as shown in a table t2 in the figure above, which includes both column-to-column and table-to-table data flow.<\/p>\n<h3>Conclusion<\/h3>\n<p>Thank you for reading our list and we hope it can help you to have a better understanding of the\u00a0Gudu SQLFlow indirect data flow and pseudo columns. If you want to learn more about Gudu SQLFlow, we would like to advise you to visit their official website for more information.<\/p>\n<p>As one of the\u00a0<strong><a href=\"https:\/\/www.dpriver.com\/blog\/2022\/05\/11\/best-data-lineage-tools\/\" target=\"_blank\" rel=\"noopener\">best data lineage tools<\/a>\u00a0<\/strong>on the market today, Gudu SQLFlow can not only analyze SQL script files, obtain <strong><a href=\"https:\/\/www.gudusoft.com\/whats-sql-lineage-101\/\">data lineage<\/a><\/strong>, and perform visual display, but also allow users to provide data lineage in CSV format and perform visual display.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Gudu SQLFlow Indirect Data Flow &amp; Pseudo Columns\u00a0Introduction This article describes some of the SQL elements that generate indirect data flow. Indirect data flow is typically generated by columns used in where clauses, group by clauses, aggregate functions, etc. To create indirect data flow between columns, we introduce a pseudocolumn: RelationRows.\u00a0 RelationRows is a pseudocolumn of the relation, used to represent the number of rows in the relation. As the name suggests, RelationRows are not true columns in a relation (table\/result set etc).\u00a0 Typically, it is used to represent the flow of data between columns and relationships.\u00a0The RelationRows pseudo-column can\u2026<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[25,8],"tags":[31,26,28,27],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":5}},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Introduction to Gudu SQLFlow Indirect Data Flow and Pseudo Columns<\/title>\n<meta name=\"description\" content=\"Introduction to Gudu SQLFlow Indirect Data Flow and Pseudo Columns\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dpriver.com\/blog\/2022\/05\/introduction-to-gudu-sqlflow-indirect-data-flow-pseudo-columns\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Introduction to Gudu SQLFlow Indirect Data Flow and Pseudo Columns\" \/>\n<meta property=\"og:description\" content=\"Introduction to Gudu SQLFlow Indirect Data Flow and Pseudo Columns\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dpriver.com\/blog\/2022\/05\/introduction-to-gudu-sqlflow-indirect-data-flow-pseudo-columns\/\" \/>\n<meta property=\"og:site_name\" content=\"SQL and Data Blog\" \/>\n<meta property=\"article:published_time\" content=\"2022-05-21T14:35:52+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-05-21T14:37:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/1-3.png\" \/>\n<meta name=\"author\" content=\"han yu\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"han yu\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/#organization\",\"name\":\"SQL and Data Blog\",\"url\":\"https:\/\/www.dpriver.com\/blog\/\",\"sameAs\":[],\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/07\/sqlpp-character.png\",\"contentUrl\":\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/07\/sqlpp-character.png\",\"width\":251,\"height\":72,\"caption\":\"SQL and Data Blog\"},\"image\":{\"@id\":\"https:\/\/www.dpriver.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/#website\",\"url\":\"https:\/\/www.dpriver.com\/blog\/\",\"name\":\"SQL and Data Blog\",\"description\":\"SQL related blog for database professional\",\"publisher\":{\"@id\":\"https:\/\/www.dpriver.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dpriver.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/2022\/05\/introduction-to-gudu-sqlflow-indirect-data-flow-pseudo-columns\/\",\"url\":\"https:\/\/www.dpriver.com\/blog\/2022\/05\/introduction-to-gudu-sqlflow-indirect-data-flow-pseudo-columns\/\",\"name\":\"Introduction to Gudu SQLFlow Indirect Data Flow and Pseudo Columns\",\"isPartOf\":{\"@id\":\"https:\/\/www.dpriver.com\/blog\/#website\"},\"datePublished\":\"2022-05-21T14:35:52+00:00\",\"dateModified\":\"2022-05-21T14:37:53+00:00\",\"description\":\"Introduction to Gudu SQLFlow Indirect Data Flow and Pseudo Columns\",\"breadcrumb\":{\"@id\":\"https:\/\/www.dpriver.com\/blog\/2022\/05\/introduction-to-gudu-sqlflow-indirect-data-flow-pseudo-columns\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dpriver.com\/blog\/2022\/05\/introduction-to-gudu-sqlflow-indirect-data-flow-pseudo-columns\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/2022\/05\/introduction-to-gudu-sqlflow-indirect-data-flow-pseudo-columns\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.dpriver.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Introduction to Gudu SQLFlow Indirect Data Flow and Pseudo Columns\"}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/2022\/05\/introduction-to-gudu-sqlflow-indirect-data-flow-pseudo-columns\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dpriver.com\/blog\/2022\/05\/introduction-to-gudu-sqlflow-indirect-data-flow-pseudo-columns\/\"},\"author\":{\"name\":\"han yu\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/#\/schema\/person\/e8cef08dc9a534a547554f37fa63b130\"},\"headline\":\"Introduction to Gudu SQLFlow Indirect Data Flow and Pseudo Columns\",\"datePublished\":\"2022-05-21T14:35:52+00:00\",\"dateModified\":\"2022-05-21T14:37:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dpriver.com\/blog\/2022\/05\/introduction-to-gudu-sqlflow-indirect-data-flow-pseudo-columns\/\"},\"wordCount\":509,\"publisher\":{\"@id\":\"https:\/\/www.dpriver.com\/blog\/#organization\"},\"keywords\":[\"Best Data Lineage Tools\",\"data lineage\",\"data lineage tools\",\"Gudu SQLFlow\"],\"articleSection\":[\"sql\",\"SQL language\"],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/#\/schema\/person\/e8cef08dc9a534a547554f37fa63b130\",\"name\":\"han yu\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/401910b33aed92b7ba8fb4415a22a935?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/401910b33aed92b7ba8fb4415a22a935?s=96&d=mm&r=g\",\"caption\":\"han yu\"},\"url\":\"https:\/\/www.dpriver.com\/blog\/author\/yuhan10080710229\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Introduction to Gudu SQLFlow Indirect Data Flow and Pseudo Columns","description":"Introduction to Gudu SQLFlow Indirect Data Flow and Pseudo Columns","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dpriver.com\/blog\/2022\/05\/introduction-to-gudu-sqlflow-indirect-data-flow-pseudo-columns\/","og_locale":"en_US","og_type":"article","og_title":"Introduction to Gudu SQLFlow Indirect Data Flow and Pseudo Columns","og_description":"Introduction to Gudu SQLFlow Indirect Data Flow and Pseudo Columns","og_url":"https:\/\/www.dpriver.com\/blog\/2022\/05\/introduction-to-gudu-sqlflow-indirect-data-flow-pseudo-columns\/","og_site_name":"SQL and Data Blog","article_published_time":"2022-05-21T14:35:52+00:00","article_modified_time":"2022-05-21T14:37:53+00:00","og_image":[{"url":"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/1-3.png"}],"author":"han yu","twitter_card":"summary_large_image","twitter_misc":{"Written by":"han yu","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Organization","@id":"https:\/\/www.dpriver.com\/blog\/#organization","name":"SQL and Data Blog","url":"https:\/\/www.dpriver.com\/blog\/","sameAs":[],"logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dpriver.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/07\/sqlpp-character.png","contentUrl":"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/07\/sqlpp-character.png","width":251,"height":72,"caption":"SQL and Data Blog"},"image":{"@id":"https:\/\/www.dpriver.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"WebSite","@id":"https:\/\/www.dpriver.com\/blog\/#website","url":"https:\/\/www.dpriver.com\/blog\/","name":"SQL and Data Blog","description":"SQL related blog for database professional","publisher":{"@id":"https:\/\/www.dpriver.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dpriver.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.dpriver.com\/blog\/2022\/05\/introduction-to-gudu-sqlflow-indirect-data-flow-pseudo-columns\/","url":"https:\/\/www.dpriver.com\/blog\/2022\/05\/introduction-to-gudu-sqlflow-indirect-data-flow-pseudo-columns\/","name":"Introduction to Gudu SQLFlow Indirect Data Flow and Pseudo Columns","isPartOf":{"@id":"https:\/\/www.dpriver.com\/blog\/#website"},"datePublished":"2022-05-21T14:35:52+00:00","dateModified":"2022-05-21T14:37:53+00:00","description":"Introduction to Gudu SQLFlow Indirect Data Flow and Pseudo Columns","breadcrumb":{"@id":"https:\/\/www.dpriver.com\/blog\/2022\/05\/introduction-to-gudu-sqlflow-indirect-data-flow-pseudo-columns\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dpriver.com\/blog\/2022\/05\/introduction-to-gudu-sqlflow-indirect-data-flow-pseudo-columns\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dpriver.com\/blog\/2022\/05\/introduction-to-gudu-sqlflow-indirect-data-flow-pseudo-columns\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.dpriver.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Introduction to Gudu SQLFlow Indirect Data Flow and Pseudo Columns"}]},{"@type":"Article","@id":"https:\/\/www.dpriver.com\/blog\/2022\/05\/introduction-to-gudu-sqlflow-indirect-data-flow-pseudo-columns\/#article","isPartOf":{"@id":"https:\/\/www.dpriver.com\/blog\/2022\/05\/introduction-to-gudu-sqlflow-indirect-data-flow-pseudo-columns\/"},"author":{"name":"han yu","@id":"https:\/\/www.dpriver.com\/blog\/#\/schema\/person\/e8cef08dc9a534a547554f37fa63b130"},"headline":"Introduction to Gudu SQLFlow Indirect Data Flow and Pseudo Columns","datePublished":"2022-05-21T14:35:52+00:00","dateModified":"2022-05-21T14:37:53+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dpriver.com\/blog\/2022\/05\/introduction-to-gudu-sqlflow-indirect-data-flow-pseudo-columns\/"},"wordCount":509,"publisher":{"@id":"https:\/\/www.dpriver.com\/blog\/#organization"},"keywords":["Best Data Lineage Tools","data lineage","data lineage tools","Gudu SQLFlow"],"articleSection":["sql","SQL language"],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dpriver.com\/blog\/#\/schema\/person\/e8cef08dc9a534a547554f37fa63b130","name":"han yu","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dpriver.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/401910b33aed92b7ba8fb4415a22a935?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/401910b33aed92b7ba8fb4415a22a935?s=96&d=mm&r=g","caption":"han yu"},"url":"https:\/\/www.dpriver.com\/blog\/author\/yuhan10080710229\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/posts\/1974"}],"collection":[{"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/comments?post=1974"}],"version-history":[{"count":24,"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/posts\/1974\/revisions"}],"predecessor-version":[{"id":2156,"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/posts\/1974\/revisions\/2156"}],"wp:attachment":[{"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/media?parent=1974"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/categories?post=1974"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/tags?post=1974"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}