开发定制 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 界面启动或停止自定义爬虫程序,或从路径中抓取文档。 该接口包含以下方法:
| 方法 | 描述 |
|---|---|
init |
启动自定义爬虫 |
term |
停止自定义爬虫 |
crawl |
从指定路径抓取文件 |
配置接口
CustomCrawlerConfiguration
使用 com.ibm.es.ama.custom.crawler.CustomCrawlerConfiguration 接口可验证配置以及发现数据源上的可用搜寻空间。 该接口包含以下方法:
| 方法 | 描述 |
|---|---|
validate |
验证配置 |
getFieldsFor |
列出已知字段及其类型 |
discoverySubspaces |
发现数据源上的搜寻空间 |
ConfigProvider
使用 com.ibm.es.ama.custom.crawler.CustomCrawlerConfiguration.ConfigProvider 接口可映射数据源的设置,并列出数据源上的搜寻空间设置。 该接口包含以下方法:
| 方法 | 描述 |
|---|---|
get |
获取节中设置的映射 |
getCrawlspaceSettings |
获取搜寻空间设置的列表 |
SubspaceConsumer
使用 com.ibm.es.ama.custom.crawler.CustomCrawlerConfiguration.SubspaceConsumer 接口可添加搜寻空间的路径。 该接口包含以下方法:
| 方法 | 描述 |
|---|---|
add |
添加搜寻空间的路径 |
搜寻器接口
RecordKeeper
使用 com.ibm.es.ama.custom.crawler.CustomCrawler.RecordKeeper 接口可保留搜寻记录以及发布搜寻到的文档。 该接口包含以下方法:
| 方法 | 描述 |
|---|---|
canContinue |
布尔值,用于列出搜寻器是否可以继续。 定制搜寻器必须定期轮询此值,并在此值返回 false 时终止。 |
check |
从上次搜寻到的文档中获取元数据字段 |
upsert |
发布文档以供进一步处理 |
delete |
删除文档 |
安全接口
CustomCrawlerSecurityHandler
使用 com.ibm.es.ama.custom.crawler.CustomCrawlerSecurityHandler 接口可对定制搜寻器实现安全性。 该接口包含以下方法:
| 方法 | 描述 |
|---|---|
term |
终止安全处理程序 |
getUserAndGroups |
获取给定用户的 ACL |
更新连接器的 getUserAndGroups 逻辑时,重新部署连接器后,更改可能需要 10 分钟才能生效。
定制连接器示例
示例连接器是一个 Secure File Transfer 协议(SFTP)连接器,用于抓取SFTP服务器上的文件。
示例连接器包含三个组件:
- 连接器的 Java 源代码
- XML定义文件,用于定义连接器用于连接和抓取数据源的参数
- 属性文件,用于定义连接器的可选行为
要求
示例连接器的 Java 源代码具有以下依赖项:
- Java SE 开发工具包 (JDK) 1.8 或更高版本。
- 来自已安装的 Discovery 实例的
custom-crawler-docs.zip文件,如 在 Discovery 2.2.1 及更高版本中下载custom-crawler-docs.zip文件 和 在 Discovery 2.2.0 及更早版本中下载custom-crawler-docs.zip文件 所述。 - JSch Java 软件包,如 Downloaded JSch 所述。 您可以下载 ZIP 格式或 JAR 格式的软件包。
在 Discovery 2.2.1 及更高版本中下载 custom-crawler-docs.zip 文件
在 Discovery 版本 2.2.1 及更高版本中,执行以下步骤将 custom-crawler-docs.zip 文件下载到本地计算机。 您需要具有对已安装 Discovery 实例的 root 用户访问权:
-
登录到 Discovery 集群。
-
输入以下命令获取您的
crawler播客名称:oc get pods | grep crawler您可能会看到如下输出:
wd-discovery-crawler-57985fc5cf-rxk89 1/1 Running 0 85m -
输入以下命令获取
custom-crawler-docs.zip文件,将{crawler-pod-name}替换为在步骤2中获得的crawlerPod名称: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 -
输入以下命令以将
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 -
输入以下命令以解压缩
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 用户访问权:
-
通过导航至 容器软件库获取授权密钥。
-
输入以下命令,登录到包含 Discovery 映像的 Docker 注册表。 在以下命令中包含您的权利密钥:
docker login cp.icr.io -u cp -p {entitlement_key} -
输入以下命令,拉取
custom-crawler-sdk映像:docker pull cp.icr.io/cp/watson-discovery/custom-crawler-sdk:2.1.3 -
输入以下命令,运行
custom-crawler-sdk映像:docker run cp.icr.io/cp/watson-discovery/custom-crawler-sdk:2.1.3 -
输入以下命令,从运行映像的容器中复制
custom-crawler-docs.zip:docker cp {container_name}:/crawler/custom-crawler-docs.zip .要查找映像,请输入
docker ps -a | grep custom-crawler-sdk。 -
解压缩
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.java和SftpSecurityHandler.java - 名为
template.xml的 XML 定义文件 - 名为
message.properties的属性文件
您可以通过参阅了解 custom-crawler-docs.zip 文件中的目录树清单来找到并检查这些文件。
要获取更多信息
有关 com.ibm.es.ama.custom.crawler 包中提供的所有接口和方法的详细文档,请参阅接口和 JavaDoc 中所示的可用 JavaDoc。