向量数据库的特性、索引和分析权衡

向量数据库概述

向量数据库的特征
  • 数据库多样性:向量数据库在实现、性能、可扩展性和易用性方面存在差异,支持语义搜索应用。
  • 融资与地理位置:多数向量数据库初创公司集中在加州湾区,但资金并不直接反映数据库能力。
  • 编程语言:现代数据库多采用Golang或Rust编写,以实现高性能。Java和Python也在一些数据库中使用。
  • 时间线:Vespa是最早引入向量相似性搜索的供应商之一,随后Weaviate、Milvus等加入竞争。到2021年,更多新供应商如Vald、Qdrant和Pinecone出现。
  • 源代码可用性:大多数数据库至少在部分代码库上是开源的,但Pinecone是完全闭源的。
  • 托管方法:数据库提供自托管、托管/云原生和嵌入式模式。Chroma和LanceDB支持嵌入式模式。
  • 索引方法:多数供应商使用HNSW算法,一些数据库如Milvus、Weaviate和LanceDB实现了DiskANN算法以处理大型数据集。
各向量数据库优缺点

1. Pinecone

  • 优点:易于上手,完全云原生,无需了解向量化或索引知识。
  • 缺点:完全专有,内部运作和路线图不透明,依赖外部托管服务,缺乏数据库控制。

2. Weaviate

  • 优点:出色的文档,专注于提供优秀的开发者体验,快速搜索,支持关键字和向量搜索,混合搜索功能强大。
  • 缺点:使用Golang构建,可扩展性通过Kubernetes实现,可能需要大量基础设施资源,完全托管服务的长期成本影响未知。

3. Qdrant

  • 优点:良好的文档,使用Rust构建,资源利用低,通过分区和Raft共识协议实现可扩展性,混合搜索功能正在开发中。
  • 缺点:相对较新,查询用户界面有待改进,部分功能正在开发中。

4. Milvus/Zilliz

  • 优点:成熟,提供多种向量索引选项,使用Golang构建,具有强大的可扩展性,唯一提供DiskANN实现的主要供应商。
  • 缺点:系统复杂,资源密集,客户端API不如较新数据库易读或直观。

5. Chroma

  • 优点:提供Python/JavaScript接口,快速启动向量存储,市场首个默认提供嵌入模式的向量数据库。
  • 缺点:主要是对Clickhouse和hnswlib的封装,没有自己的存储层,长期来看可能需要替代解决方案。

6. LanceDB

  • 优点:专为多模态数据设计,使用嵌入式、无服务器架构,使用Rust构建,具有高性能和低资源消耗。
  • 缺点:功能正在积极开发中,工程团队规模较小,功能优先级排序可能是一个挑战。

7. Vespa

  • 优点:提供企业级混合搜索能力,结合关键字搜索和自定义向量搜索。
  • 缺点:开发人员体验不够流畅,由于使用Java编写,维护难度较高。

8. Vald

  • 优点:高度分布式架构,处理多模态数据存储,使用NGT算法提供快速ANN搜索。
  • 缺点:使用量和关注度较低,文档中对向量索引描述不明确。

9. Elasticsearch, Redis and pgvector:

  • 优点:如果已经在使用这些数据库,利用它们的向量索引和搜索功能较简单。
  • 缺点:不是专门为向量搜索设计的,性能可能受到影响,Redis VSS在数据超过内存时需要考虑替代方案。

这些数据库各有优势和局限性,选择时应根据具体需求和场景进行权衡。

数据库的嵌入

嵌入是将原始数据(如图像、音频或文本)转换为数字向量表示的过程。这些嵌入保留了原始数据的关键特征和上下文信息,使其能够在高维空间中进行有效的比较和搜索。

嵌入的生成通常依赖于机器学习模型,特别是在自然语言处理(NLP)领域,Transformer模型被广泛用于生成高质量的文本嵌入。文本嵌入可以通过多种方式生成,包括使用开源库如Sentence Transformers,或者通过API服务如OpenAI和Cohere。不同的嵌入模型提供不同维度和大小的向量,通常维度越低,向量空间越紧凑,但可能牺牲一些质量。

