ADF自托管IR复制任务数据加载完成后超时未结束问题咨询
问题分析:数据全量加载后任务超时终止的可能原因
问题背景
执行50次数据复制任务,其中5次出现目标表已加载全部数据,但任务未正常结束而是超时终止的异常,其余45次运行正常。任务环境:
- 运行在Self-hosted Integration Runtime(Self-hosted IR)
- 源数据:存储账户中的CSV文件
- 目标:Databricks SQL Warehouse
活动输出(中文翻译)
{ "dataRead": 6863181402, "dataWritten": 12575809624, "filesRead": 1, "sourcePeakConnections": 10, "sinkPeakConnections": 11, "rowsRead": 4162299, "rowsCopied": 4162299, "copyDuration": 7091, "throughput": 968.829, "errors": [], "effectiveIntegrationRuntime": "IRName", "usedParallelCopies": 10, "executionDetails": [ { "source": { "type": "AzureBlobFS", "region": "西欧" }, "sink": { "type": "Odbc" }, "status": "已取消", "start": "2024/4/20 上午10:05:54", "duration": 7091, "usedParallelCopies": 10, "profile": { "queue": { "status": "已完成", "duration": 3 }, "preCopyScript": { "status": "已完成", "duration": 4 }, "transfer": { "status": "进行中", "duration": 7083, "details": { "listingSource": { "type": "AzureBlobFS", "workingDuration": 0 }, "readingFromSource": { "type": "AzureBlobFS", "workingDuration": 493 }, "writingToSink": { "type": "Odbc" } } } }, "detailedDurations": { "queuingDuration": 3, "preCopyScriptDuration": 4, "transferDuration": 7084 } } ], "dataConsistencyVerification": { "VerificationResult": "未验证" }, "durationInQueue": { "integrationRuntimeQueue": 3 } }
可能的原因
- Databricks SQL Warehouse确认信号延迟/丢失:数据已全量写入,但Warehouse因临时资源不足、元数据更新缓慢,无法及时给Self-hosted IR返回任务完成确认,导致IR持续等待直至超时。从输出可见
rowsRead与rowsCopied完全一致,但transfer阶段仍显示"进行中",说明卡在了sink端的收尾确认环节。 - Self-hosted IR与Databricks间网络波动:偶尔的网络丢包、延迟峰值会导致会话连接不稳定,写入完成后的确认消息无法正常传递,IR一直处于等待状态。
- ODBC驱动偶发会话挂起:通过ODBC连接Databricks时,驱动可能存在偶发bug,数据写入完成后无法正确终止会话或通知IR任务完成,导致任务挂起超时。
- Databricks临时资源清理延迟:数据写入后,Databricks需要清理临时写入文件、同步表元数据,若此时Warehouse集群负载过高,该过程会被拉长,超出IR的超时阈值。
内容的提问来源于stack exchange,提问作者sixplus4iszen
相关产品推荐
相关产品推荐

