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

排查Delta Table数据丢失问题:操作指标存在差异

Delta Table MERGE操作后数据丢失问题排查

我们的服务中发现Delta Table存在数据丢失问题:MERGE操作后表中总行数与输入数据不匹配。已通过统计Delta Table行数确认差异,同时在Delta Table事务历史的操作指标中也观察到异常,示例如下:
我为用于排查问题的关键指标标注了指向(A、B……)

{
    "commitInfo": {
        "timestamp": 1695221622985,
        "operation": "MERGE",
        "operationParameters": {
            "predicate": "(((target.`PartitionId` IN ('2022', '2023')) AND (target.`PartitionId` = source.`PartitionId`)) AND (target.`Id` = source.`Id`))",
            "matchedPredicates": "[{\"predicate\":\"(source.`versionnumber` > target.`versionnumber`)\",\"actionType\":\"update\"}]",
            "notMatchedPredicates": "[{\"actionType\":\"insert\"}]",
        },
        "readVersion": 1739,
        "isBlindAppend": false,
        "operationMetrics": {
            "numTargetRowsCopied": "12628748", (A)
            "numTargetRowsDeleted": "0", (B)
            "numTargetFilesAdded": "2",
            "executionTimeMs": "2031980",
            "numTargetRowsInserted": "10", (C)
            "scanTimeMs": "126629",
            "numTargetRowsUpdated": "92748", (D)
            "numOutputRows": "12677631", (E)
            "numSourceRows": "92758", (F)
            "numTargetFilesRemoved": "2",
            "rewriteTimeMs": "1904630"
        }
    }
}

指标验证公式

根据日常观察,以下公式通常成立:
Eq1: A + C + D - B == E
Eq2: B + C + D == F

数据丢失时的异常表现:Eq2成立(输入数据已正确接收),但Eq1不成立(部分数据丢失)。本示例中Eq1的差值为43875行,即这些行未出现在Delta Table中。

疑问与求助

  • 哪些情况下会出现此类差异?
  • Delta Table 1.0栈是否存在已知问题导致该现象?
  • 有哪些进一步排查的方向?

环境信息

  • 操作工具:PySpark SDK
  • 计算引擎:Synapse Spark池
  • Apache Spark版本:3.1
  • Delta Lake版本:1.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 22:35:10