{"id":2963,"date":"2021-03-08T01:59:31","date_gmt":"2021-03-08T09:59:31","guid":{"rendered":"https:\/\/www.gudusoft.com\/?page_id=2963"},"modified":"2026-07-11T23:44:30","modified_gmt":"2026-07-12T07:44:30","slug":"python-data-lineage","status":"publish","type":"page","link":"https:\/\/www.gudusoft.com\/ko\/%ed%8c%8c%ec%9d%b4%ec%8d%ac-%eb%8d%b0%ec%9d%b4%ed%84%b0-%ea%b3%84%eb%b3%b4\/","title":{"rendered":"\ub370\uc774\ud130 \uacc4\ubcf4\ub97c \ubc1c\uacac\ud558\ub294 \uac83\uc774 \uadf8 \uc5b4\ub290 \ub54c\ubcf4\ub2e4 \uc26c\uc6cc\uc84c\uc2b5\ub2c8\ub2e4."},"content":{"rendered":"<h3>Python \ub370\uc774\ud130 \uacc4\ubcf4(Python\uc6a9 Gudu SQLFlow Lite \ubc84\uc804)<\/h3>\n<p>Python \ub370\uc774\ud130 \uacc4\ubcf4 \ud328\ud0a4\uc9c0(Python\uc6a9 Gudu SQLFlow Lite \ubc84\uc804\uc774\ub77c\uace0\ub3c4 \ud568)\ub294 \ub2e4\uc591\ud55c \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc758 SQL \ubb38\uacfc \uc800\uc7a5 \ud504\ub85c\uc2dc\uc800\ub97c \ubd84\uc11d\ud558\uc5ec \ubcf5\uc7a1\ud55c \uc815\ubcf4\ub97c \uc5bb\ub294 \ub370 \uc0ac\uc6a9\ub418\ub294 \ub3c4\uad6c \uc138\ud2b8\uc785\ub2c8\ub2e4. <a href=\"https:\/\/en.wikipedia.org\/wiki\/Data_lineage\">\ub370\uc774\ud130 \uacc4\ubcf4<\/a>\u00a0 \uad00\uacc4\ub97c \ud30c\uc545\ud558\uace0 \uc2dc\uac01\ud654\ud558\uc138\uc694.<\/p>\n<p><a href=\"https:\/\/github.com\/sqlparser\/python_data_lineage\" rel=\"nofollow\">Python\uc6a9 Gudu SQLFlow Lite \ubc84\uc804<\/a> Python \uac1c\ubc1c\uc790\ub294 \ub370\uc774\ud130 \uacc4\ubcf4 \ubd84\uc11d \ubc0f \uc2dc\uac01\ud654 \uae30\ub2a5\uc744 Python \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0 \uc2e0\uc18d\ud558\uac8c \ud1b5\ud569\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub610\ud55c \ub370\uc774\ud130 \uacfc\ud559\uc790\ub294 \uc77c\uc0c1 \uc5c5\ubb34\uc5d0\uc11c \ub300\uaddc\ubaa8 \ub370\uc774\ud130 \ud50c\ub7ab\ud3fc\uc758 \ub370\uc774\ud130 \ubcc0\ud658\uc744 \uc218\ud589\ud558\ub294 ETL \uc791\uc5c5\uc5d0 \uc77c\ubc18\uc801\uc73c\ub85c \uc0ac\uc6a9\ub418\ub294 \ubcf5\uc7a1\ud55c SQL \uc2a4\ud06c\ub9bd\ud2b8\uc5d0\uc11c \ub370\uc774\ud130 \uacc4\ubcf4\ub97c \uc2e0\uc18d\ud558\uac8c \ud30c\uc545\ud558\ub294 \ub370\uc5d0\ub3c4 \ud65c\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>Gudu SQLFlow Lite \ud30c\uc774\uc36c \ubc84\uc804\uc740 \ube44\uc0c1\uc5c5\uc801 \uc6a9\ub3c4\ub85c\ub294 \ubb34\ub8cc\uc774\uba70, \uc800\uc7a5 \ud504\ub85c\uc2dc\uc800\ub97c \ud3ec\ud568\ud558\uc5ec \ucd5c\ub300 10KB \uae38\uc774\uc758 \ubcf5\uc7a1\ud55c SQL \ubb38\uc744 \ucc98\ub9ac\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. Oracle, DB2, Snowflake, Redshift, Postgres \ub4f1 20\uac1c \uc774\uc0c1\uc758 \uc8fc\uc694 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uacf5\uae09\uc5c5\uccb4\uc758 SQL \uc5b8\uc5b4\ub97c \uc9c0\uc6d0\ud569\ub2c8\ub2e4.<\/p>\n<p>Python\uc6a9 Gudu SQLFlow Lite \ubc84\uc804\uc5d0\ub294 \ub2e4\uc74c\uc774 \ud3ec\ud568\ub429\ub2c8\ub2e4. <a href=\"https:\/\/www.gudusoft.com\/ko\/sqlflow-java-library-2\/\">\uc790\ubc14 \ub77c\uc774\ube0c\ub7ec\ub9ac<\/a> \ubcf5\uc7a1\ud55c SQL \ubb38\uacfc \uc800\uc7a5 \ud504\ub85c\uc2dc\uc800\ub97c \ubd84\uc11d\ud558\uc5ec \ub370\uc774\ud130 \uacc4\ubcf4 \uad00\uacc4\ub97c \uac80\uc0c9\ud558\uae30 \uc704\ud574 <a href=\"https:\/\/github.com\/sqlparser\/python_data_lineage\/blob\/main\/dlineage.py\">\ud30c\uc774\uc36c \ud30c\uc77c<\/a> Java \ub77c\uc774\ube0c\ub7ec\ub9ac\uc758 API\ub97c \ud638\ucd9c\ud558\uae30 \uc704\ud574 jpype\ub97c \ud65c\uc6a9\ud558\uace0 <a href=\"https:\/\/docs.gudusoft.com\/4.-sqlflow-widget\/get-started\">JavaScript \ub77c\uc774\ube0c\ub7ec\ub9ac<\/a> \ub370\uc774\ud130 \uacc4\ubcf4 \uad00\uacc4\ub97c \uc2dc\uac01\ud654\ud558\uae30 \uc704\ud574.<\/p>\n<p>Python\uc6a9 Gudu SQLFlow Lite \ubc84\uc804\uc740 \ud14c\uc774\ube14\uacfc \uc5f4 \uc81c\uc57d \uc870\uac74, \ud14c\uc774\ube14\uacfc \ud544\ub4dc \uac04\uc758 \uad00\uacc4\ub3c4 \uc790\ub3d9\uc73c\ub85c \ucd94\ucd9c\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/docs.gudusoft.com\/6.-sqlflow-ingester\/introduction\">\ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0\uc11c \ub0b4\ubcf4\ub0b8 DDL \uc2a4\ud06c\ub9bd\ud2b8 <\/a>ER \ub2e4\uc774\uc5b4\uadf8\ub7a8\uc744 \uc0dd\uc131\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n\n<h3>\ub370\uc774\ud130 \uacc4\ud1b5\uc744 \uc790\ub3d9\uc73c\ub85c \uc2dc\uac01\ud654<\/h3>\n\n\n\n<div>\ub2e4\uc74c \uba85\ub839\uc744 \uc2e4\ud589\ud558\uba74:<\/div>\n<div><\/div>\n\n\n\n\n<pre class=\"wp-block-code\"><code>python dlineage.py \/t oracle \/f test.sql \/graph<\/code><\/pre>\n\n\n\n<p>\ub2e4\uc74c Oracle SQL \ubb38\uc5d0 \ud3ec\ud568\ub41c \ub370\uc774\ud130 \uacc4\ubcf4 \uad00\uacc4\ub97c \uc790\ub3d9\uc73c\ub85c \uc5bb\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE VIEW vsal AS SELECT a.deptno &quot;\ubd80\uc11c&quot;, a.num_emp \/ b.total_count &quot;\uc9c1\uc6d0 \uc218&quot;, a.sal_sum \/ b.total_sal &quot;\uae09\uc5ec&quot; FROM (SELECT deptno, Count() num_emp, SUM(sal) sal_sum FROM scott.emp WHERE city = &#039;NYC&#039; GROUP BY deptno) a, (SELECT Count() total_count, SUM(sal) total_sal FROM scott.emp WHERE city = &#039;NYC&#039;) b ; OTtl\uc774 100000 \ubbf8\ub9cc\uc778 \uacbd\uc6b0 \ubaa8\ub4e0 \ud56d\ubaa9\uc744 small_orders \ud14c\uc774\ube14\uc5d0 oid, ottl, sid, cid \uac12\uc73c\ub85c \uc0bd\uc785\ud569\ub2c8\ub2e4. OTtl\uc774 100000 \uc774\uc0c1 200000 \ubbf8\ub9cc\uc778 \uacbd\uc6b0 medium_orders \ud14c\uc774\ube14\uc5d0 oid, ottl, sid, cid \uac12\uc73c\ub85c \uc0bd\uc785\ud569\ub2c8\ub2e4. OTtl\uc774 200000 \uc774\uc0c1\uc778 \uacbd\uc6b0 large_orders \ud14c\uc774\ube14\uc5d0 oid, ottl, sid, cid \uac12\uc73c\ub85c \uc0bd\uc785\ud569\ub2c8\ub2e4. OTtl\uc774 290000 \uc774\uc0c1\uc778 \uacbd\uc6b0 special_orders \ud14c\uc774\ube14\uc5d0 o.order_id oid, o.customer_id cid, o.order_total ottl, o.sales_rep_id sid, c.credit_limit cl, c.cust_email cem \uac12\uc744 orders o, customers c \ud14c\uc774\ube14\uc5d0\uc11c o.customer_id = c.customer_id\uc778 \ud56d\ubaa9\uc744 \ubaa8\ub450 \uc0bd\uc785\ud569\ub2c8\ub2e4.<\/code><\/pre>\n\n\n\n<p>\uadf8\ub9ac\uace0 \uadf8\uac83\uc744 \ub2e4\uc74c\uacfc \uac19\uc774 \uc2dc\uac01\ud654\ud574 \ubcf4\uc138\uc694.<\/p>\n\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.gudusoft.com\/wp-content\/uploads\/2024\/01\/oracle_data_lineage-1024x719.png\" alt=\"\" \/><\/figure>\n\n\n\n<h3>Python \ub370\uc774\ud130 \uacc4\ubcf4 \ud328\ud0a4\uc9c0 \uae30\ub2a5:<\/h3>\n\n\n\n<ul>\n<li>\ub300\ud654\ud615 \ub370\uc774\ud130 \uacc4\ubcf4 \uc2dc\uac01\ud654 \uc0dd\uc131<\/li>\n\n\n<li>JSON\/CSV\/GRAPHML\ub85c \ub370\uc774\ud130 \uacc4\ubcf4 \uc0dd\uc131<\/li>\n\n\n<li>20\uac1c \uc774\uc0c1\uc758 \uc8fc\uc694 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uacf5\uae09\uc5c5\uccb4\uc758 SQL \uc9c0\uc6d0<\/li>\n\n<\/ul>\n\n\n\n<h2 style=\"text-align: center;\">\ud30c\uc774\uc36c \ub370\uc774\ud130 \uacc4\ubcf4 \ub3c4\uad6c\uc758 \uc791\ub3d9 \ubc29\uc2dd<\/h2>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.gudusoft.com\/wp-content\/uploads\/2021\/03\/python-data-lineage-overview-e1615281779694.png\" alt=\"\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>\uc774\uc81c \uc704\uc758 \ubaa8\ub4e0 \uad6c\uc131 \uc694\uc18c\uac00 Github\uc758 \ub2e8\uc77c \uc800\uc7a5\uc18c\uc5d0 \ud328\ud0a4\uc9d5\ub418\uc5c8\uc73c\uba70, \uac04\ub2e8\ud788 \ubcf5\uc81c\ud558\uba74 \ubb34\ub8cc\ub85c \uc5bb\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n\n<pre class=\"wp-block-code\"><code>git clone https:\/\/github.com\/sqlparser\/python_data_lineage.git<\/code><\/pre>\n\n\n\n<p>\u2013 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc5f0\uacb0\uc774 \ud544\uc694 \uc5c6\uc2b5\ub2c8\ub2e4.<br \/>\n\u2013 \uc778\ud130\ub137 \uc5f0\uacb0\uc774 \ud544\uc694\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc774 Python \ub370\uc774\ud130 \uacc4\ubcf4 \ud328\ud0a4\uc9c0\ub97c \ub85c\uceec\uc5d0\uc11c \uc2e4\ud589\ud558\ub824\uba74 JDK\uc640 Python \uc778\ud130\ud504\ub9ac\ud130\ub9cc \uc788\uc73c\uba74 \ub429\ub2c8\ub2e4.<\/p>\n\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/github.com\/sqlparser\/python_data_lineage\">\uc9c0\uae08 github repo\ub85c \uc774\ub3d9\ud558\uc138\uc694<\/a><\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Python Data Lineage (Gudu SQLFlow Lite version for python) Python data lineage package (aka Gudu SQLFlow Lite version for python) is a tool set used to analyze SQL statements and stored procedures of various databases to obtain complex data lineage\u00a0 relationships and visualize them. Gudu SQLFlow Lite version for python allows Python developers to quickly integrate data lineage analysis and visualization capabilities into their own Python applications. It can also be used in daily work by data scientists to quickly discover data lineage from complex SQL scripts that usually used in ETL jobs do the data transform in a huge\u2026<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":5}},"_links":{"self":[{"href":"https:\/\/www.gudusoft.com\/ko\/wp-json\/wp\/v2\/pages\/2963"}],"collection":[{"href":"https:\/\/www.gudusoft.com\/ko\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.gudusoft.com\/ko\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.gudusoft.com\/ko\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gudusoft.com\/ko\/wp-json\/wp\/v2\/comments?post=2963"}],"version-history":[{"count":45,"href":"https:\/\/www.gudusoft.com\/ko\/wp-json\/wp\/v2\/pages\/2963\/revisions"}],"predecessor-version":[{"id":6663,"href":"https:\/\/www.gudusoft.com\/ko\/wp-json\/wp\/v2\/pages\/2963\/revisions\/6663"}],"wp:attachment":[{"href":"https:\/\/www.gudusoft.com\/ko\/wp-json\/wp\/v2\/media?parent=2963"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}