如何使用 Apache Kafka® 将向量数据流化并摄取到 Milvus 向量数据库和 Zilliz Cloud(完全托管 Milvus),从而实现语义搜索、推荐系统和 AI 驱动的分析等高级实时应用。

Apache Kafka 是一个分布式事件流平台,专为高吞吐量、低延迟管道而设计。它被广泛用于收集、存储和处理来自数据库、物联网设备、移动应用程序和云服务等来源的实时数据流。Kafka 处理海量数据的能力使其成为 Milvus 或 Zilliz Cloud 等向量数据库的重要数据源。

例如,Kafka可以捕获实时数据流--如用户交互、传感器读数以及来自机器学习模型的嵌入数据--并将这些数据流直接发布到Milvus或Zilliz Cloud。一旦进入向量数据库,就可以对这些数据进行索引、搜索和高效分析。

Zilliz Cloud‌ 是一款全托管的向量数据库云服务,旨在为企业提供高性能、高可靠性的向量搜索解决方案。以下是关于 Zilliz Cloud 的详细介绍:

一、核心特性

  1. 高性能‌:

    • 快速部署‌:新手友好,无需任何经验,几分钟内即可轻松部署大规模的向量相似性搜索服务。
    • 高速检索‌:采用优化的搜索引擎,向量搜索速度比同类产品快 10 倍以上,大幅降低基础设施成本。
    • 高可用性‌:提供高达 99.95% 的可用性保证,确保服务稳定可靠。
  2. 高扩展性‌:

    • 云原生架构‌:采用云原生分布式向量数据库架构,可稳定支持百亿规模向量数据。
    • 弹性伸缩‌:支持水平扩展和垂直扩展,根据业务需求动态调整计算资源,降低运营成本。
    • 多副本支持‌:自动将数据分布在多个云服务提供商和地域之间,确保数据一致性和高可用性。
  3. 高安全性‌:

    • 数据保护‌:已获得 SOC2 Type II 和 ISO27001 认证,支持基于角色的访问控制(RBAC),实现强大的数据保护。
    • 合规性‌:符合全球多种安全合规标准,确保企业级数据安全。
  4. 丰富功能‌:

    • 迁移服务‌:提供安全高效的向量数据迁移服务,支持从多种外部数据源迁移数据。
    • Fivetran Connector‌:与 Fivetran 集成,简化非结构化数据集成流程,支持 500 多种数据来源。
    • 智能索引‌:推出 Autoindex 智能索引,根据用户数据特性进行持续自动化调优,提升查询性能。

二、应用场景

Zilliz Cloud 适用于多种企业级人工智能应用场景,包括但不限于:

  • 生成式 AI‌:通过检索增强生成(RAG)技术,将外部数据源纳入大型语言模型(LLM),扩展其知识范围。
  • 推荐系统‌:根据用户过去的行为和喜好,推荐信息或产品,提升用户体验。
  • 搜索引擎‌:实现文本、语义、图像、音频等多种类型的相似性搜索。
  • 知识图谱‌:构建和管理大规模知识图谱,实现实体对齐和关系推理。

三、客户案例

Zilliz Cloud 已成功助力多家企业实现数字化转型和智能化升级。例如:

  • MindStudio‌:通过采用 Zilliz Cloud,MindStudio 简化了其 RAG 应用的数据管理流程,提升了数据查询执行速度,为开发人员赋能。
  • 点石科技‌:Zilliz Cloud 替代开源 Milvus 后,点石科技的运维成本降低了 20%-30%,同时实现了更高的问答召回率。
  • 智慧树‌:Zilliz Cloud 为智慧树提供了高效的向量搜索能力,优化了题库管理、检索推荐和实体对齐等核心场景。

四、定价与版本

Zilliz Cloud 提供多种版本和定价策略,以满足不同用户的需求:

  • Free 版‌:适用于探索学习向量数据库的场景,提供有限的存储和计算资源。
  • Serverless 版‌:适用于查询量不固定或不频繁的应用,按需付费,自动伸缩计算资源。
  • Enterprise 版‌:适用于生产环境,提供针对不同用例深度优化的 CU 类型、企业级数据安全与合规、监控指标、技术支持 SLA 等高级功能。

用户可根据自身需求选择合适的版本,并通过价格计算器估算使用成本。