向量数据库存储这些嵌入向量,通常是以矩阵的形式,其中每一行代表一个数据点,每一列是一个维度。为了提高查询效率,这些矩阵会被分成多个分片。

在向量数据库中,用户可以通过将自然语言查询转换为与数据相同的嵌入空间中的向量,来执行语义搜索。这种搜索方法能够找到与查询最相似的数据点,即使这些数据点在原始形式下没有明显的相似性。

向量数据库的工作原理

向量数据库是用于存储和查询向量数据的高效系统,通常用于执行相似性搜索。这些数据库通过将文本、图像等非结构化数据转换为高维向量,来捕捉数据之间的语义关系。在文本数据中,常用的相似度指标包括点积和余弦距离。点积产生非归一化的值,而余弦距离则提供介于-1和1之间的归一化值。余弦距离是通过计算向量与原点连线和向量之间角度的余弦值来定义的。

当数据规模扩大时,K近邻(KNN)方法的效率会降低。为了解决这个问题,近似最近邻(ANN)搜索算法被用于快速检索最相似的向量,虽然这可能会牺牲一些精度。为了提高搜索效率,向量数据库使用各种索引技术,如倒排文件索引(IVF)、分层可导航小世界(HNSW)图和Vamana(在DiskANN实现中使用)

向量数据库在语义搜索方面表现出色,但关键字搜索在特定情况下可能更相关。因此,混合搜索系统结合了关键字和向量搜索的优势,使用交叉编码器模型重新排序结果以提高相关性。结合向量数据库和强大的语言模型,如GPT-4,可以构建生成式问答应用程序。这些应用程序允许用户通过自然语言查询数据,并利用向量数据库的高效搜索能力来提供准确的信息。

向量数据库为现代应用程序提供了强大的搜索能力,但了解其局限性很重要。它们不一定优先考虑关键词短语的精确匹配,并且受到嵌入模型最大序列长度的限制。在考虑使用向量数据库时,应深入理解业务需求和技术细节,以确保正确选择和实施。

与用于生成句子嵌入的双编码器不同,交叉编码器不会生成嵌入向量,而是通过softmax层为一对句子分配一个介于0和1之间的分数,从而对其进行分类。这被称为重新排序。

数据库的架构

向量数据库的架构包括存储层、数据摄入、查询引擎和应用程序层。存储层负责存储向量数据,而查询引擎通过索引快速检索数据。应用程序层允许用户通过API网关与数据库交互。

向量数据库的索引

在向量数据库的领域中,索引的构建和选择是至关重要的,因为它们直接影响到搜索的效率和准确性。

索引的第一个层次:数据结构

索引可以通过它们所基于的数据结构来进行分类,主要包括哈希索引、基于树的索引、基于图的索引和倒排文件索引。

1. 哈希索引(Hash-based index)

  • 原理:利用哈希函数将高维数据转换为低维哈希码,通过保持相似数据的哈希碰撞来提高检索速度。
  • 优点:在处理大量数据时非常快速。
  • 缺点:准确性较低。

2. 基于树的索引(Tree-based index)

  • 原理:使用二叉搜索树等结构在低维空间中进行快速搜索,通过保持相似数据的同一子树来提高检索速度。
  • 优点:对低维数据表现较好,可以快速发现近似最近邻。
  • 缺点:在高维数据中准确性较低,无法充分捕捉数据的复杂性。

3. 基于图的索引(Graph-based index)

  • 原理:基于数据点在向量空间中形成图的思想构建索引,图中的节点表示数据值,边表示数据点之间的相似性。
  • 优点:能够在高维数据中找到近似最近邻,具有较高的内存效率,提高性能。
  • 缺点:尚未提及。

4. 倒排文件索引(Inverted file index,IVF)

  • 原理:将向量空间划分为多个细分单元,称为Voronoi图,以缩小搜索空间。
  • 优点:有助于设计快速缩小相似性感兴趣区域的ANN算法。
  • 缺点:在细分向量空间的量化步骤可能对于非常大量的数据而言速度较慢。

