数仓计算引擎访问非结构化数据

更新时间:
复制为 MD 格式

功能概述

AI 场景下的数据处理通常涉及大量非结构化数据(图片、音视频、文档等),这些数据往往存储在数据湖中,计算过程需要与数仓或数据湖交互。MaxCompute 通过湖仓一体能力支持通过Object TableLance外部表两种方式获取OSS数据湖上的非结构化数据,Object table的元数据管理能力更强,而Lance外部表更强调生态兼容。

MaxCompute作为具备湖仓开放性的湖仓一体平台,也提供使用内置开放存储服务管理和存储非结构化数据的能力,可以将图片、音频、视频、文档等非结构化二进制大对象存储为表中的Blob 数据类型。 

Object Table

基于 OSS 上存储非结构化数据的目录创建。MaxCompute 自动抽取文件元信息(大小、名称、属性等)并存入 Object Table 元数据,支持:

  • 感知文件大小,便于控制并发。

  • 按文件名称、属性信息过滤,控制读取范围。

  • 基于文件内容读取函数或 URL信息函数,向 SQL 引擎和 MaxFrame 引擎等非结构化数据引擎提供数据内容或位置信息。

Object TableMaxCompute 直接对接对象存储OSS,抽取、存储、更新和使用元数据,可以为MaxComputeSQL引擎和MaxFrame引擎提供深度优化过的非结构化数据管理和访问能力,详见OBJECT TABLE

Lance 外部表

Lance数据格式在数据湖上,可存储包括非结构化数据、相关的元信息和索引信息等内容,同时也支持存储结构化数据。基于Lance的开放性,各种引擎都可以消费其存储的非结构化数据及相关数据。MaxCompute为了兼容Lance生态而推出Lance外部表。将数据湖上的 Lance 格式数据映射为 MaxCompute 外部表。MaxCompute 支持通过 SQL 引擎和 MaxFrame 引擎直接读写 Lance 中的结构化数据,通过 AI Function 处理非结构化数据,详见Lance外部表(Beta)

Blob 数据类型

Blob数据类型支持直接在仓内存储非结构化数据,无需依赖外部数据湖即可完成非结构化数据的存储、管理和处理,详见Blob说明和使用示例。特点如下:

  • 读写简单:在 Delta Table 中支持存储最大 5 GB 数据的单个 Blob 字段;

  • 更优的性能:不直接访问Blob列的查询场景下,由于包含大量非结构化数据的Blob列的内容并不在表的文件内,因此不影响查询效率;

  • 支持SQLMaxFrame:需要访问Blob列的查询场景下,SQL 引擎和 MaxFrame 引擎可基于 Blob 列元信息高并发读取非结构化数据;

  • 深度优化:数据存储在 MaxCompute 内置存储服务上,带宽、IO和安全性有保障。

数据场景及数据来源

基于上述三种非结构化数据存取方式,MaxCompute可通过SQL引擎基于AI Function 处理文本、图片、语音和视频等数据或文件。

AI Function不同模型服务支持的数据场景和数据来源如下表所示,以下模型使用的资源有差异,详见 公共模型列表及适用Quota

模型服务

支持的模型

支持的数据场景

支持的数据来源

MaxCompute 公共模型

  • qwen3-max

  • text-embedding-v4

  • Qwen3-0.6B-GGUF

  • Qwen3-1.7B-GGUF

  • Qwen3-4B-GGUF

  • Qwen3-8B-GGUF

  • Qwen3-14B-GGUF

  • DeepSeek-R1-Distill-Qwen-1.5B

  • DeepSeek-R1-Distill-Qwen-7B

  • DeepSeek-R1-Distill-Qwen-14B

  • DeepSeek-R1-0528-Qwen3-8B

文本

Object Table(URL 模式)

MaxCompute远程模型(PAI-EAS 模型服务)

支持多种预置和自定义模型,包括文本模型和多模态模型

语音、视频

仅支持Object Table(URL 模式)

需通过 audio 或 video 参数指定数据类型。

文本、图片

Object Table、Blob、Lance 外部表(Binary 模式)

多模态支持图片不需要指定特殊参数

文本模式支持文本不需要指定参数

说明
  • URL 模式:AI Function 通过文件 URL 访问 Object Table 中的数据,适用于语音、视频等大文件场景。

  • Binary 模式:AI Function 直接读取二进制数据内容,支持 Object Table、Blob 和 Lance 外部表,适用于文本和图片场景。

使用示例