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%';
Copy

故障排除

使用以下信息排查与连接器有关的问题。

检查连接器状态

您可以检查连接器状态,以确保数据按预期复制。连接器会维护当前和过去操作的状态,以确保不会遗漏任何 Salesforce 更改,并在失败时重试批量作业查询。

要查看状态,请执行以下操作:

  1. 右键点击画布并选择 Controller services

  2. 找到名为 Salesforce Bulk Jobs State 的控制器服务。

  3. Salesforce Bulk Jobs State 菜单中,点击 View state

状态是一组键/值对,其中键是 Salesforce 对象类型。例如,Account 对象的状态可能如下例所示:

{"previousLast":"2025-09-30T09:41:23.484406926Z","currentLast":"2025-09-30T09:41:23.484406926Z","status":"COMPLETED"}
Copy

status 可以是以下项之一:

  • IN_PROGRESS

  • COMPLETED

  • FAILED

  • ABORTED

如果状态为 IN_PROGRESS,则表明仍在为该对象类型处理 FlowFile。

小心

请勿手动删除流文件。这可能会导致作业无限期保持在 IN_PROGRESS 状态,因为无法手动更新状态。

如果发生这种情况,您必须为该对象类型执行完整的重新加载操作。

强制完整加载给定对象类型

要强制连接器对一种或多种对象类型执行完整刷新,请执行以下操作:

  1. 停止流中的所有处理器。

  2. 确保未在处理传输中的 FlowFiles。

  3. 右键点击画布并选择 Disable all controller services

  4. 转到 Controller services 并打开名为 Salesforce Bulk Jobs State 的控制器服务的状态。

  5. 执行以下某项操作:

    • 选择 Clear state 以清除整个状态。这将强制完整加载连接器提取的 所有 已配置对象类型。

    • 选择特定对象类型旁边的垃圾桶图标,仅清除特定对象类型的状态。这将强制在下次连接器执行时完整加载该特定对象类型。

  6. 在画布中,右键单击,选择 Enable all controller services,然后启动所有处理器。

如果对象类型仍处于 IN_PROGRESS 状态

如果给定对象类型的状态卡在 IN_PROGRESS,并且该对象类型没有传输中的 FlowFiles,FlowFile 在可以更新状态之前,可能已被手动删除。

在这种情况下,您必须对该对象类型执行完整加载,以确保连接器捕获所有事件。

如果状态卡在 IN_PROGRESS 但没有手动删除 FlowFiles,请联系 Snowflake 支持部门