30 pontos por xguru 2024-06-13 | 5 comentários | Compartilhar no WhatsApp
  • DuckDB é um banco de dados SQL de arquivo único, especializado em análise de dados
    • A maioria das avaliações sobre DuckDB tende a se concentrar em análises quantitativas
    • Especialmente em termos de velocidade, o DuckDB geralmente apresenta bom desempenho
  • Mas, do ponto de vista do usuário, quando o desempenho já atinge um nível satisfatório, ganhos adicionais de velocidade deixam de ter tanta importância
    • Em vez disso, a facilidade de uso se torna mais importante, e o DuckDB leva vantagem nesse aspecto
  • Vantagens do DuckDB em facilidade de uso:
    1. Experiência do desenvolvedor
    2. Capacidade de lidar com conjuntos de dados maiores que a memória
    3. Facilidade de instalação e execução

Ergonomia

  • O DuckDB foi projetado para tornar tarefas comuns simples de realizar
    • Por exemplo, é possível criar tabelas diretamente a partir de arquivos de entrada e inferir o esquema
    • No caso de arquivos Parquet, também é possível ler arquivos disponíveis na web
  • É possível consultar dados sem criar tabelas previamente
    • A função read_parquet retorna uma relation, então pode ser usada como subconsulta
  • O DuckDB oferece suporte à maioria dos recursos SQL usados no Postgres
    • Por exemplo, funções de janela têm suporte completo

Conjuntos de dados maiores que a memória

  • Muitas ferramentas de dados não funcionam bem quando o conjunto de dados fica maior que a memória do computador
    • Isso pode ser uma fonte de dor subestimada
  • Já o DuckDB oferece suporte completo a conjuntos de dados maiores que a memória
    • No caso do Pandas, podem surgir problemas quando o dataframe ultrapassa 50% da memória do sistema

Instalação e execução simples

  • O DuckDB é compilado como um único executável, duckdb
  • É possível experimentar o DuckDB diretamente no navegador via WASM (shell.duckdb.org)
    • Por ser baseado em WASM, tudo roda no navegador, e não no servidor
  • Usando o DuckDB como se fosse uma biblioteca de dataframes
    • O DuckDB se integra bem com Python
    • É possível executar consultas dentro do Python e usar os valores retornados
      • Isso permite construir operações de dados maiores de forma incremental
    • Você obtém ao mesmo tempo as vantagens do SQL e dos dataframes

Armazenamento de dados com csvbase

  • A biblioteca cliente do csvbase pode se integrar a diversos sistemas por meio da API fsspec
    • Da mesma forma, o DuckDB também pode ser usado com o csvbase

Escalabilidade

  • O DuckDB não escala para milhares de máquinas
    • Já o Apache Spark consegue, mas com uma complexidade considerável
  • Escalar para baixo também é importante
    • O DuckDB funciona no nível de um usuário individual e não exige muitos requisitos

Resumo

  • O DuckDB pode ser uma opção atraente para analistas de dados que conhecem SQL
  • Ele pode lidar com dados maiores que a memória, é fácil de instalar e, em muitos casos, pode ser uma boa alternativa ao Spark

5 comentários

 
cometkim 2024-06-13

A ParadeDB adicionou recentemente uma boa alternativa. https://blog.paradedb.com/pages/introducing_lakehouse

 
silveris23 2024-06-13

Especialmente ao criar dashboards interativos simples com ferramentas como o Streamlit, ele é realmente muito bom.

 
brainer 2024-06-13

Será que vale a pena migrar do Huggingface Datasets?

 
hackerwins 2024-06-13

Estou experimentando criar uma planilha baseada no DuckDB. Estou muito animado com o DuckDB.