カスタム Cloud Pak for Data コネクター・コードの開発
カスタム・コネクター・サンプルには、com.ibm.es.ama.custom.crawler という名前の Java パッケージが含まれています。 パッケージには、独自のカスタムコネクタを作成する際に使用できる以下の Java インターフェースが含まれています。
IBM Cloud Pak for Data IBM Software Hub
この情報は、インストールされたデプロイメントにのみ適用されます。
インターフェースと JavaDoc
この文書に記載されているインターフェースは、カスタムコネクタの圧縮ファイルに含まれているJARパッケージファイルで利用可能です。 ディスカバリーの custom-crawler-docs.zip ファイルのダウンロード 2.2.1以降 と ディスカバリー2.2.0以前の custom-crawler-docs.zip ファイルのダウンロード で説明したように custom-crawler-docs.zip ファイルをダウンロードして展開すると、展開された圧縮ファイルのルートレベルから wexlib/ama-zing-custom-crawler-{version_numbers}.jar としてインターフェイス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分かかることがあります。
カスタム・コネクターのサンプル
例のコネクタは、SFTPサーバー上のファイルをクロールする Secure File Transfer プロトコル(SFTP)コネクタです。
サンプル・コネクターには、以下の 3 つのコンポーネントが含まれています。
- コネクターの Java ソース・コード
- コネクタがデータソースに接続し、クロールする際に使用するパラメータを定義するXML定義ファイル
- コネクターのオプションの動作を定義するプロパティー・ファイル
要件
サンプル・コネクターの Java ソース・コードには、以下の依存関係があります。
- Java SE Development Kit (JDK) 1.8 以上。
- ディスカバリーの
custom-crawler-docs.zipファイルのダウンロード 2.2.1以降 と ディスカバリー2.2.0以前のcustom-crawler-docs.zipファイルのダウンロード で説明したように、インストールされた Discovery インスタンスのcustom-crawler-docs.zipファイル。 - JSch Javaパッケージは、JSch をダウンロードしました。 パッケージは ZIP形式または JAR形式でダウンロードできます。
Discovery 2.2.1以降の custom-crawler-docs.zip ファイルのダウンロード
Discoveryのバージョン2.2.1以降では、以下の手順で custom-crawler-docs.zip ファイルをローカルマシンにダウンロードしてください。 インストールした Discovery インスタンスに対するルート・アクセス権限が必要です。
-
Discovery クラスターにログインします。
-
crawlerのポッド名を取得するには、以下のコマンドを入力してくださいoc get pods | grep crawler以下のような出力が表示される場合があります
wd-discovery-crawler-57985fc5cf-rxk89 1/1 Running 0 85m -
次のコマンドを入力して、
{crawler-pod-name}をステップ 2 で取得したcrawlerのポッド名に置き換えて、custom-crawler-docs.zipファイルを取得します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コマンドをお試しいただくか、圧縮ファイルを展開する他の代替方法については、お使いのローカルマシンのオペレーティングシステムのマニュアルをご確認ください。2.1.2 より前のバージョンの Discovery を使用している場合に、
custom-crawler-docs.zipファイルにアクセスするには、コマンドscp root@{instance_name}:/root/bob/sdk/custom-crawler-docs.zip {local_directory}を入力します。
Discovery 2.2.0 以前への custom-crawler-docs.zip ファイルのダウンロードについては、custom-crawler-docs.zipファイルをディスカバリー2.2.0以前にダウンロードする を参照してください。
custom-crawler-docs.zip ファイルをDiscovery 2.2.0以前のバージョンにダウンロードする
Discoveryのバージョン2.2.0以前では、以下の手順で custom-crawler-docs.zip ファイルをローカルマシンにダウンロードしてください。 インストールした Discovery インスタンスに対するルート・アクセス権限が必要です。
-
コンテナソフトウェアライブラリに移動して、エンタイトルメントキーを取得します。
-
以下のコマンドを入力して、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コマンドをお試しいただくか、圧縮ファイルを展開する他の代替方法については、お使いのローカルマシンのオペレーティングシステムのマニュアルをご確認ください。2.1.2 より前のバージョンの Discovery を使用している場合に、
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 ファイルのダウンロードについては、ディスカバリ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 は、セキュア・シェル・プロトコル・バージョン 2 (SSH2 キー) プロトコルと、その拡張機能として sftp を Java で実装したものです。 これは 、 Java 暗号化拡張(JCE) から派生したものです。 SSH2 の仕様は、こちらでご覧いただけます。 www.openssh.com/specs.html。
JSchの現在のバージョンは0.1.55で、サンプルのコネクタでサポートされています。
JSchを開発ディレクトリにダウンロードします( {local_directory})。ZIP形式または JAR形式のパッケージをダウンロードできます。 .zip形式のパッケージをダウンロードした場合は、前項で説明した手順で解凍してください。
サンプル・コネクターのファイル
サンプルのカスタム・コネクターには、一緒にビルドされる以下の 3 つのファイルが含まれています。
- Javaのソースファイルは、
SftpCrawler.javaとSftpSecurityHandler.javaという名前である template.xmlという名前の XML 定義ファイルmessage.propertiesという名前のプロパティー・ファイル
これらのファイルは、custom-crawler-docs.zip ファイルについてのディレクトリー・ツリーの一覧を参照すると見つかり、調べることができます。
詳細情報
com.ibm.es.ama.custom.crawler パッケージに用意されているすべてのインターフェースとメソッドに関する詳細な資料については、インターフェースと JavaDoc に示されている JavaDoc を参照してください。