总的来说,每种索引方法都有其独特的优势和局限性,选择哪种索引方法取决于具体的数据和应用需求。在实际应用中,可以结合多种索引方法以提高检索性能。

索引的第二个层次:压缩

向量数据库使用索引来提高搜索效率,并支持近似最近邻(ANN)搜索。

1. 索引的压缩级别

  • 平坦索引:未经修改的向量存储,直接与数据库中的每个向量进行比较。
  • 量化索引:通过将向量转换为较少字节的块来压缩数据,减少内存消耗和计算成本。量化通常分为标量量化(SQ)和产品量化(PQ)。SQ通过将浮点数转换为整数来压缩数据,而PQ更复杂,考虑了每个向量维度上的值分布,通过将向量映射到子空间中点的质心来进行压缩和降维。

2. 流行的索引方法

  • IVF-PQ是向量倒排文件索引与产品量化的组合,它在缩小搜索空间的同时,通过量化向量来减少内存需求,并大幅提升速度。
  • HNSW是一种分层可导航小世界图,它能够在复杂的高维向量空间中以高召回率找到近似最近邻,是当前最流行的索引类型之一。
  • Vamana是一种新的基于图的索引算法,专为磁盘性能设计和优化,能够在存储大于内存的向量数据时表现出与HNSW相当的性能和速度。

3. 向量数据库中可用的索引

  • Milvus、Weaviate、Qdrant和LanceDB等数据库提供了HNSW索引作为默认选项。
  • 这些数据库还提供了简单的调整参数,用于控制Product Quantization组件中的压缩/量化级别。

在选择索引方法时,需要根据数据集的大小、搜索准确性需求和内存限制等因素进行权衡。

  • Flat索引是以原始形式存储向量的索引,用于精确的k最近邻搜索。它是最准确的,但也是最慢的。

  • IVF-Flat索引使用倒排文件索引来快速缩小搜索空间,比暴力搜索要快得多,但会在召回率方面牺牲一些准确性。

  • IVF-PQ使用IVF与Product Quantization结合,对向量进行压缩,减少内存占用并加快搜索速度,同时在召回率方面比纯索引更好。

  • HNSW是目前最流行的索引类型,通常与Product Quantization结合使用,以提高搜索速度和内存效率。

  • Vamana是一个相对较新的索引,专为磁盘性能设计和优化-它承诺在存储大于内存的向量数据时能够表现出与HNSW相当的性能和速度。然而,目前还没有很多数据库实现Vamana索引,这是由于磁盘性能方面的挑战。

LanceDB是市场上唯一将所有向量索引都基于磁盘的向量数据库。这是因为他们在多个方面同时进行创新:

  • LanceDB正在构建一种新的高效列式数据格式Lance,旨在成为parquet的现代继任者,并针对向量搜索进行了优化。

  • 正是由于这种高效的存储层,LanceDB能够在基于磁盘的索引方面充满信心,与其他供应商不同。

  • LanceDB采用了嵌入式(无服务器)的专用架构,从头开始构建。零拷贝数据访问是对基于磁盘的索引的巨大性能提升。

  • 数据的自动版本控制,无需额外的基础设施。

  • 与AWS S3和Azure Blob Storage等云存储提供商直接集成,非常容易与现有的数据流水线集成。 

向量数据库的分析权衡

本地部署与云托管

在考虑数据库的部署选项时,组织需要权衡本地部署和云托管解决方案的优缺点。

部署选项

1. 云原生(托管)+ 客户端-服务器模式

  • 这是一种常见的数据库架构,其中数据库作为服务在云中托管,用户通过客户端连接到服务器进行数据查询和操作。
  • 优点包括可扩展性和无需本地基础设施维护。
  • 缺点是可能涉及更高的成本,尤其是随着数据量的增加,以及对云供应商的依赖。

