托管在亚马逊云科技的向量数据库MyScale如何借助AWS基础设施构建稳定高效的云数据库

 MyScale是一款完全托管于亚马逊云科技,支持SQL的高效向量数据库。MyScale的优势在于,它在提供与专用向量数据库相匹敌甚至优于的性能的同时,还支持完整的SQL语法。以下内容,将阐述MyScale是如何借助亚马逊云科技的基础设施,构建出一个稳定且高效的云数据库。

 什么是向量数据库

 或许你尚未察觉,然而向量嵌入(vector embedding)实际上无处不在。它们构成了众多机器学习和深度学习算法的根基,被广泛运用于从搜索引擎到智能助手等各式各样的应用。机器学习与深度学习通常会把文本、图像、音频、视频等非结构化数据转化为向量嵌入的形式进行储存,并借由向量相似性搜索技术进行语义相关性搜索。基于向量的相似性搜索现如今已被大量应用于各类人工智能驱动的应用场景,包括图像检索、视频分析、自然语言理解、推荐系统、定向广告、个性化搜索、智能客服以及欺诈检测等。在这样的背景下,对向量数据的管理显得尤为重要,我们需要能够快速地储存、索引和搜索这些向量化的数据。

 现存的向量数据库大体上可以分为两大类别。一类是专为向量设计的专有向量数据库产品,例如Pinecone、Weaviate、Qdrant、Chroma、Milvus等。另一类则是在通用的SQL或NoSQL数据库产品上进行扩展,其中最为人熟知的SQL数据库之一Postgres通过插件pgvector支持了向量索引和搜索;而包括ClickHouse、Redis、Elasticsearch和Cassandra在内的许多开源数据库近期都增加了对向量索引的原生支持。

 人们通常认为,专有的向量数据库专门为向量检索设计,能够提供较佳的搜索性能。而支持向量搜索的通用数据库产品则依赖于原有的通用数据库,能够提供更为完善的数据管理和结构化数据查询能力,向量检索性能则有所损失。MyScale基于开源的在线分析处理(OLAP)数据库ClickHouse开发,集成了自主研发的多尺度树图(英文:multi-scale tree graph,缩写MSTG)向量索引算法。它不仅继承了ClickHouse卓越的结构化数据分析和查询能力,同时也提供了数倍于专有向量数据库的性价比,从而将两者的优势集于一身,给企业提供了统一的结构化和非结构化数据管理方案。

 整体架构

 MyScale是一款完全依托于亚马逊云科技云平台的数据库服务,其架构深度结合了亚马逊云科技的多元化产品线,包含了AWS EC2云端虚拟服务器、AWS EKS集群管理、AWS S3对象存储、AWS NLB负载均衡等。有赖于亚马逊云科技提供的强大底层设施,可迅速地构建出MyScale的云端服务产品。

 如下图所示,MyScale云服务的架构设计包括全局控制平面(global control plane)、区域控制平面(regional control plane)以及区域数据平面(regional data plane)三个层次,每个层次对应一个Kubernetes集群。全局控制平面中部署了云服务的业务系统,负责组织、用户的管理以及整体的使用量统计等。每个区域对应一个云服务供应商的一个可用区,如AWS US-EAST-1。每个区域独立部署一个控制平面和多个数据平面。控制平面提供该区域内的集群管理(创建、停止、销毁)API以及计费系统,数据平面则运行用户启动的MyScale数据库集群,它们运行在同一个数据平面中的多个可用区。

 MyScale的所有服务都部署在亚马逊云科技的托管Kubernetes服务EKS上。EKS提供了高度可用、安全及可扩展的Kubernetes环境,这使得MyScale可以充分利用Kubernetes的强大功能,如服务发现、负载均衡、自动扩缩容、安全隔离等。借助AWS EKS上的Cluster Autoscaler,MyScale可以根据用户工作负载的需求,快速地启动、停止和扩展实例,对EKS的节点池进行扩缩容。

 为了保证用户集群之间的隔离,MyScale利用了Kubernetes的命名空间(namespace)特性。在数据平面中,用户创建的每个MyScale数据库集群对应Kubernetes中的一个命名空间,这样就可以最小化集群之间的相互影响。每个集群对应的命名空间中包含数据库节点、负载均衡服务和元数据存储服务。

 用户在使用MyScale云服务时,可以通过运行在全局控制平面上的Web UI来创建和管理MyScale集群。用户在Web UI创建MyScale集群后,云服务的后端会调用相应区域控制平面中的接口,将MyScale数据库集群的具体参数和配置转成一个Kubernetes中的CRD资源配置文件,保存在该区域的控制平面中。对应的区域数据平面中运行的Cluster Manager会监听到区域控制平面中数据库集群CRD资源的变化情况,并做出相应的操作,在数据平面中创建或修改实际的MyScale数据库集群。在MyScale数据库集群启动后,用户可以通过Web UI、Python/Java/NodeJS客户端、HTTP接口以及包括Langchain和LlamaIndex在内的LLM应用框架来访问MyScale数据库。

 选择配备基于NVMe的本地SSD盘的EC2实例来部署MyScale数据库。和大部分选择纯内存HNSW向量索引算法的向量数据库不同,MyScale自研的MSTG算法允许将向量数据缓存在本地NVMe SSD盘中,因此MyScale在为用户提供高性能的向量搜索的同时,大大节约了内存的使用。在亚马逊云科技的公开测试中,MyScale超过了Pinecone、Weaviate、Qdrant、Zilliz等专有向量数据库,提供了最佳的性价比(QPS per dollar)。

 在部署MyScale云服务时,可以使用Crossplane来实现对亚马逊云科技上的EC2和EKS服务的部署和管理。首先,通过Crossplane的AWS Provider配置了对应的亚马逊云科技账户信息,使得Crossplane能够访问和操作亚马逊云科技资源。然后,定义EC2和EKS的YAML配置文件,通过这些文件,可以定义需要的服务器和Kubernetes集群的参数,如实例类型、集群大小等。通过应用这些配置文件,Crossplane的AWS Provider会调用AWS API来创建和配置这些资源。

 不仅如此,Crossplane还能够定期同步这些资源的状态,可以通过Kubernetes的接口来监控和管理这些资源。当需要修改或删除这些资源时,只需要修改对应的YAML文件并重新应用,Crossplane就会自动完成对应的操作。通过使用Crossplane,能够以一种声明式、统一和自动化的方式来管理云资源,大大提升工作效率和准确性。

 在数据安全方面,MyScale采用了Teleport,一种先进的远程访问管理系统。Teleport能够为开发者和运维人员提供通过密文连接安全地访问Kubernetes集群的能力。这不仅提升了系统的安全性,也提升了操作的便捷性。更重要的是,Teleport具有全面的审计功能,能够详细记录所有会话和事件,这对于进行安全分析和满足合规性要求非常有帮助。这就意味着可以对任何操作有完全的可视化,从而更好地控制和保护MyScale云服务系统,为用户提供安全可靠的服务。

 小结

 这篇文章介绍了MyScale,一个在亚马逊云科技上托管的向量数据库。MyScale基于开源的在线分析处理(OLAP)数据库ClickHouse开发,集成了自主研发的多尺度树图(MSTG)向量索引算法,可以提供优秀的数据管理和结构化数据查询能力,同时也提供了性价比突出的向量搜索功能,以及结构化和非结构化联合分析、处理的功能,可以被广泛应用于图像检索、视频分析、自然语言理解等AI驱动的场景。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2660534.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

