TiDB vs ClickHouse Escolhendo o banco de dados vetorial certo para seus aplicativos de IA
O que é um Banco de Dados Vetorial?
Antes de compararmos TiDB e ClickHouse, vamos primeiro explorar o conceito de bancos de dados vetoriais.
Um banco de dados vetorial é projetado especificamente para armazenar e consultar vetores de alta dimensionalidade, que são representações numéricas de dados não estruturados. Esses vetores codificam informações complexas, como o significado semântico de texto, os recursos visuais de imagens ou atributos de produtos. Ao possibilitar buscas por similaridade eficientes, os bancos de dados vetoriais desempenham um papel fundamental em aplicações de IA, permitindo análise e recuperação de dados mais avançadas.
Casos comuns de uso para bancos de dados vetoriais incluem recomendações de produtos em e-commerce, plataformas de descoberta de conteúdo, detecção de anomalias em cibersegurança, análise de imagens médicas e tarefas de processamento de linguagem natural (NLP). Eles também desempenham um papel crucial na Geração Aumentada por Recuperação (RAG), uma técnica que melhora o desempenho de grandes modelos de linguagem (LLMs) ao fornecer conhecimento externo para reduzir problemas como alucinações de IA.
Existem muitos tipos de bancos de dados vetoriais disponíveis no mercado, incluindo:
- Bancos de dados vetoriais criados especificamente para esse fim como Milvus, Zilliz Cloud (Milvus totalmente gerenciado)
- Bibliotecas de busca vetorial como Faiss e Annoy.
- Bancos de dados vetoriais leves como Chroma e Milvus Lite.
- Bancos de dados tradicionais com complementos de busca vetorial capazes de realizar buscas vetoriais em pequena escala.
TiDB é um banco de dados tradicional e ClickHouse é um banco de dados colunar de código aberto. Ambos têm busca vetorial como um complemento. Este post compara seus recursos de busca vetorial.
TiDB: Visão geral e tecnologia central
TiDB, desenvolvido pela PingCAP, é um banco de dados SQL distribuído, de código aberto, que oferece recursos de processamento transacional e analítico híbrido (HTAP). Ele é compatível com MySQL, facilitando a adoção por equipes que já estão familiarizadas com o ecossistema MySQL. A arquitetura SQL distribuída do TiDB oferece escalabilidade horizontal como bancos de dados NoSQL, ao mesmo tempo que mantém o modelo relacional dos bancos de dados SQL, tornando-o altamente flexível para lidar tanto com cargas de trabalho transacionais quanto analíticas.
Um dos principais pontos fortes do TiDB é sua arquitetura HTAP, que permite processar cargas de trabalho transacionais (OLTP) e analíticas (OLAP) em um único banco de dados, reduzindo a necessidade de sistemas separados. Além disso, a compatibilidade do TiDB com MySQL facilita sua integração a ambientes existentes que dependem de MySQL sem alterações significativas no código da aplicação. O banco de dados também conta com auto-sharding, distribuindo automaticamente os dados entre nós para melhorar o desempenho de leitura e escrita, mantendo forte consistência.
TiDB oferece suporte à busca vetorial por meio de integração com bibliotecas e plugins externos, permitindo gerenciamento e consulta eficientes de dados vetorizados. Esse recurso, combinado com a arquitetura HTAP do TiDB, torna-o uma opção versátil para empresas que precisam de recursos de busca vetorial juntamente com cargas de trabalho transacionais e analíticas. A arquitetura distribuída do TiDB permite lidar com consultas vetoriais em larga escala assim que as configurações necessárias estiverem em vigor.
Embora incluir funcionalidades de busca vetorial no TiDB exija configuração adicional, a compatibilidade SQL do sistema permite que os desenvolvedores combinem busca vetorial com consultas relacionais tradicionais. Essa flexibilidade torna o TiDB adequado para aplicações complexas que exigem tanto busca vetorial quanto recursos de banco de dados relacional, oferecendo uma solução abrangente para diversas necessidades de gerenciamento de dados.
ClickHouse: Visão geral e tecnologia principal
ClickHouse é um banco de dados OLAP em tempo real de código aberto conhecido por seu suporte completo a SQL e processamento de consultas em alta velocidade. Ele se destaca no tratamento de consultas analíticas devido ao seu pipeline de consultas totalmente paralelizado, permitindo que realize operações de busca vetorial rapidamente. Seus altos níveis de compressão, personalizáveis por meio de codecs, permitem que o ClickHouse armazene e consulte grandes conjuntos de dados de forma eficaz. Um de seus principais pontos fortes é que ele consegue lidar com conjuntos de dados de vários TB sem ser limitado pela memória, tornando-se uma ferramenta poderosa para usuários que lidam com dados vetoriais em grande escala. Ele também oferece suporte a filtragem e agregação em metadados, permitindo que os desenvolvedores realizem consultas complexas tanto em vetores quanto em seus metadados associados.
ClickHouse integra a funcionalidade de busca vetorial por meio de seus recursos SQL, nos quais operações de distância vetorial são tratadas como qualquer outra função SQL. Isso permite uma combinação perfeita com filtragem e agregação tradicionais, tornando-o ideal para casos de uso em que dados vetoriais precisam ser consultados juntamente com metadados ou outras informações. Além disso, recursos experimentais como índices de Approximate Nearest Neighbour (ANN) oferecem capacidades de correspondência mais rápidas, embora aproximadas. O ClickHouse também oferece suporte à correspondência exata por meio de uma varredura linear sobre as linhas, com seu processamento paralelizado garantindo alta velocidade e eficiência.
ClickHouse é uma excelente opção para busca vetorial quando é importante combinar correspondência vetorial com filtragem ou agregação de metadados. É especialmente útil para conjuntos de dados vetoriais muito grandes que precisam ser processados em paralelo em múltiplos núcleos de CPU. O ClickHouse também é vantajoso quando o suporte a SQL é necessário, e o conjunto de dados vetoriais é grande demais para depender de índices apenas em memória. Além disso, se você já tem dados relacionados no ClickHouse ou deseja evitar aprender outra ferramenta para gerenciar milhões de vetores, o ClickHouse pode economizar tempo e recursos. Seus pontos fortes estão na correspondência exata rápida e paralelizada e no tratamento de grandes conjuntos de dados, tornando-o adequado para usuários com requisitos de busca avançados.
ClickHouse se destaca como uma plataforma versátil para busca vetorial, particularmente ao lidar com grandes conjuntos de dados que exigem processamento paralelizado e ao combinar buscas vetoriais com filtragem e agregação baseadas em SQL. Embora possa não ser tão especializado para conjuntos de dados pequenos, limitados pela memória, ou cenários de alto QPS quanto bancos de dados vetoriais dedicados, sua capacidade de lidar com consultas complexas, incluindo metadados, torna-o uma opção poderosa para desenvolvedores familiarizados com SQL que precisam de recursos de busca vetorial em alta velocidade.
Principais diferenças
Arquitetura de busca
TiDB lida com busca vetorial por meio de plugins externos, mantendo seus recursos HTAP. Ele permite consultas combinadas vetoriais e relacionais por meio de sintaxe compatível com MySQL.
ClickHouse implementa busca vetorial diretamente dentro de seu framework SQL, tratando operações vetoriais como funções SQL padrão. Ele usa um pipeline de consultas totalmente paralelizado, oferecendo suporte tanto à correspondência exata por meio de varreduras lineares quanto à correspondência aproximada via índices ANN.
Gerenciamento de dados
TiDB se destaca em cargas de trabalho híbridas, gerenciando dados transacionais e analíticos com auto-sharding. Ele distribui dados entre nós automaticamente, mantendo forte consistência.
ClickHouse se concentra em cargas de trabalho analíticas com altas taxas de compressão. Ele pode processar conjuntos de dados vetoriais de vários TB sem restrições de memória, permitindo filtragem e agregação eficientes tanto em vetores quanto em metadados.
Desempenho e escalabilidade
O TiDB escala horizontalmente por meio de sua arquitetura distribuída, mas o desempenho da busca vetorial depende da configuração de bibliotecas externas.
O ClickHouse alcança alto desempenho por meio do processamento paralelizado entre núcleos de CPU. Ele lida com consultas vetoriais em larga escala de forma eficiente, especialmente quando combinado com filtragem por metadados.
Integração
O TiDB oferece compatibilidade com MySQL, tornando-o adequado para ambientes MySQL existentes. A busca vetorial requer configuração adicional e bibliotecas externas.
O ClickHouse fornece suporte SQL nativo para operações vetoriais, permitindo a integração perfeita da busca vetorial com consultas SQL tradicionais.
Quando usar o TiDB
O TiDB é a melhor escolha quando você precisa tanto de processamento transacional quanto analítico em um ambiente compatível com MySQL. Sua arquitetura distribuída e seus recursos de auto-sharding o tornam perfeito para aplicações em larga escala que exigem forte consistência, especialmente aquelas que já investiram no ecossistema MySQL. O TiDB funciona melhor quando a busca vetorial faz parte de uma estratégia de dados mais ampla que inclui operações tradicionais de banco de dados.
Quando usar o ClickHouse
O ClickHouse é melhor para organizações com conjuntos de dados vetoriais massivos que precisam de processamento analítico de alta velocidade. Seus recursos nativos de busca vetorial, combinados com processamento paralelo e integração SQL, o tornam perfeito para cientistas de dados e engenheiros que precisam realizar consultas complexas envolvendo tanto operações vetoriais quanto filtragem por metadados. Ele é especialmente poderoso quando a otimização de memória e o desempenho das consultas são a principal prioridade.
Resumo
TiDB e ClickHouse são para casos de uso diferentes - o TiDB é para processamento híbrido transacional-analítico com compatibilidade com MySQL, o ClickHouse é para processamento analítico de alta velocidade e busca vetorial nativa. Escolha com base em suas necessidades: TiDB para SQL distribuído com busca vetorial como complemento, ou ClickHouse para processamento analítico dedicado com vetores integrados. Considere sua infraestrutura existente, tamanho dos dados, padrões de consulta e requisitos de desempenho ao tomar a decisão.
Leia isto para obter uma visão geral do TiDB e do ClickHouse, mas para avaliá-los você precisa avaliar com base no seu caso de uso. Uma ferramenta que pode ajudar com isso é o VectorDBBench, uma ferramenta de benchmarking de código aberto para comparação de bancos de dados vetoriais. No fim, um benchmarking completo com seus próprios conjuntos de dados e padrões de consulta será fundamental para tomar uma decisão entre essas duas abordagens poderosas, mas diferentes, para busca vetorial em sistemas de bancos de dados distribuídos.
Usando o VectorDBBench de código aberto para avaliar e comparar bancos de dados vetoriais por conta própria
VectorDBBench é uma ferramenta de benchmarking de código aberto para usuários que precisam de sistemas de armazenamento e recuperação de dados de alto desempenho, especialmente bancos de dados vetoriais. Esta ferramenta permite que os usuários testem e comparem diferentes sistemas de bancos de dados vetoriais, como Milvus e Zilliz Cloud (o Milvus gerenciado), usando seus próprios conjuntos de dados e encontrem aquele que se ajusta aos seus casos de uso. Com o VectorDBBench, os usuários podem tomar decisões com base no desempenho real de bancos de dados vetoriais, em vez de alegações de marketing ou boatos.
O VectorDBBench é escrito em Python e licenciado sob a licença de código aberto MIT, o que significa que qualquer pessoa pode usá-lo, modificá-lo e distribuí-lo livremente. A ferramenta é mantida ativamente por uma comunidade de desenvolvedores comprometida em melhorar seus recursos e desempenho.
Baixe o VectorDBBench de seu repositório GitHub para reproduzir nossos resultados de benchmark ou obter resultados de desempenho em seus próprios conjuntos de dados.
Dê uma olhada rápida no desempenho dos bancos de dados vetoriais convencionais no Ranking do VectorDBBench.
Leia os seguintes blogs para saber mais sobre avaliação de bancos de dados vetoriais.
Recursos adicionais sobre VectorDB, GenAI e ML
Continue lendo

What Is a Vector Lakebase?
A Vector Lakebase is a unified, lake-native data architecture for AI that combines vector-database-grade serving with open lake storage, reusable lake-level indexes, and a shared semantic layer.

Why AI Databases Don't Need SQL
Whether you like it or not, here's the truth: SQL is destined for decline in the era of AI.

Vector Databases vs. Key-Value Databases
Use a vector database for AI-powered similarity search; use a key-value database for high-throughput, low-latency simple data lookups.
The Definitive Guide to Choosing a Vector Database
Overwhelmed by all the options? Learn key features to look for & how to evaluate with your own data. Choose with confidence.


