{"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\/es\/api-restful-de-sqlflow\/","title":{"rendered":"API REST de SQLFlow: Automatice la extracci\u00f3n del linaje de datos SQL."},"content":{"rendered":"<p>A <strong>API de linaje de datos<\/strong> permite extraer el linaje mediante programaci\u00f3n: se env\u00eda c\u00f3digo SQL a trav\u00e9s de HTTP y se recibe un gr\u00e1fico de linaje estructurado en formato JSON, que enumera cada tabla y columna de origen, cada destino y las relaciones de transformaci\u00f3n entre ellos. <strong>API REST de SQLFlow de Gudu<\/strong> Realiza esta funci\u00f3n para 39 dialectos SQL, con granularidad a nivel de columna, incluyendo procedimientos almacenados y SQL din\u00e1mico. El mismo an\u00e1lisis que impulsa los diagramas interactivos de SQLFlow est\u00e1 disponible como datos de linaje estructurados a trav\u00e9s de HTTP.<\/p>\n\n\n\n<div class=\"gd-stats\">\n<div class=\"gd-stat\"><b>39<\/b><span>Dialectos SQL, cada uno con un analizador sint\u00e1ctico dedicado.<\/span><\/div>\n<div class=\"gd-stat\"><b>Nivel de columna<\/b><span>Gr\u00e1fico de linaje, directo e indirecto<\/span><\/div>\n<div class=\"gd-stat\"><b>JSON<\/b><span>a trav\u00e9s de HTTP: una solicitud POST, entrada SQL, salida gr\u00e1fica.<\/span><\/div>\n<div class=\"gd-stat\"><b>Cero<\/b><span>Acceso a sus datos: solo an\u00e1lisis est\u00e1tico.<\/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>Vea primero el resultado:<\/strong> Pegue una consulta en el <a href=\"https:\/\/sqlflow.gudusoft.com\/?utm_source=gudusoft&amp;utm_medium=website&amp;utm_campaign=sqlflow-restful-api\" target=\"_blank\" rel=\"noreferrer noopener\">Visualizador de linaje SQLFlow gratuito<\/a>Luego, exporta el gr\u00e1fico como JSON para ver c\u00f3mo se ve el linaje como datos antes de escribir una l\u00ednea de c\u00f3digo de integraci\u00f3n.<\/p>\n\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfPor qu\u00e9 incluir una API de linaje de datos en tu infraestructura tecnol\u00f3gica?<\/h2>\n\n\n\n<p>Los diagramas de linaje interactivos son la forma en que los humanos exploran el linaje. Pero los usos m\u00e1s valiosos del linaje son automatizados: bloquear una solicitud de extracci\u00f3n que da\u00f1a silenciosamente un informe posterior, mantener actualizado el linaje de un cat\u00e1logo de datos sin curaci\u00f3n manual o responder a la pregunta &quot;\u00bfqu\u00e9 alimenta esta columna?&quot; dentro de sus propias herramientas internas. Todos estos usos requieren el linaje como datos, bajo demanda, desde un servicio al que se pueda acceder.<\/p>\n\n\n\n<p>El enfoque de SQLFlow es el an\u00e1lisis est\u00e1tico de SQL. La API analiza el texto SQL que le env\u00edas y nunca toca las filas de tus tablas, lo que hace que la revisi\u00f3n de seguridad sea breve: lo \u00fanico que cruza el cable es el c\u00f3digo SQL, y con el <a href=\"https:\/\/www.gudusoft.com\/es\/version-local-de-sqlflow\/\">edici\u00f3n local<\/a> incluso eso permanece dentro de su red. El motor subyacente es el <a href=\"https:\/\/www.sqlparser.com\/\">Analizador SQL general<\/a>, un compilador SQL comercial con interfaz gr\u00e1fica desarrollado desde mediados de la d\u00e9cada de 2000 y validado con aproximadamente 13.600 conjuntos de pruebas por dialecto, por lo que el linaje que se obtiene se construye a partir de un modelo sem\u00e1ntico completo del SQL, no de una coincidencia de expresiones regulares.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Lo que devuelve la API REST de SQLFlow.<\/h2>\n\n\n\n<p>Conceptualmente, la API expone toda la superficie de an\u00e1lisis de SQLFlow como JSON sobre HTTP:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Capacidad<\/th><th>T\u00fa env\u00edas<\/th><th>Regresar\u00e1s<\/th><\/tr><\/thead><tbody>\n<tr><td>Gr\u00e1fico de linaje<\/td><td>Texto SQL m\u00e1s un identificador de dialecto<\/td><td>El gr\u00e1fico de linaje completo a nivel de columna en formato JSON: tablas, columnas y relaciones de origen a destino.<\/td><\/tr>\n<tr><td>Rastreo ascendente\/descendente<\/td><td>Una tabla o columna de inter\u00e9s<\/td><td>Solo el subgrafo que alimenta ese objeto (aguas arriba) o que es alimentado por \u00e9l (aguas abajo), para un an\u00e1lisis de impacto espec\u00edfico.<\/td><\/tr>\n<tr><td>Linaje a nivel de tabla<\/td><td>Texto SQL, se solicita granularidad de tabla.<\/td><td>Un gr\u00e1fico de dependencias compacto entre tablas cuando el detalle de las columnas ser\u00eda ruido.<\/td><\/tr>\n<tr><td>Linaje directo versus linaje indirecto<\/td><td>Una bandera en la solicitud<\/td><td>Relaciones de flujo de datos puro, o adicionalmente las columnas que dan forma a los resultados a trav\u00e9s de <code>D\u00d3NDE<\/code>, <code>UNIRSE<\/code>, y <code>AGRUPACI\u00d3N POR<\/code> cl\u00e1usulas<\/td><\/tr>\n<tr><td>Grafo de llamadas a procedimientos almacenados<\/td><td>Cuerpos de procedimientos PL\/SQL o T-SQL<\/td><td>Qu\u00e9 procedimientos invocan a cu\u00e1les, con el linaje rastreado a trav\u00e9s de par\u00e1metros, tablas temporales y SQL din\u00e1mico.<\/td><\/tr>\n<tr><td>Diagrama ER<\/td><td>Scripts DDL<\/td><td>Relaciones de clave primaria\/for\u00e1nea inferidas como un modelo entidad-relaci\u00f3n<\/td><\/tr>\n<tr><td>Exportaciones<\/td><td>Un trabajo analizado<\/td><td>JSON o CSV para m\u00e1quinas, PNG para documentaci\u00f3n y tickets<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<p>Cada solicitud nombra expl\u00edcitamente su dialecto. SQLFlow incluye analizadores espec\u00edficos de dialecto para 39 bases de datos y motores de consulta, desde Snowflake, BigQuery, Databricks y Redshift hasta Oracle, SQL Server, Teradata, Hive y Trino, por lo que la sintaxis espec\u00edfica del proveedor, como las tablas temporales T-SQL, se analiza tal como la define el proveedor, no aproximada por una gram\u00e1tica ANSI gen\u00e9rica. La lista completa se encuentra en el <a href=\"https:\/\/www.gudusoft.com\/es\/herramienta-de-linaje-de-datos-sql\/\">Descripci\u00f3n general de la herramienta de linaje de datos SQL<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Un ejemplo m\u00ednimo: POST SQL, recibir un gr\u00e1fico de linaje<\/h2>\n\n\n\n<p>La interacci\u00f3n principal es una llamada HTTP. Se env\u00eda texto SQL y un dialecto; la respuesta es el gr\u00e1fico de linaje. Las rutas de los puntos finales, la autenticaci\u00f3n y la referencia completa de par\u00e1metros se encuentran en el <a href=\"https:\/\/docs.gudusoft.com\/\">Documentaci\u00f3n de la API de SQLFlow<\/a>; la forma del intercambio se ve as\u00ed:<\/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 respuesta es un gr\u00e1fico: una lista de objetos de la base de datos (tablas, vistas y sus columnas) y una lista de relaciones entre columnas. Recortado y simplificado para fines ilustrativos:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{ &quot;relaciones&quot;: [ { &quot;tipo&quot;: &quot;directo&quot;, &quot;objetivo&quot;: {&quot;objeto&quot;: &quot;valor_cliente&quot;, &quot;columna&quot;: &quot;valor_de_vida&quot;}, &quot;fuentes&quot;: [{&quot;objeto&quot;: &quot;pedidos&quot;, &quot;columna&quot;: &quot;cantidad&quot;, &quot;v\u00eda&quot;: &quot;SUMA&quot;}] }, { &quot;tipo&quot;: &quot;directo&quot;, &quot;objetivo&quot;: {&quot;objeto&quot;: &quot;valor_cliente&quot;, &quot;columna&quot;: &quot;id_cliente&quot;}, &quot;fuentes&quot;: [{&quot;objeto&quot;: &quot;clientes&quot;, &quot;columna&quot;: &quot;id_cliente&quot;}] }, { &quot;tipo&quot;: &quot;indirecto&quot;, &quot;objetivo&quot;: {&quot;objeto&quot;: &quot;valor_cliente&quot;, &quot;columna&quot;: &quot;valor_de_vida&quot;}, &quot;fuentes&quot;: [{&quot;objeto&quot;: &quot;pedidos&quot;, &quot;columna&quot;: &quot;estado&quot;, &quot;v\u00eda&quot;: &quot;D\u00d3NDE&quot;}] } ] }<\/code><\/pre>\n\n\n\n<p>N\u00f3tese la tercera relaci\u00f3n. <code>estado de los pedidos<\/code> nunca aparece en la salida de la vista, pero filtra qu\u00e9 filas se suman, por lo que afecta absolutamente. <code>valor_de_vida_de_vida<\/code>. SQLFlow modela esto como <strong>linaje indirecto<\/strong>, distinto del flujo de datos directo y solicitable por separado. La mayor\u00eda de las herramientas de linaje no hacen esta distinci\u00f3n, y es precisamente lo que necesita un consumidor de an\u00e1lisis de impacto: dejar caer <code>estado de los pedidos<\/code> corromper\u00eda esta vista aunque ninguna columna de salida \u201cproviene\u201d de ella.<\/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\">Caso de uso: comprobaciones de linaje en CI<\/h2>\n\n\n\n<p>La integraci\u00f3n de mayor impacto es la que se ejecuta antes de que se env\u00ede SQL defectuoso. En un trabajo de CI en cada solicitud de extracci\u00f3n que afecte a SQL:<\/p>\n\n\n\n<ol><li>Env\u00ede los archivos SQL modificados al punto final de linaje y obtenga el nuevo gr\u00e1fico.<\/li>\n<li>Comp\u00e1relo con el gr\u00e1fico de la rama principal: qu\u00e9 columnas ganaron o perdieron fuentes, qu\u00e9 objetos posteriores cambiaron sus entradas.<\/li>\n<li>Si un cambio afecta a columnas que alimentan objetivos protegidos, como informes regulatorios o paneles de control ejecutivos, la verificaci\u00f3n puede fallar o la diferencia puede publicarse como un comentario de revisi\u00f3n.<\/li><\/ol>\n\n\n\n<p>Debido a que el an\u00e1lisis es est\u00e1tico, esto funciona en c\u00f3digo que nunca se ha ejecutado. Se detecta la dependencia rota en el momento de la revisi\u00f3n, no cuando falla la ejecuci\u00f3n por lotes de las 2 de la ma\u00f1ana. El mismo patr\u00f3n controla las migraciones de esquema: antes de una <code>COLUMNA DE DESCARGA<\/code> En el caso de los terrenos, una llamada de seguimiento descendente le indica cada objeto que consume la columna, directamente o a trav\u00e9s de un filtro.<\/p>\n\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Caso de uso: alimentar su cat\u00e1logo de datos<\/h2>\n\n\n\n<p>Las plataformas de cat\u00e1logo son buenas para organizar metadatos, propiedad y descubrimiento; el linaje SQL a nivel de columna suele ser su punto d\u00e9bil. SQLFlow se integra como el motor de linaje: analiza tu entorno SQL y luego env\u00eda los resultados al cat\u00e1logo que ya utilizas. Las implementaciones empresariales incluyen adaptadores de exportaci\u00f3n listos para usar. <strong>DataHub, Microsoft Purview y OpenMetadata<\/strong>Las exportaciones en formato JSON y CSV permiten cualquier personalizaci\u00f3n. A gran escala, este proceso se ejecuta mediante escaneos por lotes e incrementales en conjuntos de m\u00e1s de 100 bases de datos y m\u00e1s de un mill\u00f3n de columnas, con un repositorio de linaje persistente, lo que garantiza que el cat\u00e1logo se mantenga actualizado sin necesidad de que nadie realice el mantenimiento del linaje manualmente.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Caso de uso: linaje dentro de sus propias herramientas<\/h2>\n\n\n\n<p>Las plataformas de datos internas incorporan repetidamente las mismas funcionalidades: un panel para consultar el origen de las m\u00e9tricas, un verificador de obsolescencia y un mapa de dependencias de migraci\u00f3n. En lugar de crear un analizador SQL, llame a la API desde su servicio y genere el gr\u00e1fico como desee. Si prefiere el diagrama interactivo en lugar del JSON sin procesar, SQLFlow tambi\u00e9n incluye un widget JavaScript integrable con una API de m\u00e1s de 30 m\u00e9todos que se puede incorporar a cualquier aplicaci\u00f3n web; para la integraci\u00f3n en la JVM solo en el backend, existe una biblioteca Java que expone el mismo motor. La API, el widget y la biblioteca devuelven resultados consistentes porque comparten un \u00fanico analizador.<\/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\">Convierta su SQL en un gr\u00e1fico de linaje a trav\u00e9s de HTTP.<\/h2>\n\n\n\n<p>Inspeccione el gr\u00e1fico en el visualizador gratuito y, a continuaci\u00f3n, env\u00ede la misma consulta SQL a la API REST desde su canalizaci\u00f3n.<\/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\">Prueba SQLFlow gratis<\/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\/\">Lea la documentaci\u00f3n de la API.<\/a><\/div>\n<\/div>\n\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfC\u00f3mo se compara esto con otras opciones de linaje program\u00e1tico?<\/h2>\n\n\n\n<p><strong class=\"gd-lead-in\">Se trata de un servicio de an\u00e1lisis SQL, no de una biblioteca de an\u00e1lisis sint\u00e1ctico ni de un recolector en tiempo de ejecuci\u00f3n.<\/strong> Hay tres categor\u00edas que vale la pena conocer. <strong>Bibliotecas de an\u00e1lisis sint\u00e1ctico de c\u00f3digo abierto<\/strong> como <code>sqllineage<\/code> y <code>sqlglot<\/code> Son realmente \u00fatiles para analizar sentencias individuales dentro de un proceso de Python, y para la l\u00f3gica simple de SELECT e INSERT pueden ser suficientes; la deficiencia surge con los procedimientos almacenados, SQL din\u00e1mico, casos l\u00edmite de dialectos y resoluci\u00f3n de vistas o expansi\u00f3n en estrella que requiere contexto de esquema. <strong>Est\u00e1ndares de linaje en tiempo de ejecuci\u00f3n<\/strong> Al igual que OpenLineage, captura el linaje a partir de eventos de ejecuci\u00f3n de trabajos, lo cual es excelente para el linaje a nivel de orquestador, ejecuci\u00f3n por ejecuci\u00f3n, pero solo ve el c\u00f3digo que realmente se ejecut\u00f3, con la granularidad que proporciona la integraci\u00f3n emisora. <strong>Plataformas basadas en cat\u00e1logos<\/strong> Las API de linaje exponen el linaje que hayan ingerido, por lo que sus respuestas solo son tan profundas como el linaje ingerido. La API REST de SQLFlow es una herramienta diferente: un servicio especializado de an\u00e1lisis SQL que calcula el linaje a nivel de columna a partir del propio c\u00f3digo, incluyendo las consultas SQL que nunca se ejecutaron y los procedimientos que otras herramientas omiten. Ambas categor\u00edas se complementan bien; muchos equipos utilizan SQLFlow para calcular el linaje y un cat\u00e1logo para proporcion\u00e1rselo a los usuarios finales.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">D\u00f3nde se ejecuta la API: en la nube o en su propia red.<\/h2>\n\n\n\n<p>La API REST est\u00e1 disponible en ambas implementaciones de SQLFlow. <a href=\"https:\/\/www.gudusoft.com\/es\/sqlflow-cloud\/\">Nube SQLFlow<\/a> es el inicio m\u00e1s r\u00e1pido: un SaaS con un nivel gratuito, premium por $49.99\/mes, sin infraestructura que ejecutar. <a href=\"https:\/\/www.gudusoft.com\/es\/version-local-de-sqlflow\/\">SQLFlow local<\/a> Se implementa mediante Docker o Kubernetes dentro de su red, funciona de forma totalmente aislada y tiene un precio de $500\/mes o $4,800 (pago \u00fanico) por tipo de base de datos seleccionado, instal\u00e1ndose en dos servidores. Un patr\u00f3n com\u00fan es crear un prototipo de la integraci\u00f3n en la nube y luego trasladar las mismas llamadas a la API a un host local para que el texto SQL nunca salga de su infraestructura.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Preguntas frecuentes<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfLa API devuelve el linaje a nivel de columna o a nivel de tabla?<\/h3>\n\n\n<p>Ambas opciones. La profundidad predeterminada es a nivel de columna: para cada columna de salida, se obtienen las columnas de origen exactas y las funciones, uniones y operaciones de conjuntos entre ellas, distinguiendo entre linaje directo e indirecto. Se puede solicitar granularidad a nivel de tabla cuando solo se necesita un gr\u00e1fico de dependencias compacto.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfQu\u00e9 dialectos SQL admite la API de linaje de datos?<\/h3>\n\n\n<p>39 dialectos, cada uno con su propio analizador: Snowflake, BigQuery, Redshift, Databricks, Oracle, SQL Server, PostgreSQL, MySQL, Teradata, Hive, Spark SQL, Trino y m\u00e1s. Debe especificar el dialecto en cada solicitud.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfPuede analizar procedimientos almacenados y SQL din\u00e1mico?<\/h3>\n\n\n<p>S\u00ed. Oracle PL\/SQL y SQL Server T-SQL cuentan con analizadores procedimentales dedicados. El linaje se rastrea a trav\u00e9s de los par\u00e1metros de los procedimientos y las tablas temporales, el SQL din\u00e1mico construido dentro de los procedimientos se resuelve y analiza, y la API puede devolver el gr\u00e1fico de llamadas entre procedimientos.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfLa API necesita acceso a mis datos?<\/h3>\n\n\n<p>No. Realiza un an\u00e1lisis est\u00e1tico del texto SQL que usted env\u00eda y nunca lee los datos de las filas de la tabla. Con la edici\u00f3n local, el texto SQL tambi\u00e9n permanece dentro de su red.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfQu\u00e9 formatos de salida est\u00e1n disponibles?<\/h3>\n\n\n<p>JSON es el formato principal para uso program\u00e1tico; la exportaci\u00f3n a CSV es adecuada para hojas de c\u00e1lculo y cargas masivas, y la exportaci\u00f3n a PNG genera el diagrama renderizado para la documentaci\u00f3n. Las implementaciones empresariales incluyen adaptadores de exportaci\u00f3n para DataHub, Microsoft Purview y OpenMetadata.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfD\u00f3nde se encuentra la referencia completa de la API?<\/h3>\n\n\n<p>En <a href=\"https:\/\/docs.gudusoft.com\/\">docs.gudusoft.com<\/a>, que abarca las rutas de los puntos finales, la autenticaci\u00f3n, los par\u00e1metros de solicitud por capacidad y el esquema de respuesta completo. Para saber qu\u00e9 planes incluyen acceso a la API, consulte <a href=\"https:\/\/www.gudusoft.com\/es\/precios\/\">Precios 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\">Obt\u00e9n el linaje como JSON desde tu SQL.<\/h2>\n\n\n<p>Introduce una consulta en el visualizador gratuito para inspeccionar la estructura del gr\u00e1fico y, a continuaci\u00f3n, integra la API REST en tu flujo de trabajo.<\/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\">Prueba SQLFlow gratis<\/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\/es\/contacto\/\">Hable con nosotros sobre la integraci\u00f3n de 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\/es\/wp-json\/wp\/v2\/pages\/1275"}],"collection":[{"href":"https:\/\/www.gudusoft.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.gudusoft.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.gudusoft.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gudusoft.com\/es\/wp-json\/wp\/v2\/comments?post=1275"}],"version-history":[{"count":21,"href":"https:\/\/www.gudusoft.com\/es\/wp-json\/wp\/v2\/pages\/1275\/revisions"}],"predecessor-version":[{"id":6817,"href":"https:\/\/www.gudusoft.com\/es\/wp-json\/wp\/v2\/pages\/1275\/revisions\/6817"}],"wp:attachment":[{"href":"https:\/\/www.gudusoft.com\/es\/wp-json\/wp\/v2\/media?parent=1275"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}