手机/平板实现电脑第三屏-记录极简

软件: 手机 平板 : moonlight 电脑: 1 KtzeAbyss/Easy-Virtual-Display 2 Parsec Virtual Display Driver https://builds.parsec.app/vdd/parsec-vdd-0.38.0.0.exe 3 LizardByte/Sunshine: Self-hosted game stream host for Moonlight. (gith…

第十四章 Sentinel实现熔断与限流

Sentinel实现熔断与限流 gitee:springcloud_study: springcloud:服务集群、注册中心、配置中心(热更新)、服务网关(校验、路由、负载均衡)、分布式缓存、分布式搜索、消息队列(异步通信&#x…

OpenCV-Python(21):轮廓特征及周长、面积凸包检测和形状近似

2. 轮廓特征 轮廓特征是指由轮廓形状和结构衍生出来的一些特征参数。这些特征参数可以用于图像识别、目标检测和形状分析等应用中。常见的轮廓特征包括: 面积:轮廓所包围的区域的面积。周长:轮廓的周长,即轮廓线的长度。弧长&…

Linux 线程概念

文章目录 前言线程的概念线程的操作操作的原理补充与说明 前言 ① 函数的具体说明被放在补充与说明部分 ② 只说些基础概念和函数使用 线程的概念 网络回答:Linux 线程是指在 Linux 操作系统中创建和管理的轻量级执行单元。线程是进程的一部分,与进程…

Web漏洞—安全评估基础知识

一个安全评估的过程,可以简单地分为4个阶段:资产等级划分、威胁分析、风险分析、确认解决方案。 一般来说,按照这个过程来实施安全评估,在结果上不会出现较大的问题。这个实施的过程是层层递进的,前后之间有因果关系。 资产等级划分 资产等级…

【CSS3】第4章 CSS3选择器

学习目标 熟悉属性选择器的用法,了解不同属性选择器的功能。 掌握关系选择器的用法,能够使用关系选择器选取父标签中嵌套的子标签。 掌握结构化伪类选择器的用法,能够使用不同功能的结构化伪类选择器精准控制标签样式。 掌握状态化伪类选择…

HCIA-Datacom题库(自己整理分类的)——OSPF协议多选

ospf的hello报文功能是 邻居发现 同步路由器的LSDB 更新LSA信息 维持邻居关系 下列关于OSPF区域描述正确的是 在配置OSPF区域正确必须给路由器的loopback接配置IP地址 所有的网络都应在区域0中宣告 骨干区域的编号不能为2 区域的编号范围是从0.0.0.0到255.255.255.255…

边缘计算网关:在智慧储能系统中做好储能通信管家

背景 目前储能系统主要由储能单元和监控与调度管理单元组成,储能单元包含储能电池组(BA)、电池管理系统(BMS)、储能变流器(PCS)等;监控与调度管理单元包括中央控制系统(MGCC)、能量管理系统(EMS)等。 2021年8月,国家发改委发布《电化学储能…

新版ONENET的物联网环境调节系统(esp32+onenet+微信小程序)

新版ONENET的物联网环境调节系统(esp32onenet微信小程序) 好久没用onenet突然发现它大更新了,现在都是使用新版的物联网开放平台,只有老用户还有老版的多协议接入,新用户是没有的,所以我顺便更新一下新的开…

大厂前端面试题总结(百度、字节跳动、腾讯、小米.....),附上热乎面试经验!

先简单介绍下自己,我“平平无奇小天才”一枚,毕业于南方普通985普通学生,有幸去百度、字节面试,感觉大公司就是不一样,印象最深的是字节,所以有必要总结一下面试经验,以及面试中遇到的一些问题&…

html-css-js使用axios和ajax获取接口并携带请求头+获取输入框或选择器内容

需求:使用axios或者Ajax获取接口,有些需要获取到输入框,或者选择器内容之后传给接口,也就是写了几种不同请求的方法,网上有很多方法,本文章算是个归纳吧。 一、axios请求传参请求头 1.github下载axios 我…

智安网络|实现安全与网络功能一体化:SASE的全新安全策略

随着企业信息化和数字化程度的不断提升,网络安全面临着前所未有的挑战。传统的网络安全模式已经无法满足日益复杂的安全需求。在这一背景下,安全访问服务边缘(SASE)崭露头角,并逐渐成为新一代网络安全架构的关键概念。…

嵌入式开发——ADC开发

学习目标 了解ADC开发流程掌握采样方式能够使用ADC进行芯片内部通道进行采样能够使用ADC对外部电路进行采样学习内容 GD32F4的ADC 特点: 16个外部模拟输入通道;1个内部温度传感通道(VSENSE);1个内部参考电压输入通道(VREFINT);1个外部监测电池VBAT供电引脚输入通道。ADC开…

自动化测试与功能测试

什么是自动化测试? 自动化测试是指利用软件测试工具自动实现全部或部分测试,它是软件测试的一个重要组成 部分,能完成许多手工测试无法实现或难以实现的测试。能够正确、合理地实施自动测试,可以 快速、全面地对软件进行测试,从…

JVM篇:JVM内存结构

程序计数器 程序计数器英文名叫:Program Counter Register 作用:用来记录下一条jvm指令的地址行号。 先来查看一段jvm指令,这些指令对应的java代码就是输出1-5 操作系统运行该Java程序时具体流程如下 语言解释:源文件通过编译转…

水果软件2024FL Studio21.3mac苹果中文版

FL STUDIO21发布,提供您一直在等待的出色工作流程功能。通过新效果、多个播放列表曲目选择和无所畏惧的撤消一切编辑,将您的音乐带入2024年。FL Studio21中文完整版是一个功能齐全、开放式架构的PC音乐创作和制作环境。它具有基于音乐音序器的图形用户界…

OFDM——PAPR减小

文章目录 前言一、PAPR 减小二、MATLAB 仿真1、OFDM 信号的 CCDF①、MATLAB 源码②、仿真结果 2、单载波基带/通频带信号的 PAPR①、MATLAB 源码②、仿真结果 3、时域 OFDM 信号和幅度分布①、MATLAB 源码②、仿真结果 4、Chu 序列和 IEEE802.16e 前导的 PAPR①、MATLAB 源码②…

手撕测试tcp服务器效率工具——以epoll和io_uring对比为例

服务器性能测试介绍 服务器的性能测试主要包括2部分: 并发量。能容纳多大的连接效率。在不崩坏的情况下能对报文的处理效率。 本文主要进行效率测试,看看基于epoll模型和io_uring模型的tcp服务器,谁的效率更高。 测试思路 客户端&#x…

字节跳动 MapReduce - Spark 平滑迁移实践

摘要:本文整理自字节跳动基础架构工程师魏中佳在本次 CommunityOverCode Asia 2023 中的《字节跳动 MapReduce - Spark 平滑迁移实践》主题演讲。 随着字节业务的发展,公司内部每天线上约运行 100万 Spark 作业,与之相对比的是,线…

mac 生成 本地.ssh

输入下面命令行 ssh-keygen 默认回车得到下面的 Generating public/private rsa key pair. Enter file in which to save the key (/Users/{用户名}/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has be…