Troubleshooting the Openflow Connector for Salesforce Bulk API¶
备注
此连接器受 Snowflake 连接器条款 的约束。
本主题介绍如何对 Openflow Connector for Salesforce Bulk API 进行故障排除。
监控¶
要跟踪从 Salesforce 同步到 Snowflake 的数据量,请查询事件表。以下示例查询检索过去 30 分钟的相关日志:
SELECT
timestamp,
Deployment_ID,
Runtime_Key,
parsed_log:level as log_level,
parsed_log:loggerName as logger,
parsed_log:formattedMessage as message,
parsed_log
FROM (
SELECT
timestamp,
resource_attributes:"openflow.dataplane.id" as Deployment_ID,
resource_attributes:"k8s.namespace.name" as Runtime_Key,
TRY_PARSE_JSON(value) as parsed_log
FROM OPENFLOW.TELEMETRY.EVENTS
WHERE true
AND timestamp > dateadd('minutes', -30, sysdate())
AND record_type = 'LOG'
AND resource_attributes:"k8s.namespace.name" like 'runtime-%'
ORDER BY timestamp DESC
)
WHERE true
AND logger = 'org.apache.nifi.processors.standard.LogMessage'
AND message LIKE '%SALESFORCE_BULK_API%';
故障排除¶
使用以下信息排查与连接器有关的问题。
检查连接器状态¶
您可以检查连接器状态,以确保数据按预期复制。连接器会维护当前和过去操作的状态,以确保不会遗漏任何 Salesforce 更改,并在失败时重试批量作业查询。
要查看状态,请执行以下操作:
右键点击画布并选择 Controller services。
找到名为 Salesforce Bulk Jobs State 的控制器服务。
在 Salesforce Bulk Jobs State 菜单中,点击 View state。
状态是一组键/值对,其中键是 Salesforce 对象类型。例如,Account 对象的状态可能如下例所示:
{"previousLast":"2025-09-30T09:41:23.484406926Z","currentLast":"2025-09-30T09:41:23.484406926Z","status":"COMPLETED"}
status 可以是以下项之一:
IN_PROGRESSCOMPLETEDFAILEDABORTED
如果状态为 IN_PROGRESS,则表明仍在为该对象类型处理 FlowFile。
小心
请勿手动删除流文件。这可能会导致作业无限期保持在 IN_PROGRESS 状态,因为无法手动更新状态。
如果发生这种情况,您必须为该对象类型执行完整的重新加载操作。
强制完整加载给定对象类型¶
要强制连接器对一种或多种对象类型执行完整刷新,请执行以下操作:
停止流中的所有处理器。
确保未在处理传输中的 FlowFiles。
右键点击画布并选择 Disable all controller services。
转到 Controller services 并打开名为 Salesforce Bulk Jobs State 的控制器服务的状态。
执行以下某项操作:
选择 Clear state 以清除整个状态。这将强制完整加载连接器提取的 所有 已配置对象类型。
选择特定对象类型旁边的垃圾桶图标,仅清除特定对象类型的状态。这将强制在下次连接器执行时完整加载该特定对象类型。
在画布中,右键单击,选择 Enable all controller services,然后启动所有处理器。
如果对象类型仍处于 IN_PROGRESS 状态¶
如果给定对象类型的状态卡在 IN_PROGRESS,并且该对象类型没有传输中的 FlowFiles,FlowFile 在可以更新状态之前,可能已被手动删除。
在这种情况下,您必须对该对象类型执行完整加载,以确保连接器捕获所有事件。
如果状态卡在 IN_PROGRESS 但没有手动删除 FlowFiles,请联系 Snowflake 支持部门。