Desenvolvendo o código do conector customizado do Cloud Pak for Data

O exemplo de conector customizado inclui um pacote Java denominado com.ibm.es.ama.custom.crawler. O pacote inclui as seguintes interfaces Java que você pode usar ao escrever seu próprio conector personalizado.

IBM Cloud Pak for Data IBM Software Hub

Essas informações se aplicam apenas a implementações instaladas.

Interfaces e JavaDoc

As interfaces listadas neste documento estão disponíveis no arquivo de pacote JAR incluído no arquivo compactado do conector personalizado. Depois de baixar e expandir o arquivo custom-crawler-docs.zip conforme descrito em Baixando o arquivo custom-crawler-docs.zip no Discovery 2.2.1 e posteriores e Baixando o arquivo custom-crawler-docs.zip no Discovery 2.2.0 e anteriores, o arquivo JAR da interface está disponível como wexlib/ama-zing-custom-crawler-{version_numbers}.jar no nível da raiz do arquivo compactado expandido. O JavaDoc para o arquivo JAR está disponível como wexlib/ama-zing-custom-crawler-{version_numbers}-javadoc.jar no mesmo nível.

Interface de inicialização

CustomCrawler

Use a interface com.ibm.es.ama.custom.crawler.CustomCrawler para iniciar ou parar um rastreador personalizado ou para rastrear documentos de um caminho. A interface tem os métodos a seguir.

CustomCrawler
Método Descrição
init Iniciar um rastreador personalizado
term Interromper um rastreador personalizado
crawl Rastrear documentos de um caminho especificado

Interfaces de configuração

CustomCrawlerConfiguration

Use a interface com.ibm.es.ama.custom.crawler.CustomCrawlerConfiguration para validar a configuração e para descobrir os crawl spaces disponíveis na origem de dados. A interface tem os métodos a seguir.

CustomCrawlerConfiguration
Método Descrição
validate Validar configuração
getFieldsFor Listar campos conhecidos e seus tipos
discoverySubspaces Descubra os crawl spaces na origem de dados

ConfigProvider

Use a interface com.ibm.es.ama.custom.crawler.CustomCrawlerConfiguration.ConfigProvider para mapear as configurações da origem de dados e para listar as configurações de crawl space na origem de dados. A interface tem os métodos a seguir:

ConfigProvider
Método Descrição
get Obter um mapa das configurações em uma seção
getCrawlspaceSettings Obter uma lista de configurações de crawl space

SubspaceConsumer

Use a interface com.ibm.es.ama.custom.crawler.CustomCrawlerConfiguration.SubspaceConsumer para incluir um caminho para um crawl space. A interface tem o método a seguir:

SubspaceConsumer métodos
Método Descrição
add Incluir um caminho para o crawl space

Interface do crawler

RecordKeeper

Use a interface com.ibm.es.ama.custom.crawler.CustomCrawler.RecordKeeper para manter registros de crawls e para publicar documentos submetidos a crawl. A interface tem os métodos a seguir:

RecordKeeper
Método Descrição
canContinue O booleano que lista se o crawler pode continuar. O crawler customizado deve pesquisar esse valor periodicamente e finalizar se ele retornar false.
check Obter campos de metadados do último documento submetido a crawl
upsert Publicar um documento para processamento adicional
delete Excluir um documento

Interface de segurança

CustomCrawlerSecurityHandler

Use a interface com.ibm.es.ama.custom.crawler.CustomCrawlerSecurityHandler para implementar a segurança para o seu crawler customizado. A interface tem os métodos a seguir:

CustomCrawlerSecurityHandler
Método Descrição
term Finalizar um manipulador de segurança
getUserAndGroups Obter as ACLs de um determinado usuário

Quando a lógica getUserAndGroups de um conector é atualizada, pode levar até 10 minutos após a reimplantação do conector para que a alteração tenha efeito.

Exemplo de conector customizado

O conector de exemplo é um conector Secure File Transfer Protocol (SFTP) que rastreia arquivos localizados em um servidor SFTP.

O conector de exemplo inclui três componentes:

  • Código-fonte Java para o conector
  • Um arquivo de definição XML que define os parâmetros que o conector usa para se conectar e rastrear a fonte de dados
  • Um arquivo de propriedades que define comportamentos opcionais para o conector

Requisitos

O código-fonte Java para o conector de exemplo tem as dependências a seguir:

Download do arquivo custom-crawler-docs.zip no Discovery 2.2.1 e posterior