2. 本地部署(自托管)+ 嵌入式

  • 在这种模式下,数据库嵌入到应用程序中,并在本地服务器上运行。
  • 优点包括对数据的完全控制、可能降低的成本和更好的隐私保护。
  • 缺点可能是扩展性较差,需要本地硬件和IT支持。

3. 云原生(托管)+ 嵌入式

  • 这种混合模式结合了云的可扩展性和嵌入式的灵活性。
  • 优点是结合了云的弹性和嵌入式数据库的便利性。
  • 缺点可能与成本和云服务的依赖性有关。

成本考虑

1. 云托管解决方案

  • 通常基于存储的数据量和查询次数收费。
  • 适合数据量快速增长且不想投资本地基础设施的组织。
  • 可能不适合已有大量内部数据基础设施的组织,因为这些组织可能不需要将数据迁移到云端。

2. 本地或嵌入式托管

  • 可能需要初始投资用于硬件和IT支持。
  • 适合对数据敏感且需要与现有系统集成的大型组织。

选择数据库部署模型时,组织应该基于数据敏感性、成本、可扩展性和现有基础设施的能力来做出决策。云原生和嵌入式数据库解决方案各有优势,了解组织的具体需求和限制是做出正确选择的关键。

专业供应商与传统供应商

在添加向量/语义搜索功能时,组织可以选择专业向量数据库供应商或传统数据库供应商。

传统供应商如Elasticsearch、Meilisearch、MongoDB等虽然提供了向量搜索功能,但这些功能可能受到限制,并且可能需要特殊的部署和许可条款。相比之下,专业向量数据库供应商如Qdrant、Weaviate、LanceDB等专门为向量搜索优化了其存储、索引和查询策略,并且从头开始构建系统,通常使用现代编程语言如Go或Rust,以实现大规模可扩展性和性能。

组织在自己的数据上运行基准测试,以比较传统解决方案和专为向量搜索构建的解决方案的性能,并考虑解决方案是否能够随着数据的增长而扩展。现有的解决方案添加向量搜索功能的性能可能不如专为向量数据库那样高效。

插入速度与查询速度

在选择向量数据库时,插入速度和查询速度之间的权衡。

虽然某些供应商如Milvus/Zilliz专注于支持大规模流式应用案例,其中实时插入和索引大量向量是关键,但对于大多数组织来说,查询速度更为重要。这是因为插入和索引通常是不频繁的操作,而数据可能会被频繁查询,通常通过用户界面以实时的方式进行大规模查询。

Qdrant是一个开源的、专为向量数据库的解决方案,使用Rust编写,专门针对这种使用案例进行了优化,能够在实时环境中实现语义搜索,并满足应用程序的延迟要求。组织在做出决策时考虑他们将多频繁地插入大量向量,以及他们是否满足查询时的应用程序延迟要求。

召回率与延迟方面

在向量数据库中,召回率和延迟之间的权衡。召回率是指查询返回的相关结果的百分比,而延迟是指返回结果所花费的时间。不同的数据库供应商在优化这两方面时会做出不同的权衡。

  • 原始向量存储的索引方法提供最准确的K近邻搜索,但速度最慢。
  • IVF-Flat索引通过倒排文件索引快速缩小搜索空间,提高了速度但牺牲了一些召回率。
  • IVF-PQ结合了IVF和Product Quantization,减少了内存占用并加快了搜索速度,同时比纯索引有更好的召回率。
  • HNSW是目前最流行的索引方法,可以与Product Quantization结合使用以提高召回率,同时在内存效率上优于HNSW-PQIVF-PQ。
  • Vamana是一种新的索引方法,专为磁盘性能优化,承诺在性能上与HNSW相当,但目前尚未被广泛采用。

对于早期阶段的使用案例和概念验证,VF-PQ是有意义的,因为它不要求完美的相关性。然而,为了获得更好的质量和相关性,大多数供应商使用HNSW索引。最近,像Weaviate和Qdrant这样的供应商已经开始将Product Quantization与HNSW结合使用,以提高处理大型数据集时的内存效率。

  • 使用案例,搜索召回率有多重要?通常,通过对自己的数据和查询进行基准测试研究,可以帮助回答这个问题。
  • 使用案例,延迟有多重要?如果数据集非常大,那么使用产品量化索引(如IVF-PQ或HNSW-PQ)来减少内存占用可能是有意义的。
