Open Query

Recentemente iniciamos o desenvolvimento de uma nova camada intermediária de abstração de dados, cujo objetivo é ser uma alternativa prática ao ORM que herdamos do codebase do Django.

Open Query é uma camada de abstração de dados representada por um conjunto de classes escritas em Python para o Orun e inspiradas no Linq do DotNet que oferece uma via de mão dupla (Python-SQL e SQL-SQL) para executar comandos nativos SQL.

Resumidamente o funcionamento do Open Query é baseado em 3 etapas:

  1. Parser
  2. Analisador de AST
  3. Compilação para SQL

Python-SQL

É a maneira de escrever instruções em Python para que sejam compiladas em SQL nativo e posteriormente executadas. Semelhante ao ORM do Django, o programador escreve as instruções diretamente em Python, que posteriormente são compiladas em SQL nativo (conforme o tipo de banco de dados) e executadas quando preparadas.

Pros

  • Necessário conhecer apenas a linguagem Python

Contras

  • Menos prático para programadores que dominam SQL

SQL-SQL

Se trata de um dialeto com instruções SQL padronizadas. É uma linguagem intermediária que as instruções escritas em SQL sejam posteriormente transpilada para SQL nativo e finalmente executadas.

Com esse recurso o desenvolvedor mais familiarizado com a linguagem SQL terá vantagem prática na construção de consultas complexas.

Pros

  • Escrita prática de consultas
  • Instruções em dialeto SQL intermediário são convertidas para SQL nativo (maior performance pode ser alcançada em instruções complexas)

Contras

  • Requer conhecimento de linguagem SQL

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *