IBM Cloud Docs
开发定制 Cloud Pak for Data 连接器代码

开发定制 Cloud Pak for Data 连接器代码

定制连接器示例包含名为 com.ibm.es.ama.custom.crawler 的 Java 包。 该软件包包括以下 Java 接口,您可以在编写自定义连接器时使用。

IBM Cloud Pak for Data IBM Software Hub

此信息仅适用于已安装的部署。

接口和 JavaDoc

本文档中列出的接口在自定义连接器压缩文件附带的JAR包文件中可用。 按照 在 Discovery 2.2.1 及更高版本中下载 custom-crawler-docs.zip 文件在 Discovery 2.2.0 及更早版本中下载 custom-crawler-docs.zip 文件 中的说明下载并展开 custom-crawler-docs.zip 文件后,接口 JAR 文件将以 wexlib/ama-zing-custom-crawler-{version_numbers}.jar 的形式从展开的压缩文件根级别提供。 在同一层目录中还包含了 JAR 文件的 JavaDoc wexlib/ama-zing-custom-crawler-{version_numbers}-javadoc.jar

初始化接口

CustomCrawler

使用 com.ibm.es.ama.custom.crawler.CustomCrawler 界面启动或停止自定义爬虫程序,或从路径中抓取文档。 该接口包含以下方法:

CustomCrawler方法
方法 描述
init 启动自定义爬虫
term 停止自定义爬虫
crawl 从指定路径抓取文件

配置接口

CustomCrawlerConfiguration

使用 com.ibm.es.ama.custom.crawler.CustomCrawlerConfiguration 接口可验证配置以及发现数据源上的可用搜寻空间。 该接口包含以下方法:

CustomCrawlerConfiguration方法
方法 描述
validate 验证配置
getFieldsFor 列出已知字段及其类型
discoverySubspaces 发现数据源上的搜寻空间

ConfigProvider

使用 com.ibm.es.ama.custom.crawler.CustomCrawlerConfiguration.ConfigProvider 接口可映射数据源的设置,并列出数据源上的搜寻空间设置。 该接口包含以下方法:

ConfigProvider方法
方法 描述
get 获取节中设置的映射
getCrawlspaceSettings 获取搜寻空间设置的列表

SubspaceConsumer

使用 com.ibm.es.ama.custom.crawler.CustomCrawlerConfiguration.SubspaceConsumer 接口可添加搜寻空间的路径。 该接口包含以下方法:

SubspaceConsumer方法
方法 描述
add 添加搜寻空间的路径

搜寻器接口

RecordKeeper

使用 com.ibm.es.ama.custom.crawler.CustomCrawler.RecordKeeper 接口可保留搜寻记录以及发布搜寻到的文档。 该接口包含以下方法:

RecordKeeper方法
方法 描述
canContinue 布尔值,用于列出搜寻器是否可以继续。 定制搜寻器必须定期轮询此值,并在此值返回 false 时终止。
check 从上次搜寻到的文档中获取元数据字段
upsert 发布文档以供进一步处理
delete 删除文档

安全接口

CustomCrawlerSecurityHandler

使用 com.ibm.es.ama.custom.crawler.CustomCrawlerSecurityHandler 接口可对定制搜寻器实现安全性。 该接口包含以下方法:

CustomCrawlerSecurityHandler方法
方法 描述
term 终止安全处理程序
getUserAndGroups 获取给定用户的 ACL

更新连接器的 getUserAndGroups 逻辑时,重新部署连接器后,更改可能需要 10 分钟才能生效。

定制连接器示例

示例连接器是一个 Secure File Transfer 协议(SFTP)连接器,用于抓取SFTP服务器上的文件。

示例连接器包含三个组件:

  • 连接器的 Java 源代码
  • XML定义文件,用于定义连接器用于连接和抓取数据源的参数
  • 属性文件,用于定义连接器的可选行为

要求

示例连接器的 Java 源代码具有以下依赖项:

在 Discovery 2.2.1 及更高版本中下载 custom-crawler-docs.zip 文件

在 Discovery 版本 2.2.1 及更高版本中,执行以下步骤将 custom-crawler-docs.zip 文件下载到本地计算机。 您需要具有对已安装 Discovery 实例的 root 用户访问权:

  1. 登录到 Discovery 集群。

  2. 输入以下命令获取您的 crawler 播客名称:

    oc get pods | grep crawler
    

    您可能会看到如下输出:

    wd-discovery-crawler-57985fc5cf-rxk89     1/1     Running     0          85m
    
  3. 输入以下命令获取 custom-crawler-docs.zip 文件,将 {crawler-pod-name} 替换为在步骤2中获得的 crawler Pod名称:

    oc exec {crawler-pod-name} -- ls -l /opt/ibm/wex/zing/resources/ \
    | grep custom-crawler-docs
    

    您可能会看到类似于以下内容的输出:

    -rw-r--r--. 1 dadmin dadmin 59451 Jan 19 03:50 custom-crawler-docs-${build-version}.zip
    
  4. 输入以下命令以将 custom-crawler-docs.zip 文件复制到主机服务器,需要将 {build-version} 替换为步骤 3 中的构建版本号:

    oc cp {crawler-pod-name}:/opt/ibm/wex/zing/resources/custom-crawler-docs-${build-version}.zip custom-crawler-docs.zip
    
  5. 输入以下命令以解压缩 custom-crawler-docs.zip 文件:

    unzip custom-crawler-docs.zip -d custom-crawler-docs-primary
    

    根据需要,将 custom-crawler-docs.zip 文件复制到开发服务器。

    如果您的本地计算机没有 unzip 实用程序,请尝试使用 gunzip 命令,或者查看本地计算机操作系统的文档,了解扩展压缩文件的其他方法。

    如果使用的 Discovery 版本早于 2.1.2 并且想要访问 custom-crawler-docs.zip 文件,请输入以下命令:scp root@{instance_name}:/root/bob/sdk/custom-crawler-docs.zip {local_directory}