内存中与磁盘上的索引和向量存储

向量数据库中的内存中索引与磁盘上索引和向量存储的权衡。

  • 内存中数据库:如Redis,速度非常快,但只能存储小于内存的数据量。
  • 磁盘上数据库:可以存储大量大于内存的向量。为了保持接近内存数据库的搜索速度,一些数据库采用了内存映射文件技术,如Qdrant和Weaviate。这允许向量存储在磁盘上,但查询时只有相关的页面会被加载到内存中。

从索引的角度来看,HNSW(层次导航稀疏工作空间)算法因其对内存需求较高而闻名。随着数据集变大,结合产品量化(PQ)可以减少内存需求。Vamana是一种新的索引方法,是DiskANN算法的一部分,适用于磁盘上的大数据集,性能与HNSW相当。

LanceDB是一个特别的例子,它所有支持的索引都是基于磁盘的,使用Lance列式向量存储,专为快速磁盘向量检索优化。

  • 如果数据集很大,如何减少内存消耗?可以减少向量维度、调整HNSW图连接的最大数量或添加产品量化。
  • 数据库是否有磁盘上向量存储的选项,如果有,它会如何影响查询速度?这需要在具体的数据和使用案例上进行测试。

组织在选择数据库时,应根据自己的数据集大小、查询速度和内存需求来做出决策。

稀疏向量存储与密集向量存储

在向量数据库中使用稀疏向量存储和密集向量存储的优缺点。

  • 稀疏向量:由算法如BM25和SPLADE生成,基于文档的相对词频,其中大部分值为零。稀疏向量的计算和存储成本较低,Elasticsearch等数据库提供了专有的稀疏模型。
  • 密集向量:由Transformer模型生成,如BERT,包含非零浮点数,更好地压缩了语言的语义。密集向量提供了更好的语义搜索性能,但索引成本更高。

在考虑使用稀疏向量还是密集向量时,组织应考虑以下问题:

  • 语义搜索的重要性:如果语义搜索对使用案例至关重要,那么密集向量是首选。
  • 延迟和索引速度的重要性:如果延迟和索引速度是关键考虑因素,那么可能需要考虑使用稀疏向量,尽管它们的语义搜索性能不如密集向量。

组织应根据自己的具体需求和约束来选择最合适的向量存储方式。

全文搜索与向量搜索混合策略

在信息检索系统中使用全文搜索与向量搜索混合策略的重要性。向量搜索虽然强大,但不是万能的解决方案,特别是在企业级应用程序中。纯向量搜索可能会将语义上相似的结果排在精确匹配之上,而关键词搜索则可能更关注精确匹配。因此,结合这两种搜索方法可以提高结果的质量。

几种混合搜索策略:

  • 简单回退方法:首先使用支持BM25算法的全文搜索引擎(如Meilisearch或Elasticsearch)进行关键词搜索,然后将向量搜索结果与关键词搜索结果结合。
  • 倒数秩融合(RRF):将稀疏向量和密集向量获得的倒数秩相加,提供一个融合的排序分数。
  • 交叉编码器重新排序:使用神经双编码器融合稀疏/密集排序分数,通常产生最佳结果,但可能导致更高的延迟。

一些实现混合搜索的方法,包括Vespa搜索引擎的HNSW-IVF组合索引,以及Elasticsearch和Weaviate等数据库提供的RRF方法。

过滤策略

