从MaxCompute到Milvus:通过DataWorks进行数据同步,实现海量数据高效相似性检索

在如今大数据和人工智能应用场景中,企业往往需要对存储在云数据仓库(如云原生大数据计算服务 MaxCompute)中的大规模结构化数据进行向量化处理,以支持高效的向量检索和相似性分析等AI应用。

阿里云向量检索服务 Milvus 版是一款全托管向量检索引擎,并确保与开源 Milvus 的完全兼容性,支持无缝迁移。它在开源版本的基础上增强了可扩展性,能提供大规模 AI 向量数据的相似性检索服务。凭借其开箱即用的特性、灵活的扩展能力和全链路监控告警,Milvus 云服务成为多样化AI应用场景的理想选择,包括多模态搜索、检索增强生成(RAG)、搜索推荐、内容风险识别等。您还可以利用开源的Attu工具进行可视化操作,进一步促进应用的快速开发和部署。

结合 MaxCompute 与 Milvus,可充分整合 MaxCompute 在处理海量结构化数据(如日志、元数据)及执行复杂计算(如特征工程、模型训练)方面的算力优势,同时利用 Milvus 高效存储与检索高维向量的性能特性,能够支撑电商用户行为分析、医疗知识库构建及游戏内容推荐等多种场景。并通过结构化数据处理与向量检索能力的协同,实现多模态数据的融合分析,满足行业应用中对高维度特征检索与复杂逻辑计算的双重需求。

然而,如何将存储在 MaxCompute 中的大规模结构化数据高效、稳定地导入 Milvus,成为企业在数据智能化转型过程中的一大挑战。DataWorks 作为一站式智能大数据开发治理平台,提供了强大的数据集成服务。

用户可以通过 DataWorks 的数据集成服务实现无缝同步。本文介绍如何利用 DataWorks,快速完成从 MaxCompute 到 Milvus 的离线数据同步。

一、前提条件

二、操作流程

步骤一:数据准备

以下数据仅供测试使用,请您根据实际情况准备相应的数据。

  • 在 MaxCompute 创建表。

本文使用的建表语句及数据如下所示。

plain 复制代码
CREATE TABLE dl_1216.`default`.mc_table (
    id INT,
    namespace STRING,
    vector ARRAY<DOUBLE>
);

INSERT INTO dl_1216.`default`.mc_table VALUES(100, 'aaa', array(1554047123.0, 1554047123.0));
INSERT INTO dl_1216.`default`.mc_table VALUES(200, 'bbb', array(1554047999.0, 1554047999.0));

SELECT * FROM dl_1216.`default`.mc_table;
  • 在 Milvus 创建 Collection。

本文通过 Attu 页面(help.aliyun.com/zh/milvus/u...)创建 Collection,您也可以通过 Python SDK 方式来创建,详情请参见创建 Collection(help.aliyun.com/zh/milvus/u...)。

步骤二:新增数据源

  1. 进入数据集成页面。

登录 DataWorks 控制台(dataworks.console.aliyun.com/overview),切换至目标地域,单击左侧导航栏的数据集成 > 数据集成 ,在下拉框中选择对应工作空间后单击进入数据集成

  1. 在左侧导航栏单击数据源 ,然后单击新增数据源
  2. 新增 Milvus 和 MaxCompute 数据源。

DataWorks 通过创建数据源的方式,接入数据来源和数据去向,因此,本步骤需要分别创建 Milvus 和 MaxCompute 两个数据源。

创建 Milvus 数据源

a. 在新增数据源 的搜索栏中,选择数据源类型为 Milvus 数据源。 b. 在新增 Milvus 数据源对话框中,配置以下基础信息,其余参数保持默认值即可。

参数 说明
数据源名称 本示例为Milvus_Source。
配置模式 选择阿里云实例模式
地域 选择华东1(杭州)。
实例 选择已创建的Milvus实例。
数据库名称 配置为<font style="color:rgb(24, 24, 24);background-color:rgba(0, 0, 0, 0.04);">default</font>
用户名 输入用户名<font style="color:rgb(24, 24, 24);background-color:rgba(0, 0, 0, 0.04);">root</font>
密码 输入Milvus实例的密码。

创建 MaxCompute 数据源

a. 在新增数据源 的搜索栏中搜索并单击 MaxCompute

