You need to enable JavaScript to run this app.
数据智能体

数据智能体

复制全文
配置与调优实践
最佳实践:数据ETL处理规范
复制全文
最佳实践:数据ETL处理规范

本文为您介绍配置智能分析Agent的数据集时,在前期规划、数据处理、数据集的配置等方面的操作思路与场景实践。

通用原则
  • 数据集数量限制:为保证性能和准确率,建议一个智能体关联的数据集数量不超过 5 个。
  • 字段数量限制:一个智能体关联的总字段数建议不超过 300 个。
  • 字段清晰度:智能体内部的数据集字段和维值需要经过治理,减少或消除二义性冲突(如同名但含义不同的字段)。
  • 尽量前置做好数据ETL,避免实时多表关联计算;如无法避免,参与多表关联的数据集数据行数建议不超过 10000 行。

数据规划与准备

完成初步智能体应用场景和用户角色的梳理规划后,您需要结合各个用户角色的典型问题,分析梳理需要使用的数据集、业务指标等,以下为一个简单的示例。

  1. 基于初步智能体应用场景规划,梳理涉及的数据源、指标。
    Image
  2. 依次梳理各个数据集数据表名称、对应表的特殊说明等表信息。
    Image
  3. 梳理当前智能体的应用场景下,各数据表中会涉及到的关键字段、字段数据类型、字段的业务含义(是否需要额外知识释义该字段等)。
    Image
  4. 梳理当前智能体的应用场景下,高频维度字段的维度值、维度字段说明等信息。
    Image

数据处理

完成数据集规划和梳理后,您需结合梳理后的业务指标、维度字段等结果,对数据提前进行必要的处理,保障接入智能体的数据集满足通用原则中的数据集/字段的数量、含义的要求。

ETL规范与限制

高质量的数据是DataAgent-分析Agent成功的基础。以下ETL规范旨在确保输入数据的标准性和可用性,是实现准确分析的前提。

要点1:不支持跨表筛选逻辑

  • 问题:不支持在一个查询中,先从A表查询出一个条件(如时间范围),再用这个条件去B表进行筛选。
  • 解决方案:这种复杂的跨表逻辑需要通过ETL预先将相关信息关联到一张宽表中。

要点2:禁止多事实表直接拼接

  • 问题:直接拼接不同颗粒度的多张事实表会导致数据重复计算(笛卡尔积),造成结果错误。
    Image
  • 解决方案:应先将各事实表按共同维度进行聚合,统一颗粒度后,再进行拼接。
    Image

要点3:不要在明细表中添加聚合结果

  • 问题:在明细数据行上直接加入预先计算好的聚合值(如平均值),会导致二次聚合(如总计)时结果错误。
  • 解决方案:保持明细表的原始性,聚合计算应在查询时动态进行,或在专门的聚合层处理。

要点4:禁止使用透视表作为底表

  • 问题:透视表是人为定义的、用于展示的格式,其结构(如行列转换)大模型无法理解,不能作为稳定的数据源。
    Image
  • 解决方案:应使用规范的、未经过透视的二维表作为数据源。

要点5:数据源应为BI数据集而非可视化图表

  • 问题:客户有时会提供BI工具中已经可视化、处理过的图表或其数据,这些数据往往经过了复杂的加工,不适合作为Agent的原始输入。
  • 解决方案:必须使用BI系统底层的、原始的数据集。
  • 示例:
    • 示例表1:活动明细表

      活动名称

      开始时间

      结束时间

      人数

      活动1

      2025.1

      2025.7

      37

      活动2

      2025.3

      2025.8

      43

    • 示例表2:营销总表

      时间范围

      人数

      2025.1

      130

      2025.2

      560

      2025.3

      270

    • 示例场景说明:以上有两张表(活动明细表、营销总表)。使用智能分析Agent时,想通过“活动明细表”查询到活动1的时间范围,然后通过这个范围再到“营销总表”查询这个时间范围内参与营销的总人数,这种数据查询方式是不支持,因为智能分析Agent的跨表查询的逻辑不是ETL拼表,而是跨表筛选。

