Por que o Text-to-SQL falha em ambientes corporativos

A maioria das demonstrações de Text-to-SQL é limpa demais.

Elas usam esquemas simples e nomes de tabelas óbvios. Elas assumem que uma ou duas tabelas se conectam perfeitamente. Isso funciona para uma demonstração. Falha em uma empresa real.

Em bancos de dados corporativos, a parte difícil não é a cláusula SELECT. A parte difícil é o caminho de junção (join path).

Um modelo pode escrever uma consulta válida para a receita por cliente. O SQL é executado. O dashboard mostra números. Mas a resposta está errada.

Por que isso acontece?

  • A tabela de clientes não é a lista mestre oficial.
  • O campo de receita não é a versão aprovada pelo financeiro.
  • Registros estão duplicados entre regiões.
  • A junção cria erros de fanout.
  • Calendários fiscais diferem de anos civis.

Uma consulta sintaticamente válida não é uma consulta confiável.

Sistemas de produção reais são bagunçados. Você enfrenta chaves estrangeiras ausentes, tabelas legadas e relacionamentos de um-para-muitos que inflacionam os números. Até humanos precisam verificar relatórios antigos ou perguntar ao financeiro antes de confiar em uma junção.

Um modelo de IA vê apenas nomes e colunas. Ele adivinha. Às vezes, o palpite é perigoso.

Considere o fanout. Se você fizer o join de pedidos para itens do pedido e depois para remessas, um pedido pode ser contado várias vezes. O SQL está correto. O resultado está errado.

Metadados ajudam, mas não são suficientes. Nomes de colunas não dizem se um relacionamento é seguro para relatórios financeiros. Chaves estrangeiras não explicam exceções históricas.

O Text-to-SQL precisa de inteligência de relacionamento.

Um sistema confiável deve saber:

  • Caminhos de junção aprovados para perguntas de negócio específicas.
  • Cardinalidade de relacionamento.
  • Riscos de fanout conhecidos.
  • Quais caminhos estão obsoletos.

Em vez de apenas escrever código, o sistema deve raciocinar sobre a segurança. Ele deve escolher o caminho confiável ou pedir ajuda quando os caminhos não estiverem claros.

A lacuna nos sistemas atuais é o salto do mapeamento de nomes para a geração de SQL. Você deve adicionar uma camada de contexto de relacionamento.

Text-to-SQL não é apenas um problema de linguagem. É um problema de contexto.

Até que os modelos entendam quais junções são seguras, eles funcionarão em demonstrações, mas falharão em produção.

Fonte: https://dev.to/arisyndata/why-text-to-sql-breaks-when-the-join-path-is-not-obvious-3bk0

Comunidade de aprendizado opcional: https://t.me/GyaanSetuAi