{"id":2726,"date":"2023-03-23T23:23:32","date_gmt":"2023-03-24T04:23:32","guid":{"rendered":"https:\/\/www.dpriver.com\/blog\/?p=2726"},"modified":"2023-03-27T04:21:18","modified_gmt":"2023-03-27T09:21:18","slug":"visualize-your-data-with-sqlflow-rest-api","status":"publish","type":"post","link":"https:\/\/www.dpriver.com\/blog\/visualize-your-data-with-sqlflow-rest-api\/","title":{"rendered":"Visualize your data with SQLFlow REST API"},"content":{"rendered":"\n<p><strong><a href=\"https:\/\/www.gudusoft.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Gudu SQLFlow<\/a><\/strong> is an analysis software for analyzing SQL statements and discovering <strong><a href=\"https:\/\/www.dpriver.com\/blog\/2022\/05\/11\/best-data-lineage-tools\/\" target=\"_blank\" rel=\"noreferrer noopener\">data lineage<\/a><\/strong> relationships. It is often used with <a href=\"https:\/\/www.gudusoft.com\/what-is-metadata-management\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>metadata management<\/strong><\/a> tools and is a basic tool for <a href=\"https:\/\/www.gudusoft.com\/challenges-facing-enterprise-data-governance\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>enterprise data governance<\/strong><\/a>. Check <a href=\"https:\/\/www.dpriver.com\/blog\/2022\/08\/20\/introduction-of-gudu-sqlflow\/\" target=\"_blank\" rel=\"noreferrer noopener\">this introduction blog<\/a> if you don&#8217;t know much about Gudu SQLFlow.<\/p>\n\n\n\n<p>Gudu SQLFlow has various functionalities for data lineage generation and it provides you different choices to visualize your data. <a href=\"https:\/\/docs.gudusoft.com\/3.-api-docs\/using-the-rest-api\" target=\"_blank\" rel=\"noreferrer noopener\">SQLFlow REST API<\/a> is one of the most commonly used features. Your data analysis result will be generated and returned from SQLFlow server by sending standard parameterized RESTFul Api request. Apart from report under <strong><em>Json<\/em><\/strong>, <strong><em>XML<\/em><\/strong>, <strong><em>CSV <\/em><\/strong>format, SQLFlow REST API is also able to return result as <strong>image(PNG\/JPEG)<\/strong> from your SQL.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The API Endpoint<\/h2>\n\n\n\n<p>The related SQLFlow Api to visualize your data lineage is: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/sqlflow\/generation\/sqlflow\/graph\/image<\/code><\/pre>\n\n\n\n<p>The <code>\/graph\/image<\/code> accepts either SQL statements text or it can reads from SQL file. Export your database metadata into SQL files if you would like to generate data lineage image for your database with <code>\/graph\/image<\/code>. (tips: you can use <a href=\"https:\/\/www.gudusoft.com\/grabit\/\" target=\"_blank\" rel=\"noreferrer noopener\">SQLFlow Ingester<\/a> to export metadata files from your database)<\/p>\n\n\n\n<p>Let\u2019s use the following SQL statements to see how to sort out the data dependencies between various tables\/views with a simple call to SQLFlow REST API:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"759\" height=\"315\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/03\/\u5fae\u4fe1\u622a\u56fe_20230324104602.png\" alt=\"\" class=\"wp-image-2734\" srcset=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/03\/\u5fae\u4fe1\u622a\u56fe_20230324104602.png 759w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/03\/\u5fae\u4fe1\u622a\u56fe_20230324104602-300x125.png 300w\" sizes=\"(max-width: 759px) 100vw, 759px\" \/><\/figure>\n\n\n\n<p>By analyzing the above INSERT SQL statement, we can know:<\/p>\n\n\n\n<p>The data of the deptsal table comes from the dept and emp tables. Further, the data dependency (data lineage) at the field level is:<\/p>\n\n\n\n<ul><li>The data of the deptsal.dept_no field comes from dept.deptno\uff1b<\/li><li>The data of the deptsal.dept_name field comes from dept.name\uff1b<\/li><li>The data of the deptsal.salary field comes from emp.sal and emp.comm\uff1b<\/li><\/ul>\n\n\n\n<p>Simply upload the above piece of code to SQLFlow API (or you can put the SQL statements in SQL file in case of the sql statement is complex):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl --location --request POST 'https:\/\/api.gudusoft.com\/gspLive_backend\/sqlflow\/generation\/sqlflow\/graph\/image' \\\n    --header 'accept: image\/*' \\\n    --form 'sqlfile=@\"\/home\/test.sql\"' \\\n    --form 'dbvendor=\"dbvoracle\"' \\\n    --form 'userId=\"&lt;YOUR USER ID&gt;\"' \\\n    --form 'token=\"&lt;THE GENERATED TOKEN&gt;\"'<\/code><\/pre>\n\n\n\n<p>Result:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"647\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/03\/\u5fae\u4fe1\u622a\u56fe_20230324111850-1024x647.png\" alt=\"\" class=\"wp-image-2737\" srcset=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/03\/\u5fae\u4fe1\u622a\u56fe_20230324111850-1024x647.png 1024w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/03\/\u5fae\u4fe1\u622a\u56fe_20230324111850-300x190.png 300w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/03\/\u5fae\u4fe1\u622a\u56fe_20230324111850-768x485.png 768w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/03\/\u5fae\u4fe1\u622a\u56fe_20230324111850.png 1350w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Hint: <a href=\"https:\/\/www.gudusoft.com\/sqlflow-on-premise-version\/\" target=\"_blank\" rel=\"noreferrer noopener\">SQLFlow On-Premise<\/a> is used in the above capture, hence token is not required and only userId is given in param. Please refer to <a href=\"https:\/\/docs.gudusoft.com\/3.-api-docs\/prerequisites\" target=\"_blank\" rel=\"noreferrer noopener\">this document<\/a> to check how to get the userid and the token.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Request Parameters<\/h2>\n\n\n\n<p>In the above request, only <code>sqlfile<\/code>, <code>dbvendor<\/code> and <code>userId<\/code> are given as the request parameters. The sqlfile is the file that you are going to upload. Use <code>sqltext<\/code> If you prefer use SQL text. The <code>dbvendor<\/code> tells SQLFlow to what database this SQL is based on. Other request parameters are not required and have default value.  However, you can apply all SQLFlow settings to customize the output image. Check the following table:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Field name<\/td><td>Type<\/td><td>Description<\/td><\/tr><tr><td>dbvendor<\/td><td>string<\/td><td>database vendor, support values: &#8211; dbvazuresql<br>&#8211; dbvbigquery<br>&#8211; dbvcouchbase<br>&#8211; dbvdb2<br>&#8211; dbvgreenplum<br>&#8211; dbvhana<br>&#8211; dbvhive<br>&#8211; dbvimpala<br>&#8211; dbvinformix<br>&#8211; dbvmdx<br>&#8211; dbvmysql<br>&#8211; dbvnetezza<br>&#8211; dbvopenedge<br>&#8211; dbvoracle<br>&#8211; dbvpostgresql<br>&#8211; dbvredshift<br>&#8211; dbvsnowflake<br>&#8211; dbvmssql<br>&#8211; dbvsparksql<br>&#8211; dbvsybase<br>&#8211; dbvteradata<br>&#8211; dbvvertica<\/td><\/tr><tr><td>hideColumn<\/td><td>boolean<\/td><td>whether hide column<\/td><\/tr><tr><td>ignoreFunction<\/td><td>boolean<\/td><td>whether ignore function<\/td><\/tr><tr><td>simpleOutput<\/td><td>boolean<\/td><td>simple output, ignore the intermediate results, defualt is false.<\/td><\/tr><tr><td>ignoreRecordSet<\/td><td>boolean<\/td><td>same as simpleOutput, but will keep output of the top level select<br>list, default is false.<\/td><\/tr><tr><td>jobId<\/td><td>string<\/td><td>give the job Id if need to use the job settings and display the<br>job graph<\/td><\/tr><tr><td>normalizeIdentifier<\/td><td>boolean<\/td><td>whether normalize the Identifier, default is true<\/td><\/tr><tr><td>showTransform<\/td><td>boolean<\/td><td>whether show transform<\/td><\/tr><tr><td>sqltext<\/td><td>string<\/td><td>sql text from which to generate the sqlflow model<\/td><\/tr><tr><td>token<\/td><td>string<\/td><td>The token is only used when connecting to the SQLFlow Cloud server,<br>It&#8217;s not in use when connect to the SQLFlow on-premise version.<\/td><\/tr><tr><td>treatArgumentsInCountFunctionAsDirectDataflow<\/td><td>boolean<\/td><td>Whether treat the arguments in COUNT function as direct Dataflow<\/td><\/tr><tr><td>userId<\/td><td>string<\/td><td>the user id of sqlflow web or client<\/td><\/tr><tr><td>columnLevel<\/td><td>string<\/td><td>whether to show table level or column level data, false or true<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Image Data Lineage Result<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"188\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/03\/\u5fae\u4fe1\u622a\u56fe_20230324114809-1024x188.png\" alt=\"\" class=\"wp-image-2741\" srcset=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/03\/\u5fae\u4fe1\u622a\u56fe_20230324114809-1024x188.png 1024w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/03\/\u5fae\u4fe1\u622a\u56fe_20230324114809-300x55.png 300w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/03\/\u5fae\u4fe1\u622a\u56fe_20230324114809-768x141.png 768w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/03\/\u5fae\u4fe1\u622a\u56fe_20230324114809.png 1338w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Let&#8217;s use the following settings and make the output more easier to understand:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Field name<\/td><td>Value<\/td><\/tr><tr><td>showRelationType<\/td><td>fdd<\/td><\/tr><tr><td>treatArgumentsInCountFunctionAsDirectDataflow<\/td><td>true<\/td><\/tr><tr><td>ignoreRecordSet<\/td><td>false<\/td><\/tr><tr><td>ignoreFunction<\/td><td>true<\/td><\/tr><tr><td>showConstantTable<\/td><td>false<\/td><\/tr><tr><td>showTransform<\/td><td>false<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/03\/\u5fae\u4fe1\u622a\u56fe_20230324121217.png\" alt=\"\" class=\"wp-image-2743\" width=\"749\" height=\"696\" srcset=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/03\/\u5fae\u4fe1\u622a\u56fe_20230324121217.png 952w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/03\/\u5fae\u4fe1\u622a\u56fe_20230324121217-300x279.png 300w, https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/03\/\u5fae\u4fe1\u622a\u56fe_20230324121217-768x714.png 768w\" sizes=\"(max-width: 749px) 100vw, 749px\" \/><\/figure>\n\n\n\n<p>All database objects discovered during the data lineage analysis are stored in the <code>$.dbobjs<\/code> object.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Table<\/h3>\n\n\n\n<p>There are four tables founded in the above result:<\/p>\n\n\n\n<ul><li>DEPTSAL: you can use <code>$.dbobjs[1].name<\/code> to return the table name, and <code>$.dbobjs[1].type<\/code> to return the type of this object which is <code>table<\/code> in this case. you can also use expression like this to get this table:<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>$.dbobjs&#091;?(@.name=='deptsal')].name<\/code><\/pre>\n\n\n\n<ul><li>DEPT<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>$.dbobjs&#091;?(@.name=='dept')].name<\/code><\/pre>\n\n\n\n<ul><li>EMP<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>$.dbobjs&#091;?(@.name=='emp')].name<\/code><\/pre>\n\n\n\n<ul><li>SQL_CONSTANTS: This is not a real table, but a table generated by the Gudu SQLFlow to store the constant used in the SQL query.<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>$.dbobjs&#091;?(@.name=='SQL_CONSTANTS')].name<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Online Web Tool<\/h2>\n\n\n\n<p>You can get more information about <a href=\"https:\/\/www.gudusoft.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">SQLFlow<\/a> with the<a href=\"https:\/\/sqlflow.gudusoft.com\/#\/\" target=\"_blank\" rel=\"noreferrer noopener\"> online demo<\/a>. The online web tool uses SQLFlow API to generate the result. You can also build your own web tool with the help of SQLFlow REST API. Check this fantastic data visualization tool today!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Gudu SQLFlow is an analysis software for analyzing SQL statements and discovering data lineage relationships. It is often used with metadata management tools and is a basic tool for enterprise data governance. Check this introduction blog if you don&#8217;t know much about Gudu SQLFlow. Gudu SQLFlow has various functionalities for data lineage generation and it provides you different choices to visualize your data. SQLFlow REST API is one of the most commonly used features. Your data analysis result will be generated and returned from SQLFlow server by sending standard parameterized RESTFul Api request. Apart from report under Json, XML, CSV\u2026<\/p>\n","protected":false},"author":6,"featured_media":2729,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[66,93],"tags":[],"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>Visualize your data with SQLFlow REST API<\/title>\n<meta name=\"description\" content=\"Visualize your data; Generate data lineage from SQL file; Using SQLFlow REST API to get your data lineage;\" \/>\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\/visualize-your-data-with-sqlflow-rest-api\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Visualize your data with SQLFlow REST API\" \/>\n<meta property=\"og:description\" content=\"Visualize your data; Generate data lineage from SQL file; Using SQLFlow REST API to get your data lineage;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dpriver.com\/blog\/visualize-your-data-with-sqlflow-rest-api\/\" \/>\n<meta property=\"og:site_name\" content=\"SQL and Data Blog\" \/>\n<meta property=\"article:published_time\" content=\"2023-03-24T04:23:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-03-27T09:21:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/03\/Screenshot-2023-03-23-234514.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1395\" \/>\n\t<meta property=\"og:image:height\" content=\"1197\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"leo gu\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"leo gu\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 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\/visualize-your-data-with-sqlflow-rest-api\/\",\"url\":\"https:\/\/www.dpriver.com\/blog\/visualize-your-data-with-sqlflow-rest-api\/\",\"name\":\"Visualize your data with SQLFlow REST API\",\"isPartOf\":{\"@id\":\"https:\/\/www.dpriver.com\/blog\/#website\"},\"datePublished\":\"2023-03-24T04:23:32+00:00\",\"dateModified\":\"2023-03-27T09:21:18+00:00\",\"description\":\"Visualize your data; Generate data lineage from SQL file; Using SQLFlow REST API to get your data lineage;\",\"breadcrumb\":{\"@id\":\"https:\/\/www.dpriver.com\/blog\/visualize-your-data-with-sqlflow-rest-api\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dpriver.com\/blog\/visualize-your-data-with-sqlflow-rest-api\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/visualize-your-data-with-sqlflow-rest-api\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.dpriver.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Visualize your data with SQLFlow REST API\"}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/visualize-your-data-with-sqlflow-rest-api\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dpriver.com\/blog\/visualize-your-data-with-sqlflow-rest-api\/\"},\"author\":{\"name\":\"leo gu\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/#\/schema\/person\/9e80d249b6da4e572bd8590b0789bc14\"},\"headline\":\"Visualize your data with SQLFlow REST API\",\"datePublished\":\"2023-03-24T04:23:32+00:00\",\"dateModified\":\"2023-03-27T09:21:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dpriver.com\/blog\/visualize-your-data-with-sqlflow-rest-api\/\"},\"wordCount\":704,\"publisher\":{\"@id\":\"https:\/\/www.dpriver.com\/blog\/#organization\"},\"articleSection\":[\"Data Governance\",\"SQLFlow\"],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/#\/schema\/person\/9e80d249b6da4e572bd8590b0789bc14\",\"name\":\"leo gu\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dpriver.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/24976e2e4ca7dd476652bb26bd09392b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/24976e2e4ca7dd476652bb26bd09392b?s=96&d=mm&r=g\",\"caption\":\"leo gu\"},\"url\":\"https:\/\/www.dpriver.com\/blog\/author\/guyuanhao\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Visualize your data with SQLFlow REST API","description":"Visualize your data; Generate data lineage from SQL file; Using SQLFlow REST API to get your data lineage;","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\/visualize-your-data-with-sqlflow-rest-api\/","og_locale":"en_US","og_type":"article","og_title":"Visualize your data with SQLFlow REST API","og_description":"Visualize your data; Generate data lineage from SQL file; Using SQLFlow REST API to get your data lineage;","og_url":"https:\/\/www.dpriver.com\/blog\/visualize-your-data-with-sqlflow-rest-api\/","og_site_name":"SQL and Data Blog","article_published_time":"2023-03-24T04:23:32+00:00","article_modified_time":"2023-03-27T09:21:18+00:00","og_image":[{"width":1395,"height":1197,"url":"https:\/\/www.dpriver.com\/blog\/wp-content\/uploads\/2023\/03\/Screenshot-2023-03-23-234514.jpg","type":"image\/jpeg"}],"author":"leo gu","twitter_card":"summary_large_image","twitter_misc":{"Written by":"leo gu","Est. reading time":"5 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\/visualize-your-data-with-sqlflow-rest-api\/","url":"https:\/\/www.dpriver.com\/blog\/visualize-your-data-with-sqlflow-rest-api\/","name":"Visualize your data with SQLFlow REST API","isPartOf":{"@id":"https:\/\/www.dpriver.com\/blog\/#website"},"datePublished":"2023-03-24T04:23:32+00:00","dateModified":"2023-03-27T09:21:18+00:00","description":"Visualize your data; Generate data lineage from SQL file; Using SQLFlow REST API to get your data lineage;","breadcrumb":{"@id":"https:\/\/www.dpriver.com\/blog\/visualize-your-data-with-sqlflow-rest-api\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dpriver.com\/blog\/visualize-your-data-with-sqlflow-rest-api\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dpriver.com\/blog\/visualize-your-data-with-sqlflow-rest-api\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.dpriver.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Visualize your data with SQLFlow REST API"}]},{"@type":"Article","@id":"https:\/\/www.dpriver.com\/blog\/visualize-your-data-with-sqlflow-rest-api\/#article","isPartOf":{"@id":"https:\/\/www.dpriver.com\/blog\/visualize-your-data-with-sqlflow-rest-api\/"},"author":{"name":"leo gu","@id":"https:\/\/www.dpriver.com\/blog\/#\/schema\/person\/9e80d249b6da4e572bd8590b0789bc14"},"headline":"Visualize your data with SQLFlow REST API","datePublished":"2023-03-24T04:23:32+00:00","dateModified":"2023-03-27T09:21:18+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dpriver.com\/blog\/visualize-your-data-with-sqlflow-rest-api\/"},"wordCount":704,"publisher":{"@id":"https:\/\/www.dpriver.com\/blog\/#organization"},"articleSection":["Data Governance","SQLFlow"],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dpriver.com\/blog\/#\/schema\/person\/9e80d249b6da4e572bd8590b0789bc14","name":"leo gu","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dpriver.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/24976e2e4ca7dd476652bb26bd09392b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/24976e2e4ca7dd476652bb26bd09392b?s=96&d=mm&r=g","caption":"leo gu"},"url":"https:\/\/www.dpriver.com\/blog\/author\/guyuanhao\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/posts\/2726"}],"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\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/comments?post=2726"}],"version-history":[{"count":21,"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/posts\/2726\/revisions"}],"predecessor-version":[{"id":2778,"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/posts\/2726\/revisions\/2778"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/media\/2729"}],"wp:attachment":[{"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/media?parent=2726"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/categories?post=2726"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dpriver.com\/blog\/wp-json\/wp\/v2\/tags?post=2726"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}