{"id":6762,"date":"2026-07-12T02:07:45","date_gmt":"2026-07-12T10:07:45","guid":{"rendered":"https:\/\/www.gudusoft.com\/trino-data-lineage\/"},"modified":"2026-07-12T02:07:45","modified_gmt":"2026-07-12T10:07:45","slug":"trino-data-lineage","status":"publish","type":"page","link":"https:\/\/www.gudusoft.com\/fr\/lignee-de-donnees-trino\/","title":{"rendered":"Tra\u00e7abilit\u00e9 des donn\u00e9es Trino et Presto\u00a0: Tra\u00e7abilit\u00e9 des colonnes dans SQL f\u00e9d\u00e9r\u00e9"},"content":{"rendered":"<p><strong>Tra\u00e7abilit\u00e9 des donn\u00e9es Trino<\/strong> Il s&#039;agit de la cartographie au niveau des colonnes du flux de donn\u00e9es dans Trino (et Presto) SQL\u00a0: quelles colonnes sources, dans quels catalogues, alimentent chaque colonne de sortie, et par quels jointures, fonctions et filtres. Trino \u00e9tant un moteur de requ\u00eates f\u00e9d\u00e9r\u00e9, une seule instruction peut lire \u00e0 partir de <code>ruche<\/code>, <code>postgresql<\/code>, et <code>iceberg<\/code> catalogues simultan\u00e9ment \u2014 une lign\u00e9e pr\u00e9cise doit donc r\u00e9soudre chaque colonne jusqu&#039;\u00e0 sa qualification compl\u00e8te <code>catalogue.sch\u00e9ma.table.colonne<\/code> une identit\u00e9, et pas seulement un nom de table. <a href=\"https:\/\/www.gudusoft.com\/fr\/outil-de-lignee-de-donnees-sql\/\">Gudu SQLFlow<\/a> Il utilise pour cela des analyseurs syntaxiques d\u00e9di\u00e9s aux dialectes Trino et Presto.<\/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>V\u00e9rifiez-le sur votre propre SQL\u00a0:<\/strong> collez une requ\u00eate Trino f\u00e9d\u00e9r\u00e9e dans le <a href=\"https:\/\/sqlflow.gudusoft.com\/?utm_source=gudusoft&amp;utm_medium=website&amp;utm_campaign=trino-data-lineage\" target=\"_blank\" rel=\"noreferrer noopener\">Visualiseur de lignage SQLFlow gratuit<\/a>S\u00e9lectionnez le dialecte Trino ou Presto et obtenez un diagramme interactif au niveau des colonnes.<\/p>\n\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Pourquoi la f\u00e9d\u00e9ration complique la tra\u00e7abilit\u00e9 des donn\u00e9es Trino<\/h2>\n\n\n\n<p>Dans un entrep\u00f4t de donn\u00e9es classique, la tra\u00e7abilit\u00e9 est assur\u00e9e par une seule base de donn\u00e9es\u00a0: chaque table d&#039;une requ\u00eate appartient au m\u00eame syst\u00e8me et son nom, compos\u00e9 de deux parties, est utilis\u00e9 pour la tra\u00e7abilit\u00e9. <code>commandes de ventes<\/code> est sans ambigu\u00eft\u00e9. Trino remet en cause cette hypoth\u00e8se. Son objectif principal est de fusionner des donn\u00e9es. <em>\u00e0 travers<\/em> Des syst\u00e8mes tels qu&#039;une table Hive sur S3, une base de donn\u00e9es op\u00e9rationnelle PostgreSQL et une table Iceberg Lakehouse peuvent toutes appara\u00eetre dans le m\u00eame syst\u00e8me. <code>S\u00c9LECTIONNER<\/code>.<\/p>\n\n\n\n<p>Cela cr\u00e9e trois probl\u00e8mes que la plupart des outils de lignage g\u00e8rent mal\u00a0:<\/p>\n\n\n\n<ul><li><strong>Conflits de noms entre les catalogues.<\/strong> <code>commandes de ventes de ruche<\/code> et <code>commandes de ventes postgresql<\/code> Il s&#039;agit de tables physiques distinctes dans des syst\u00e8mes diff\u00e9rents. Une analyse de lignage qui supprime le qualificateur de catalogue les fusionne en un seul n\u0153ud, et toute analyse d&#039;impact en aval bas\u00e9e sur ce n\u0153ud est erron\u00e9e.<\/li>\n<li><strong>Qualification partielle.<\/strong> Les requ\u00eates r\u00e9elles utilisent rarement des noms en trois parties partout. Elles s&#039;appuient sur le catalogue et le sch\u00e9ma par d\u00e9faut de la session, les alias, et <code>UTILISER<\/code> Le r\u00e9solveur doit reconstruire l&#039;identit\u00e9 compl\u00e8te de chaque r\u00e9f\u00e9rence de colonne \u00e0 partir de ce contexte.<\/li>\n<li><strong>Fronti\u00e8res intersyst\u00e8mes dans une seule d\u00e9claration.<\/strong> Un <code>INS\u00c9RER DANS L&#039;iceberg....<\/code> qui s\u00e9lectionne des donn\u00e9es provenant de Hive et PostgreSQL est un d\u00e9placement de donn\u00e9es <em>entre trois syst\u00e8mes<\/em> Exprim\u00e9e en une seule instruction, la tra\u00e7abilit\u00e9 au niveau de la table indique les syst\u00e8mes concern\u00e9s\u00a0; seule la tra\u00e7abilit\u00e9 au niveau de la colonne indique quelle colonne PostgreSQL s\u2019est retrouv\u00e9e dans quelle colonne Iceberg.<\/li><\/ul>\n\n\n\n<p>Le r\u00e9solveur s\u00e9mantique de SQLFlow conserve l&#039;int\u00e9gralit\u00e9 <code>catalogue.sch\u00e9ma.table.colonne<\/code> Un chemin est pr\u00e9sent sur chaque n\u0153ud du graphe de lignage, afin que les colonnes inter-catalogues restent distinctes et tra\u00e7ables de bout en bout.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Exemple concret\u00a0: cible Iceberg, sources Hive et PostgreSQL<\/h2>\n\n\n\n<p>Voici un exemple typique d&#039;\u00e9criture f\u00e9d\u00e9r\u00e9e\u00a0: la cr\u00e9ation d&#039;une table de valeur client dans un catalogue Iceberg \u00e0 partir d&#039;une base de donn\u00e9es PostgreSQL op\u00e9rationnelle jointe \u00e0 l&#039;historique des commandes Hive\u00a0:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>INSERT INTO iceberg.analytics.customer_value SELECT c.customer_id, lower(c.email) AS email, sum(o.order_total) AS lifetime_value, count(*) AS order_count FROM postgresql.crm.customers AS c JOIN hive.sales.orders AS o ON c.customer_id = o.customer_id WHERE o.order_status = &#039;COMPLETED&#039; GROUP BY c.customer_id, lower(c.email);<\/code><\/pre>\n\n\n\n<p>Ex\u00e9cutez ce code via SQLFlow avec le dialecte Trino s\u00e9lectionn\u00e9 et le diagramme affiche, pour chaque colonne de sortie\u00a0:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Colonne cible (iceberg.analytics.customer_value)<\/th><th>Colonne source<\/th><th>Relation<\/th><\/tr><\/thead><tbody>\n<tr><td><code>identifiant_client<\/code><\/td><td><code>postgresql.crm.clients.customer_id<\/code><\/td><td>Direct, transit<\/td><\/tr>\n<tr><td><code>e-mail<\/code><\/td><td><code>postgresql.crm.clients.email<\/code><\/td><td>Directement, par <code>inf\u00e9rieur()<\/code><\/td><\/tr>\n<tr><td><code>valeur_de_vie<\/code><\/td><td><code>hive.sales.orders.order_total<\/code><\/td><td>Directement, par <code>somme()<\/code><\/td><\/tr>\n<tr><td><code>nombre_de_commandes<\/code><\/td><td><code>commandes de ventes de ruche<\/code> rang\u00e9es<\/td><td>Directement, par <code>compter(*)<\/code><\/td><\/tr>\n<tr><td>toutes les colonnes<\/td><td><code>hive.sales.orders.order_status<\/code><\/td><td>Indirect (filtre WHERE)<\/td><\/tr>\n<tr><td>toutes les colonnes<\/td><td><code>o.customer_id<\/code> \/ <code>c.customer_id<\/code><\/td><td>Indirect (condition JOIN, GROUP BY)<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<p>Notez les deux derni\u00e8res lignes. <code>statut de la commande<\/code> n&#039;appara\u00eet jamais dans le r\u00e9sultat, mais modifier la fa\u00e7on dont il est rempli modifie chaque nombre dans <code>valeur_client<\/code>SQLFlow mod\u00e9lise cela comme <strong>lign\u00e9e indirecte (d&#039;impact)<\/strong>Il existe un type de relation distinct et activable, parall\u00e8le au flux de donn\u00e9es direct. La plupart des outils de tra\u00e7abilit\u00e9 ne font pas cette distinction, or cette information est essentielle avant de modifier une colonne de filtre dans une table Hive partag\u00e9e.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Trino et Presto sont des dialectes diff\u00e9rents\u00a0; SQLFlow analyse les deux.<\/h2>\n\n\n\n<p>Trino est issu d&#039;une branche de Presto (sous le nom de PrestoSQL) et a \u00e9t\u00e9 renomm\u00e9 en 2020\u00a0; depuis, les deux dialectes ont diverg\u00e9. SQLFlow est fourni avec <strong>des analyseurs syntaxiques distincts sp\u00e9cifiques au dialecte pour Trino et pour Presto<\/strong>Parmi ses 39 dialectes pris en charge, aucun n&#039;est une grammaire ANSI g\u00e9n\u00e9rique avec un indicateur de compatibilit\u00e9. Si votre infrastructure ex\u00e9cute PrestoDB en parall\u00e8le d&#039;un cluster Trino plus r\u00e9cent, vous s\u00e9lectionnez le dialecte correspondant pour chaque source et les deux seront analys\u00e9es correctement.<\/p>\n\n\n\n<p>Les analyseurs syntaxiques proviennent du General SQL Parser (GSP), un compilateur SQL commercial frontal d\u00e9velopp\u00e9 depuis le milieu des ann\u00e9es 2000 et valid\u00e9 \u00e0 l&#039;aide d&#039;environ 13\u00a0600 jeux de tests par dialecte. GSP construit un mod\u00e8le s\u00e9mantique complet de chaque instruction, r\u00e9solvant les r\u00e9f\u00e9rences de colonnes via les CTE, les sous-requ\u00eates, les vues, etc. <code>S\u00c9LECTIONNER *<\/code> L&#039;expansion \u2013 et son analyseur de flux de donn\u00e9es extrait les relations source-cible. L&#039;expansion stellaire est plus importante \u00e0 Trino que presque partout ailleurs\u00a0: <code>S\u00c9LECTIONNER *<\/code> Une jointure f\u00e9d\u00e9r\u00e9e extrait des colonnes de plusieurs syst\u00e8mes, et son expansion correcte n\u00e9cessite les m\u00e9tadonn\u00e9es de sch\u00e9ma de chaque catalogue, que SQLFlow peut ing\u00e9rer en m\u00eame temps que le SQL.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Comment g\u00e9n\u00e9rer la lign\u00e9e Trino avec SQLFlow<\/h2>\n\n\n\n<ol><li><strong>R\u00e9cup\u00e9rez le SQL.<\/strong> Paste individual queries, upload files of ETL scripts and view definitions, or pull metadata over JDBC. For whole-estate coverage, the Grabit\/SQLFlow-ingester utility extracts metadata in batch.<\/li>\n<li><strong>Choisissez le dialecte.<\/strong> Trino ou Presto, selon la source. Si le m\u00eame pipeline contient \u00e9galement des t\u00e2ches Hive DDL ou Spark SQL, analysez chacune dans son propre dialecte\u00a0; SQLFlow les prend tous en charge, et les d\u00e9ploiements en entreprise stockent les r\u00e9sultats dans un r\u00e9f\u00e9rentiel de lignage persistant.<\/li>\n<li><strong>Explorez et exportez.<\/strong> Explorez n&#039;importe quelle colonne en amont ou en aval dans le diagramme interactif, activez ou d\u00e9sactivez la tra\u00e7abilit\u00e9 indirecte et exportez au format JSON, CSV ou PNG, ou interrogez le graphique via l&#039;API REST. Depuis la version 8.2.3, vous pouvez \u00e9galement poser des questions en langage naturel (\u00ab\u00a0quelles tables Iceberg d\u00e9pendent de\u2026\u00a0\u00bb). <code>postgresql.crm.clients.email<\/code>?); chaque tableau et chaque colonne de la r\u00e9ponse de l&#039;IA est valid\u00e9e par rapport au graphique analys\u00e9 avant d&#039;\u00eatre affich\u00e9e.<\/li><\/ol>\n\n\n\n<p>\u00c0 l&#039;\u00e9chelle de l&#039;entreprise, SQLFlow analyse par lots des ensembles de plus de 100 bases de donn\u00e9es et plus d&#039;un million de colonnes, effectue des analyses incr\u00e9mentales, conserve un r\u00e9f\u00e9rentiel de lignage persistant et exporte vers DataHub, Microsoft Purview et OpenMetadata \u2014 de sorte que le lignage Trino se retrouve dans le catalogue que votre \u00e9quipe utilise d\u00e9j\u00e0.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Analyse SQL statique vs. tra\u00e7abilit\u00e9 des \u00e9v\u00e9nements en temps r\u00e9el<\/h2>\n\n\n\n<p>L&#039;autre m\u00e9thode courante pour obtenir la tra\u00e7abilit\u00e9 des requ\u00eates Trino consiste \u00e0 effectuer une capture d&#039;ex\u00e9cution\u00a0: intercepter les \u00e9v\u00e9nements de requ\u00eate du moteur et g\u00e9n\u00e9rer la tra\u00e7abilit\u00e9 de chaque instruction ex\u00e9cut\u00e9e (l&#039;\u00e9cosyst\u00e8me OpenLineage fonctionne ainsi). La capture d&#039;ex\u00e9cution est particuli\u00e8rement efficace pour enregistrer les op\u00e9rations r\u00e9ellement ex\u00e9cut\u00e9es, avec le contexte de session r\u00e9el. Ses limites r\u00e9sident dans sa couverture et sa profondeur\u00a0: elle ne prend en compte que les requ\u00eates ex\u00e9cut\u00e9es pendant la fen\u00eatre de capture et n\u00e9cessite l&#039;instrumentation de chaque cluster.<\/p>\n\n\n\n<p>L&#039;analyse statique, l&#039;approche de SQLFlow, analyse directement le code SQL. Cela inclut les t\u00e2ches planifi\u00e9es non encore ex\u00e9cut\u00e9es, les d\u00e9finitions de vues et le code du r\u00e9f\u00e9rentiel en cours de r\u00e9vision\u00a0; elle ne n\u00e9cessite aucun agent sur le cluster et ne lit jamais les donn\u00e9es des lignes de table. Dans les environnements r\u00e9glement\u00e9s, <a href=\"https:\/\/www.gudusoft.com\/fr\/sqlflow-on-premise-version\/\">\u00c9dition sur site<\/a> (Docker\/Kubernetes) conserve m\u00eame le texte SQL au sein de votre r\u00e9seau. De nombreuses \u00e9quipes utilisent les deux m\u00e9thodes\u00a0: la surveillance des \u00e9v\u00e9nements d\u2019ex\u00e9cution pour le suivi op\u00e9rationnel et l\u2019analyse statique pour une analyse d\u2019impact compl\u00e8te avant d\u00e9ploiement.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Lign\u00e9e \u00e0 travers le reste de la pile<\/h2>\n\n\n\n<p>Trino ne donne que rarement une image compl\u00e8te. Les tables Hive qu&#039;il interroge ont g\u00e9n\u00e9ralement \u00e9t\u00e9 charg\u00e9es par des t\u00e2ches Hive ou Spark, et les r\u00e9sultats alimentent souvent des entrep\u00f4ts de donn\u00e9es en aval. SQLFlow analyse ces couches avec le m\u00eame moteur\u00a0; consultez les guides d\u00e9di\u00e9s. <a href=\"https:\/\/www.gudusoft.com\/fr\/lignee-des-donnees-de-la-ruche\/\">Tra\u00e7abilit\u00e9 des donn\u00e9es de la ruche<\/a> et <a href=\"https:\/\/www.gudusoft.com\/fr\/clickhouse-data-lineage\/\">Tra\u00e7abilit\u00e9 des donn\u00e9es ClickHouse<\/a>, ou la totalit\u00e9 <a href=\"https:\/\/www.gudusoft.com\/fr\/outil-de-lignee-de-donnees-sql\/\">Pr\u00e9sentation de l&#039;outil de tra\u00e7abilit\u00e9 des donn\u00e9es SQL<\/a> Couvrant l&#039;ensemble des 39 dialectes, et gr\u00e2ce \u00e0 l&#039;analyse de chaque couche dans le r\u00e9f\u00e9rentiel de lignage persistant, vous pouvez retracer une colonne depuis la t\u00e2che Spark qui a \u00e9crit la table Hive, en passant par la requ\u00eate f\u00e9d\u00e9r\u00e9e Trino, jusqu&#039;\u00e0 la cible Iceberg.<\/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 \u00e0 la fois Trino et Presto\u00a0?<\/h3>\n\n\n<p>Oui. Trino et Presto sont deux des 39 analyseurs syntaxiques sp\u00e9cifiques \u00e0 un dialecte de SQLFlow. S\u00e9lectionnez le dialecte correspondant \u00e0 votre moteur\u00a0; si vous utilisez les deux, analysez chaque source avec son propre dialecte.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">SQLFlow peut-il retracer la lign\u00e9e \u00e0 travers les catalogues Trino\u00a0?<\/h3>\n\n\n<p>Oui. SQLFlow associe chaque colonne \u00e0 son identit\u00e9 compl\u00e8te catalog.schema.table.column, de sorte qu&#039;une requ\u00eate joignant les catalogues hive, postgresql et iceberg produit une tra\u00e7abilit\u00e9 qui pr\u00e9serve la distinction des colonnes de chaque syst\u00e8me, y compris pour les instructions INSERT qui d\u00e9placent des donn\u00e9es entre les catalogues.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">SQLFlow a-t-il besoin d&#039;acc\u00e9der \u00e0 mon cluster Trino ou \u00e0 mes donn\u00e9es\u00a0?<\/h3>\n\n\n<p>Non. SQLFlow effectue une analyse statique du code SQL, en utilisant \u00e9ventuellement les m\u00e9tadonn\u00e9es du sch\u00e9ma pour r\u00e9soudre les noms et d\u00e9velopper SELECT *. Il ne lit jamais les lignes des tables et ne n\u00e9cessite aucun agent sur le cluster. 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\">Que renvoie SQLFlow pour les colonnes des clauses WHERE et JOIN\u00a0?<\/h3>\n\n\n<p>Elles apparaissent comme une lign\u00e9e indirecte (d&#039;impact)\u00a0: un type de relation distinct pour les colonnes qui influencent le r\u00e9sultat sans y figurer directement. Vous pouvez activer ou d\u00e9sactiver la lign\u00e9e indirecte dans le diagramme\u00a0\u2014 une distinction que la plupart des outils de lign\u00e9e ne font pas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Puis-je exporter la lign\u00e9e Trino vers mon catalogue de donn\u00e9es\u00a0?<\/h3>\n\n\n<p>Oui. Les d\u00e9ploiements en entreprise incluent des adaptateurs d&#039;exportation pour DataHub, Microsoft Purview et OpenMetadata, ainsi que l&#039;exportation JSON et CSV et une API REST pour les int\u00e9grations personnalis\u00e9es.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Combien co\u00fbte SQLFlow ?<\/h3>\n\n\n<p>SQLFlow Cloud est gratuit au d\u00e9part\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\">Suivez vos requ\u00eates f\u00e9d\u00e9r\u00e9es d\u00e8s maintenant<\/h2>\n\n\n<p>Collez une requ\u00eate Trino inter-catalogues dans le visualiseur gratuit et visualisez la lign\u00e9e au niveau des colonnes dans tous les catalogues concern\u00e9s.<\/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=trino-data-lineage\" target=\"_blank\" rel=\"noreferrer noopener\">Essayez SQLFlow gratuitement<\/a><\/div>\n<\/div>\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:\/\/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\\\/trino-data-lineage\\\/\",\n            \"description\": \"Automated data lineage for Trino and Presto SQL: dialect-specific parsers resolve fully-qualified cross-catalog columns in federated queries and produce interactive column-level lineage diagrams.\",\n            \"featureList\": \"Trino dialect parser, Presto dialect parser, cross-catalog column resolution, column-level lineage, indirect\\\/impact lineage, SELECT * expansion, JSON\\\/CSV\\\/PNG export, REST API, DataHub\\\/Purview\\\/OpenMetadata export, AI lineage query\",\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 both Trino and Presto?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"Yes. Trino and Presto are two of SQLFlow's 39 dialect-specific parsers. Select the dialect that matches your engine; if you run both, analyze each source with its own dialect.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Can SQLFlow trace lineage across Trino catalogs?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"Yes. SQLFlow resolves every column to its fully-qualified catalog.schema.table.column identity, so a query joining hive, postgresql, and iceberg catalogs produces lineage that keeps each system's columns distinct, including for INSERT statements that move data between catalogs.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Does SQLFlow need access to my Trino cluster or data?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"No. SQLFlow performs static analysis of SQL code, optionally using schema metadata to resolve names and expand SELECT *. It never reads table rows and needs no agent on the cluster. The On-Premise edition keeps SQL text inside your network entirely.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"What does SQLFlow show for columns in WHERE and JOIN clauses?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"They appear as indirect (impact) lineage: a separate relationship type for columns that shape the result without landing in the output. You can toggle indirect lineage on and off in the diagram, a distinction most lineage tools do not make at all.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Can I export Trino lineage to my data catalog?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"Yes. Enterprise deployments include export adapters for DataHub, Microsoft Purview, and OpenMetadata, plus JSON and CSV export and a REST API for custom integrations.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"How much does SQLFlow cost?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"SQLFlow Cloud starts free; 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>Trino data lineage is the column-level map of how data flows through Trino (and Presto) SQL: which source columns in which catalogs feed each output column, and through which joins, functions, and filters. Because Trino is a federated query engine, a single statement can read from hive, postgresql, and iceberg catalogs at once \u2014 so accurate lineage must resolve every column to its fully-qualified catalog.schema.table.column identity, not just a table name. Gudu SQLFlow does this with dedicated dialect parsers for both Trino and Presto. See it on your own SQL: paste a federated Trino query into the free SQLFlow lineage\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\/6762"}],"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=6762"}],"version-history":[{"count":0,"href":"https:\/\/www.gudusoft.com\/fr\/wp-json\/wp\/v2\/pages\/6762\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.gudusoft.com\/fr\/wp-json\/wp\/v2\/media?parent=6762"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}