在向量数据库中进行搜索时,过滤策略的重要性,尤其是在涉及元数据属性(如尺寸、价格、品牌等)的搜索中。过滤策略可以分为预过滤搜索、后过滤搜索和自定义过滤搜索。

  • 预过滤搜索:在执行向量搜索之前,根据元数据属性对数据进行过滤。这种方法可以减少搜索空间,但可能会错过一些语义上相关但不符合过滤条件的结果。
  • 后过滤搜索:在执行向量搜索并返回结果后,根据元数据属性对结果进行过滤。这种方法可以确保结果在语义上与查询相关,但可能会因为过滤条件过于严格而导致结果数量减少。
  • 自定义过滤搜索:结合了预过滤和后过滤的优点,在向量搜索之前应用一些预过滤,但不过度限制搜索结果。在返回结果后,可能会进一步根据其他属性进行后过滤。

没有一种“一刀切”的过滤结果的解决方案,一些缓解策略,如构建额外的IVF索引以使用关键词辅助搜索,或在类别之间创建额外的HNSW图连接。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【前端素材】推荐优质后台管理系统Dashmin平台模板(附源码)

一、需求分析 后台管理系统在多个层次上提供了丰富的功能和细致的管理手段,帮助管理员轻松管理和控制系统的各个方面。其灵活性和可扩展性使得后台管理系统成为各种网站、应用程序和系统不可或缺的管理工具。 后台管理系统是一种具有多层次结构的软件系统&#xf…

【DDD】学习笔记-领域模型与数据模型

领域模型与数据模型 领域驱动的设计模型最重要的概念就是聚合,同时,聚合还要受到限界上下文边界的控制。Eric Evans 之所以要引入限界上下文,其中一个重要原因就是因为我们“无法维护一个涵盖整个企业的统一模型”,于是需要限界上…

我花了5天时间,开发了一个在线学习的小网站

大三寒假赋闲在家,闲来无事,用了5天时间做了一个在线学习的小网站,一鼓作气部署上线,制作的过程比较坎坷。内心经历过奔溃,也经历过狂喜。 按照惯例先放出网址,欢迎大家来访问学习:www.pbjlove…

滑动窗口刷题(二)

目录 1.最大连续1的个数 III 1.题目解析 2.算法原理 2.1暴力枚举(不过多介绍) 2.2双指针优化 3.代码编写 2. 将 x 减到 0 的最小操作数 1.题目解析 2.算法原理 2.1滑动窗口 3.代码编写 3. 水果成篮 1.题目解析 2.算法思路 2.1滑动窗口哈希…

关于电脑功耗与电费消耗的问题,你了解多少?

一台电脑24小时运行需要多少电量? 大家好,我是一名拥有多年维修经验的上门维修师傅。 今天我就来回答大家关于电脑24小时运行需要多少电量的问题。 电脑功耗及用电量 首先我们来看看电脑的功耗情况。 普通台式电脑的功耗通常在300瓦左右,即…

《The Art of InnoDB》第二部分|第4章:深入结构-磁盘结构-redo log

4.3 redo log 目录 4.3 redo log 4.3.1 redo log 介绍 4.3.2 redo log 的作用 4.3.3 redo log file 结构 4.3.4 redo log 提交逻辑 4.3.5 redo log 持久化逻辑 4.3.6 redo log 检查点 4.3.7 小结 未完待续.... 上文我们学习了表空间,下面我们来介绍日志系统…

vue从flask获取数据并显示

记录一个前后端分离遇到的问题,即vue前端从flask后端获取数据。具体描述如下:flask只负责连接数据库并获取数据库的数据,并返回给前端vue;vue则需要获取后端返回的数据并显示。 方法如下,分别用一个vue组件和一个flas…

torch.nn.embedding的介绍和用法

