全部产品
Search
文档中心

云监控:sample(随机采样)

更新时间:Apr 30, 2026

sample 节点从数据中随机采样指定比例或数量的记录。支持全局采样和分组采样,可与聚类节点组合实现多样性采样。

功能说明

sample 节点支持两种采样模式:

  • 全局采样:从整体数据中随机采样指定比例(ratio)或数量(n)的记录。

  • 分组采样:按指定分组列(by)分组后,每组内独立随机采样。

常与上游 semantic-cluster 组合使用,先聚类再按簇分组取样,在降采样的同时保证语义多样性。

适用场景

  • 大规模数据的快速下采样。

  • semantic-cluster 组合实现多样性采样。

  • 按类别、标签或簇 ID 等维度均匀抽样。

  • LLM 处理前控制数据量,降低调用成本。

节点配置

以下为 sample 节点的基本配置格式:

{
  "id": "node_1",
  "type": "sample",
  "parameters": {
    "ratio": "<采样率>",
    "n": "<采样条数>",
    "by": "<分组列>",
    "output": "<输出列列表>"
  }
}

参数说明

参数

类型

必填

默认值

说明

ratio

String/Number

n 二选一

-

采样率,取值范围 (0, 1]。例如 0.1 表示采样 10%。与 n 互斥,不可同时指定。

n

Integer

ratio 二选一

-

采样条数,固定输出指定数量的记录。与 ratio 互斥,不可同时指定。

by

String

-

分组列名,多列时使用英文逗号分隔。指定后启用分组采样模式,每组内独立采样。

output

String

*

节点输出列,多列时使用英文逗号分隔。默认值 * 保留全部列(含扩展列),指定时仅输出列出的列。

ratio 与 n 的选择

场景

推荐参数

说明

保留指定百分比的数据

ratio: 0.1

输出量随输入量自动伸缩。

获取固定条数的数据

n: 100

输出量固定,不受输入规模影响。

每组取固定条数

by: "__cluster_id", n: 1

配合聚类实现多样性采样。

每组保留指定百分比

by: "category", ratio: 0.2

按类别均匀采样。

输入和输出

输入要求

  • 上游节点输出的任意列数据。

  • 启用 by 参数时,输入数据中必须包含指定的分组列。

输出说明

  • 不产生扩展列,仅根据采样规则过滤行。

  • output 参数控制最终输出的列。默认值 * 保留全部列,指定列名时仅输出对应的列。

行数变化:M → N(M ≥ N),采样后输出行数小于或等于输入行数。

效果预览

以下示例演示分组采样的效果:每个聚类簇中随机取 1 条记录。

处理前(6 条)

question

output

__cluster_id

什么是机器学习?

机器学习是...

0

机器学习有哪些类型?

监督/无监督/强化...

0

如何学习Python?

推荐从官方教程...

1

Python有哪些库?

NumPy, Pandas...

1

什么是深度学习?

深度学习是...

2

神经网络是什么?

神经网络由多层...

2

处理后(3 条)

配置 n = 1by = "__cluster_id",每个簇随机取 1 条:

question

output

__cluster_id

机器学习有哪些类型?

监督/无监督/强化...

0

如何学习Python?

推荐从官方教程...

1

什么是深度学习?

深度学习是...

2

说明

每个簇随机取 1 条,6 条数据采样后变为 3 条。本节点不产生扩展列,仅过滤行。

使用示例

示例 1:全局随机采样 10%

从整体数据中随机采样 10% 的记录:

{
  "id": "n5",
  "type": "sample",
  "parameters": {
    "ratio": 0.1
  }
}

示例 2:全局采样固定条数

从整体数据中固定采样 100 条记录:

{
  "id": "n5",
  "type": "sample",
  "parameters": {
    "n": 100
  }
}

示例 3:聚类 + 分组采样(推荐)

先通过 semantic-cluster 聚为 100 簇,再每簇取 1 条,实现多样性采样:

{
  "nodes": [
    {
      "id": "n4",
      "type": "semantic-cluster",
      "parameters": {
        "field": "__dedup_emb",
        "n": 100
      }
    },
    {
      "id": "n5",
      "type": "sample",
      "parameters": {
        "by": "__cluster_id",
        "n": 1
      }
    }
  ]
}

先聚为 100 簇,每簇取 1 条,最终输出约 100 条多样性样本。

示例 4:按类别分组采样

category 列分组,每组保留 20% 的记录:

{
  "id": "n5",
  "type": "sample",
  "parameters": {
    "by": "category",
    "ratio": 0.2
  }
}

示例 5:多维分组

categorydifficulty 两列组合分组,每组取 10 条:

{
  "id": "n5",
  "type": "sample",
  "parameters": {
    "by": "category,difficulty",
    "n": 10
  }
}

限制与最佳实践

最佳实践

  • 在 LLM 处理前使用 sample 节点降采样,可控制 AI 调用成本。

  • 多样性采样推荐组合:semantic-clustersample(按 by = "__cluster_id" 分组取样)。

  • 分层均匀采样:使用 by 按类别或标签列分组,每组独立采样。

说明

采样具有随机性,每次执行结果可能不同。

边界行为

场景

行为

ration 均未指定

校验失败。

ration 同时指定

校验失败。

ratio 超出 (0, 1] 范围

校验失败。

n ≤ 0

校验失败。

by 指定的列不存在

运行时报错。

n 大于数据量

返回全部数据。

输入数据为空

正常返回空结果集。