要点6:关注时点余额类指标

  • 问题:对于余额这类“时点型”指标,按时间段进行常规的加和汇总(SUM)是无意义的。

  • 解决方案:在提问时,需要明确指出查询的是特定时间点的余额,而不是一个时间段的汇总。

  • 示例:

    时间

    业务类型

    余额

    亏损金额

    盈利金额

    1月

    信用卡

    50000

    400

    100

    2月

    信用卡

    40000

    -300

    -200

    1月

    理财基金

    1000000

    600

    300

    2月

    理财基金

    1200000

    200

    -400

    这种表,每个月的数据本身就是累计数据,没法进行合并计算,正常情况下所有指标都是需要合并计算的,比如算1-2月整体余额

    业务类型

    余额(sum)

    信用卡

    90000

    理财基金

    2200000

    这种数据就是错的,真正的提问,应该用户直接问2月的余额是多少,所以这种表不适合做问数,或者说问数场景下要知道表本身的业务含义,直接问具体时间点

其他

  • 符合上述规范的ETL,尽量做合表处理,不然一个Agent里面数据集过多会影响智能体的性能和准确率。
  • 所有ETL的标准参考BI数据集,而不是BI可视化的图表,很多客户把BI可视化后的表拿来当底表,是错误的。

应用实践

实践1:数据清洗算子使用示例

智能分析Agent为您提供了可视化建模能力,支持多种数据清洗算子(字段设置、多表连接、合并行等),您可以在可视化建模页面通过拖拽对应算子来灵活处理数据,以下为您介绍常用的算子与适用场景。

常用算子

优势/使用建议

计算列

  • 算子定义:自由度最高的算子,作用等同于写SQL去构建一个新的字段,支持调用多种函数。
    Image
  • 适用场景:适用于需要新增一个字段的数据处理场景。
  • 使用思路:判断是不是需要新增一个字段 > 新增的这个字段自然语言怎么描述 > 自然语言中包含的字段和数据处理逻辑怎么用函数来表达 > 调用函数对涉及的字段进行处理,生成新的字段取值
  • 函数的基础使用:
    • 数值类字段:通常可调用函数对数值类字段进行加减乘除的计算。
    • 文本类字段:
      • 典型场景:调用case when函数对文本类字段进行打标。
      • 示例:case when 'activity'='running' then '高价值活动' else '低价值活动' end
    • 其他函数使用场景:日期格式转化、JSON嵌套

合并行算子

  • 算子定义:两份数据进行行拼接变成一份数据。
  • 适用场景:例如,两张表中分别存储了男性、女性的消费行为习惯数据,需要将两张表的数据合并成一张表。

更多算子

请参见数据清洗

实践2:时间字段(业务日期、创建时间等)处理实践

  • 时间字段通用处理建议
    • 关于「时间」、「日期」相关字段,请务必用 date、datetime 类型,避免使用 int、string 类型。
    • 建议所有的时间维度按照最细颗粒度展现,例如指标最细颗粒度到日层级的,那季度、月、年不需要单独的字段,有「日期字段」即可,模型会使用日期函数来实现。但是如果最细颗粒度只能到月层级的,就按照月层级展现。
  • 示例场景
    • 客户新智能体有一个"工单-节点明细"的数据集;工单场景下有业务时间字段:T1;节点场景下的业务时间字段:T2缺失,只能用 pdate字段代替。
    • 使用智能体时,业务提问会T1、T2混合提问,且常常缺失具体时间字段的名称,导致数据查询准确率不高。
  • 错误的处理思路
    希望通过配置智能体的知识,让模型知道:
    • 按照问题结构和指标,通过知识配置,自动识别应该用T1字段或T2字段去过滤数据集的数据。
    • 问到节点指标场景时,希望通过知识配置,让模型对时间字段进行自动识别处理,实现节点指标场景下将pdate字段处理为T2字段,且指标统计要额外去重。
      此种方式下,对模型理解数据集字段、理解业务逻辑提出了很高的要求,效果不好。
  • 正确的优化思路:ETL处理+优雅提问
    • 通过智能分析Agent的可视化建模能力,将增量表的时间字段进行清洗处理,处理逻辑:节点场景下的pdate字段写入T2字段。
    • 使用智能体提问时候,问题描述中明确查询的业务场景和指标名称。

实践3:多表处理实践

当完成智能体数据集规划梳理后,如果应用的业务场景可能会出现多表场景时,各个阶段可能出现的问题与处理实践经验如下。

