UM API de linhagem de dados Permite extrair a linhagem programaticamente: você envia o código SQL via HTTP e recebe um gráfico de linhagem estruturado em JSON, listando cada tabela e coluna de origem, cada destino e as relações de transformação entre eles. API REST Gudu SQLFlow Faz exatamente isso para 39 dialetos SQL, com granularidade em nível de coluna, incluindo procedimentos armazenados e SQL dinâmico. A mesma análise que alimenta os diagramas interativos do SQLFlow está disponível como dados de linhagem estruturados via HTTP.
Veja primeiro o resultado: Cole uma consulta no Visualizador de linhagem SQLFlow gratuitoEm seguida, exporte o gráfico como JSON para ver como a linhagem se apresenta como dados antes de escrever uma única linha de código de integração.
Por que incluir uma API de linhagem de dados em sua infraestrutura?
Os diagramas de linhagem interativos são a forma como os humanos exploram a linhagem. Mas os usos de maior valor da linhagem são automatizados: bloquear uma solicitação de pull que silenciosamente quebra um relatório subsequente, manter a linhagem de um catálogo de dados atualizada sem curadoria manual ou responder à pergunta "o que alimenta esta coluna?" dentro de suas próprias ferramentas internas. Todos esses usos exigem linhagem como dados, sob demanda, de um serviço que você pode invocar.
A abordagem do SQLFlow é a análise estática de SQL. A API analisa o texto SQL que você envia e nunca acessa as linhas das suas tabelas, o que mantém a revisão de segurança curta: a única coisa que trafega pela rede é o código SQL, e com o edição para instalação local até isso permanece dentro da sua rede. O mecanismo subjacente é o Analisador SQL geralTrata-se de um front-end comercial para compilador SQL desenvolvido desde meados dos anos 2000 e validado com aproximadamente 13.600 conjuntos de testes por dialeto, portanto, a linhagem retornada é construída a partir de um modelo semântico completo do SQL, e não de correspondência com expressões regulares.
O que a API REST do SQLFlow retorna
Conceitualmente, a API expõe toda a superfície de análise do SQLFlow como JSON sobre HTTP:
| Capacidade | Você envia | Você volta |
|---|---|---|
| Gráfico de linhagem | Texto SQL mais um identificador de dialeto | O grafo de linhagem completo em nível de coluna em formato JSON: tabelas, colunas e relações de origem para destino. |
| rastreamento a montante/a jusante | Uma tabela ou coluna de interesse | Apenas o subgrafo que alimenta esse objeto (a montante) ou que é alimentado por ele (a jusante), para análise de impacto direcionada. |
| linhagem em nível de tabela | Texto SQL, granularidade da tabela solicitada | Um gráfico de dependência compacto entre tabelas, quando o detalhamento das colunas seria irrelevante. |
| Linhagem direta versus indireta | Uma sinalização no pedido | Relações de fluxo de dados puro, ou adicionalmente as colunas que moldam os resultados por meio de ONDE, JUNTAR, e AGRUPAR POR cláusulas |
| Gráfico de chamadas de procedimentos armazenados | Corpos de procedimentos PL/SQL ou T-SQL | Quais procedimentos invocam quais, com a linhagem rastreada por meio de parâmetros, tabelas temporárias e SQL dinâmico. |
| Diagrama ER | Scripts DDL | Relações inferidas de chave primária/estrangeira como um modelo de entidade-relacionamento |
| Exportações | Um trabalho analisado | JSON ou CSV para máquinas, PNG para documentação e bilhetes. |
Cada solicitação especifica explicitamente seu dialeto. O SQLFlow fornece analisadores sintáticos específicos para 39 bancos de dados e mecanismos de consulta, desde Snowflake, BigQuery, Databricks e Redshift até Oracle, SQL Server, Teradata, Hive e Trino. Assim, a sintaxe específica do fornecedor, como tabelas temporárias T-SQL, é analisada conforme definida pelo fornecedor, e não aproximada por uma gramática ANSI genérica. A lista completa está disponível em [link para a lista completa]. Visão geral da ferramenta de linhagem de dados SQL.
Um exemplo mínimo: POST SQL, recebe um gráfico de linhagem.
A interação principal consiste em uma chamada HTTP. Você envia um texto SQL e um dialeto; a resposta é o grafo de linhagem. Os caminhos dos endpoints, a autenticação e a referência completa dos parâmetros residem no... Documentação da API SQLFlow; o formato da troca de valores é o seguinte:
curl -s -X POST "$SQLFLOW_API/lineage" -H "Authorization: Bearer $SQLFLOW_TOKEN" --form "dbvendor=snowflake" --form 'sqltext=CREATE VIEW customer_ltv AS SELECT c.customer_id, SUM(o.amount) AS lifetime_value FROM customers c JOIN orders o ON o.customer_id = c.customer_id WHERE o.status = ''paid'' GROUP BY c.customer_id;'
A resposta é um gráfico: uma lista de objetos do banco de dados (tabelas, visualizações e suas colunas) e uma lista de relacionamentos entre as colunas. (Versão reduzida e simplificada para fins de ilustração)
{ "relacionamentos": [ { "tipo": "direto", "alvo": {"objeto": "valor_vitalício_do_cliente", "coluna": "valor_vitalício"}, "fontes": [{"objeto": "pedidos", "coluna": "quantidade", "via": "SOMA"}] }, { "tipo": "direto", "alvo": {"objeto": "valor_vitalício_do_cliente", "coluna": "id_do_cliente"}, "fontes": [{"objeto": "clientes", "coluna": "id_do_cliente"}] }, { "tipo": "indireto", "alvo": {"objeto": "valor_vitalício_do_cliente", "coluna": "valor_vitalício"}, "fontes": [{"objeto": "pedidos", "coluna": "status", "via": "ONDE"}] } ] }
Observe a terceira relação. pedidos.status nunca aparece na saída da visualização, mas filtra quais linhas são somadas, portanto, afeta definitivamente o resultado. valor_de_vida_totalO SQLFlow modela isso como linhagem indireta, distinto do fluxo de dados direto e solicitável separadamente. A maioria das ferramentas de linhagem não faz essa distinção, e é exatamente disso que um consumidor de análise de impacto precisa: eliminar pedidos.status corromperia essa visualização, mesmo que nenhuma coluna de saída "venha" dela.
Caso de uso: verificação de linhagem em CI (Integração Contínua)
A integração de maior impacto é aquela executada antes da publicação de um SQL incorreto. Em um job de CI, para cada pull request que utiliza SQL:
- Envie os arquivos SQL modificados para o endpoint de linhagem e obtenha o novo gráfico.
- Compare com o grafo do ramo principal: quais colunas ganharam ou perderam fontes, quais objetos a jusante alteraram suas entradas.
- A verificação falha ou a diferença é publicada como um comentário de revisão quando uma alteração afeta colunas que alimentam alvos protegidos, como relatórios regulatórios ou painéis executivos.
Como a análise é estática, ela funciona com código que nunca foi executado. Você detecta a dependência quebrada no momento da revisão, não quando a execução em lote das 2 da manhã falha. O mesmo padrão controla as migrações de esquema: antes de um COLUNA DE REMOÇÃO Em "lands", uma única chamada de rastreamento downstream informa todos os objetos que consomem a coluna, direta ou indiretamente, por meio de um filtro.
Caso de uso: alimentar seu catálogo de dados
As plataformas de catálogo são excelentes na organização de metadados, propriedade e descoberta; a linhagem SQL em nível de coluna geralmente é seu ponto fraco. O SQLFlow atua como o mecanismo de linhagem: analise seu ambiente SQL e, em seguida, envie os resultados para o catálogo que você já utiliza. As implantações corporativas incluem adaptadores de exportação prontos para uso. DataHub, Microsoft Purview e OpenMetadataE as exportações em JSON e CSV alimentam qualquer personalização. Em grande escala, isso é executado como varreduras em lote e incrementais em conjuntos de mais de 100 bancos de dados e mais de um milhão de colunas, com um repositório de linhagem persistente, de modo que o catálogo permaneça atualizado sem que ninguém precise manter a linhagem manualmente.
Caso de uso: linhagem dentro de suas próprias ferramentas
As plataformas de dados internas continuam aprimorando os mesmos recursos: um painel "de onde vem esta métrica?", um verificador de obsolescência, um mapa de dependências de migração. Em vez de criar um analisador SQL, chame a API do seu serviço e renderize o gráfico da maneira que preferir. Se você quiser o próprio diagrama interativo em vez do JSON bruto, o SQLFlow também oferece um widget JavaScript incorporável com uma API de mais de 30 métodos que pode ser integrada a qualquer aplicativo web; para integração somente com a JVM no backend, existe uma biblioteca Java que expõe o mesmo mecanismo. API, widget e biblioteca retornam resultados consistentes porque compartilham o mesmo analisador.
Transforme seu SQL em um gráfico de linhagem via HTTP
Examine o gráfico no visualizador gratuito e, em seguida, envie a mesma consulta SQL para a API REST a partir do seu pipeline.
Como isso se compara a outras opções de linhagem programática?
Este é um serviço de análise SQL, não uma biblioteca de análise sintática ou um coletor de dados em tempo de execução. Vale a pena conhecer três categorias. Bibliotecas de análise sintática de código aberto como linhagem sql e sqlglot São realmente boas para analisar instruções individuais dentro de um processo Python e, para lógica SELECT e INSERT simples, podem ser suficientes; a lacuna aparece em procedimentos armazenados, SQL dinâmico, casos extremos de dialetos e resolução de visualizações ou expansões em estrela que precisam de contexto de esquema. Padrões de linhagem de tempo de execução Assim como o OpenLineage, que captura a linhagem a partir de eventos de execução de tarefas, o que é excelente para a linhagem em nível de orquestrador, execução por execução, mas só visualiza o código que realmente foi executado, na granularidade fornecida pela integração emissora. Plataformas com foco em catálogo As APIs de linhagem do SQLFlow expõem toda a linhagem que ingeriram, portanto, suas respostas são limitadas à profundidade da ingestão. A API REST do SQLFlow é uma ferramenta diferente: um serviço especializado em análise de SQL que calcula a linhagem em nível de coluna a partir do próprio código, incluindo o SQL que nunca foi executado e os procedimentos que outras ferramentas ignoram. As categorias se complementam bem; muitas equipes usam o SQLFlow para calcular a linhagem e um catálogo para disponibilizá-la aos usuários finais.
Onde a API é executada: na nuvem ou na sua própria rede.
A API REST está disponível em ambas as implementações do SQLFlow. Nuvem SQLFlow é o início mais rápido: um SaaS com um nível gratuito, premium a $49,99/mês, sem necessidade de infraestrutura. SQLFlow no local A implantação é feita via Docker ou Kubernetes dentro da sua rede, funciona totalmente isolada da internet (air-gapped) e tem o preço de £1.300.500/mês ou £1.300.4800 (pagamento único) por tipo de banco de dados selecionado, instalável em dois servidores. Uma prática comum é prototipar a integração na nuvem e, em seguida, migrar as mesmas chamadas de API para um host local, garantindo que o código SQL nunca saia da sua infraestrutura.
Perguntas frequentes
A API retorna a linhagem em nível de coluna ou em nível de tabela?
Ambas. O nível de coluna é a profundidade padrão: para cada coluna de saída, você obtém as colunas de origem exatas e as funções, junções e operações de conjunto entre elas, com distinção entre linhagem direta e indireta. Você pode solicitar granularidade em nível de tabela quando um gráfico de dependência compacto for tudo o que você precisa.
Quais dialetos SQL a API de linhagem de dados suporta?
39 dialetos, cada um com seu próprio analisador sintático: Snowflake, BigQuery, Redshift, Databricks, Oracle, SQL Server, PostgreSQL, MySQL, Teradata, Hive, Spark SQL, Trino e muitos outros. Você especifica o dialeto em cada requisição.
Ele consegue analisar procedimentos armazenados e SQL dinâmico?
Sim. O Oracle PL/SQL e o SQL Server T-SQL possuem analisadores sintáticos procedurais dedicados. A linhagem é rastreada por meio de parâmetros de procedimento e tabelas temporárias, o SQL dinâmico construído dentro dos procedimentos é resolvido e analisado, e a API pode retornar o grafo de chamadas de procedimento para procedimento.
A API precisa acessar meus dados?
Não. Ele realiza uma análise estática do texto SQL que você envia e nunca lê os dados das linhas da tabela. Na versão local, o próprio texto SQL permanece dentro da sua rede.
Quais formatos de saída estão disponíveis?
O JSON é o formato principal para uso programático; a exportação em CSV é adequada para planilhas e carregamentos em massa, e a exportação em PNG produz o diagrama renderizado para documentação. Implantações corporativas adicionam adaptadores de exportação para DataHub, Microsoft Purview e OpenMetadata.
Onde posso encontrar a referência completa da API?
No docs.gudusoft.com, abrangendo caminhos de endpoints, autenticação, parâmetros de solicitação por funcionalidade e o esquema de resposta completo. Para saber quais planos incluem acesso à API, consulte Preços do SQLFlow.
Obtenha a linhagem em formato JSON do seu SQL.
Cole uma consulta no visualizador gratuito para inspecionar a estrutura do gráfico e, em seguida, conecte a API REST ao seu pipeline.