开发定制 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中获得的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
-
输入以下命令以将
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。