模型流程阶段

常见问题

解决方案

数据集预处理

  • 多表选择策略失效:历史表与预测表未合并时,选表策略效果差,因为两表仅年份统计粒度差异导致特征配置失效。
  • 时间字段格式不兼容:原始时间字段为 “2021 年 Q4” 类字符串,无法直接转换为日期格式,导致模型抽取年度 / 季度时出错。
  • 多枚举值字段理解偏差:
    • 价格段字段:包含 40 + 个数值区间(如 0-25 美元、25-50 美元),纯数字符号描述(如 “0<25”)导致模型召回不准确;枚举值过长时,宽域筛选易漏选或报错。
  1. 强制合并多表:统一历史表与预测表字段,通过字段映射解决统计粒度差异,简化选表逻辑,提升模型关联效率。
  2. 标准化时间格式:将 “年份 + 季度” 字符串转换为 “YYYY-MM-DD” 格式(如 “2021 年 Q4” 转为 “2021-12-31”),确保模型稳定识别日期字段。
  3. 处理多枚举值字段:
    • 补充业务描述:在价格段字段值中增加 “美元” 等单位描述(如 “0-25 美元”),强化模型语义理解。
    • 转换为数值型字段:计算价格段中值(如 0-25 美元取 12.5),通过数值区间筛选(如 “<100 美元”)替代枚举值匹配,解决漏选及报错问题。

选表与字段召回问题

  • 多表场景下,模型对表关联逻辑模糊,字段同义词及业务描述不足,导致选表错误或字段匹配失效。
  • 构建语义模型知识库:定义表特征(如 “历史销量表” 标注 “2021-2024 年数据”)、字段同义词(如 “出货量” 同义 “销量”)及业务描述(如 “价格段” 说明 “手机售价区间”),强制引导模型精准召回。

SQL 生成

  • 复杂问题(含多字段计算)触发模型概率性生成 SQL,语法错误、嵌套逻辑异常或转写模块限制(如仅执行单段 SQL)导致 50% 以上的报错率,且无明显规律。
  1. 沉淀计算层知识库:针对高频报错指标(如 “渗透率”),明确最优 SQL 写法(如 “优先使用窗口函数计算”),通过肯定式陈述语句引导模型生成合规 SQL,避免否定式限制(如 “禁止多层嵌套”)导致的扩散错误。
  2. 案例对比分析:收集成功与失败 SQL 案例,对比语法差异(如子查询 vs 聚合函数),针对性补充业务规则(如 “多条件筛选时优先使用 JOIN 关联”)。
  3. 系统级输出规范:在 Prompt 中强制要求保留小数点、添加单位(如 “美元”“台”),统一输出格式。

实践4:场景指标定义和计算公式参考

基础指标定义

指标名称

英文缩写

计算公式

说明

展示量

Impression

广告展示的总次数

衡量广告覆盖面

点击量

Click

用户点击广告的总次数

衡量广告吸引力

点击率

CTR

点击量 ÷ 展示量 × 100%

衡量素材效果

安装量

Install

用户安装应用的总数量

衡量转化效果

安装率

IR

安装量 ÷ 点击量 × 100%

衡量落地页效果

单次安装成本

CPI

总花费 ÷ 安装量

衡量获客成本

投资回报率

ROI

LTV ÷ CPI × 100%

衡量投放效率

高阶指标定义

指标名称

英文缩写

计算公式

说明

用户生命周期价值

LTV

ARPU × 生命周期天数

用户总价值

平均每用户收入

ARPU

总收入 ÷ 总用户数

用户价值密度

付费用户平均收入

ARPPU

总收入 ÷ 付费用户数

付费用户价值

留存率

Retention

留存用户数 ÷ 新增用户数 × 100%

用户质量指标

付费率

Pay Rate

付费用户数 ÷ 总用户数 × 100%

付费转化效率

同环比计算方法

环比增长率:$$ 环比增长率 = \frac{本期数值 - 上期数值}{上期数值} \times 100%$$
同比增长率:$$ 同比增长率 = \frac{本期数值 - 去年同期数值}{去年同期数值} \times 100%$$

常见问题与注意事项

注意事项

说明

问题数据集示例

未处理的负面影响

