カスタム 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 を参照してください。