"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
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.
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.
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 ^^;
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?
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)
OLTP é horizontal
OLAP é vertical, né