{"id":1751,"date":"2022-05-07T21:15:23","date_gmt":"2022-05-08T02:15:23","guid":{"rendered":"https:\/\/www.dpriver.com\/blog\/?p=1751"},"modified":"2022-05-22T19:06:18","modified_gmt":"2022-05-23T00:06:18","slug":"gudu-sqlflow-whats-it-why-it-important","status":"publish","type":"post","link":"https:\/\/www.dpriver.com\/blog\/2022\/05\/gudu-sqlflow-whats-it-why-it-important\/","title":{"rendered":"Gudu SQLFlow : What&#8217;s it and why it is important?"},"content":{"rendered":"<h2 style=\"text-align: left\">What&#8217;s Gudu SQLFlow?<\/h2>\n<p>In large data warehouses and data lakes, complete <strong><a href=\"https:\/\/www.gudusoft.com\/data-lineage-knowledge-base\/\">data lineage<\/a><\/strong> can be used for data traceability, impact analysis of table and column changes, proof of data compliance, data quality checks, and more.\u00a0<span class=\"Y2IQFc\" lang=\"en\">So what exactly is data lineage?\u00a0<\/span><span class=\"Y2IQFc\" lang=\"en\">According to Wikipedia, data lineage includes where the data came from, what happened, and where it moved over time.\u00a0\u00a0<strong>Gudu SQLFlow<\/strong> gives complete data lineage by analyzing SQL scripts.\u00a0It can handle SQL statements of more than 20 kinds of databases, including complex stored procedures and dynamic SQL statements.\u00a0With the powerful SQL processing capability of the self-developed general-purpose SQL parser, Gudu SQLFlow is one of the most popular <strong><a href=\"https:\/\/medium.com\/@han.yu_47442\/15-best-data-lineage-tools-2022-reviews-comparison-9fc5fe690f2d\">data lineage tools<\/a><\/strong> available on the market today.\u00a0<\/span><\/p>\n<figure id=\"attachment_1807\" aria-describedby=\"caption-attachment-1807\" style=\"width: 780px\" class=\"wp-caption alignnone\"><img decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-1807\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-1024x5151.png\" alt=\"Gudu SQLFlow\" width=\"780\" height=\"392\" srcset=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-1024x5151.png 780w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-1024x5151-300x151.png 300w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-1024x5151-768x386.png 768w\" sizes=\"(max-width: 780px) 100vw, 780px\" \/><figcaption id=\"caption-attachment-1807\" class=\"wp-caption-text\">Gudu SQLFlow<\/figcaption><\/figure>\n<p>Gudu SQLFlow generates data lineages by analyzing SQL queries and stored procedures.\u00a0Entities in the data lineage model include tables, columns, functions, relationships, and other entities. The combination of entities and dataflows shows the lineage from one table\/column to another.<\/p>\n<h3>1. Data flow unit<\/h3>\n<p>A data flow unit includes source entities, target entities, and the type of data flow between them.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-large wp-image-1761 aligncenter\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-3-1024x70.png\" alt=\"Gudu_SQLFlow (3)\" width=\"1024\" height=\"70\" srcset=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-3-1024x70.png 1024w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-3-300x20.png 300w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-3-768x52.png 768w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-3.png 1115w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>This is the data flow generated for the above SQL query.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-large wp-image-1762\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-4-1024x67.png\" alt=\"Gudu_SQLFlow (4)\" width=\"1024\" height=\"67\" srcset=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-4-1024x67.png 1024w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-4-300x20.png 300w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-4-768x50.png 768w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-4.png 1112w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-1763 aligncenter\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/02-1.png\" alt=\"02-1\" width=\"838\" height=\"262\" srcset=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/02-1.png 838w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/02-1-300x94.png 300w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/02-1-768x240.png 768w\" sizes=\"(max-width: 838px) 100vw, 838px\" \/><\/p>\n<h4>1.1 Source and target entities<\/h4>\n<p>Source and target entities often reference tables, views, and other relationships, such as common table expressions, result sets generated during query execution. It may also refer to files in HDFS systems etc.<\/p>\n<h4>1.2 Types of data flow<\/h4>\n<p>There are two types of data flow: direct data flow and indirect data flow.<\/p>\n<h5>1.2.1 Direct data flow<\/h5>\n<p>Direct data flow means that the data of the target entity comes directly from the source entity. In the diagram above, RS-1.FirstName directly from Person.FirstName.<\/p>\n<p style=\"text-align: left\">Arrows are used to represent direct data flow in the diagram:\u00a0<img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-1765\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/03-1.png\" alt=\"03-1\" width=\"248\" height=\"36\" \/><\/p>\n<h5 style=\"text-align: left\">1.2.2 Indirect data flow<\/h5>\n<p>Indirect data flow means that the data of the target column does not come from the source column, but the data of the source column\/table affects the result data of the target column.<br \/>\nDashed arrows are used to represent indirect data flow in the diagram:\u00a0<img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-1766\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/04-1.png\" alt=\"04-1\" width=\"202\" height=\"50\" \/><\/p>\n<p>Source columns in indirect data flow typically appear in the following clauses:<\/p>\n<ul>\n<li>Group by clause<\/li>\n<li>Where clause<\/li>\n<li>Winddows function<\/li>\n<li>Join condition<\/li>\n<\/ul>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-large wp-image-1768\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-5-1024x141.png\" alt=\"Gudu_SQLFlow (5)\" width=\"1024\" height=\"141\" srcset=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-5-1024x141.png 1024w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-5-300x41.png 300w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-5-768x106.png 768w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-5.png 1112w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>The values \u200b\u200bof COUNT() and SUM(SAL) are affected by the value of the deptno column in the group by clause. Therefore, the indirect data flow will be created as follows:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-large wp-image-1769\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-6-1024x107.png\" alt=\"Gudu_SQLFlow (6)\" width=\"1024\" height=\"107\" srcset=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-6-1024x107.png 1024w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-6-300x31.png 300w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-6-768x80.png 768w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-6.png 1109w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-1770 aligncenter\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/05.png\" alt=\"05\" width=\"646\" height=\"139\" srcset=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/05.png 646w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/05-300x65.png 300w\" sizes=\"(max-width: 646px) 100vw, 646px\" \/><\/p>\n<p>For other indirect data flows, we will discuss later.<\/p>\n<h5>1.2.3 Join operator<\/h5>\n<p>Join establishes a link between two or more columns in a join condition. Strictly speaking, this relationship is not a data flow type.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-large wp-image-1771\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-7-1024x71.png\" alt=\"Gudu_SQLFlow (7)\" width=\"1024\" height=\"71\" srcset=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-7-1024x71.png 1024w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-7-300x21.png 300w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-7-768x53.png 768w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-7.png 1116w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>A join relationship will be created after parsing the above SQL. It represents the connection relationship between tbl, between tbl.key and TT.key.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-large wp-image-1773\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/06-1024x123.png\" alt=\"06\" width=\"1024\" height=\"123\" srcset=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/06-1024x123.png 1024w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/06-300x36.png 300w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/06-768x92.png 768w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/06.png 1214w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<h3>2. Entities in the data flow<\/h3>\n<p>When building a data flow between two entities: a source entity and a target entity. They can be column-to-column, table-to-column, or table-to-table.<\/p>\n<h4>2.1 Column to Column<\/h4>\n<p>This is the most common case where both entities in the dataflow are columns.<\/p>\n<h4>2.2 Table to Column<\/h4>\n<p>When we say a table affects the value of a column, we usually mean that the total number of rows in a table affects the value of a column. Typically, this column is derived from the COUNT() function.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-large wp-image-1775\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-8-1024x63.png\" alt=\"Gudu_SQLFlow (8)\" width=\"1024\" height=\"63\" srcset=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-8-1024x63.png 1024w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-8-300x18.png 300w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-8-768x47.png 768w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-8.png 1112w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>Table-to-column data flow is represented by using the psedou column of table RelationRows, which will build an indirect data flow from scott, relation row RS-1.num_emp.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-large wp-image-1776\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-9-1024x72.png\" alt=\"Gudu_SQLFlow (9)\" width=\"1024\" height=\"72\" srcset=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-9-1024x72.png 1024w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-9-300x21.png 300w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-9-768x54.png 768w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-9.png 1109w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-1777 aligncenter\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/07.png\" alt=\"07\" width=\"616\" height=\"75\" srcset=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/07.png 616w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/07-300x37.png 300w\" sizes=\"(max-width: 616px) 100vw, 616px\" \/><\/p>\n<h4>2.3 Table to table<\/h4>\n<p>Sometimes, there will be data flow between two tables. For example, in an alter table rename SQL statement, a table-to-table data flow will be created. In effect, table-to-table data flow is determined by using the RelationRows table pseudo column.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-large wp-image-1778\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-10-1024x73.png\" alt=\"Gudu_SQLFlow (10)\" width=\"1024\" height=\"73\" srcset=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-10-1024x73.png 1024w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-10-300x21.png 300w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-10-768x54.png 768w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-10.png 1115w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-1779 aligncenter\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/08.png\" alt=\"08\" width=\"826\" height=\"146\" srcset=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/08.png 826w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/08-300x53.png 300w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/08-768x136.png 768w\" sizes=\"(max-width: 826px) 100vw, 826px\" \/><\/p>\n<h3>3. Data lineage<\/h3>\n<p><span class=\"Y2IQFc\" lang=\"en\">Data lineage consists of many basic data flow units.<\/span><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-large wp-image-1780\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-11-1024x581.png\" alt=\"Gudu_SQLFlow (11)\" width=\"1024\" height=\"581\" srcset=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-11-1024x581.png 1024w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-11-300x170.png 300w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-11-768x436.png 768w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-11.png 1108w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>Data lineage analysis diagram:<\/p>\n<figure id=\"attachment_1818\" aria-describedby=\"caption-attachment-1818\" style=\"width: 730px\" class=\"wp-caption alignnone\"><img decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-1818\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-12-1.png\" alt=\"Gudu SQLFlow\" width=\"730\" height=\"185\" srcset=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-12-1.png 730w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-12-1-300x76.png 300w\" sizes=\"(max-width: 730px) 100vw, 730px\" \/><figcaption id=\"caption-attachment-1818\" class=\"wp-caption-text\">Gudu SQLFlow<\/figcaption><\/figure>\n<p>The output can also be in XML or JSON format.<\/p>\n<h3>Conclusion<\/h3>\n<p>Thank you for reading our article and we hope it can help you to have a better understanding of\u00a0Gudu SQLFlow. If you want to know more about Gudu SQLFlow, we would like to advise you to visit\u00a0<strong><a href=\"https:\/\/www.gudusoft.com\/\">Gudu SQLFlow<\/a>\u00a0<\/strong>for more information.<strong>\u00a0<\/strong>With the powerful SQL processing capability of the self-developed general-purpose SQL parser, Gudu SQLFlow is your first choice for analyzing SQL data lineage.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>What&#8217;s Gudu SQLFlow? In large data warehouses and data lakes, complete data lineage can be used for data traceability, impact analysis of table and column changes, proof of data compliance, data quality checks, and more.\u00a0So what exactly is data lineage?\u00a0According to Wikipedia, data lineage includes where the data came from, what happened, and where it moved over time.\u00a0\u00a0Gudu SQLFlow gives complete data lineage by analyzing SQL scripts.\u00a0It can handle SQL statements of more than 20 kinds of databases, including complex stored procedures and dynamic SQL statements.\u00a0With the powerful SQL processing capability of the self-developed general-purpose SQL parser, Gudu SQLFlow is\u2026<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[8],"tags":[5,29],"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>Gudu SQLFlow : What&#039;s it and why it is important?<\/title>\n<meta name=\"description\" content=\"Gudu SQLFlow : What&#039;s it and why it is important?\" \/>\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\/gudu-sqlflow-whats-it-why-it-important\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Gudu SQLFlow : What&#039;s it and why it is important?\" \/>\n<meta property=\"og:description\" content=\"Gudu SQLFlow : What&#039;s it and why it is important?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dpriver.com\/blog\/2022\/05\/gudu-sqlflow-whats-it-why-it-important\/\" \/>\n<meta property=\"og:site_name\" content=\"SQL and Data Blog\" \/>\n<meta property=\"article:published_time\" content=\"2022-05-08T02:15:23+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-05-23T00:06:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-1024x5151.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=\"4 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\/gudu-sqlflow-whats-it-why-it-important\/\",\"url\":\"https:\/\/www.dpriver.com\/blog\/2022\/05\/gudu-sqlflow-whats-it-why-it-important\/\",\"name\":\"Gudu SQLFlow : What's it and why it is important?\",\"isPartOf\":{\"@id\":\"https:\/\/www.dpriver.com\/blog\/#website\"},\"datePublished\":\"2022-05-08T02:15:23+00:00\",\"dateModified\":\"2022-05-23T00:06:18+00:00\",\"description\":\"Gudu SQLFlow : What's it and why it is important?\",\"breadcrumb\":{\"@id\":\"https:\/\/www.dpriver.com\/blog\/2022\/05\/gudu-sqlflow-whats-it-why-it-important\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dpriver.com\/blog\/2022\/05\/gudu-sqlflow-whats-it-why-it-important\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/2022\/05\/gudu-sqlflow-whats-it-why-it-important\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.dpriver.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Gudu SQLFlow : What&#8217;s it and why it is important?\"}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/2022\/05\/gudu-sqlflow-whats-it-why-it-important\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dpriver.com\/blog\/2022\/05\/gudu-sqlflow-whats-it-why-it-important\/\"},\"author\":{\"name\":\"han yu\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/#\/schema\/person\/e8cef08dc9a534a547554f37fa63b130\"},\"headline\":\"Gudu SQLFlow : What&#8217;s it and why it is important?\",\"datePublished\":\"2022-05-08T02:15:23+00:00\",\"dateModified\":\"2022-05-23T00:06:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dpriver.com\/blog\/2022\/05\/gudu-sqlflow-whats-it-why-it-important\/\"},\"wordCount\":716,\"publisher\":{\"@id\":\"https:\/\/www.dpriver.com\/blog\/#organization\"},\"keywords\":[\"sql\",\"SQLFlow\"],\"articleSection\":[\"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":"Gudu SQLFlow : What's it and why it is important?","description":"Gudu SQLFlow : What's it and why it is important?","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\/gudu-sqlflow-whats-it-why-it-important\/","og_locale":"en_US","og_type":"article","og_title":"Gudu SQLFlow : What's it and why it is important?","og_description":"Gudu SQLFlow : What's it and why it is important?","og_url":"https:\/\/www.dpriver.com\/blog\/2022\/05\/gudu-sqlflow-whats-it-why-it-important\/","og_site_name":"SQL and Data Blog","article_published_time":"2022-05-08T02:15:23+00:00","article_modified_time":"2022-05-23T00:06:18+00:00","og_image":[{"url":"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2022\/05\/Gudu_SQLFlow-1024x5151.png"}],"author":"han yu","twitter_card":"summary_large_image","twitter_misc":{"Written by":"han yu","Est. reading time":"4 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\/gudu-sqlflow-whats-it-why-it-important\/","url":"https:\/\/www.dpriver.com\/blog\/2022\/05\/gudu-sqlflow-whats-it-why-it-important\/","name":"Gudu SQLFlow : What's it and why it is important?","isPartOf":{"@id":"https:\/\/www.dpriver.com\/blog\/#website"},"datePublished":"2022-05-08T02:15:23+00:00","dateModified":"2022-05-23T00:06:18+00:00","description":"Gudu SQLFlow : What's it and why it is important?","breadcrumb":{"@id":"https:\/\/www.dpriver.com\/blog\/2022\/05\/gudu-sqlflow-whats-it-why-it-important\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dpriver.com\/blog\/2022\/05\/gudu-sqlflow-whats-it-why-it-important\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dpriver.com\/blog\/2022\/05\/gudu-sqlflow-whats-it-why-it-important\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.dpriver.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Gudu SQLFlow : What&#8217;s it and why it is important?"}]},{"@type":"Article","@id":"https:\/\/www.dpriver.com\/blog\/2022\/05\/gudu-sqlflow-whats-it-why-it-important\/#article","isPartOf":{"@id":"https:\/\/www.dpriver.com\/blog\/2022\/05\/gudu-sqlflow-whats-it-why-it-important\/"},"author":{"name":"han yu","@id":"https:\/\/www.dpriver.com\/blog\/#\/schema\/person\/e8cef08dc9a534a547554f37fa63b130"},"headline":"Gudu SQLFlow : What&#8217;s it and why it is important?","datePublished":"2022-05-08T02:15:23+00:00","dateModified":"2022-05-23T00:06:18+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dpriver.com\/blog\/2022\/05\/gudu-sqlflow-whats-it-why-it-important\/"},"wordCount":716,"publisher":{"@id":"https:\/\/www.dpriver.com\/blog\/#organization"},"keywords":["sql","SQLFlow"],"articleSection":["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\/1751"}],"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=1751"}],"version-history":[{"count":41,"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/posts\/1751\/revisions"}],"predecessor-version":[{"id":2011,"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/posts\/1751\/revisions\/2011"}],"wp:attachment":[{"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/media?parent=1751"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/categories?post=1751"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/tags?post=1751"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}