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

寻求可测试Delta Lake与Apache Iceberg MERGE功能的数据集

MERGE性能测试数据集适配方案

自定义生成方案(推荐,完全适配测试需求)

直接通过本地脚本生成可控的测试数据集,可灵活调整量级、主键规则和增量比例,适配任意测试场景:

  • 主键设定:选择自增唯一ID(如order_id、user_id)作为主键,确保无重复值,满足MERGE操作的匹配条件要求
  • 初始全量数据:可按测试需要生成100万~1亿行量级的基础表,字段覆盖字符串、数值、时间等常用类型,模拟真实业务表结构即可
  • 多份增量数据集:分别按初始全量的1%、5%、10%、20%、30%比例生成增量数据,每份增量中混合70%存量主键的更新数据、30%全新主键的插入数据,完全匹配MERGE操作的典型业务逻辑

生成代码示例(PySpark)

from pyspark.sql import functions as F
from pyspark.sql.types import StructType, StructField, LongType, StringType, DoubleType, TimestampType

# 定义表结构,order_id为唯一主键
schema = StructType([
    StructField("order_id", LongType(), nullable=False),
    StructField("user_id", LongType(), nullable=False),
    StructField("order_amount", DoubleType(), nullable=False),
    StructField("order_status", StringType(), nullable=False),
    StructField("create_time", TimestampType(), nullable=False)
])

# 生成1000万行初始全量表
initial_df = spark.range(1, 10000001).select(
    F.col("id").alias("order_id"),
    (F.rand() * 1000000).cast(LongType()).alias("user_id"),
    (F.rand() * 10000).cast(DoubleType()).alias("order_amount"),
    F.lit("paid").alias("order_status"),
    F.current_timestamp().alias("create_time")
)
# 可直接写入作为初始的Delta或Iceberg表

# 生成占比5%的增量数据集(共50万行:40万更新、10万新增)
incremental_df = spark.range(9600000, 10000000).select(
    F.col("id").alias("order_id"),
    (F.rand() * 1000000).cast(LongType()).alias("user_id"),
    (F.rand() * 10000).cast(DoubleType()).alias("order_amount"),
    F.lit("refunded").alias("order_status"),
    F.current_timestamp().alias("create_time")
).unionByName(
    spark.range(10000001, 10100001).select(
        F.col("id").alias("order_id"),
        (F.rand() * 1000000).cast(LongType()).alias("user_id"),
        (F.rand() * 10000).cast(DoubleType()).alias("order_amount"),
        F.lit("paid").alias("order_status"),
        F.current_timestamp().alias("create_time")
    )
)

公开数据集改造方案

如果不想自定义生成,可直接改造公开的行程类数据集:

  • 选取行程ID作为唯一主键,取某一完整时间周期的全量数据作为初始表
  • 拆分后续不同时间区间的行程数据,调整每份数据的量级,将存量行程的状态字段修改作为更新数据,新增行程作为插入数据,即可得到符合要求的MERGE测试集

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 22:06:01