b. 在新增 MaxCompute 数据源对话框中,配置以下基础信息,其余参数保持默认值即可。

参数 说明
数据源名称 本示例为MaxCompute_Source。
地域 选择华东1(杭州)。
MaxCompute项目名称 选择已在MaxCompute中创建的项目名。
默认访问身份 选择阿里云主账号
  1. 连接配置 区域,找到工作空间已绑定的资源组,单击连通状态 列的测试连通性
    • 如果测试资源组连通性状态为可连通,即完成新增数据源的创建。
    • 如果显示无法连通,表示资源组与数据源无法连通,后续相应数据源任务将无法正常执行,此时您需要根据右侧弹出的连通性诊断工具窗口,自助解决连通性问题,连通性诊断工具会提示目前连通失败的原因,请根据提示进行修改调整。
  2. 单击完成

步骤三:配置同步任务

  1. 在左侧导航栏中选择同步任务 ,对同步任务的来源去向 进行设置,然后单击新建同步任务
  1. 新建同步任务 页面,同步类型 选择为单表离线 ,然后单击确定,前往 DataStudio 页进行数据传输设置。
  2. 新建节点 对话框中,节点类型 选择离线同步路径名称 可以根据实际情况设置,然后单击确认
  1. 网络与资源配置 阶段,分别对数据来源、资源组、数据去向的内容进行设置,然后单击下一步

涉及参数如下:

  • 数据来源:MaxCompute。对应的数据源名称,选择前一步骤中新增的 MaxCompute数据源,例如,MaxCompute_Source。
  • 资源组:已在 DataWorks 中购买的 DataWorks 资源组。
  • 数据去向:Milvus。对应的数据源名称,选择前一步骤中新增的Milvus数据源,例如,Milvus_Source。
  1. 配置任务阶段,分别对数据来源与去向、字段映射、通道控制的内容进行设置,然后单击图标。

更多配置信息,请参见通过向导模式配置离线同步任务。(help.aliyun.com/zh/datawork...

a. 在数据来源区域,选择待同步的表。

b. 在数据去向区域,配置数据去向的各参数。

c. 在字段映射 区域中,设置来源字段目标字段的映射关系。

字段映射中的来源字段和目标字段需要一致,并且同行相对应,详情请参见类型映射表格。如果字段本身在表中没有(或不支持)默认值填充,则同步会出错。

MaxCompute字段类型 Milvus字段类型
ARRAY Float Vector
ARRAY BFloat16 Vector
ARRAY Float16 Vector
BINARY Binary Vector
STRING JSON
ARRAY Array
INT Int64
TINYINT Int8
INT Int16
INT Int32
FLOAT Float
DOUBLE Double
STRING VarChar
BOOLEAN Boolean

d. 在通道控制区域,配置通道参数。

  1. 运行任务。

当运行日志中出现 Shell run successfully 时表明任务运行成功。

步骤四:查询测试

  1. 访问 Attu 页面。(help.aliyun.com/zh/milvus/u...
  2. 进入目标集合(本文示例为 collection_name),在数据页签中查看同步的数据。

三、相关信息

如有疑问,可在评论区留言!

相关推荐
Estar.Lee1 小时前
MySQL中外键约束详解 外键在表关系维护中的作用
运维·数据库·mysql·api·免费api
灯琰11 小时前
五款MySQL 可视化客户端软件
数据库·mysql
两袖清风9981 小时前
【MySQL】三大范式
数据库·mysql
亲爱的非洲野猪1 小时前
基于ElasticSearch的法律法规检索系统架构实践
大数据·elasticsearch·系统架构
Wooden-Flute3 小时前
八、数据库恢复技术
服务器·数据库·oracle
南棱笑笑生3 小时前
20250611在全志H3平台的Nano Pi NEO CORE开发板上运行Ubuntu Core16.04时让4G模块EC200A-CN使用AT命令拨号上网
linux·数据库·ubuntu
bxlj_jcj4 小时前
解锁Flink CDC:实时数据同步秘籍
大数据·flink
悢七4 小时前
flink1.19.2+cdc-3.2.1遇到的问题及解决方案
大数据·flink
文牧之4 小时前
PostgreSQL 的扩展pg_surgery
运维·数据库·postgresql