MyScale es una base de datos vectorial habilitada para SQL y de alto rendimiento, totalmente alojada en AWS. La fortaleza de MyScale radica en su total compatibilidad con la sintaxis SQL estándar y los niveles de rendimiento que igualan o incluso superan a los de las bases de datos vectoriales especializadas.
La función y el propósito de este artículo es explorar cómo MyScale aprovecha la infraestructura de AWS para construir una base de datos en la nube robusta, estable y eficiente.
# Bases de datos vectoriales y embeddings
Pero primero, comencemos describiendo las bases de datos vectoriales, los embeddings vectoriales y cómo las bases de datos vectoriales especializadas almacenan embeddings vectoriales o representaciones matemáticas de objetos como documentos, capturando sus relaciones semánticas e información contextual.
# Bases de datos vectoriales
Las bases de datos vectoriales se pueden clasificar en dos tipos principales:
- Bases de datos vectoriales especializadas como Pinecone, Weaviate y Qdrant, diseñadas específicamente para almacenar vectores.
- Productos de bases de datos SQL o NoSQL de propósito general, con bases de datos SQL populares como PostgreSQL que admiten indexación y búsqueda de vectores a través de complementos como
pgvector
.
Nota:
Varias bases de datos de código abierto, como ClickHouse, Redis, Elasticsearch y Cassandra, han agregado recientemente soporte nativo para indexación de vectores.
Si bien se asume que las bases de datos vectoriales especializadas proporcionan un mejor rendimiento de búsqueda, las bases de datos de propósito general que admiten la búsqueda de vectores ofrecen una gestión de datos más integral y capacidades de consulta de datos estructurados. Sin embargo, MyScale, basado en la base de datos OLAP de código abierto ClickHouse, fusiona tanto la búsqueda de vectores como las capacidades de consulta de datos estructurados en una sola solución.
El equipo de MyScale desarrolló un algoritmo avanzado de indexación de vectores conocido como Multi-Scale Tree Graph (MSTG). Este algoritmo permite un rendimiento de búsqueda rápido, alta densidad de datos y velocidad de inserción rápida. En combinación con el almacenamiento columnar y el análisis rápido de datos estructurados proporcionados por ClickHouse, MyScale ofrece una mayor rentabilidad en comparación con las bases de datos vectoriales especializadas. Estos beneficios se ilustran claramente en el gráfico que sigue.
Fuente: Superando a las bases de datos vectoriales especializadas con MyScale
# Embeddings vectoriales
Los embeddings vectoriales son ubicuos y son la base de numerosos algoritmos de aprendizaje automático y aprendizaje profundo, encontrando su aplicación en una amplia gama de campos, desde motores de búsqueda hasta asistentes inteligentes. Las técnicas de aprendizaje automático y aprendizaje profundo suelen transformar datos no estructurados, como texto, imágenes, audio y video, en embeddings vectoriales. Estos embeddings luego se pueden buscar para encontrar relevancia semántica utilizando técnicas de búsqueda de similitud de vectores.
# Descripción general de la arquitectura de MyScale
MyScale es un servicio de base de datos que aprovecha completamente la plataforma en la nube de AWS, incluidos los siguientes productos de AWS, entre otros:
- EC2: servidores virtuales en la nube
- EKS: orquestación de contenedores
- S3: almacenamiento de objetos
- NLB: equilibrio de carga
Aprovechando la sólida infraestructura subyacente proporcionada por AWS, hemos desarrollado rápidamente las ofertas de servicios en la nube de MyScale.
La arquitectura del servicio en la nube de MyScale está diseñada en tres capas, cada una de ellas un clúster de Kubernetes:
- El plano de control global
- El plano de control regional
- El plano de datos regional
Como describe el siguiente diagrama, el plano de control global alberga los sistemas empresariales del servicio en la nube responsables de la organización, la gestión de usuarios y las estadísticas generales de uso.
Todos los servidores de MyScale se implementan en el servicio de Kubernetes administrado de AWS, EKS, lo que proporciona un entorno de Kubernetes seguro, altamente disponible y escalable. Como resultado, MyScale puede aprovechar al máximo las características de Kubernetes, como el descubrimiento de servicios, el equilibrio de carga, la escalabilidad automática y el aislamiento de seguridad.
Además, MyScale aprovecha las características de espacio de nombres de Kubernetes en el plano de datos para garantizar el aislamiento del clúster de usuarios. Cada clúster de base de datos de MyScale corresponde a un espacio de nombres de Kubernetes único, minimizando el impacto de los clústeres entre sí y asegurando que cada clúster tenga su propio espacio de nombres dedicado que contiene nodos de base de datos, servicios de equilibrio de carga y servicios de almacenamiento de metadatos.
# Aprovechando los servicios de AWS
Utilizamos una instancia de EC2 con discos SSD locales basados en NVMe para implementar la base de datos de MyScale. A diferencia de la mayoría de las bases de datos vectoriales que optan por un algoritmo de indexación de vectores HNSW puramente en memoria, el algoritmo MSTG de MyScale permite que los datos vectoriales se almacenen en caché en discos SSD locales basados en NVMe, lo que proporciona a los usuarios búsquedas vectoriales de alto rendimiento al tiempo que ahorra significativamente en el uso de memoria.
Además, utilizamos Crossplane para implementar y gestionar los servicios en la nube de MyScale alojados en AWS EC2 y EKS. Nuestros recursos en la nube se configuran de manera declarativa, unificada y automatizada con Crossplane, lo que mejora significativamente la precisión y la productividad.
# Seguridad de datos con Teleport
MyScale utiliza Teleport, un sistema avanzado de gestión de acceso remoto para la seguridad de datos. Teleport proporciona una conexión segura a nuestro clúster de Kubernetes, facilitando la seguridad del sistema y la facilidad operativa. También ofrece capacidades de auditoría exhaustivas con un registro detallado de todas las sesiones y eventos, útiles para el análisis de seguridad y los requisitos de cumplimiento.
# En conclusión
MyScale, una base de datos vectorial alojada en AWS, es una herramienta poderosa para manejar datos estructurados y no estructurados. Basado en ClickHouse e integrando el algoritmo de indexación de vectores Multi-Scale Tree Graph (MSTG) de propiedad exclusiva, MyScale ofrece una sólida gestión de datos y capacidades de consulta de datos estructurados. Es rentable y muy adecuado para escenarios impulsados por IA como la recuperación de imágenes, el análisis de video y la comprensión del lenguaje natural.