- Ferramenta de extensão que permite implementar, em JavaScript, funções definidas pelo usuário, agregações, funções de janela e modos de ordenação (collation) em bancos de dados SQLite
- Até lógicas difíceis de expressar em SQL podem ser registradas e executadas diretamente com código JavaScript
- Indo além dos limites do SQL tradicional, é possível implementar com facilidade em JavaScript processamento de texto, operações matemáticas, estatísticas, agregações especiais e ordenação natural, aplicando isso a diversos cenários de processamento de dados
- Pode ser usado imediatamente apenas carregando o módulo de extensão, com js_eval para executar código JavaScript diretamente dentro da consulta e sincronização de funções definidas pelo usuário para funcionar da mesma forma até em ambientes de cluster distribuído
- Como é possível criar/modificar dinamicamente em SQL a lógica de funções, agregações, janelas e ordenação, ele é muito eficaz para lógica de negócio complexa, análise de dados e processamento estatístico
- Fuso horário, localidade, ordenação personalizada, estatísticas avançadas, análise em tempo real e mais podem ser viabilizados pelo ecossistema JavaScript, inclusive em casos avançados que antes eram impossíveis no SQLite
Principais funções
- Scalar Functions: retornam um resultado por linha e são usadas em processamento/cálculo de dados (ex.: calcular idade a partir da data de nascimento, extrair o domínio de um e-mail)
- Aggregate Functions: processam várias linhas e retornam um único valor (ex.: agregações personalizadas como desvio padrão e mediana)
- Window Functions: permitem acessar o conjunto inteiro de dados, com suporte a operações complexas de janela como estatísticas deslizantes/acumuladas e média móvel
- Collation Sequences: permitem implementar algoritmos de ordenação personalizados em JavaScript, como ordenação por localidade/linguagem natural ou sem diferenciação entre maiúsculas e minúsculas
- JavaScript Evaluation: executa código JavaScript imediatamente dentro de consultas SQL, útil para operações arbitrárias e transformação de dados
- Sincronização em ambientes distribuídos: ao integrar com sqlite-sync, as funções JS criadas são sincronizadas automaticamente tanto em clusters quanto em ambientes offline
Ainda não há comentários.