DataWorks数据集成Data Agent的数据处理任务,可将日志、知识库文档、评论、PDF与图片票据等非结构化数据转换为可供查询与分析的结构化结果。该任务基于大模型,使用自然语言即可定义处理逻辑,无需编写代码。以下以日志分析入仓、知识库向量化、评论情感分类、PDF与发票内容提取四个端到端场景为例,介绍其配置要点与应用方法。
按数据形态选择处理方式
四个场景对应四种处理方式,适用不同的源端数据形态与目标产物:
|
源端数据形态 |
处理方式 |
目标产物 |
参考场景 |
|
整份 JSONLine 日志文件,需要整体分析报告 |
AI 完整文件分析 |
分析报告、事件统计、情绪标签等结构化字段,写入 MaxCompute(ODPS)、Hologres、DLF、MySQL 等目标表 |
场景一 |
|
知识库文档或文本,需要语义检索 |
Embedding 向量化 |
语义向量连同原文与元数据写入 Elasticsearch、Milvus、OpenSearch、Hologres 等向量检索引擎 |
场景二 |
|
数据表中的文本字段,需要逐条打标 |
AI 语义分析与分类 |
情感与意图标签、分类理由、置信度,写入 MaxCompute、Hologres、DLF、MySQL 等目标表 |
场景三 |
|
PDF 与图片票据,需要从文件内容中提取票面字段 |
内容识别与结构化提取 |
票面字段连同文件路径、清晰度与遮盖状态,写入 MaxCompute、Hologres、DLF、MySQL 等目标表 |
场景四 |
选型时先区分处理模型:
-
处理单元:AI 完整文件分析以完整文件为处理单元,适用于少量、大型、单文件价值高的场景。
Embedding 向量化和AI 语义分析与分类按行或语义分片处理,适用于记录量大、单条记录独立的场景。 -
目标用途:当处理表中文本字段时,若目标为语义检索或RAG,选择
Embedding 向量化。若目标为获取情感、意图等结构化标签,选择AI 语义分析与分类。 -
文件形态:当源端是 PDF 或图片票据,需要从文件内容中提取字段时,选择内容识别与结构化提取。此类文件以
blob格式读入,配置前需确认环境已提供该格式与多模态处理能力,配置方法参见场景四。
创建数据处理任务的入口位于DataWorks控制台的 数据集成 > 数据处理任务 页面。详情参见:数据集成 Agent。
-
单击
通过Agent聊天创建可从零开始配置;为快速上手,也可选择一个场景示例卡片并基于该示例创建,此时“处理描述”将自动预填充。 -
配置的核心是LLM输入,需使用自然语言清晰定义源端位置、处理方式与目标表结构等要求。
-
Agent将依据此描述生成任务脚本。
-
任务生成后,即可在列表页执行并验证结果。
配置时可选的数据源与目标端以控制台实际列表为准,本文仅列举典型用法。
场景一:日志整文件分析入仓
场景说明
将单个JSONLine日志文件作为处理单元,生成分析报告、事件统计、质量评分等结构化字段,并写入目标表。此方法无需编写代码即可分析Agent会话、AI网关等日志。
源端信息与示例数据
源端为 OSS 目录下的 .jsonl 日志文件:每行一条独立 JSON 事件,对象结构随事件类型(如 user、assistant、tool_result、system)变化。示例口径下单文件不超过 1 GiB,适合少量大文件、单文件价值高的场景。
以下示例数据仅用于说明 JSONLine 日志的事件结构:
{"type":"user","sessionId":"ee92ba79…fa93","timestamp":"2026-08-14T03:31:02.114Z","message":{"content":"帮我排查 MongoDB 并发读取与同步的问题"}}
{"type":"assistant","sessionId":"ee92ba79…fa93","timestamp":"2026-08-14T03:33:55.023Z","message":{"…"},"toolCallResult":{"…"}}
{"type":"tool_result","sessionId":"ee92ba79…fa93","timestamp":"2026-08-14T03:34:12.480Z","toolCallResult":{"status":"success","name":"di-metrics-query","…":"…"}}
处理逻辑
-
读取完整文件:以整个文件为一个处理单元,逐行遍历每个事件、每种事件类型和每个时间戳。
-
AI 完整文件分析:生成会话报告、事件统计与情绪标签等结构化字段。
-
Schema 强校验:校验失败的记录整条进入脏数据通道,避免半成功。
-
多列回填入库:结果一次性写入 MaxCompute、Hologres、DLF、MySQL 等目标表。
目标表结构与示例输出
以下 MaxCompute DDL 为示例结构,同样支持写入 Hologres、DLF、MySQL 等目标端:
CREATE TABLE session_log_insight (
file_path STRING COMMENT '原始文件路径,可追溯 OSS 源文件',
session_id STRING COMMENT '会话主键',
analysis_report STRING COMMENT '完整分析报告(Markdown)',
sentiment STRING COMMENT '情绪分类',
sentiment_reason STRING COMMENT '情绪判定依据'
)
PARTITIONED BY (ds STRING COMMENT '日期分区');
示例输出(示例数据,仅用于说明结果结构):
|
字段 |
示例值 |
|
file_path |
my_jsonline/ee92ba79-25ba-41ff-8acc-154c9957fa93.jsonl |
|
session_id |
ee92ba79-25ba-41ff-8acc-154c9957fa93 |
|
analysis_report |
会话概况:用户报告 MongoDB 并发读取与同步异常……(含时间线、事件统计、工具失败与诊断结论) |
|
sentiment |
中性 |
|
sentiment_reason |
用户表达客观、简短,未出现明确正向或负向情绪信号。 |
|
ds |
20260817 |
AI助理会将半结构化的数据自动转化为结构化的二维表,同时,file_path字段可追溯OSS源文件地址。
配置要点
参照创建数据处理任务章节配置任务时,数据来源类型选择 OSS 下的 .jsonl 日志文件所在的数据源类型,数据去向类型选择 MaxCompute、Hologres、DLF、MySQL 等目标表对应的数据源类型。处理描述需写明源端位置、整文件分析要求(会话报告、事件统计、情绪标签等输出字段)与目标表结构要求。
场景二:知识库文档向量化
场景说明
Embedding 向量化读取知识文本,逐条生成 Embedding 向量,向量化模型使用 text-embedding-v4,连同原文主键写入向量库。源端支持 OSS 上的非结构化文档、半结构化文件,以及数据库表中的指定文本字段;向量化结果写入 Elasticsearch、Milvus、OpenSearch、Hologres 等向量检索引擎后,语义搜索、RAG 问答与智能推荐即刻可用,无需自建向量化管道。
源端信息与示例数据
支持三类数据来源:
|
来源类型 |
数据形态 |
处理方式 |
|
OSS 非结构化文档 |
PDF / Word / Markdown / TXT |
自动解析正文,按语义分片 |
|
OSS 半结构化文件 |
CSV / JSONLine |
字段已按行预分片存储,逐行直接向量化 |
|
结构化数据源 |
MySQL、MaxCompute 表中的指定文本字段 |
直接读取字段内容,逐条向量化 |
文档类数据按语义切分后逐片向量化;行级数据(CSV、JSONLine 与数据库表字段)已按行分片,逐条直接向量化。向量与原文、主键全程可关联,分片标识保留,可回溯源文档。
以 OSS 上的 Markdown 知识库文档为例(示例数据):
# 数据集成常见问题
## 如何配置离线同步任务?
进入数据集成控制台,选择源端与目标端数据源,配置字段映射与调度周期后提交即可。
提交前建议先测试数据源连通性,并确认目标表结构与字段映射一致……
## 同步任务运行失败怎么排查?
优先查看运行日志中的错误码,常见原因包括连通性异常、脏数据超限与权限不足……
处理逻辑
-
读取多源数据:解析 OSS 文档,或读取 CSV / JSONLine 与 MySQL、MaxCompute 表字段。
-
文本清洗与智能分段:文档去噪后按语义切分为 chunk;已按行分片的行级数据直接进入下一步。
-
Embedding 计算:每个分片生成语义向量,向量化模型为 text-embedding-v4,维度统一、可校验。
-
写入向量库:向量连同原文、元数据写入 Elasticsearch、Milvus、OpenSearch、Hologres 等。
目标表结构与示例输出
以下 Milvus Collection Schema 为结构示意(伪 DDL,实际建库方式以 Milvus SDK / API 为准),同样支持写入 Elasticsearch、OpenSearch、Hologres 等:
CREATE COLLECTION knowledge_chunk (
chunk_id VARCHAR, -- 主键,分片唯一标识
doc_id VARCHAR, -- 所属文档,可回溯源文件
title VARCHAR, -- 所在章节标题
content VARCHAR, -- 分片原文
embedding FLOAT_VECTOR(1024), -- 语义向量
source_path VARCHAR, -- OSS 源文件路径
updated_at VARCHAR -- 更新时间
);
示例中的向量维度 1024 维为示例展示值。示例输出(示例数据,仅用于说明结果结构):
|
字段 |
示例值 |
|
chunk_id |
dataworks-di-faq_0001 |
|
doc_id |
dataworks-di-faq.md |
|
title |
如何配置离线同步任务? |
|
content |
进入数据集成控制台,选择源端与目标端数据源,配置字段映射与调度周期后提交即可…… |
|
embedding |
[0.0123, -0.0871, 0.0442, 0.1268, …](1024 维示例值) |
|
source_path |
knowledge_base/dataworks-di-faq.md |
一段文本产出一条可语义检索的向量,通过 doc_id 与 source_path 可回溯源文档。
配置要点
-
数据来源:选择文档或文本字段所在的数据源。
-
数据去向:选择Elasticsearch、Milvus、OpenSearch或Hologres等向量数据库。
-
处理描述:明确源数据位置、向量化模型(
text-embedding-v4)及目标表结构。
场景三:文本情感/意图分类入库
场景说明
AI 语义分析与分类读取表中的评论、反馈、工单等文本字段,理解语义后按分类体系生成情感与意图标签、分类理由和置信度,保留原文与记录主键,写入目标表,支撑客户画像、舆情监控与服务质检。分类体系可按业务自定义;未提供分类体系时,由 Agent 自动归纳。
源端信息与示例数据
源端为 MySQL、MaxCompute 等数据库表中的非结构化文本字段,例如商品评论、用户反馈、工单描述。每行一条记录,逐条分析;记录主键随分析结果透传,结果可关联回源表。
示例源表为 product_review:文本字段 review_content(STRING),主键 review_id 可关联回源表。
MySQL 表 product_review 示例(示例数据):
|
review_id |
user_id |
review_content |
created_at |
|
202608_0001 |
u_88231 |
物流很快,包装也结实,就是颜色和图片有点色差,总体还算满意。 |
2026-08-18 10:21:05 |
|
202608_0002 |
u_10472 |
用了三天就黑屏,客服一直不回复,非常失望!要求退货。 |
2026-08-18 14:02:47 |
|
202608_0003 |
u_55690 |
请问这款适不适合送老人?操作复杂吗? |
2026-08-19 09:35:12 |
处理逻辑
-
读取文本:从 MySQL、MaxCompute 表逐行读取评论、反馈等文本字段。
-
语义分析:理解上下文、用户诉求与业务语义。
-
情感/意图分类:按业务分类体系输出情感与意图标签。
-
生成分析理由:给出判定依据与置信度,可解释、可复核。
-
写入目标表:标签、理由连同原文主键写入 MaxCompute、Hologres、DLF、MySQL 等。
目标表结构与示例输出
以下 MaxCompute DDL 为示例结构,同样支持写入 Hologres、DLF、MySQL 等目标端:
CREATE TABLE review_sentiment_analysis (
review_id STRING COMMENT '主键,关联源表评论记录',
review_content STRING COMMENT '评论原文',
sentiment STRING COMMENT '情感分类(正向/中性/负向)',
intent STRING COMMENT '意图标签(咨询/投诉/退货/好评…)',
analysis_reason STRING COMMENT '分类理由',
confidence DOUBLE COMMENT '置信度(0~1)'
)
PARTITIONED BY (ds STRING COMMENT '日期分区');
示例输出(示例数据,仅用于说明结果结构):
|
字段 |
示例值 |
|
review_id |
202608_0002 |
|
review_content |
用了三天就黑屏,客服一直不回复,非常失望!要求退货。 |
|
sentiment |
负向 |
|
intent |
投诉 / 退货 |
|
analysis_reason |
出现产品故障(黑屏)与服务不满(客服未响应),明确表达失望并提出退货诉求。 |
|
confidence |
0.96(示例值) |
|
ds |
20260820 |
一条评论产出一行可分析的客户评价,标签、理由与置信度一次生成,review_id 可关联回源表记录。
配置要点
参照创建数据处理任务章节配置任务时,数据来源类型选择评论等文本字段所在的 MySQL、MaxCompute 等数据库对应的数据源类型,数据去向类型选择 MaxCompute、Hologres、DLF、MySQL 等目标表对应的数据源类型。处理描述需写明源表与文本字段、分类体系(如有)与目标表结构要求。
场景四:PDF 与发票内容结构化提取
场景说明
以单个文件为处理单元,读取 OSS 上的 PDF 与图片票据,提取票据号码、开票日期、购销方、费用明细、金额与税额等字段,写入目标表后可直接用于财务对账与报销审核。票据常含人名等个人信息,因此图像清晰度检测与人名脱敏均在处理环境内本地完成,不经过大模型,只有脱敏后的图片才交给大模型解析。
源端信息与示例数据
源端为 OSS 目录下的票据文件,支持 PDF 与 JPEG、TIF 等图片格式。文件以 blob 格式读入,每条记录生成 __file_path__ 与 __file_content__ 两个字段,分别对应源文件路径与文件二进制内容,后续处理从上游输出中选择内容字段解析。
以一份 PDF 发票为例,读入后生成的字段如下(示例数据):
|
字段 |
示例值 |
|
|
invoices/2026-08/INV-20260818-0031.pdf |
|
|
文件的二进制内容,示例中不展开 |
一个文件对应一条记录,通过文件路径可回溯到 OSS 源文件。
处理逻辑
-
读取文件:按配置的路径逐个读取 OSS 上的 PDF 与图片文件。
-
检测清晰度:图片在本地完成质量分析,综合边缘梯度、前景比例与曝光等指标,输出 CLEAR、BLURRY、UNCERTAIN 三种状态和具体评分。
-
按清晰度分流:状态为 CLEAR 的图片继续遮盖与解析;BLURRY 与 UNCERTAIN 的图片直接进入写入环节,只记录文件路径与清晰度,不做遮盖与解析,避免在低质量图像上得到不可靠的提取结果。
-
本地遮盖人名:用处理环境内的本地模型与本地 OCR 定位人名,在原图坐标上绘制遮盖区域,生成脱敏图片。进入下一步的只有脱敏图片。
-
提取票面字段:模型读取脱敏图片或 PDF 内容,深度理解后按处理描述中定义的字段输出结构化结果。
-
写入目标表:提取结果连同文件路径、清晰度与遮盖状态一次写入目标表,清晰与模糊两条路径的结果落入同一张表。
本地处理与隐私边界
为确保用户数据的最高安全级别,系统采用“隐私设计”原则,确保原始敏感数据仅保留在安全的处理环境内部。所有票据解析都遵循一个严格的、分阶段的本地化处理流程:
|
处理阶段 |
执行环境 |
数据对象 |
|
1. 图像预检 |
本地环境,计算图像质量指标,进行清晰度检测。 |
原始图片 |
|
2. 数据脱敏 |
本地环境,调用本地 OCR 和模型,识别并遮盖人名等敏感信息。 |
原始图片 |
|
3. 内容解析 |
大语言模型服务,将不含敏感信息的图片发送给大模型,进行结构化内容提取。 |
脱敏后的图片 |
原始图片不发送到外部服务;清晰度不达标的图片脱敏与解析都不进入,仅登记清晰度后写入 MaxCompute。
目标表结构与示例输出
以下 MaxCompute DDL 为示例结构,字段随处理描述中定义的抽取字段变化,同样支持写入 Hologres、DLF、MySQL 等目标端:
CREATE TABLE invoice_extract_result (
file_path STRING COMMENT '源文件路径,可回溯 OSS 源文件',
file_name STRING COMMENT '文件名',
clarity_status STRING COMMENT '清晰度状态:CLEAR、BLURRY 或 UNCERTAIN',
clarity_score BIGINT COMMENT '清晰度评分',
mask_status STRING COMMENT '人名遮盖状态',
extracted_content STRING COMMENT '提取出的票面内容'
)
PARTITIONED BY (ds STRING COMMENT '日期分区');
示例输出(示例数据,仅用于说明结果结构):
|
字段 |
示例值 |
|
file_path |
invoices/2026-08/INV-20260818-0031.pdf |
|
file_name |
INV-20260818-0031.pdf |
|
clarity_status |
CLEAR |
|
clarity_score |
90 |
|
mask_status |
已遮盖 |
|
extracted_content |
票据类型:门诊收费票据;票据号码:04412608180031;开票日期:2026-08-18;交款人:已遮盖;费用明细:诊查费 22.50、检验费 472.00;金额合计:494.50 |
|
ds |
20260818 |
清晰度不达标的文件同样落库,extracted_content 为空,可按清晰度状态筛出后重新采集或人工处理。
配置要点
-
前置条件:环境已提供
blob文件格式与多模态处理能力。 -
数据来源与去向:来源选择票据文件所在的 OSS 数据源,去向选择结果表所在的 MaxCompute、Hologres、DLF、MySQL 等数据源。
-
处理描述:写明源端路径、从上游输出中选择的文件内容字段、需要提取的票面字段与目标表结构,并说明图片的清晰度分流与人名遮盖要求。如需遮盖证件号、业务编号等其他敏感字段,需在描述中逐项列出。
-
清晰度阈值:评分偏低的拍摄件仍可能提取到完整字段,不建议只按评分过滤,可结合提取内容是否为空、字段是否完整一并判断。
-
文件质量:同一批文件保持一致的分辨率、光照与拍摄角度;同一份内容优先使用 PDF,只能用图片时分辨率不低于 300 DPI。