{"id":1275,"date":"2020-11-17T07:34:59","date_gmt":"2020-11-17T07:34:59","guid":{"rendered":"https:\/\/www.gudusoft.com\/?page_id=1275"},"modified":"2026-07-13T18:34:43","modified_gmt":"2026-07-14T02:34:43","slug":"sqlflow-restful-api","status":"publish","type":"page","link":"https:\/\/www.gudusoft.com\/fr\/api-restful-sqlflow\/","title":{"rendered":"API REST SQLFlow\u00a0: Automatisation de l\u2019extraction de la lign\u00e9e des donn\u00e9es SQL"},"content":{"rendered":"<p>UN <strong>API de tra\u00e7abilit\u00e9 des donn\u00e9es<\/strong> permet d&#039;extraire la lign\u00e9e par programmation\u00a0: vous soumettez du code SQL via HTTP et recevez un graphe de lign\u00e9e structur\u00e9 au format JSON, listant chaque table et colonne source, chaque cible et les relations de transformation entre elles. <strong>API REST Gudu SQLFlow<\/strong> Il r\u00e9alise pr\u00e9cis\u00e9ment cela pour 39 dialectes SQL, avec une granularit\u00e9 au niveau des colonnes, y compris les proc\u00e9dures stock\u00e9es et le SQL dynamique. La m\u00eame analyse qui alimente les diagrammes interactifs de SQLFlow est disponible sous forme de donn\u00e9es de tra\u00e7abilit\u00e9 structur\u00e9es via HTTP.<\/p>\n\n\n\n<div class=\"gd-stats\">\n<div class=\"gd-stat\"><b>39<\/b><span>Les dialectes SQL, chacun avec un analyseur syntaxique d\u00e9di\u00e9<\/span><\/div>\n<div class=\"gd-stat\"><b>Niveau de colonne<\/b><span>Arbre g\u00e9n\u00e9alogique, direct et indirect<\/span><\/div>\n<div class=\"gd-stat\"><b>JSON<\/b><span>via HTTP \u2014 une requ\u00eate POST, SQL en entr\u00e9e, graphique en sortie<\/span><\/div>\n<div class=\"gd-stat\"><b>Z\u00e9ro<\/b><span>acc\u00e8s \u00e0 vos donn\u00e9es \u2014 analyse statique uniquement<\/span><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group gd-callout is-layout-constrained\"><div class=\"wp-block-group__inner-container\">\n\n<p><strong>Consultez d&#039;abord le r\u00e9sultat\u00a0:<\/strong> collez une requ\u00eate dans le <a href=\"https:\/\/sqlflow.gudusoft.com\/?utm_source=gudusoft&amp;utm_medium=website&amp;utm_campaign=sqlflow-restful-api\" target=\"_blank\" rel=\"noreferrer noopener\">Visualiseur de lignage SQLFlow gratuit<\/a>, puis exportez le graphique au format JSON pour voir \u00e0 quoi ressemble la lign\u00e9e sous forme de donn\u00e9es avant d&#039;\u00e9crire une seule ligne de code d&#039;int\u00e9gration.<\/p>\n\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Pourquoi int\u00e9grer une API de tra\u00e7abilit\u00e9 des donn\u00e9es \u00e0 votre infrastructure ?<\/h2>\n\n\n\n<p>Les diagrammes de lignage interactifs permettent aux humains d&#039;explorer la filiation. Cependant, les utilisations les plus pertinentes du lignage sont automatis\u00e9es\u00a0: bloquer une requ\u00eate d&#039;extraction qui perturbe silencieusement un rapport en aval, maintenir \u00e0 jour le lignage d&#039;un catalogue de donn\u00e9es sans intervention manuelle, ou encore r\u00e9pondre \u00e0 la question \u00ab\u00a0Quelles sont les sources de cette colonne\u00a0?\u00a0\u00bb au sein de vos outils internes. Toutes ces applications n\u00e9cessitent un acc\u00e8s aux donn\u00e9es de lignage, disponibles \u00e0 la demande, via un service accessible.<\/p>\n\n\n\n<p>L&#039;approche de SQLFlow repose sur l&#039;analyse statique du SQL. L&#039;API analyse le texte SQL que vous lui envoyez sans jamais modifier les lignes de vos tables, ce qui simplifie l&#039;analyse de s\u00e9curit\u00e9\u00a0: seul le code SQL transite sur le r\u00e9seau. <a href=\"https:\/\/www.gudusoft.com\/fr\/sqlflow-on-premise-version\/\">\u00e9dition sur site<\/a> m\u00eame cela reste \u00e0 l&#039;int\u00e9rieur de votre r\u00e9seau. Le moteur sous-jacent est le <a href=\"https:\/\/www.sqlparser.com\/\">Analyseur SQL g\u00e9n\u00e9ral<\/a>, un compilateur SQL commercial frontal d\u00e9velopp\u00e9 depuis le milieu des ann\u00e9es 2000 et valid\u00e9 par rapport \u00e0 environ 13 600 jeux de tests par dialecte, de sorte que la lign\u00e9e que vous obtenez est construite \u00e0 partir d&#039;un mod\u00e8le s\u00e9mantique complet du SQL, et non d&#039;une correspondance d&#039;expressions r\u00e9guli\u00e8res.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ce que renvoie l&#039;API REST SQLFlow<\/h2>\n\n\n\n<p>Conceptuellement, l&#039;API expose l&#039;int\u00e9gralit\u00e9 de la surface d&#039;analyse SQLFlow sous forme de JSON sur HTTP\u00a0:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Capacit\u00e9<\/th><th>Vous envoyez<\/th><th>Vous revenez<\/th><\/tr><\/thead><tbody>\n<tr><td>Graphique de lignage<\/td><td>Texte SQL plus un identifiant de dialecte<\/td><td>Le graphe de lignage complet au niveau des colonnes au format JSON\u00a0: tables, colonnes et relations source-cible<\/td><\/tr>\n<tr><td>Trace en amont \/ en aval<\/td><td>Un tableau ou une colonne d&#039;int\u00e9r\u00eat<\/td><td>Seul le sous-graphe alimentant cet objet (en amont) ou aliment\u00e9 par lui (en aval) est concern\u00e9 par l&#039;analyse d&#039;impact cibl\u00e9e.<\/td><\/tr>\n<tr><td>Lign\u00e9e au niveau de la table<\/td><td>Texte SQL, granularit\u00e9 de table demand\u00e9e<\/td><td>Un graphe de d\u00e9pendance compact entre les tables lorsque les d\u00e9tails des colonnes seraient superflus.<\/td><\/tr>\n<tr><td>lign\u00e9e directe vs indirecte<\/td><td>Un drapeau sur la demande<\/td><td>Les relations de flux de donn\u00e9es pures, ou en outre les colonnes qui fa\u00e7onnent les r\u00e9sultats par le biais de <code>O\u00d9<\/code>, <code>REJOINDRE<\/code>, et <code>GROUPER PAR<\/code> clauses<\/td><\/tr>\n<tr><td>Graphe d&#039;appel de proc\u00e9dure stock\u00e9e<\/td><td>Corps de proc\u00e9dure PL\/SQL ou T-SQL<\/td><td>Quelles proc\u00e9dures appellent lesquelles, avec une tra\u00e7abilit\u00e9 via les param\u00e8tres, les tables temporaires et le SQL dynamique<\/td><\/tr>\n<tr><td>Diagramme ER<\/td><td>Scripts DDL<\/td><td>Relations inf\u00e9r\u00e9es entre cl\u00e9s primaires et \u00e9trang\u00e8res sous forme de mod\u00e8le entit\u00e9-relation<\/td><\/tr>\n<tr><td>Exportations<\/td><td>Un emploi analys\u00e9<\/td><td>JSON ou CSV pour les machines, PNG pour la documentation et les tickets<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<p>Chaque requ\u00eate sp\u00e9cifie explicitement son dialecte. SQLFlow int\u00e8gre des analyseurs syntaxiques sp\u00e9cifiques \u00e0 chaque dialecte pour 39 bases de donn\u00e9es et moteurs de requ\u00eates, de Snowflake, BigQuery, Databricks et Redshift \u00e0 Oracle, SQL Server, Teradata, Hive et Trino. Ainsi, la syntaxe propre \u00e0 chaque fournisseur, comme les tables temporaires T-SQL, est analys\u00e9e conform\u00e9ment \u00e0 sa d\u00e9finition, et non approxim\u00e9e par une grammaire ANSI g\u00e9n\u00e9rique. La liste compl\u00e8te est disponible sur le site web de SQLFlow. <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>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Exemple minimal\u00a0: requ\u00eate POST SQL, r\u00e9ception d\u2019un graphe de lignage<\/h2>\n\n\n\n<p>L&#039;interaction principale consiste en un appel HTTP. Vous envoyez une requ\u00eate SQL et un dialecte\u00a0; la r\u00e9ponse est le graphe de lignage. Les chemins des points de terminaison, l&#039;authentification et la documentation compl\u00e8te des param\u00e8tres se trouvent dans le <a href=\"https:\/\/docs.gudusoft.com\/\">Documentation de l&#039;API SQLFlow<\/a>; la forme de l&#039;\u00e9change ressemble \u00e0 ceci :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -s -X POST \"$SQLFLOW_API\/lineage\" \\\n  -H \"Authorization: Bearer $SQLFLOW_TOKEN\" \\\n  --form \"dbvendor=snowflake\" \\\n  --form 'sqltext=CREATE VIEW customer_ltv AS\n    SELECT c.customer_id,\n           SUM(o.amount) AS lifetime_value\n    FROM   customers c\n    JOIN   orders o ON o.customer_id = c.customer_id\n    WHERE  o.status = ''paid''\n    GROUP  BY c.customer_id;'<\/code><\/pre>\n\n\n\n<p>La r\u00e9ponse est un graphique\u00a0: une liste d\u2019objets de base de donn\u00e9es (tables, vues et leurs colonnes) et une liste des relations entre les colonnes. Version simplifi\u00e9e et abr\u00e9g\u00e9e \u00e0 des fins d\u2019illustration\u00a0:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{ &quot;relations&quot;: [ { &quot;type&quot;: &quot;direct&quot;, &quot;cible&quot;: {&quot;objet&quot;: &quot;customer_ltv&quot;, &quot;colonne&quot;: &quot;lifetime_value&quot;}, &quot;sources&quot;: [{&quot;objet&quot;: &quot;orders&quot;, &quot;colonne&quot;: &quot;amount&quot;, &quot;via&quot;: &quot;SUM&quot;}] }, { &quot;type&quot;: &quot;direct&quot;, &quot;cible&quot;: {&quot;objet&quot;: &quot;customer_ltv&quot;, &quot;colonne&quot;: &quot;customer_id&quot;}, &quot;sources&quot;: [{&quot;objet&quot;: &quot;customers&quot;, &quot;colonne&quot;: &quot;customer_id&quot;}] }, { &quot;type&quot;: &quot;indirect&quot;, &quot;cible&quot;: {&quot;objet&quot;: &quot;customer_ltv&quot;, &quot;colonne&quot;: &quot;lifetime_value&quot;}, &quot;sources&quot;: [{&quot;objet&quot;: &quot;orders&quot;, &quot;colonne&quot;: &quot;status&quot;, &quot;via&quot;: &quot;WHERE&quot;}] } ] }<\/code><\/pre>\n\n\n\n<p>Notez la troisi\u00e8me relation. <code>statut des commandes<\/code> n&#039;appara\u00eet jamais dans le r\u00e9sultat de la vue, mais il filtre les lignes dont la somme est calcul\u00e9e, donc il a un impact certain. <code>valeur_de_vie<\/code>SQLFlow mod\u00e9lise cela comme <strong>lign\u00e9e indirecte<\/strong>, distincte du flux de donn\u00e9es direct et pouvant \u00eatre demand\u00e9e s\u00e9par\u00e9ment. La plupart des outils de tra\u00e7abilit\u00e9 ne font pas cette distinction, et c&#039;est pr\u00e9cis\u00e9ment ce dont un utilisateur d&#039;analyse d&#039;impact a besoin\u00a0: la suppression <code>statut des commandes<\/code> cela fausserait cette vue m\u00eame si aucune colonne de sortie n&#039;en \u00ab provient \u00bb.<\/p>\n\n\n\n<div class=\"wp-block-group gd-panel-navy is-layout-constrained\"><div class=\"wp-block-group__inner-container\">\n\n<h2 class=\"wp-block-heading\">Cas d&#039;utilisation\u00a0: v\u00e9rifications de lignage dans l&#039;int\u00e9gration continue<\/h2>\n\n\n\n<p>L&#039;int\u00e9gration la plus efficace est celle qui s&#039;ex\u00e9cute avant le d\u00e9ploiement de code SQL d\u00e9fectueux. Dans une t\u00e2che d&#039;int\u00e9gration continue ex\u00e9cut\u00e9e sur chaque demande d&#039;extraction qui modifie le code SQL\u00a0:<\/p>\n\n\n\n<ol><li>Envoyez les fichiers SQL modifi\u00e9s au point de terminaison de lignage et obtenez le nouveau graphique.<\/li>\n<li>Comparez-le au graphique de la branche principale\u00a0: quelles colonnes ont gagn\u00e9 ou perdu des sources, quels objets en aval ont modifi\u00e9 leurs entr\u00e9es.<\/li>\n<li>\u00c9chouez le contr\u00f4le ou publiez la diff\u00e9rence en tant que commentaire de r\u00e9vision lorsqu&#039;une modification touche des colonnes qui alimentent des cibles prot\u00e9g\u00e9es telles que des rapports r\u00e9glementaires ou des tableaux de bord de direction.<\/li><\/ol>\n\n\n\n<p>L&#039;analyse \u00e9tant statique, elle fonctionne sur du code qui n&#039;a jamais \u00e9t\u00e9 ex\u00e9cut\u00e9. La d\u00e9pendance d\u00e9fectueuse est d\u00e9tect\u00e9e lors de la revue de code, et non lors d&#039;un \u00e9chec d&#039;ex\u00e9cution par lots \u00e0 2 h du matin. Le m\u00eame principe s&#039;applique aux migrations de sch\u00e9ma\u00a0: avant une <code>COLONNE DE CHUTE<\/code> Dans les zones, un seul appel de tra\u00e7age en aval vous indique chaque objet qui consomme la colonne, directement ou via un filtre.<\/p>\n\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Cas d&#039;utilisation\u00a0: alimenter votre catalogue de donn\u00e9es<\/h2>\n\n\n\n<p>Les plateformes de catalogue excellent dans l&#039;organisation des m\u00e9tadonn\u00e9es, la gestion des droits de propri\u00e9t\u00e9 et la d\u00e9couverte des donn\u00e9es\u00a0; le tra\u00e7age des requ\u00eates SQL au niveau des colonnes est g\u00e9n\u00e9ralement leur point faible. SQLFlow s&#039;int\u00e8gre comme moteur de tra\u00e7age\u00a0: il analyse votre environnement SQL, puis transf\u00e8re les r\u00e9sultats vers le catalogue que vous utilisez d\u00e9j\u00e0. Les d\u00e9ploiements en entreprise incluent des adaptateurs d&#039;exportation pr\u00eats \u00e0 l&#039;emploi. <strong>DataHub, Microsoft Purview et OpenMetadata<\/strong>Les exportations JSON et CSV alimentent toutes les donn\u00e9es personnalis\u00e9es. \u00c0 grande \u00e9chelle, ce syst\u00e8me effectue des analyses par lots et incr\u00e9mentales sur des ensembles de plus de 100 bases de donn\u00e9es et plus d&#039;un million de colonnes, avec un r\u00e9f\u00e9rentiel de tra\u00e7abilit\u00e9 persistant. Ainsi, le catalogue reste \u00e0 jour sans intervention manuelle.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Cas d&#039;utilisation\u00a0: tra\u00e7abilit\u00e9 au sein de vos propres outils<\/h2>\n\n\n\n<p>Les plateformes de donn\u00e9es internes d\u00e9veloppent sans cesse les m\u00eames fonctionnalit\u00e9s\u00a0: un panneau \u00ab\u00a0D\u2019o\u00f9 vient cette m\u00e9trique\u00a0?\u00a0\u00bb, un outil de v\u00e9rification de la d\u00e9pr\u00e9ciation, une carte des d\u00e9pendances de migration. Plut\u00f4t que de cr\u00e9er un analyseur SQL, appelez l\u2019API depuis votre service et affichez le graphique comme vous le souhaitez. Si vous pr\u00e9f\u00e9rez le diagramme interactif au JSON brut, SQLFlow propose \u00e9galement un widget JavaScript int\u00e9grable avec une API de plus de 30\u00a0m\u00e9thodes, compatible avec toutes les applications web. Pour une int\u00e9gration JVM c\u00f4t\u00e9 serveur uniquement, une biblioth\u00e8que Java expose le m\u00eame moteur. L\u2019API, le widget et la biblioth\u00e8que renvoient tous des r\u00e9sultats coh\u00e9rents car ils partagent un seul analyseur.<\/p>\n\n\n\n<div class=\"wp-block-group gd-panel-navy gd-cta is-layout-constrained\"><div class=\"wp-block-group__inner-container\">\n\n<h2 class=\"wp-block-heading\">Transformez votre SQL en un graphe de lignage via HTTP<\/h2>\n\n\n\n<p>Examinez le graphique dans le visualiseur gratuit, puis envoyez la m\u00eame requ\u00eate SQL \u00e0 l&#039;API REST depuis votre pipeline.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-3\">\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=sqlflow-restful-api\" target=\"_blank\" rel=\"noreferrer noopener\">Essayez SQLFlow gratuitement<\/a><\/div>\n\n\n\n<div class=\"wp-block-button is-style-outline\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/docs.gudusoft.com\/\">Consultez la documentation de l&#039;API.<\/a><\/div>\n<\/div>\n\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Comment cela se compare-t-il aux autres options de tra\u00e7abilit\u00e9 programmatique\u00a0?<\/h2>\n\n\n\n<p><strong class=\"gd-lead-in\">Il s&#039;agit d&#039;un service d&#039;analyse SQL, et non d&#039;une biblioth\u00e8que d&#039;analyse syntaxique ou d&#039;un collecteur d&#039;ex\u00e9cution.<\/strong> Il est utile de conna\u00eetre trois cat\u00e9gories. <strong>Biblioth\u00e8ques d&#039;analyse syntaxique open source<\/strong> comme <code>SQL Lineage<\/code> et <code>sqlglot<\/code> sont r\u00e9ellement performantes pour analyser des instructions individuelles au sein d&#039;un processus Python, et pour une logique SELECT et INSERT simple, elles peuvent suffire\u00a0; la lacune appara\u00eet au niveau des proc\u00e9dures stock\u00e9es, du SQL dynamique, des cas particuliers de dialecte et de la r\u00e9solution des vues ou de l&#039;expansion en \u00e9toile qui n\u00e9cessitent un contexte de sch\u00e9ma. <strong>normes de lignage d&#039;ex\u00e9cution<\/strong> comme OpenLineage capture la lign\u00e9e \u00e0 partir des \u00e9v\u00e9nements d&#039;ex\u00e9cution de t\u00e2ches, ce qui est excellent pour la lign\u00e9e au niveau de l&#039;orchestrateur, ex\u00e9cution par ex\u00e9cution, mais ne voit que le code qui a r\u00e9ellement \u00e9t\u00e9 ex\u00e9cut\u00e9, \u00e0 la granularit\u00e9 fournie par l&#039;int\u00e9gration \u00e9mettrice. <strong>Plateformes ax\u00e9es sur le catalogue<\/strong> Les API de tra\u00e7abilit\u00e9 expos\u00e9es couvrent l&#039;ensemble des donn\u00e9es ing\u00e9r\u00e9es, de sorte que leurs r\u00e9ponses ne sont d\u00e9taill\u00e9es que jusqu&#039;\u00e0 la source de l&#039;ingestion. L&#039;API REST de SQLFlow est un outil diff\u00e9rent\u00a0: un service d&#039;analyse SQL sp\u00e9cialis\u00e9 qui calcule la tra\u00e7abilit\u00e9 au niveau des colonnes \u00e0 partir du code lui-m\u00eame, y compris les requ\u00eates SQL jamais ex\u00e9cut\u00e9es et les proc\u00e9dures ignor\u00e9es par d&#039;autres outils. Ces deux approches se compl\u00e8tent bien\u00a0; de nombreuses \u00e9quipes utilisent SQLFlow pour calculer la tra\u00e7abilit\u00e9 et un catalogue pour la mettre \u00e0 disposition des utilisateurs finaux.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">O\u00f9 l&#039;API s&#039;ex\u00e9cute\u00a0: dans le cloud ou sur votre propre r\u00e9seau<\/h2>\n\n\n\n<p>L&#039;API REST est disponible dans les deux d\u00e9ploiements SQLFlow. <a href=\"https:\/\/www.gudusoft.com\/fr\/sqlflow-cloud\/\">SQLFlow Cloud<\/a> est la solution de d\u00e9marrage la plus rapide\u00a0: un SaaS avec une offre gratuite, une offre premium \u00e0 $49,99\u00a0\u20ac\/mois, sans infrastructure \u00e0 g\u00e9rer. <a href=\"https:\/\/www.gudusoft.com\/fr\/sqlflow-on-premise-version\/\">SQLFlow sur site<\/a> D\u00e9ployable via Docker ou Kubernetes au sein de votre r\u00e9seau, cette solution fonctionne en mode totalement isol\u00e9 du r\u00e9seau et est propos\u00e9e au prix de $500\/mois ou $4\u00a0800 en une seule fois par type de base de donn\u00e9es s\u00e9lectionn\u00e9. Elle peut \u00eatre install\u00e9e sur deux serveurs. Il est courant de prototyper l&#039;int\u00e9gration dans le cloud, puis de transf\u00e9rer les m\u00eames appels d&#039;API vers un h\u00f4te sur site afin que les requ\u00eates SQL ne quittent jamais votre infrastructure.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Foire aux questions<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">L&#039;API renvoie-t-elle la tra\u00e7abilit\u00e9 au niveau des colonnes ou au niveau des tables\u00a0?<\/h3>\n\n\n<p>Les deux. Le niveau de d\u00e9tail par d\u00e9faut est celui des colonnes\u00a0: pour chaque colonne de sortie, vous obtenez les colonnes sources exactes ainsi que les fonctions, jointures et op\u00e9rations ensemblistes qui les relient, avec distinction entre les relations directes et indirectes. Vous pouvez demander une granularit\u00e9 au niveau de la table lorsqu&#039;un graphe de d\u00e9pendances compact suffit.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Quels dialectes SQL l&#039;API de tra\u00e7abilit\u00e9 des donn\u00e9es prend-elle en charge\u00a0?<\/h3>\n\n\n<p>39 dialectes, chacun avec son propre analyseur syntaxique\u00a0: Snowflake, BigQuery, Redshift, Databricks, Oracle, SQL Server, PostgreSQL, MySQL, Teradata, Hive, Spark SQL, Trino, et bien d\u2019autres. Vous sp\u00e9cifiez le dialecte dans chaque requ\u00eate.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Peut-il analyser les proc\u00e9dures stock\u00e9es et le SQL dynamique\u00a0?<\/h3>\n\n\n<p>Oui. Oracle PL\/SQL et SQL Server T-SQL disposent d&#039;analyseurs syntaxiques proc\u00e9duraux d\u00e9di\u00e9s. La tra\u00e7abilit\u00e9 est assur\u00e9e par les param\u00e8tres des proc\u00e9dures et les tables temporaires, le SQL dynamique int\u00e9gr\u00e9 aux proc\u00e9dures est r\u00e9solu et analys\u00e9, et l&#039;API peut renvoyer le graphe d&#039;appels de proc\u00e9dure \u00e0 proc\u00e9dure.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">L&#039;API a-t-elle besoin d&#039;acc\u00e9der \u00e0 mes donn\u00e9es\u00a0?<\/h3>\n\n\n<p>Non. Il effectue une analyse statique du texte SQL que vous soumettez et ne lit jamais les donn\u00e9es des lignes de la table. Avec l&#039;\u00e9dition sur site, le texte SQL lui-m\u00eame reste \u00e9galement au sein de votre r\u00e9seau.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Quels sont les formats de sortie disponibles\u00a0?<\/h3>\n\n\n<p>Le format JSON est privil\u00e9gi\u00e9 pour les applications programmatiques\u00a0; l\u2019exportation CSV est adapt\u00e9e aux tableurs et aux chargements en masse, tandis que l\u2019exportation PNG produit le diagramme rendu pour la documentation. Les d\u00e9ploiements en entreprise ajoutent des adaptateurs d\u2019exportation pour DataHub, Microsoft Purview et OpenMetadata.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">O\u00f9 se trouve la documentation compl\u00e8te de l&#039;API\u00a0?<\/h3>\n\n\n<p>\u00c0 <a href=\"https:\/\/docs.gudusoft.com\/\">docs.gudusoft.com<\/a>, couvrant les chemins d&#039;acc\u00e8s aux points de terminaison, l&#039;authentification, les param\u00e8tres de requ\u00eate par capacit\u00e9 et le sch\u00e9ma de r\u00e9ponse complet. Pour conna\u00eetre les forfaits incluant l&#039;acc\u00e8s \u00e0 l&#039;API, consultez <a href=\"https:\/\/www.gudusoft.com\/fr\/tarification\/\">Tarification de SQLFlow<\/a>.<\/p>\n\n\n\n<div class=\"wp-block-group alignfull gd-band gd-band-navy gd-cta is-layout-constrained\" style=\"padding-top:56px;padding-bottom:56px\"><div class=\"wp-block-group__inner-container\">\n\n<h2 class=\"wp-block-heading\">R\u00e9cup\u00e9rez la lign\u00e9e au format JSON \u00e0 partir de votre SQL.<\/h2>\n\n\n<p>Collez une requ\u00eate dans le visualiseur gratuit pour examiner la structure du graphique, puis connectez l&#039;API REST \u00e0 votre pipeline.<\/p>\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-5\">\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=sqlflow-restful-api\" target=\"_blank\" rel=\"noreferrer noopener\">Essayez SQLFlow gratuitement<\/a><\/div>\n\n\n\n<div class=\"wp-block-button is-style-outline\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/www.gudusoft.com\/fr\/contact\/\">Parlez-nous de l&#039;int\u00e9gration API<\/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\": \"TechArticle\",\n            \"headline\": \"SQLFlow REST API: Automate SQL Data Lineage Extraction\",\n            \"description\": \"How to use the Gudu SQLFlow REST API as a data lineage API: submit SQL over HTTP and receive column-level lineage graphs as JSON across 39 dialects, including stored procedures and dynamic SQL. Covers CI lineage checks, feeding data catalogs, and embedding lineage in internal tools.\",\n            \"url\": \"https:\\\/\\\/www.gudusoft.com\\\/sqlflow-restful-api\\\/\",\n            \"author\": {\n                \"@type\": \"Organization\",\n                \"name\": \"Gudu Software\",\n                \"url\": \"https:\\\/\\\/www.gudusoft.com\\\/\"\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 the API return column-level or table-level lineage?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"Both. Column-level is the default depth: for each output column you get the exact source columns and the functions, joins, and set operations between them, with direct and indirect lineage distinguished. You can request table-level granularity when a compact dependency graph is all you need.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Which SQL dialects does the data lineage API support?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"39 dialects, each with its own parser: Snowflake, BigQuery, Redshift, Databricks, Oracle, SQL Server, PostgreSQL, MySQL, Teradata, Hive, Spark SQL, Trino, and more. You name the dialect in each request.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Can it analyze stored procedures and dynamic SQL?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"Yes. Oracle PL\\\/SQL and SQL Server T-SQL have dedicated procedural parsers. Lineage is traced through procedure parameters and temp tables, dynamic SQL built inside procedures is resolved and analyzed, and the API can return the procedure-to-procedure call graph.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Does the API need access to my data?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"No. It performs static analysis of the SQL text you submit and never reads table row data. With the on-premise edition, the SQL text itself also stays inside your network.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"What output formats are available?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"JSON is the primary format for programmatic use; CSV export suits spreadsheets and bulk loads, and PNG export produces the rendered diagram for documentation. Enterprise deployments add export adapters for DataHub, Microsoft Purview, and OpenMetadata.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Where is the full API reference?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"At docs.gudusoft.com, covering endpoint paths, authentication, request parameters per capability, and the complete response schema. The SQLFlow pricing page lists which plans include API access.\"\n                    }\n                }\n            ]\n        }\n    ]\n}<\/script>","protected":false},"excerpt":{"rendered":"<p>A data lineage API lets you extract lineage programmatically: you submit SQL code over HTTP and receive a structured lineage graph as JSON, listing every source table and column, every target, and the transformation relationships between them. The Gudu SQLFlow REST API does exactly this for 39 SQL dialects, at column-level granularity, including stored procedures and dynamic SQL. The same analysis that powers SQLFlow&#8217;s interactive diagrams is available as structured lineage data over HTTP. 39SQL dialects, each with a dedicated parser Column-levellineage graph, direct and indirect JSONover HTTP \u2014 one POST, SQL in, graph out Zeroaccess to your data \u2014\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\/1275"}],"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=1275"}],"version-history":[{"count":21,"href":"https:\/\/www.gudusoft.com\/fr\/wp-json\/wp\/v2\/pages\/1275\/revisions"}],"predecessor-version":[{"id":6817,"href":"https:\/\/www.gudusoft.com\/fr\/wp-json\/wp\/v2\/pages\/1275\/revisions\/6817"}],"wp:attachment":[{"href":"https:\/\/www.gudusoft.com\/fr\/wp-json\/wp\/v2\/media?parent=1275"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}