You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AWS Data Glue/Data Brew中为ETL行生成唯一标识符?

为AWS Data Brew/Data Glue ETL流程生成行级唯一ID/流水ID

AWS Data Brew 实现方案

1. 生成流水ID(自增序号)

在Data Brew Recipe中添加计算列,使用内置的ROW_NUMBER()函数:

  • 操作步骤:打开Recipe编辑器 → 点击「添加步骤」→ 选择「添加计算列」
  • 配置细节:
    • 列名:比如流水ID
    • 公式:ROW_NUMBER()
    • (可选)分区与排序:如果需要按特定分组生成流水号,可设置分区键;若要全局唯一的流水ID,留空分区键,排序可选择任意列(或默认处理顺序)

生成的ID会按Data Brew处理行的顺序自增,适合需要有序标识的场景。

2. 生成全局唯一UUID

同样通过添加计算列,使用UUID()函数:

  • 列名:比如唯一ID
  • 公式:UUID()

这个函数会生成标准的UUID字符串,分布式场景下几乎不会重复,适合不需要顺序但要求全局唯一的标识需求。

同步到Brew目录表

完成Recipe配置后,点击「发布Recipe」,然后在数据集设置中选择「更新目录表」,确保新生成的ID列被同步到Brew目录表中。

AWS Data Glue 实现方案

1. 生成流水ID

在Glue Spark作业(或Glue Studio可视化作业)中,使用Spark内置的monotonically_increasing_id()函数:

from pyspark.sql.functions import monotonically_increasing_id

# 读取CSV数据后添加流水ID列
df = df.withColumn("流水ID", monotonically_increasing_id())

该函数会生成一个递增的64位整数,适合全局流水标识。

2. 生成全局唯一UUID

使用Spark的uuid()函数生成UUID字符串:

from pyspark.sql.functions import uuid

# 添加唯一ID列
df = df.withColumn("唯一ID", uuid())

生成的UUID是全局唯一的,无需担心重复问题。

注意事项

如果使用Glue爬虫摄取数据,爬虫本身不会自动生成ID,需要在后续的Glue ETL作业中添加上述步骤,再将处理后的数据写入目录表。

内容的提问来源于stack exchange,提问作者VJVRR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 15:34:43