连接器已知问题

edit

企业搜索服务:自管理连接器

edit

8.10.0版本起,自管理连接器不再需要在您的Elastic部署上运行企业搜索服务。 然而,如果您是从早于8.9的版本升级连接器,您需要运行一次企业搜索以将您的连接器迁移到新格式。

关于此次迁移的一些注意事项:

  • 这涉及更新存储配置和连接器同步历史的系统索引。
  • 这是一个就地操作,意味着不会创建临时或备份索引。
  • 因此,在升级之前对Elasticsearch集群进行快照是很重要的——以防万一发生索引迁移失败的情况。

如果您在迁移过程中遇到问题,请联系支持。

要运行自管理的连接器,您自部署的连接器服务版本必须与您的Elasticsearch版本匹配。 例如,如果您正在运行Elasticsearch 8.10.1,您的连接器服务应为版本8.10.1.x。 Elastic不支持运行版本不匹配的部署(升级期间除外)。

连接器服务

edit

连接器服务存在以下已知问题:

  • 同步大型数据库表时的OOM错误

    初始同步后的同步可能会在同步大型数据库表时导致内存不足(OOM)错误。 这是因为数据库连接器会加载并存储ID在内存中。 对于包含数百万条记录的表,如果连接器服务没有足够的RAM,这可能会导致内存耗尽。

    为了缓解这个问题,你可以:

    • 增加内存分配:

      • Elastic Cloud: 升级企业搜索实例到更大的规模。请注意,对于在Elastic Cloud上运行的Elastic托管连接器,连接器服务运行在企业搜索节点上。它只能访问最多40%的节点RAM分配。
      • 自托管: 增加运行连接器服务的机器/容器的RAM分配。

        RAM sizing guidelines

        下表显示了将ID加载到内存中的估计RAM使用量。

        ID 数量

        内存使用量(MB,2倍缓冲)

        1,000,000

        ≈ 45.78 MB

        10,000,000

        ≈ 457.76 MB

        50,000,000

        ≈ 2288.82 MB (≈ 2.29 GB)

        100,000,000

        ≈ 4577.64 MB (≈ 4.58 GB)

    • 优化 同步规则:

      • 审查并优化同步规则,以在同步之前过滤和减少从源获取的数据。
    • 使用自管理连接器而不是托管连接器:

      • 因为自管理连接器运行在你的基础设施上,它们不受企业搜索节点相同RAM限制的约束。
  • 从运行在8.9.0之前版本的部署升级可能会导致同步作业失败

    由于一个错误,从运行在8.9.0之前版本的部署升级后,job_type字段映射将会丢失。 同步作业将不会显示在Kibana UI(作业历史记录)中,并且连接器服务将无法启动新的同步作业。 这仅会在你之前已安排同步作业的情况下发生。

    要解决此问题,您可以使用以下命令手动添加缺失的字段并触发同步作业:

    PUT .elastic-connectors-sync-jobs-v1/_mapping
    {
      "properties": {
        "job_type": {
          "type": "keyword"
        }
      }
    }
  • 当连接器尝试从数据源获取超过2,147,483,647(2^31-1)个文档时,连接器服务将无法同步

    一种解决方法是通过多个搜索索引手动分区要同步的数据。

  • 从8.6或更早版本升级时,自定义调度可能会中断。

    如果你遇到错误 'custom_schedule_triggered': undefined method 'each' for nil:NilClass (NoMethodError),这意味着自定义调度功能迁移失败。 你可以使用以下手动解决方法:

    POST /.elastic-connectors/_update/connector-id
    {
      "doc": {
        "custom_scheduling": {}
      }
    }

    此错误可能出现在并非问题原因的连接器或爬网程序上。如果错误持续存在,请尝试为.elastic-connectors索引中的每个文档运行上述命令。

  • 从8.7或更早版本升级的连接器可能会缺少配置字段

    在8.8之前创建的连接器有时可能会缺少配置字段。 这是MySQL连接器的一个已知问题,但也可能影响其他连接器。

    如果自管理连接器引发错误 连接器 缺少配置字段: , ...,您可以通过开发工具手动添加缺少的配置字段来解决此错误。 只有以下两个字段属性是必需的,因为其余部分将由自管理连接器自动填充:

    • type: one of str, int, bool, or list
    • value: 任何值,只要它是正确的typelist类型的值应保存为逗号分隔的字符串)

      POST /.elastic-connectors/_update/connector_id
      {
        "doc" : {
          "configuration": {
            "field_a": {
              "type": "str",
              "value": ""
            },
            "field_b": {
              "type": "bool",
              "value": false
            },
            "field_c": {
              "type": "int",
              "value": 1
            },
            "field_d": {
              "type": "list",
              "value": "a,b"
            }
          }
        }
      }
  • 从8.7.1升级的Python连接器将以千兆字节(GB)而不是兆字节(MB)报告文档容量

    因此,实际文档体积将被低估1024倍。

  • 以下Elastic管理的连接器在Elastic Cloud 8.9.0上将无法正常运行。 它们仍然可以作为自管理的连接器使用。

    • Azure Blob Storage
    • Confluence Cloud & Server
    • Jira Cloud & Server
    • Network drives

单个连接器的已知问题

edit

各个连接器可能会有额外的已知问题。 请参阅每个连接器的参考文档以了解连接器特定的已知问题。