6 pontos por xguru 2020-12-04 | 6 comentários | Compartilhar no WhatsApp

"SQLite for Analytics"

  • RDBMS embarcado otimizado para consultas analíticas complexas

  • Escrito em C++11, em um único binário sem dependências, executado dentro do processo hospedeiro

  • Oferece APIs para Python/R/Java/C/C++/Node.js

  • Armazena o banco de dados em um único arquivo, como o SQLite

  • Casos de uso adequados

→ Processamento e armazenamento de dados tabulares como CSV/Parquet

→ Análise interativa de dados com Join e Aggregate em várias tabelas grandes

→ Quando é preciso fazer grandes alterações simultâneas em várias tabelas grandes (adicionar várias linhas ou adicionar/remover/alterar colunas, etc.)

6 comentários

 
xguru 2020-12-04

Parece que a ideia é dividir os bancos de dados embarcados entre SQLite para OLTP e DuckDB para OLAP.

Diferente do SQLite, que surgiu há 20 anos e hoje já domina o espaço embarcado, este é um projeto open source novato: faz só cerca de um ano e meio desde a versão 0.1. ^^

Há alguns dias, uma API para node.js foi adicionada, então parece ter ficado mais fácil de usar de várias formas.

 
galadbran 2020-12-04

Sempre que vejo isso, sinto que ainda não entendo claramente a diferença entre OLTP e OLAP. T_T Parece que também não há nenhum conteúdo que explique isso de um jeito realmente esclarecedor.

 
galadbran 2020-12-05

Sim, as explicações com que normalmente nos deparamos costumam ser sobre transações e análise (como o próprio nome diz), então os RDBs famosos acabam sendo rápidos tanto para inserir e remover dados quanto para tarefas analíticas, né? Por exemplo, não dá para dizer exatamente que Oracle ou PostgreSQL sejam especializados só em um dos lados... além disso, tenho a sensação de que, na era do big data, a análise de qualquer forma já foi para muito longe do que esse tipo de sistema consegue cobrir. O que eu quis dizer é que ainda hoje não entendo muito bem qual é o sentido de continuar separando OLTP e OLAP ^^;

 
nicewook 2020-12-04

OLTP é especializado em inserir, retirar, apagar e coisas do tipo.

Já OLAP é para analisar e manipular os dados que já estão lá de várias formas.

Dá para entender mais ou menos assim, não acha?

 
xguru 2020-12-04

Hum... a forma como eu explico é:

  • OLTP é horizontal: algo é adicionado linha por linha (entra um novo pedido)

  • OLAP é vertical: ler uma coluna específica inteira para calcular ou alterar algo (calcular a média de vendas diárias)

 
amdev 2024-06-05

OLTP é horizontal
OLAP é vertical, né