nn.Embedding 是 PyTorch 中的一个神经网络层,它主要用于将离散的、高维的数据(如词索引)转换为连续的、低维的空间中的稠密向量表示。在自然语言处理(NLP)中,这个层通常用于实现词嵌入(Word Em…

ES6内置对象 - Map

Map(Map对象保存键值对,键值均不限制类型) 特点: 有序(Set集合是无序的);键值对(键可以是任意类型);键名不能重复(如果重复,则覆盖&…

自考《计算机网络原理》考前冲刺

常考选择填空 1、计算机网络的定义:计算机网络是互连的、自治的计算机的集合。 2、协议的定义:协议是网络通信实体之间在数据交换过程中需要遵循的规则或约定 3、协议的3个要素 (1) 语法:定义实体之间交换信息的格式与结构,或…

经典Go知识点总结

开篇推荐 来来来,老铁们,男人女人都需要的技术活 拿去不谢:远程调试,发布网站到公网演示,远程访问内网服务,游戏联机 推荐链接 1.无论sync.Mutex还是其衍生品都会提示不能复制,但是能够编译运行 加锁后复制变量,会将锁的状态也复制,所以 mu1 其实是已…

Docker Container(容器)

"在哪里走散,你都会找到我~" Docker 容器 什么是容器? 通俗来讲,容器是镜像运行的实体。我们对于镜像的认知是,“存储在磁盘上的只读文件”。当我们启动一个容器的本质,就是启动一个进程,即容器…

c语言字符函数和字符串函数

目录 1. 字符分类函数2. 字符转换函数3. strlen的使用和模拟实现4. strcpy的使用和模拟实现5. strcat的使用和模拟实现6. strcmp的使用和模拟实现7. strncpy函数的使用8. strncat函数的使用9. strncmp函数的使用10. strstr的使用和模拟实现11. strtok函数的使用12. strerror函数…

【kubernetes】二进制部署k8s集群之master节点和etcd数据库集群(上)

目录 前言:关于整个k8s集群的主机规划以及本文部署架构 步骤一:完成操作系统初始化配置 步骤二:完成etcd集群部署 关于etcd集群 ①准备签发证书环境 ②先完成单独一个节点的部署 ③通过部署好的etcd01节点 完成另外两个节点的部署 拓展…

大数据之Flink优化

文章目录 导言:Flink调优概览第1章 资源配置调优1.1 内存设置1.1.1 TaskManager 内存模型1.1.2 生产资源配置示例 1.2 合理利用 cpu 资源1.2.1 使用 DefaultResourceCalculator 策略1.2.2 使用 DominantResourceCalculator 策略1.2.3 使用DominantResourceCalculato…

《隐私计算简易速速上手小册》第8章:隐私计算对机器学习和 AI 的影响(2024 最新版)

文章目录 8.1 机器学习中的隐私问题8.1.1 基础知识8.1.2 主要案例:使用差分隐私的机器学习8.1.3 拓展案例 1:基于隐私的数据聚合8.1.4 拓展案例 2:保护隐私的推荐系统8.2 使用隐私计算加强 AI 安全8.2.1 基础知识8.2.2 主要案例:使用同态加密的数据分析8.2.3 拓展案例 1:安…

什么是调制比

一般情况下,调制波和载波的最大幅值是不一样的。 正弦波的最大幅值低于三角波的最大幅值。 这样做的目的就是产生最大占空比(2000W逆变器中最大占空比是80%) 调制波就是正弦波的最大幅值比三角载波的最大幅值 问题1 为什么调制波要小于1&…

pdffactory pro 8中文破解版

详细介绍 PdfFactory,PDF文档虚拟打印机,无须Acrobat即可创建Adobe PDF文件,创建PDF文件的方法比其他方法更方便和高效。支持将多个文档整合到一个PDF文件、增加字体和便签、PDF加密、去水印、压缩优化。 FinePrint,Windows虚拟…

SpringBoot 3 新特性

目录 1. GraalVM2. 支持虚拟线程3. HTTP Interface 1. GraalVM 使用GraalVM将SpringBoot应用程序编译成本地可执行的镜像文件,可以显著提升启动速度、峰值性能以及减少内存应用。传统的应用都是编译成字节码,然后通过JVM解释并最终编译成机器码来运行&a…

2.23作业

1.自己实现单向循环链表的功能 //loop_list.c#include"loop_list.h" //创建单向循环链表 loop_p create_head() {loop_p H(loop_p)malloc(sizeof(loop_list));if(HNULL){printf("空间申请失败\n");return NULL;}H->len0;H->nextH;return H; }//创建…
最新文章