- O SQL se consolidou como a linguagem básica para processamento de dados estruturados por 50 anos, mas é difícil de aprender, complicado de usar e difícil de estender
- Problemas do SQL tradicional: imposição da ordem da sintaxe, sintaxe duplicada, necessidade de usar subconsultas, fluxo de dados “de dentro para fora”, falta de extensibilidade etc.
- No GoogleSQL, foi adotada uma abordagem de estender o SQL para resolver esses problemas
- Busca resolver os problemas do SQL introduzindo na linguagem uma sintaxe de fluxo de dados em estrutura de pipe
- Isso permite aprender e usar o SQL de forma mais flexível, mantendo o ecossistema existente e compatibilidade total com o SQL atual
- Reutiliza operadores de SQL existentes e permite compô-los em qualquer ordem com pipes
- Cada operador de pipe enxerga apenas a tabela de entrada, deixando o escopo claro
- Mantém a semântica declarativa
- Passa a ser possível uma correspondência um a um com a álgebra relacional
- A extensibilidade melhora com funções de valor de tabela
- Por exemplo, é possível expressar agregações em múltiplas etapas de forma contínua, sem subconsultas
- O SQL com sintaxe de pipe é mais fácil de aprender e usar, e a flexibilidade melhora bastante por permitir aplicar vários operadores em ordem arbitrária
- Os operadores de pipe funcionam de forma sequencial, permitindo ao usuário filtrar, agregar e ordenar dados com mais facilidade
- Experiência de uso no GoogleSQL
- Adoção contínua pelos usuários e feedback positivo
- Até consultas complexas podem ser expressas de forma linear
- Facilita edição e depuração
- Melhora o suporte de ferramentas de IDE
- É vantajoso para geradores e conversores de código SQL
- Há vantagens potenciais para aplicação de IA
- Implementação e planos futuros
- A sintaxe de pipe foi implementada no GoogleSQL como um componente compartilhado
- Motores de consulta existentes podem ativar facilmente a sintaxe de pipe
- Está em análise o suporte externo em BigQuery e Spanner
- Vale explorar a possibilidade de inclusão futura no padrão SQL
Opinião do GN⁺
- Vantagens da sintaxe de pipe: pode funcionar como uma ferramenta poderosa para resolver a complexidade do SQL, especialmente por permitir expressar o fluxo de dados de forma intuitiva, melhorando bastante a usabilidade da linguagem.
- Compatibilidade com o SQL existente: a proposta não substitui o SQL atual, mas o aprimora, reduzindo a curva de aprendizado e mantendo a compatibilidade com código já existente.
- Pontos a considerar na adoção: ao adotar a sintaxe de pipe, é preciso considerar o impacto em desempenho e o nível de suporte das ferramentas; especialmente em consultas de grande escala, é possível aproveitar melhor suas vantagens.
- Comparação com projetos semelhantes: APIs de DataFrame, como Pandas, também usam estrutura de pipe, mas o diferencial aqui é a combinação com a semântica declarativa do SQL. Assim, é possível usar esse recurso preservando a extensibilidade e o desempenho dos sistemas SQL.
11 comentários
Um acento circunflexo no pipe... parece uma combinação que vai fazer a mão direita doer 🤣
Realmente é preciso melhorar alguma coisa no SQL.
O problema é que não conseguiram encontrar uma proposta de melhoria em uns 30 ou 40 anos...
Parece que, em relação à sintaxe adicional do SQL, o Google deveria liderar o ecossistema, mas será que a divisão de negócios vai sustentar isso?
É o
dplyrmesmo kkkkkPor que, quando o Google faz isso, eu só fico com a sensação de que vai dar ruim..
O Gemini responde como uma criança, então nem dá vontade de usar
Parece bem semelhante à abordagem adotada pelos ORMs.
Só de olhar o exemplo abaixo no paper já dá para ver claramente que o Google SQL é mais fácil de ler.
standard sql
google sql
Lembra o LINQ do C#. Sempre que uso SQL, penso que seria melhor se a ordem do
SELECTviesse depois deFROMeWHERE....No começo parece estranho por falta de costume, mas se você ler devagar, o fluxo acaba parecendo bem mais natural.
Parece que o lado do SQL é mais fácil de ler.
Para mim, a parte de SQL é muito mais fácil de ler. Haha. Acho que a maioria de quem começou com SQL deve sentir o mesmo...
Para mim também, o que é mais familiar acaba sendo mais fácil de ler.. kkk
Comentários do Hacker News