五、技术优势

  • 专业团队‌:Zilliz 拥有全球最资深的向量数据库专家团队,为用户提供专业的技术支持和优化服务。
  • 深度优化‌:针对典型场景进行深度优化,性能可提升 3-5 倍。
  • 硬件合作‌:与英伟达、英特尔等一线硬件厂商有着长期稳定的合作,向量算法内核针对 X86、ARM、GPU 进行了定制化优化。

Kafka与Milvus和Zilliz Cloud的集成为非结构化数据工作流提供了一种无缝的方式来构建强大的管道。该连接器既适用于开源 Kafka 部署,也适用于ConfluentStreamNative 等托管服务。

第 1 步:下载 kafka-connect-milvus 插件

完成以下步骤下载 kafka-connect-milvus 插件。

  1. 此处下载最新的插件压缩文件zilliz-kafka-connect-milvus-xxx.zip 。

第 2 步:下载 Kafka

  1. 此处下载最新的 kafka。
  2. 解压下载的文件并转到 kafka 目录。
$ tar -xzf kafka_2.13-3.6.1.tgz
$ cd kafka_2.13-3.6.1

第 3 步:启动 Kafka 环境

注意:本地环境必须安装 Java 8 以上。

运行以下命令以按正确顺序启动所有服务:

  1. 启动 ZooKeeper 服务

    $ bin/zookeeper-server-start.sh config/zookeeper.properties
  2. 启动 Kafka 代理服务

    打开另一个终端会话并运行:

    $ bin/kafka-server-start.sh config/server.properties

一旦所有服务都成功启动,你就拥有了一个基本的 Kafka 运行环境,可以随时使用了。

  • 详情请查看 Kafka 官方快速入门指南:https://kafka.apache.org/quickstart

第 4 步:配置 Kafka 和 Zilliz Cloud

确保已设置并正确配置 Kafka 和 Zilliz Cloud。

  1. 如果 Kafka 中还没有主题,请在 Kafka 中创建一个主题(例如topic_0 )。

    $ bin/kafka-topics.sh --create --topic topic_0 --bootstrap-server localhost:9092
  2. 如果 Zilliz Cloud 中还没有 Collections,请创建一个带有向量字段的 Collections(本例中向量为dimension=8 )。

    注意:确保双方的 Schema 相互匹配。在 Schema 中,正好有一个向量字段。双方每个字段的名称完全相同。

第 5 步:加载 kafka-connect-milvus 插件到 Kafka 实例

  1. 解压缩在步骤 1 中下载的zilliz-kafka-connect-milvus-xxx.zip 文件。

  2. zilliz-kafka-connect-milvus 目录复制到 Kafka 安装的libs 目录中。

  3. 修改 Kafka 安装config 目录中的connect-standalone.properties 文件。

    key.converter.schemas.enable=false
    value.converter.schemas.enable=false
    plugin.path=libs/zilliz-kafka-connect-milvus-xxx
  4. 在 Kafka 安装的config 目录中创建并配置milvus-sink-connector.properties 文件。

    name=zilliz-kafka-connect-milvus
    connector.class=com.milvus.io.kafka.MilvusSinkConnector
    public.endpoint=https://<public.endpoint>:port
    token=*****************************************
    collection.name=topic_0
    topics=topic_0

第 6 步:启动连接器

  1. 使用之前的配置文件启动连接器

    $ bin/connect-standalone.sh config/connect-standalone.properties config/milvus-sink-connector.properties
  2. 尝试向刚刚在 Kafka 中创建的 Kafka 主题发送消息

    bin/kafka-console-producer.sh --topic topic_0 --bootstrap-server localhost:9092                        
    >{"id": 0, "title": "The Reported Mortality Rate of Coronavirus Is Not Important", "title_vector": [0.041732933, 0.013779674, -0.027564144, -0.013061441, 0.009748648, 0.00082446384, -0.00071647146, 0.048612226], "link": "https://medium.com/swlh/the-reported-mortality-rate-of-coronavirus-is-not-important-369989c8d912"}
  3. 检查实体是否已插入 Zilliz Cloud 中的 Collections。

Logo

脑启社区是一个专注类脑智能领域的开发者社区。欢迎加入社区,共建类脑智能生态。社区为开发者提供了丰富的开源类脑工具软件、类脑算法模型及数据集、类脑知识库、类脑技术培训课程以及类脑应用案例等资源。

更多推荐