Na Discovery versão 2.2.1 e posteriores, execute as seguintes etapas para fazer o download do arquivo custom-crawler-docs.zip em seu computador local. É necessário acesso raiz para a uma instância do Discovery instalada:

  1. Efetue login em seu cluster do Discovery.

  2. Digite o seguinte comando para obter o nome do pod crawler :

    oc get pods | grep crawler
    

    Você poderá ver um resultado parecido com este:

    wd-discovery-crawler-57985fc5cf-rxk89     1/1     Running     0          85m
    
  3. Digite o seguinte comando para obter o arquivo custom-crawler-docs.zip, substituindo {crawler-pod-name} pelo nome do pod crawler que você obteve na etapa 2:

    oc exec {crawler-pod-name} -- ls -l /opt/ibm/wex/zing/resources/ \
    | grep custom-crawler-docs
    

    Uma saída semelhante à seguinte pode ser exibida:

    -rw-r--r--. 1 dadmin dadmin 59451 Jan 19 03:50 custom-crawler-docs-${build-version}.zip
    
  4. Insira o comando a seguir para copiar o arquivo custom-crawler-docs.zip para o servidor host, substituindo {build-version} pelo número da versão da construção na etapa 3:

    oc cp {crawler-pod-name}:/opt/ibm/wex/zing/resources/custom-crawler-docs-${build-version}.zip custom-crawler-docs.zip
    
  5. Insira o comando a seguir para expandir o arquivo custom-crawler-docs.zip:

    unzip custom-crawler-docs.zip -d custom-crawler-docs-primary
    

    Se necessário, copie o arquivo custom-crawler-docs.zip para o servidor de desenvolvimento.

    Se o seu computador local não tiver o utilitário unzip, tente usar o comando gunzip ou consulte a documentação do sistema operacional do seu computador local para obter outras alternativas para expandir arquivos compactados.

    Se você estiver usando uma versão do Discovery anterior à 2.1.2 e desejar acessar o arquivo custom-crawler-docs.zip, insira o comando a seguir: scp root@{instance_name}:/root/bob/sdk/custom-crawler-docs.zip {local_directory}.

Para obter informações sobre o download do arquivo custom-crawler-docs.zip para Discovery 2.2.0 e anteriores, consulte Baixando o arquivo custom-crawler-docs.zip para o Discovery 2.2.0 e anteriores.

Download do arquivo custom-crawler-docs.zip para o Discovery 2.2.0 e anteriores

Na Discovery versão 2.2.0 e anteriores, execute as seguintes etapas para fazer o download do arquivo custom-crawler-docs.zip em seu computador local. É necessário acesso raiz para a uma instância do Discovery instalada:

  1. Obtenha a chave de autorização navegando até a biblioteca de software do contêiner.

  2. Insira o comando a seguir para fazer login no registro do Docker no qual suas imagens do Discovery estão disponíveis. Inclua sua chave de autorização no comando a seguir:

    docker login cp.icr.io -u cp -p {entitlement_key}
    
  3. Insira o comando a seguir para extrair a imagem custom-crawler-sdk:

    docker pull cp.icr.io/cp/watson-discovery/custom-crawler-sdk:2.1.3
    
  4. Insira o comando a seguir para executar a imagem custom-crawler-sdk:

    docker run cp.icr.io/cp/watson-discovery/custom-crawler-sdk:2.1.3
    
  5. Insira o comando a seguir para copiar custom-crawler-docs.zip do contêiner do qual a imagem está em execução:

    docker cp {container_name}:/crawler/custom-crawler-docs.zip .
    

    Para localizar a imagem, insira docker ps -a | grep custom-crawler-sdk.

  6. Expanda o arquivo custom-crawler-docs.zip:

    cd {local_directory}
    

    em que {local_directory} é o diretório em sua máquina local para o qual o arquivo custom-crawler-docs.zip foi transferido por download.

    unzip custom-crawler-docs.zip
    

    Se o seu computador local não tiver o utilitário unzip, tente usar o comando gunzip ou consulte a documentação do sistema operacional do seu computador local para obter outras alternativas para expandir arquivos compactados.

    Se você estiver usando uma versão do Discovery anterior à 2.1.2 e desejar acessar o arquivo custom-crawler-docs.zip, insira o comando a seguir: scp root@{instance_name}:/root/bob/sdk/custom-crawler-docs.zip {local_directory}.

Para obter informações sobre o download do arquivo custom-crawler-docs.zip na Discovery versão 2.2.1 e posteriores, consulte Baixando o arquivo custom-crawler-docs.zip no Discovery 2.2.1 e posteriores.

Entendendo o arquivo custom-crawler-docs.zip

O arquivo custom-crawler-docs.zip se expande em um diretório chamado custom-crawler-docs-primary que inclui o seguinte conteúdo:

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

Fazendo download do JSch

O JSch é uma implementação Java do protocolo Shell Seguro versão 2 (SSH2) e, por extensão, do sftp. Ele é derivado da extensão de criptografia Java(JCE). Você pode encontrar especificações para SSH2 em www.openssh.com/specs.html.

A versão atual do JSch é 0.1.55 e é compatível com o conector de exemplo.

Faça o download do JSch em seu diretório de desenvolvimento ( {local_directory} ). Você pode fazer o download do pacote em formato ZIP ou JAR. Se fizer o download do pacote no formato .zip, extraia-o conforme descrito na seção anterior.

Arquivos para o conector de exemplo

O conector customizado de exemplo inclui três arquivos que são construídos juntos:

  • Arquivos de código-fonte Java denominados SftpCrawler.java e SftpSecurityHandler.java
  • Um arquivo de definições XML denominado template.xml
  • Um arquivo de propriedades denominado message.properties

É possível localizar e examinar esses arquivos referenciando a listagem da árvore de diretórios em Entendendo o arquivo custom-crawler-docs.zip.

Para obter mais informações

Para obter a documentação detalhada de todas as interfaces e métodos que estão disponíveis no pacote com.ibm.es.ama.custom.crawler, consulte o JavaDoc, que está disponível conforme indicado em Interfaces e JavaDoc.