カスタム 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 インターフェースを使用して、カスタムクローラーの開始または停止、またはパスからのドキュメントのクロールを行います。 このインターフェースには、以下のメソッドがあります。

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分かかることがあります。

カスタム・コネクターのサンプル

例のコネクタは、SFTPサーバー上のファイルをクロールする Secure File Transfer プロトコル(SFTP)コネクタです。

サンプル・コネクターには、以下の 3 つのコンポーネントが含まれています。

  • コネクターの Java ソース・コード
  • コネクタがデータソースに接続し、クロールする際に使用するパラメータを定義するXML定義ファイル
  • コネクターのオプションの動作を定義するプロパティー・ファイル

要件

サンプル・コネクターの Java ソース・コードには、以下の依存関係があります。

Discovery 2.2.1以降の custom-crawler-docs.zip ファイルのダウンロード

Discoveryのバージョン2.2.1以降では、以下の手順で custom-crawler-docs.zip ファイルをローカルマシンにダウンロードしてください。 インストールした Discovery インスタンスに対するルート・アクセス権限が必要です。

  1. Discovery クラスターにログインします。

  2. crawler のポッド名を取得するには、以下のコマンドを入力してください

    oc get pods | grep crawler
    

    以下のような出力が表示される場合があります

    wd-discovery-crawler-57985fc5cf-rxk89     1/1     Running     0          85m
    
  3. 次のコマンドを入力して、 {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
    
  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 コマンドをお試しいただくか、圧縮ファイルを展開する他の代替方法については、お使いのローカルマシンのオペレーティングシステムのマニュアルをご確認ください。

    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 インスタンスに対するルート・アクセス権限が必要です。

  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 コマンドをお試しいただくか、圧縮ファイルを展開する他の代替方法については、お使いのローカルマシンのオペレーティングシステムのマニュアルをご確認ください。

    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.javaSftpSecurityHandler.java という名前である
  • template.xml という名前の XML 定義ファイル
  • message.properties という名前のプロパティー・ファイル

これらのファイルは、custom-crawler-docs.zip ファイルについてのディレクトリー・ツリーの一覧を参照すると見つかり、調べることができます。

詳細情報

com.ibm.es.ama.custom.crawler パッケージに用意されているすべてのインターフェースとメソッドに関する詳細な資料については、インターフェースと JavaDoc に示されている JavaDoc を参照してください。