{"id":6766,"date":"2026-07-12T02:08:25","date_gmt":"2026-07-12T10:08:25","guid":{"rendered":"https:\/\/www.gudusoft.com\/greenplum-data-lineage\/"},"modified":"2026-07-12T02:08:25","modified_gmt":"2026-07-12T10:08:25","slug":"greenplum-data-lineage","status":"publish","type":"page","link":"https:\/\/www.gudusoft.com\/fr\/lignee-de-donnees-de-prune-verte\/","title":{"rendered":"Greenplum Data Lineage\u00a0: Tra\u00e7abilit\u00e9 des colonnes pour les entrep\u00f4ts de donn\u00e9es MPP"},"content":{"rendered":"<p><strong>Tra\u00e7abilit\u00e9 des donn\u00e9es Greenplum<\/strong> Il s&#039;agit de la carte au niveau des colonnes de la fa\u00e7on dont les donn\u00e9es circulent dans un entrep\u00f4t Greenplum\u00a0: depuis les tables externes et les sch\u00e9mas de transit, en passant par les cha\u00eenes ELT INSERT-SELECT et les vues, jusqu&#039;aux tables de faits et de dimensions distribu\u00e9es que les rapports lisent. <a href=\"https:\/\/www.gudusoft.com\/fr\/outil-de-lignee-de-donnees-sql\/\">Gudu SQLFlow<\/a> il construit automatiquement cette carte en analysant votre SQL Greenplum avec un analyseur de dialecte Greenplum d\u00e9di\u00e9 \u2014 l&#039;un des 39 analyseurs sp\u00e9cifiques \u00e0 chaque dialecte qu&#039;il fournit \u2014 et en g\u00e9n\u00e9rant un diagramme interactif que vous pouvez suivre colonne par colonne.<\/p>\n\n\n\n<div class=\"wp-block-group alignfull has-background is-layout-constrained\" style=\"background-color:#eef7fb;padding-top:24px;padding-bottom:24px\"><div class=\"wp-block-group__inner-container\">\n\n<p><strong>Essayez-le maintenant\u00a0:<\/strong> collez n&#039;importe quelle requ\u00eate Greenplum ou DDL dans le <a href=\"https:\/\/sqlflow.gudusoft.com\/?utm_source=gudusoft&amp;utm_medium=website&amp;utm_campaign=greenplum-data-lineage\" target=\"_blank\" rel=\"noreferrer noopener\">Visualiseur de lign\u00e9es SQL en ligne gratuit<\/a>S\u00e9lectionnez le dialecte Greenplum et obtenez un diagramme de lignage au niveau des colonnes en quelques secondes.<\/p>\n\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Pourquoi la tra\u00e7abilit\u00e9 des donn\u00e9es Greenplum n\u00e9cessite un analyseur syntaxique d\u00e9di\u00e9<\/h2>\n\n\n\n<p>Greenplum est une base de donn\u00e9es MPP de la famille PostgreSQL, et la plupart de ses syntaxes de requ\u00eates seront famili\u00e8res \u00e0 quiconque conna\u00eet Postgres. Cependant, les \u00e9l\u00e9ments d&#039;une infrastructure Greenplum qui t\u00e9moignent le plus de son h\u00e9ritage sont pr\u00e9cis\u00e9ment ceux qui divergent de PostgreSQL standard\u00a0:<\/p>\n\n\n\n<ul><li><strong>Tables externes.<\/strong> <code>CR\u00c9ER UNE TABLE EXTERNE<\/code> avec <code>gpfdist<\/code> L&#039;emplacement des fichiers est la porte d&#039;entr\u00e9e standard pour l&#039;importation de donn\u00e9es dans Greenplum. Un analyseur syntaxique qui rencontre des difficult\u00e9s avec cette op\u00e9ration <code>EMPLACEMENT<\/code> et <code>FORMAT<\/code> Les clauses perdent le premier saut de chaque pipeline de chargement.<\/li>\n<li><strong>Cl\u00e9s de distribution.<\/strong> <code>DISTRIBU\u00c9 PAR<\/code> et <code>DISTRIBU\u00c9 AL\u00c9ATOIRE<\/code> Les clauses apparaissent dans presque toutes les d\u00e9finitions de tables. Les grammaires ANSI g\u00e9n\u00e9riques les rejettent, ce qui signifie qu&#039;elles rejettent votre DDL et donc qu&#039;il n&#039;y a aucune tra\u00e7abilit\u00e9 pour ces tables.<\/li>\n<li><strong>Cha\u00eenes ELT INSERT-SELECT.<\/strong> Les entrep\u00f4ts de donn\u00e9es Greenplum transforment g\u00e9n\u00e9ralement les donn\u00e9es au sein de la base de donn\u00e9es\u00a0: de la table de transit \u00e0 la table conforme, puis \u00e0 la table de faits, chaque \u00e9tape \u00e9tant une <code>INS\u00c9RER DANS ... S\u00c9LECTIONNER<\/code> avec des jointures, des conversions et des agr\u00e9gats. La tra\u00e7abilit\u00e9 doit \u00eatre \u00e9tablie \u00e0 chaque \u00e9tape de la cha\u00eene, et non calcul\u00e9e individuellement pour chaque instruction.<\/li><\/ul>\n\n\n\n<p>SQLFlow g\u00e8re les trois car sa prise en charge de Greenplum utilise un analyseur syntaxique de dialecte distinct, et non PostgreSQL avec suppression des erreurs. Le moteur sous-jacent est le <a href=\"https:\/\/www.sqlparser.com\/\">Analyseur SQL g\u00e9n\u00e9ral<\/a>, une interface de compilation SQL commerciale d\u00e9velopp\u00e9e depuis le milieu des ann\u00e9es 2000 et valid\u00e9e par rapport \u00e0 environ 13 600 jeux de tests SQL par dialecte.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Exemple concret\u00a0: chargement d\u2019une table externe dans une table de faits distribu\u00e9e<\/h2>\n\n\n\n<p>Voici une version condens\u00e9e du mod\u00e8le que suivent la plupart des pipelines de chargement de Greenplum. Les fichiers de commandes quotidiens arrivent via <code>gpfdist<\/code>, sont stock\u00e9es dans une table externe et sont fusionn\u00e9es dans une table de faits distribu\u00e9e sur <code>id_de_commande<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CR\u00c9ER UNE TABLE EXTERNE ext_stage.daily_orders ( order_id bigint, customer_id bigint, order_ts timestamp, amount numeric(12,2), channel text ) LOCATION (&#039;gpfdist:\/\/etl-host:8081\/daily_orders*.csv&#039;) FORMAT &#039;CSV&#039; (HEADER); CR\u00c9ER UNE TABLE dw.fact_orders ( order_id bigint, customer_sk bigint, order_date date, net_amount numeric(12,2) ) DISTRIBU\u00c9E PAR (order_id); INSERT INTO dw.fact_orders (order_id, customer_sk, order_date, net_amount) SELECT o.order_id, c.customer_sk, o.order_ts::date, o.amount - COALESCE(r.refund_amount, 0) FROM ext_stage.daily_orders o JOIN dw.dim_customer c ON c.customer_id = o.customer_id LEFT JOIN dw.stg_refunds r ON r.order_id = o.order_id WHERE o.channel &lt;&gt; &#039;test&#039;;<\/code><\/pre>\n\n\n\n<p>Ex\u00e9cutez ceci via SQLFlow et le diagramme montre, pour chaque colonne de <code>dw.fact_orders<\/code>, pr\u00e9cis\u00e9ment d&#039;o\u00f9 proviennent les donn\u00e9es et ce qui leur est arriv\u00e9 en cours de route\u00a0:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Colonne cible<\/th><th>Colonnes sources<\/th><th>Transformation<\/th><\/tr><\/thead><tbody>\n<tr><td><code>fact_commandes.id_commande<\/code><\/td><td><code>ext_stage.daily_orders.order_id<\/code><\/td><td>Copie directe<\/td><\/tr>\n<tr><td><code>commandes_clients.sk_client<\/code><\/td><td><code>dw.dim_customer.customer_sk<\/code><\/td><td>Directement, via rejoindre sur <code>identifiant_client<\/code><\/td><\/tr>\n<tr><td><code>fact_commandes.date_de_commande<\/code><\/td><td><code>ext_stage.daily_orders.order_ts<\/code><\/td><td>Casting to <code>date<\/code><\/td><\/tr>\n<tr><td><code>fact_orders.montant_net<\/code><\/td><td><code>montant des commandes quotidiennes<\/code>, <code>stg_refunds.montant_remboursement<\/code><\/td><td>Soustraction avec <code>SE FONDRE<\/code><\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<p>Notez ce qu&#039;une vue au niveau du tableau aurait masqu\u00e9\u00a0: <code>montant net<\/code> est aliment\u00e9e par deux tables diff\u00e9rentes, et la table externe <code>canal<\/code> Cette colonne n&#039;est jamais int\u00e9gr\u00e9e \u00e0 la table de faits, et pourtant elle d\u00e9termine quelles lignes y figurent. SQLFlow prend \u00e9galement en compte ce second type de relation.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Lign\u00e9e directe vs lign\u00e9e indirecte dans les cha\u00eenes ELT<\/h2>\n\n\n\n<p>Dans l&#039;exemple ci-dessus, <code>canal<\/code> n&#039;appara\u00eet que dans le <code>O\u00d9<\/code> la clause et les cl\u00e9s de jointure apparaissent uniquement dans <code>SUR<\/code> conditions. Aucune d&#039;entre elles n&#039;appara\u00eet dans le r\u00e9sultat, mais modifier l&#039;une d&#039;entre elles modifie les nombres dans <code>ordres de faits<\/code>SQLFlow mod\u00e9lise ces \u00e9l\u00e9ments comme <strong>lign\u00e9e indirecte (d&#039;impact)<\/strong>Il s&#039;agit d&#039;un type de relation distinct du flux de donn\u00e9es direct, et vous pouvez activer ou d\u00e9sactiver chaque relation ind\u00e9pendamment dans le diagramme. La plupart des outils de tra\u00e7abilit\u00e9 ne font pas cette distinction, ce qui signifie que leur analyse d&#039;impact passe \u00e0 c\u00f4t\u00e9 des d\u00e9pendances de filtrage et de jointure.<\/p>\n\n\n\n<p>Cela est d&#039;autant plus important dans Greenplum que dans la plupart des environnements, en raison de la profondeur des cha\u00eenes INSERT-SELECT. Une architecture typique empile les tables externes, les tables de transit, la couche de conformit\u00e9, la couche de faits et les vues de reporting les unes sur les autres. SQLFlow r\u00e9sout les r\u00e9f\u00e9rences de colonnes \u00e0 chaque \u00e9tape, y compris les CTE, les sous-requ\u00eates, les vues, etc. <code>S\u00c9LECTIONNER *<\/code> expansion, de sorte qu&#039;une trace provenant d&#039;une colonne de rapport remonte jusqu&#039;au flux de fichier source en un seul chemin continu.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Vous migrez depuis Greenplum\u00a0? Commencez par d\u00e9finir les d\u00e9pendances de la carte.<\/h2>\n\n\n\n<p>De nombreuses infrastructures Greenplum sont d\u00e9sormais candidates \u00e0 la migration vers des entrep\u00f4ts de donn\u00e9es cloud, et la principale source de d\u00e9passements de capacit\u00e9 lors de ces migrations r\u00e9side dans les d\u00e9pendances inconnues\u00a0: une vue non document\u00e9e, une table de transit consult\u00e9e discr\u00e8tement par trois utilisateurs, une colonne n\u00e9cessaire \u00e0 un rapport en aval et supprim\u00e9e par le nouveau mod\u00e8le. \u00c9laborer une cartographie des d\u00e9pendances avant la migration permet d&#039;\u00e9viter ces probl\u00e8mes en production.<\/p>\n\n\n\n<p>Un flux de travail de migration ax\u00e9 sur la lign\u00e9e avec SQLFlow ressemble \u00e0 ceci\u00a0:<\/p>\n\n\n\n<ol><li><strong>Scannez le domaine.<\/strong> Int\u00e9grez \u00e0 SQLFlow vos d\u00e9finitions DDL Greenplum, vos d\u00e9finitions de vues et vos scripts de chargement\u00a0: coll\u00e9s, import\u00e9s sous forme de fichiers ou r\u00e9cup\u00e9r\u00e9s en direct via JDBC. Les d\u00e9ploiements en entreprise effectuent des analyses par lots sur des parcs de plus de 100 bases de donn\u00e9es et plus d\u2019un million de colonnes, avec des analyses incr\u00e9mentales \u00e0 mesure que le code est modifi\u00e9.<\/li>\n<li><strong>Trouvez ce qui est r\u00e9ellement utilis\u00e9.<\/strong> La tra\u00e7abilit\u00e9 au niveau des colonnes s\u00e9pare les tables et les colonnes qui alimentent les sorties en direct de celles qui ne sont pas lues, vous permettant ainsi de migrer l&#039;entrep\u00f4t de donn\u00e9es r\u00e9el au lieu de vingt ans d&#039;accumulation.<\/li>\n<li><strong>S\u00e9quencez le mouvement.<\/strong> Le graphique de lignage vous donne l&#039;ordre de d\u00e9pendance\u00a0: quels domaines peuvent \u00e9voluer ind\u00e9pendamment et lesquels entra\u00eenent avec eux une cha\u00eene de flux en amont.<\/li>\n<li><strong>V\u00e9rifiez la cible.<\/strong> \u00c9tant donn\u00e9 que le m\u00eame moteur analyse le dialecte de destination (Snowflake, BigQuery, Redshift, Databricks et les 39 autres dialectes pris en charge), vous pouvez sch\u00e9matiser le SQL migr\u00e9 et comparer la lign\u00e9e avant et apr\u00e8s.<\/li><\/ol>\n\n\n\n<p>Les \u00e9quipes g\u00e9rant des environnements h\u00e9t\u00e9rog\u00e8nes utilisent la m\u00eame approche sur d&#039;autres plateformes MPP\u00a0: voir les pages associ\u00e9es. <a href=\"https:\/\/www.gudusoft.com\/fr\/lignee-de-donnees-teradata\/\">Tra\u00e7abilit\u00e9 des donn\u00e9es Teradata<\/a> et <a href=\"https:\/\/www.gudusoft.com\/fr\/lignee-de-donnees-vertica\/\">Lign\u00e9e des donn\u00e9es Vertica<\/a>Et comme Greenplum est d\u00e9riv\u00e9 de PostgreSQL, les environnements qui utilisent \u00e9galement PostgreSQL standard peuvent g\u00e9rer les deux avec un seul outil\u00a0: <a href=\"https:\/\/www.gudusoft.com\/fr\/lignee-de-donnees-postgresql\/\">Tra\u00e7abilit\u00e9 des donn\u00e9es PostgreSQL<\/a> Cette page d\u00e9taille les diff\u00e9rences.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Comment int\u00e9grer Greenplum SQL \u00e0 SQLFlow<\/h2>\n\n\n\n<ul><li><strong>Coller ou t\u00e9l\u00e9charger\u00a0:<\/strong> requ\u00eates individuelles, scripts ou lots de <code>.sql<\/code> fichiers dans le navigateur.<\/li>\n<li><strong>M\u00e9tadonn\u00e9es JDBC\u00a0:<\/strong> Se connecter \u00e0 Greenplum, extraire les d\u00e9finitions de tables et visualiser directement le SQL, afin que la tra\u00e7abilit\u00e9 refl\u00e8te ce qui est d\u00e9ploy\u00e9 plut\u00f4t que ce qui se trouve dans le d\u00e9p\u00f4t.<\/li>\n<li><strong>Ingestionneur Grabit :<\/strong> Extraction automatis\u00e9e des m\u00e9tadonn\u00e9es pour les analyses planifi\u00e9es et r\u00e9p\u00e9tables.<\/li>\n<li><strong>API REST et interface de ligne de commande\u00a0:<\/strong> analyse des performances \u00e0 partir de l&#039;int\u00e9gration continue ou d&#039;un pipeline d&#039;orchestration via le <a href=\"https:\/\/www.gudusoft.com\/fr\/api-restful-sqlflow\/\">API REST SQLFlow<\/a> ou l&#039;interface de ligne de commande sans interface graphique, et exporter les r\u00e9sultats au format JSON, CSV ou PNG.<\/li><\/ul>\n\n\n\n<p>L&#039;analyse est enti\u00e8rement statique et porte sur le texte SQL et les m\u00e9tadonn\u00e9es du sch\u00e9ma. SQLFlow ne lit jamais les lignes de vos tables, et l&#039;\u00e9dition sur site (Docker ou Kubernetes, compatible avec les environnements isol\u00e9s) conserve m\u00eame le texte SQL au sein de votre r\u00e9seau \u2013 un point crucial pour les secteurs r\u00e9glement\u00e9s o\u00f9 Greenplum est couramment utilis\u00e9. La tra\u00e7abilit\u00e9 peut \u00e9galement \u00eatre export\u00e9e vers DataHub, Microsoft Purview ou OpenMetadata si l&#039;un de ces catalogues constitue votre syst\u00e8me de r\u00e9f\u00e9rence.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Qu\u2019en est-il des outils de tra\u00e7abilit\u00e9 open source\u00a0?<\/h2>\n\n\n\n<p>Les analyseurs syntaxiques open source comme <code>SQL Lineage<\/code> et <code>sqlglot<\/code> Elles sont r\u00e9ellement utiles pour extraire les relations entre tables \u00e0 partir de requ\u00eates individuelles bien con\u00e7ues, et si tel est votre seul probl\u00e8me, elles peuvent suffire. Le probl\u00e8me appara\u00eet dans le code Greenplum en production\u00a0: <code>CR\u00c9ER UNE TABLE EXTERNE<\/code> et <code>DISTRIBU\u00c9 PAR<\/code> syntaxe, cha\u00eenes INSERT-SELECT \u00e0 sauts multiples n\u00e9cessitant une jonction entre instructions, <code>S\u00c9LECTIONNER *<\/code> L&#039;expansion n\u00e9cessite des m\u00e9tadonn\u00e9es de sch\u00e9ma, et la tra\u00e7abilit\u00e9 indirecte passe par des filtres et des jointures. Ex\u00e9cutez l&#039;un de vos scripts de chargement r\u00e9els avec les deux m\u00e9thodes et comparez les r\u00e9sultats\u00a0: ce test tranche la question plus rapidement que n&#039;importe quelle matrice de fonctionnalit\u00e9s.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Foire aux questions<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">SQLFlow prend-il en charge la syntaxe sp\u00e9cifique \u00e0 Greenplum, comme les tables externes et DISTRIBUTED BY\u00a0?<\/h3>\n\n\n<p>Oui. SQLFlow int\u00e8gre un analyseur syntaxique d\u00e9di\u00e9 au dialecte Greenplum, donc <code>CR\u00c9ER UNE TABLE EXTERNE<\/code>, <code>DISTRIBU\u00c9 PAR<\/code> Les clauses et autres DDL Greenplum sont analys\u00e9es correctement et participent au graphe de lignage au lieu de provoquer des erreurs.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Puis-je simplement utiliser le dialecte PostgreSQL pour Greenplum\u00a0?<\/h3>\n\n\n<p>Les requ\u00eates SELECT simples seront g\u00e9n\u00e9ralement analys\u00e9es, mais les instructions d\u00e9finissant vos pipelines de chargement (DDL des tables externes et d\u00e9finitions de tables distribu\u00e9es) sont sp\u00e9cifiques \u00e0 Greenplum. Utilisez le dialecte Greenplum pour que l&#039;ensemble de votre infrastructure soit analys\u00e9\u00a0; SQLFlow prend en charge les deux, assurant ainsi la compatibilit\u00e9 avec les environnements Greenplum et PostgreSQL.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">SQLFlow a-t-il besoin d&#039;acc\u00e9der aux donn\u00e9es de mes tables Greenplum\u00a0?<\/h3>\n\n\n<p>Non. SQLFlow effectue une analyse statique du code SQL et peut lire les m\u00e9tadonn\u00e9es du sch\u00e9ma via JDBC. Il ne lit jamais les lignes des tables, et l&#039;\u00e9dition sur site conserve l&#039;int\u00e9gralit\u00e9 du code SQL au sein de votre r\u00e9seau.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">SQLFlow peut-il aider \u00e0 planifier une migration de Greenplum vers le cloud\u00a0?<\/h3>\n\n\n<p>Oui. Analysez l&#039;environnement Greenplum pour obtenir le v\u00e9ritable graphe de d\u00e9pendances au niveau des colonnes, utilisez-le pour d\u00e9finir la port\u00e9e et la s\u00e9quence de la migration, puis sch\u00e9matisez le SQL migr\u00e9 sur la plateforme cible (Snowflake, BigQuery, Redshift, Databricks et 35 autres dialectes sont pris en charge par le m\u00eame moteur) afin de v\u00e9rifier qu&#039;aucune requ\u00eate n&#039;a \u00e9t\u00e9 orpheline.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Quel est le co\u00fbt de SQLFlow pour la lign\u00e9e Greenplum\u00a0?<\/h3>\n\n\n<p>SQLFlow Cloud propose une version gratuite\u00a0; la version Premium co\u00fbte 49,99\u00a0\u00a3\/mois. SQLFlow On-Premise co\u00fbte 500\u00a0\u00a3\/mois ou 4\u00a0800\u00a0\u00a3 (paiement unique) par type de base de donn\u00e9es s\u00e9lectionn\u00e9, et peut \u00eatre install\u00e9 sur deux serveurs. Voir <a href=\"https:\/\/www.gudusoft.com\/fr\/tarification\/\">tarification<\/a> pour plus de d\u00e9tails.<\/p>\n\n\n\n<div class=\"wp-block-group alignfull has-background is-layout-constrained\" style=\"background-color:#60d5f6;padding-top:32px;padding-bottom:32px\"><div class=\"wp-block-group__inner-container\">\n\n<h2 class=\"wp-block-heading\">D\u00e9couvrez d\u00e8s maintenant votre lign\u00e9e Greenplum<\/h2>\n\n\n<p>Collez un script de chargement Greenplum dans le visualiseur gratuit, ou contactez-nous pour analyser l&#039;ensemble de votre infrastructure avant le d\u00e9but de la migration.<\/p>\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:\/\/sqlflow.gudusoft.com\/?utm_source=gudusoft&amp;utm_medium=website&amp;utm_campaign=greenplum-data-lineage\" target=\"_blank\" rel=\"noreferrer noopener\">Essayez SQLFlow gratuitement<\/a><\/div>\n\n\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/www.gudusoft.com\/fr\/contact\/\">Demander une d\u00e9monstration pour entreprises<\/a><\/div>\n<\/div>\n\n<\/div><\/div>\n\n\n\n<script type=\"application\/ld+json\">{\n    \"@context\": \"https:\\\/\\\/schema.org\",\n    \"@graph\": [\n        {\n            \"@type\": \"SoftwareApplication\",\n            \"name\": \"Gudu SQLFlow\",\n            \"applicationCategory\": \"DeveloperApplication\",\n            \"applicationSubCategory\": \"SQL Data Lineage Tool\",\n            \"operatingSystem\": \"Web, Linux, Windows, macOS\",\n            \"url\": \"https:\\\/\\\/www.gudusoft.com\\\/greenplum-data-lineage\\\/\",\n            \"description\": \"Automated Greenplum data lineage: SQLFlow's dedicated Greenplum dialect parser maps column-level lineage through external tables, distributed tables, and INSERT-SELECT ELT chains.\",\n            \"featureList\": \"Greenplum dialect parser, column-level lineage, indirect\\\/impact lineage, external table and DISTRIBUTED BY support, JDBC metadata import, REST API, DataHub\\\/Purview\\\/OpenMetadata export\",\n            \"softwareVersion\": \"8.2.3\",\n            \"offers\": [\n                {\n                    \"@type\": \"Offer\",\n                    \"name\": \"SQLFlow Cloud Free\",\n                    \"price\": \"0\",\n                    \"priceCurrency\": \"USD\"\n                },\n                {\n                    \"@type\": \"Offer\",\n                    \"name\": \"SQLFlow Cloud Premium\",\n                    \"price\": \"49.99\",\n                    \"priceCurrency\": \"USD\",\n                    \"priceSpecification\": {\n                        \"@type\": \"UnitPriceSpecification\",\n                        \"price\": \"49.99\",\n                        \"priceCurrency\": \"USD\",\n                        \"billingIncrement\": 1,\n                        \"unitText\": \"MONTH\"\n                    }\n                },\n                {\n                    \"@type\": \"Offer\",\n                    \"name\": \"SQLFlow On-Premise\",\n                    \"price\": \"4800\",\n                    \"priceCurrency\": \"USD\"\n                }\n            ],\n            \"publisher\": {\n                \"@type\": \"Organization\",\n                \"name\": \"Gudu Software\",\n                \"url\": \"https:\\\/\\\/www.gudusoft.com\\\/\"\n            }\n        },\n        {\n            \"@type\": \"FAQPage\",\n            \"mainEntity\": [\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Does SQLFlow support Greenplum-specific syntax like external tables and DISTRIBUTED BY?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"Yes. SQLFlow ships a dedicated Greenplum dialect parser, so CREATE EXTERNAL TABLE, DISTRIBUTED BY clauses, and other Greenplum DDL parse cleanly and participate in the lineage graph rather than causing errors.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Can I just use the PostgreSQL dialect for Greenplum?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"Plain SELECT statements would mostly parse, but external table DDL and distributed table definitions are Greenplum-specific. Use the Greenplum dialect so the whole estate parses; SQLFlow supports both dialects.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Does SQLFlow need access to the data in my Greenplum tables?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"No. SQLFlow performs static analysis of SQL code and optionally reads schema metadata over JDBC. It never reads table rows, and the On-Premise edition keeps SQL text entirely inside your network.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Can SQLFlow help plan a Greenplum-to-cloud migration?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"Yes. Scan the Greenplum estate to get the true column-level dependency graph, use it to scope and sequence the migration, then diagram the migrated SQL on the target platform to verify nothing was orphaned. The same engine supports 39 dialects including Snowflake, BigQuery, Redshift, and Databricks.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"How much does SQLFlow cost for Greenplum lineage?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"SQLFlow Cloud has a free tier; premium is $49.99\\\/month. SQLFlow On-Premise is $500\\\/month or $4,800 one-time per selected database type, installable on two servers.\"\n                    }\n                }\n            ]\n        }\n    ]\n}<\/script>","protected":false},"excerpt":{"rendered":"<p>Greenplum data lineage is the column-level map of how data flows through a Greenplum warehouse: from external tables and staging schemas, through INSERT-SELECT ELT chains and views, into the distributed fact and dimension tables that reports read. Gudu SQLFlow builds that map automatically by parsing your Greenplum SQL with a dedicated Greenplum dialect parser \u2014 one of 39 dialect-specific parsers it ships \u2014 and rendering an interactive diagram you can trace column by column. Try it now: paste any Greenplum query or DDL into the free online SQL lineage visualizer, select the Greenplum dialect, and get a column-level lineage diagram\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\/fr\/wp-json\/wp\/v2\/pages\/6766"}],"collection":[{"href":"https:\/\/www.gudusoft.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.gudusoft.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.gudusoft.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gudusoft.com\/fr\/wp-json\/wp\/v2\/comments?post=6766"}],"version-history":[{"count":0,"href":"https:\/\/www.gudusoft.com\/fr\/wp-json\/wp\/v2\/pages\/6766\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.gudusoft.com\/fr\/wp-json\/wp\/v2\/media?parent=6766"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}