有关将 custom-crawler-docs.zip 文件下载到 Discovery 2.2.0 及更早版本,请参阅 将 custom-crawler-docs.zip 文件下载到 Discovery 2.2.0 及更早版本

下载 custom-crawler-docs.zip 文件到 Discovery 2.2.0 及更早版本

在 Discovery 版本 2.2.0 及更早版本中,请执行以下步骤将 custom-crawler-docs.zip 文件下载到本地计算机。 您需要具有对已安装 Discovery 实例的 root 用户访问权:

  1. 通过导航至 容器软件库获取授权密钥。

  2. 输入以下命令,登录到包含 Discovery 映像的 Docker 注册表。 在以下命令中包含您的权利密钥:

    docker login cp.icr.io -u cp -p {entitlement_key}
    
  3. 输入以下命令,拉取 custom-crawler-sdk 映像:

    docker pull cp.icr.io/cp/watson-discovery/custom-crawler-sdk:2.1.3
    
  4. 输入以下命令,运行 custom-crawler-sdk 映像:

    docker run cp.icr.io/cp/watson-discovery/custom-crawler-sdk:2.1.3
    
  5. 输入以下命令,从运行映像的容器中复制 custom-crawler-docs.zip

    docker cp {container_name}:/crawler/custom-crawler-docs.zip .
    

    要查找映像,请输入 docker ps -a | grep custom-crawler-sdk

  6. 解压缩 custom-crawler-docs.zip 文件:

    cd {local_directory}
    

    其中,{local_directory} 是本地计算机上已下载 custom-crawler-docs.zip 文件的目录。

    unzip custom-crawler-docs.zip
    

    如果您的本地计算机没有 unzip 实用程序,请尝试使用 gunzip 命令,或者查看本地计算机操作系统的文档,了解扩展压缩文件的其他方法。

    如果使用的 Discovery 版本早于 2.1.2 并且想要访问 custom-crawler-docs.zip 文件,请输入以下命令:scp root@{instance_name}:/root/bob/sdk/custom-crawler-docs.zip {local_directory}

有关在 Discovery 2.2.1 及更高版本中下载 custom-crawler-docs.zip 文件的信息,请参阅 在 Discovery 2.2.1 及更高版本中下载 custom-crawler-docs.zip 文件

了解 custom-crawler-docs.zip 文件

custom-crawler-docs.zip 文件扩展为一个名为 custom-crawler-docs-primary 的目录,其中包含以下内容:

custom-crawler-docs-primary
├── README.md
├── build.gradle
├── config
│   ├── README.md
│   ├── messages.properties
│   └── template.xml
├── scripts
│   └── manage_custom_crawler.sh
├── settings.gradle
├── src
│   └── main
│       └── java
│           └── com
│               └── ibm
│                   └── es
│                       └── ama
│                           └── custom
│                               └── crawler
│                                   └── sample
│                                       └── sftp
│                                           └── SftpCrawler.java
|                                           └── SftpSecurityHandler.java
└── wexlib
    ├── META-INF
    │   └── MANIFEST.MF
    ├── README.md
    ├── ama-zing-custom-crawler-{version_numbers}-javadoc.jar
    └── ama-zing-custom-crawler-{version_numbers}.jar

15 directories, 12 files

下载 JSch

JSch 是安全 Shell 协议 V2 (SSH2) 和 sftp(通过扩展)的 Java 实现。 它源自 Java 加密扩展(JCE )。 SSH2 您可以在 www.openssh.com/specs.html

JSch 的当前版本是 0.1.55 并受示例连接器支持。

将JSch下载到您的开发目录( {local_directory} )。您可以下载 ZIP格式JAR格式的软件包。 如果您下载了.zip格式的文件包,请按照上一部分所述进行解压。

示例连接器的文件

示例定制连接器包含三个一起构建的文件:

  • Java 源文件的名称为 SftpCrawler.javaSftpSecurityHandler.java
  • 名为 template.xml 的 XML 定义文件
  • 名为 message.properties 的属性文件

您可以通过参阅了解 custom-crawler-docs.zip 文件中的目录树清单来找到并检查这些文件。

要获取更多信息

有关 com.ibm.es.ama.custom.crawler 包中提供的所有接口和方法的详细文档,请参阅接口和 JavaDoc 中所示的可用 JavaDoc。