IBM Cloud Docs
カスタム Cloud Pak for Data コネクター・コードの開発

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