사용자 정의 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 인터페이스를 사용하여 사용자 정의 크롤러를 시작하거나 중지하거나 경로에서 문서를 크롤링할 수 있습니다. 인터페이스에는 다음과 같은 메소드가 있습니다.

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 커넥터입니다.

예제 커넥터에는 세 가지 컴포넌트가 포함됩니다.

  • 커넥터의 Java 소스 코드
  • 커넥터가 데이터 소스에 연결하고 크롤링하는 데 사용하는 매개변수를 정의하는 XML 정의 파일
  • 커넥터의 선택적 동작을 정의하는 특성 파일

요구사항

예제 커넥터의 Java 소스 코드에는 다음과 같은 종속성이 있습니다.

Discovery 2.2.1 이상에서 custom-crawler-docs.zip 파일 다운로드하기

Discovery 버전 2.2.1 이상에서 다음 단계를 수행하여 custom-crawler-docs.zip 파일을 로컬 컴퓨터에 다운로드합니다. 설치된 Discovery 인스턴스에 대한 루트 액세스 권한이 필요합니다:

  1. Discovery 클러스터에 로그인하십시오.

  2. crawler 의 pod 이름을 얻으려면 다음 명령을 입력하십시오

    oc get pods | grep crawler
    

    다음과 같은 출력이 표시될 수 있습니다

    wd-discovery-crawler-57985fc5cf-rxk89     1/1     Running     0          85m
    
  3. custom-crawler-docs.zip 파일을 얻으려면 다음 명령을 입력하고, {crawler-pod-name} 를 2단계에서 얻은 crawler 포드 이름으로 바꾸십시오

    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}.

custom-crawler-docs.zip 파일을 Discovery 2.2.0 이하에서는 Discovery 2.2.0 이하에 custom-crawler-docs.zip 파일 다운로드 를 참조하세요.

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 파일을 다운로드하는 방법에 대한 자세한 내용은 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는 보안 쉘 프로토콜 버전 2(SSH2) 프로토콜의 Java 구현이며, 확장자는 sftp입니다. Java 의 암호화 확장(JCE) 에서 파생되었습니다. SSH2 의 사양은 다음 사이트에서 확인할 수 있습니다 www.openssh.com/specs.html.

JSch의 현재 버전은 0.1.55이며 예제 커넥터에서 지원됩니다.

개발 디렉토리( {local_directory} )에 JSch를 다운로드하십시오. 패키지는 ZIP 또는 JAR 형식으로 다운로드할 수 있습니다. .zip 포맷으로 패키지를 다운로드한 경우, 이전 섹션에서 설명한 대로 압축을 풉니다.

예제 커넥터 파일

예제 사용자 정의 커넥터에는 함께 빌드되는 세 개의 파일이 포함되어 있습니다.

  • 이름이 SftpCrawler.javaSftpSecurityHandler.java 인 Java 소스 파일입니다
  • template.xml이라는 XML 정의 파일
  • message.properties라는 특성 파일

custom-crawler-docs.zip 파일 이해에 있는 디렉토리 트리 목록을 참조하여 이러한 파일을 찾아서 검사할 수 있습니다.

자세한 정보

com.ibm.es.ama.custom.crawler 패키지에서 사용 가능한 모든 인터페이스 및 메소드에 대한 자세한 문서는 인터페이스 및 JavaDoc에 표시된 대로 사용 가능한 JavaDoc를 참조하십시오.