保证表名,字段名称唯一无歧义

  • 数据集中的字段使用中文别名时需要唯一
  • 规避近似模糊含义的字段,多余字段直接删除
  • 需要保证每一个数据集的命名完整且可表示数据实际含义
  • 如果存在多个相关联的指标分散在多表之中,建议做合并表操作
  • 需要保证同一个数据集中,以及所有数据集中,对应的指标命名不能重复,需要区分

说明

订单ID/order_id代表订单表主键ID
订单号/order_num是业务单据号

说明

订单表/订货表,可以改写为订单统计表,发货明细表等明细表述

说明

多个表中都存在订单金额,订货金额与合同金额,分析主体以合同为主,汇总为一个合同的总表,关联合同下各订单与发货金额数据

模型可能会使用相似字段名称进行理解和答复,导致结果不精准。

设置字段中文别名

  • 数据库中的字段可能是英文的,如果中文提问则需要维护对应的中文字段名
  • 如果需要双语提问,优先考虑两套数据集分别负责中英文;如必须一套则需要保证中英文翻译准确完整并辅助描述信息

说明

表达式:order_num
字段名:订单号

模型将无法完美地将您的中文自然语言与英文字段进行对应,也就无法给出令人满意的答案

设置准确的字段类型(如日期时间、地理信息等)

  • 需要根据您设置的字段类型,进行关键词识别、匹配和处理,因此对于日期、时间、地理纬度相关字段,您需要在数据集页面进行数据类型转换
  • 如果数据集中有和业务场景不相关的时间字段,推荐直接删除防止干扰

说明

日期时间格式配置
订单创建时间:文本
其他时间字段:日期格式
模型会高倾向优先使用日期时间类字段

说明

case2:统计类报表,没有时间日期格式,只有统计周期年 和 月
方式1:创建一个日期字段,CAST(toString()
方式2:年和月设置为数字型,并配合描述说明

模型无法准确选择召回需要的时间日期字段
产出的sql使用了命令无法适配,造成输出报错

设置清晰的字段描述

  • 数据集中的字段可以设置描述信息,您可以在描述中添加具有业务含义的中文描述,同时注意描述内容需要唯一
  • 描述一般结构:含义/别名/范围/举例/特例;
  • 描述配置后,T+1生效;一般半夜1点前跑完,数据量大可能验收

说明

case1:统一厂商
汽车主机厂名称,例如字节跳动,字节代表字节跳动

说明

case2:统一新能源类型
指汽车的能源类型,包括PET指汽油车,EV指电动车,HEV指混合动力汽车,PHEV指插电式混动汽车

说明

case3:月
月份,包括01-12,03代表3月

模型无法准确选择召回准确的字段

数据集-添加新的计算字段

  • 需要在提问中对已有维度和指标之外的字段进行提问,则需要在数据集中根据新字段的计算逻辑点击「添加字段」,从而「新增计算维度」或者「新增计算指标」
  • 计算字段所需的因子字段,需要同时出现在数据集中
  • 同时一些特定同环比,上期等和日期相关的计算字段,最好是通过指标的形式呈现
  • 最后,如果有一些复杂的时间聚合计算字段,最好通过数据集提前加工的方式处理

说明

线索转化率字段,需要做计算字段

  • 计算口径:转订单线索/线索数,也可以是转订单线索/有效线索数
  • 不可直接聚合:avg(1月转化率+2月转化率)≠1~2月的转化率

说明

达成率=sum(产值)/sum(目标)

说明

同环比,上期,本期的概念字段,最好是直接通过数据集提供,不做额外配置

  • 无法直接识别和分析未知的维度或指标,而无法返回
  • 错误处理了需要实时计算的字段,而返回不够准确的结果

Flag类型字段符合布尔值规则

  • 布尔结构的内容真和假两种结果,可以使用0/1,true/false,是/否来标志
  • 相关标志方式,如果不能准确识别,可以在描述内补充说明
  • 非标的描述方式需要提前转化

说明

是否为保养:0/1
描述:标识进厂维修工单是否为保养类型的flag,0代表不是,1代表是

是否为保养描述:非保养回厂/保养回厂
推荐直接删除易混淆字段

模型无法准确识别一些业务条件判单

最近更新时间:2025.11.27 19:45:55
这个页面对您有帮助吗?
有用
有用
无用
无用