终于有人把云原生数据库讲明白了

本文介绍了云原生数据库的兴起背景,分析了RDS面临的问题,探讨了以Spanner和Aurora为代表的两种技术路线,并详细阐述了包括TiDB、Aurora、CynosDB、PolarDB、Socrates和TaurasDB在内的多种解决方案。总结了云原生数据库的核心功能、非核心功能和核心价值,指出其在性能、弹性、可用性和成本上的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

随着云计算的蓬勃发展,IT 应用转向云端,云服务出现如下若干特点:

  1. 提供按需服务。

  2. 用户只愿支付运营费用而不愿支付资产费用。

  3. 云服务提供商集群规模越来越大,甚至遍布全球,集群达到云级规模(Cloud-Scale)。

根据以上特点,要求云产品需要提供一定 “弹性”(Elastic),而且达到云级规模;节点故障如同 “噪声” 一样不可避免,这又要求云服务有一定的 “自愈”(Resilience)能力。

起初,通过借助 IaaS,直接将传统的数据库 “搬迁” 到云上,于是出现了关系型数据库服务(RDS)。这样虽然能部分实现 “弹性” 与 “自愈”,但是这种方案存在资源利用率低,维护成本高,可用性低等问题。于是,设计适应云特点的云原生数据库就至关重要。

RDS 的挑战

以 MySQL 为例,如果要实现高可用或者读写分离集群,则需要搭建 binlog 复制集群。

file

图 1:MySQL 复制架构

如上图所示,除了页写入与 double write,redo log 写入操作外,还有 binlog 与 relay log 的写入。

file

云原生数据库简介

为了解决以上问题,需要针对云上服务的特点,改造或者开发新一代云数据库,这便是云原生数据库。

file

通过解耦合与少状态,计算节点扩展就会很轻量,扩展速度近乎进程启动的速度。避免扩展计算资源的时候,不得不浪费存储资源的窘境。

解耦合也使得存储节点也少了一定的约束,可以使用成熟的分布式存储技术实现灵巧化,降低运维成本提高可用性。

接下来将介绍目前两种主流的技术路线和几种知名的方案。

1.Spanner 类

以 Google 的 Spanner[2] 为代表,基于云原生开发全新的数据库。受其影响,产生了CockrochDB、TiDB、YugabyteDB 等产品。

1.1 架构

以 TiDB[3] 架构图为例:

file

图 2:TiDB 架构图

总体来说,此类产品其特点都是在 key-value 存储基础上包装一层分布式 SQL 执行引擎,使用 2PC 提交或者其变种方案实现事务处理能力。计算节点是 SQL 执行引擎,可以彻底实现无状态,本质是一个分布式数据库。

1.2 存储高可用性

<think>嗯,用户让我介绍一下Milvus数据库,用中文回答。首先我需要回想一下Milvus是什么,它主要用于什么场景。记得Milvus是一个开源的向量数据库,专门处理向量相似度搜索的。那用户可能对向量数据库不太了解,可能需要先解释一下向量是什么,以及向量数据库的作用。 接下来,我应该介绍Milvus的核心功能,比如支持大规模向量数据、相似度搜索,适合AI应用。需要提到它常用于图像检索、推荐系统、自然语言处理这些领域。可能用户有具体的应用场景,或者只是想知道基本概念,所以例子会有帮助。 还要考虑用户的技术背景,他们可能是开发者或者刚接触数据库的人。需要避免太专业的术语,或者至少解释清楚。比如解释向量嵌入(embedding)是什么,以及近邻搜索(ANN)的意义。可能还要比较一下传统数据库和向量数据库的不同,强调Milvus在处理非结构化数据上的优势。 另外,Milvus的特点,比如高扩展性、低延迟、支持多种相似度度量方式,这些都很重要。还有云原生、分布式架构,支持多种部署方式,比如单机、集群、Kubernetes,这些技术点需要简要说明,但不要太过深入。 用户可能想知道Milvus的应用场景,这时候举几个实际例子会更好,比如电商推荐、图片去重、文本相似性匹配。同时,可以提一下它的生态系统,比如Attu管理工具,以及与其他AI框架的集成,比如PyTorch、TensorFlow。 最后,确保回答结构清晰,先定义Milvus,再核心功能、特点、应用场景,最后总结。注意用口语化的中文,避免生硬的技术术语堆砌。检查有没有遗漏的关键点,比如开源、社区支持,或者性能优化方面的内容。可能需要确认一下最新的版本信息,确保准确性,但用户没有特别问版本的话,可能不需要太详细。总的来说,要让用户明白Milvus的用途、优势以及适用场景,帮助他们判断是否适合他们的项目需求。</think>Milvus 是一款开源的**向量数据库**,专为处理海量非结构化数据(如图片、文本、音视频等)的向量化检索而设计。它通过高效的近似最近邻搜索(ANN, Approximate Nearest Neighbor)技术,帮助用户快速找到与目标向量最相似的数据,是人工智能和大数据领域的核心基础设施之一。 --- ### **核心功能与特点** 1. **向量相似度搜索** - 将非结构化数据(如图像、文本)通过AI模型转换为**高维向量**(即特征向量),并基于向量间的距离(如欧氏距离、余弦相似度)进行相似性匹配。 - 支持多种索引类型(如IVF、HNSW、DiskANN),平衡精度与速度,适应不同场景需求。 2. **海量数据支持** - 可扩展至数十亿条向量数据,支持分布式架构,满足企业级大规模数据处理需求。 - 通过水平扩展(分片、负载均衡)实现高性能查询。 3. **低延迟与高吞吐** - 针对实时场景优化,毫秒级响应时间,适用于推荐系统、实时检索等场景。 4. **灵活部署** - 支持单机、集群、Kubernetes、云服务(如AWS、Azure)等多种部署方式。 - 提供托管服务(Zilliz Cloud),简化运维。 5. **多语言支持与生态集成** - 提供Python、Java、Go等SDK,方便集成到现有系统。 - 与PyTorch、TensorFlow等AI框架无缝协作,支持Attu(图形化管理工具)、Prometheus监控等工具。 --- ### **典型应用场景** - **图像/视频检索**:以图搜图、内容去重、版权检测。 - **推荐系统**:基于用户行为向量推荐相似商品或内容。 - **自然语言处理(NLP)**:语义搜索、问答系统、文本去重。 - **分子结构搜索**:化学领域快速匹配相似分子。 - **欺诈检测**:通过行为模式向量识别异常交易。 --- ### **技术架构** - **存储与计算分离**:元数据存储依赖MySQL/PostgreSQL/SQLite,向量和标量数据可存储在本地磁盘或对象存储(如S3)。 - **分布式设计**:通过协调节点(Coordinator)、工作节点(Worker)和日志系统(Log Broker)实现高可用与扩展性。 --- ### **快速入门** 1. 安装:通过Docker一键部署单机版: ```bash docker run -d --name milvus -p 19530:19530 -p 9091:9091 milvusdb/milvus:latest ``` 2. 使用Python SDK插入向量并搜索: ```python from pymilvus import connections, Collection connections.connect("default", host="localhost", port="19530") collection = Collection("example_collection") results = collection.search(query_vector, limit=10) # 返回最相似的10条结果 ``` --- ### **优势 vs 传统数据库** - **传统数据库**:擅长结构化数据(如数字、文本)的精确查询,但无法高效处理高维向量相似性搜索。 - **Milvus**:专为AI时代设计,解决非结构化数据检索难题,填补了传统数据库与AI应用之间的鸿沟。 --- 如果你需要更深入的细节(如索引原理、性能调优或具体案例),可以进一步探讨! 😊
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值