TOS-CDC + VikingDB 自动向量化:对象上传后秒级可检索的实时多模态链路
文件上传即可检索|实时多模态向量链路落地实践分享
概述
火山引擎给出用流式计算 Flink 版与 VikingDB 搭建「文件上传后秒级可检索」实时多模态数据链路的方案,把发现对象变化、读取对象、清洗组装、生成 Embedding、写入向量库与更新索引等环节收敛到一条持续运行的实时链路。TOS-CDC 是面向对象存储的 Flink SQL Source Connector:作业启动后记录全量扫描开始时间、对指定 TOS 桶执行全量扫描、全量完成后默认从全量扫描开始时间对应的 Kafka 位置消费对象事件(PUT/DELETE),并通过 Checkpoint 保存扫描进度与 Kafka 消费位点,从而覆盖全量扫描期间发生的对象变化;下游使用以 object_key 为稳定主键的 Upsert 使重复事件最终收敛到同一条记录(TOS-CDC 与外部 Sink 均为 At-Least-Once 语义)。VikingDB 侧可在表上声明字段语义与向量模型,例如将字段声明为 image 并配置 doubao-embedding-vision(2048 维),由 VikingDB 自动完成图片读取、向量化与索引更新,业务无需维护模型服务、GPU 资源池与向量导入程序;VikingDB Connector 支持按 Flink Changelog 执行 Upsert 和 Delete,默认同步写入('async' = 'false'),文中不建议对写入后需快速检索的业务启用 async=true(异步写入会增加 Collection 与 Index 的可见延迟)。前置准备包括 TOS Bucket 与事件通知规则(至少订阅 tos:ObjectCreated:*,删除场景再订阅 tos:ObjectRemoved:*)、Kafka 实例与 Topic(需绑定 KafkaAccessForTOS 策略,Topic Retention 大于全量扫描最大耗时 + rewind.offset)、流式计算 Flink 版资源池、VikingDB 实例与 API Key,以及 TOS-CDC 邀测资格;增量回拨参数 rewind.offset 默认 0,建议保留 rewind.retention-miss-policy=fail 避免回拨位置过期后静默漏数。文中称该链路使数据可见延迟从小时级降至秒级,并给出验证方法(Flink UI 状态检查、VikingDB 数据预览、按 TOS 上传时间/Kafka 事件时间/Flink 处理时间/VikingDB 写入可见时间/首次可检索时间测量 P50、P95)。