Cree un procesador NiFi personalizado ampliando el procesador de Ingest predeterminado en el kit de herramientas NiFi

En este tema, aprenderá a crear un procesador NiFi personalizado ampliando el procesador de Ingest predeterminado en el kit de herramientas NiFi.

Procedure

Cree un procesador NiFi personalizado ampliando el procesador de Ingest predeterminado en el kit de herramientas NiFi.
Para configurar el entorno del kit de herramientas con el código fuente de ejemplo commerce-custom-search-marketplace-seller.zip proporcionado en el mismo espacio de trabajo commerce-custom-search-bundles-9.1.x.x que se explica en el requisito previo, siga los pasos que se indican a continuación. Para obtener más información sobre commerce-custom-search-bundles-9.1.x.x, consulte el tutorial : Personalización de conectores predeterminados con perfil de Ingest.
Note: Puede utilizar cualquier distribución de Eclipse que incluya el plugin Maven (Maven versión 3.8.4 o posterior).
  1. Extraiga commerce-custom-search-marketplace-seller.zip en un directorio de trabajo, commerce-custom-search-marketplace-seller, que contiene un proyecto Maven con un archivo pom.xml dentro.
  2. Copie los siguientes archivos JAR obtenidos del contenedor NiFi en el directorio del proyecto commerce-custom-search-marketplace-seller/libs que se ha extraído del proyecto commerce-custom-search-marketplace-seller.zip. Para obtener más información, consulte los pasos 3 a través de 6 de los Procesadores NiFi personalizados.

    Ejemplo de V9.1.10.0:

    1. commerce-search-processors-9.1.10.0.jar
    2. hcl-cache-core-9.1.10.0-20220322.160926-24.jar
    3. cf-base-9.1.10.0-20220322.160733-7.jar
    ingest-api.jar, que se ha incluido en la plantilla de proyecto commerce-custom-search-marketplace-seller.zip, ya está presente en esta carpeta.
    HCL Commerce Version 9.1.12.0 or laterNote: A partir de V9.1.12.0, ingest-api.jar no está disponible dentro de los elementos de la guía de aprendizaje.
  3. Actualice el archivo pom.xml del directorio raíz del proyecto commerce-custom-search-marketplace-seller y cambie las referencias del nombre del archivo a los nombres de los archivos JAR.
    Ejemplo de V9.1.10.0:
    <dependency> <groupId>com.hcl.commerce</groupId> <artifactId>dummy-commerce-search-processors</artifactId> <version>9.1.10.0</version> <scope>system</scope> <systemPath>${project.basedir}/libs/commerce-search-processors-9.1.10.0.jar</systemPath> </dependency> <dependency> <groupId>com.hcl.commerce</groupId> <artifactId>dummy-hcl-cache-core</artifactId> <version>9.1.10.0</version> <scope>system</scope> <systemPath> ${project.basedir}/libs/hcl-cache-core-9.1.10.0-20220322.160926-24.jar</systemPath> </dependency> <dependency> <groupId>com.ibm.commerce.cf</groupId> <artifactId>dummy-cf-base</artifactId> <version>9.1.10.0</version> <scope>system</scope> <systemPath> ${project.basedir}/libs/cf-base-9.1.10.0-20220322.160733-7.jar</systemPath> </dependency> 
  4. Importe el proyecto extraído como un proyecto Maven a Eclipse (Archivo > Importar > Maven > Proyectos Maven existentes) y seleccione el directorio raíz commerce-custom-search-marketplace-seller. Haga clic en Finalizar. Espere a que las dependencias terminen de descargarse.

    Este proyecto tiene una clase de proveedor de expresiones personalizada changeSQL de ejemplo que implementa la interfaz IngestExpressionProvider. La clase ChangeSQL amplía el SQL para incluir una columna "DESCRIPTION" desde la tabla SELLERDESC. Puede utilizar esta referencia de ejemplo para aprender a modificar el SQL utilizado en las etapas predeterminadas de Extracción, Transformación y Carga (ETL).

    ComposeDatabaseSQLTest es la prueba JUnit que se puede utilizar para verificar la lógica del código de ChangeSQL.

    ChangeDocument es una extensión de postprocesador del perfil de Ingest que muestra cómo puede realizar una manipulación de datos más detallada después de la transformación predeterminada, en una de las etapas de Ingest relacionadas con el producto. CreateProductDocumentFromDatabaseTest es la prueba de JUnit que se puede utilizar para verificar la lógica del código dentro de ChangeDocument. En esta clase, añada un campo adicional "seller_description" con el valor de la columna "DESCRIPTION" de la tabla MPSELLERDESC en el documento que desee indexar en Elasticsearch.

    En el Explorador de proyectos, pulse con el botón derecho el proyecto commerce-custom-search-marketplace-seller-- > Ejecutar como > Compilación de Maven... (Tenga en cuenta que hay dos elementos de menú, Compilación de Maven y Compilación de Maven..., seleccione Compilación de Maven... ) Se abre la ventana Editar configuración.

    Introduzca el mandato clean install -U -Denforcer.skip=true en el cuadro de texto Objetivos y pulse el botón Ejecutar.

    Una vez finalizada la compilación, el archivo JAR estará disponible en el directorio de destino de este proyecto, por ejemplo: commerce-custom-search-marketplace-seller-9.1.x.0.jar . Para obtener más información, consulte Procesadores NiFi personalizados.

En este tema, ha creado un procesador NiFi personalizado ampliando el procesador de Ingest predeterminado mediante el kit de herramientas NiFi. En la siguiente sección, probará la lógica personalizada de Ingest en el kit de herramientas NiFi antes de desplegarla en el entorno de desarrollo o producción.

Prueba de la lógica personalizada de Ingest en el kit de herramientas NiFi y compilación de un JAR desplegable

En este tema, probará la lógica personalizada del procesador NiFi creada en el kit de herramientas NiFi antes de desplegarla en el entorno de producción.

Procedure

Para probar la lógica de Ingest personalizada en el kit de herramientas NiFi y compilar un JAR desplegable, siga los pasos siguientes.

Para ejecutar la prueba de JUnit, haga clic con el botón derecho en la clase de prueba de JUnit elegida y elija Ejecutar como... o Depurar como > Prueba de JUnit.

  1. Actualice los proyectos pulsando el botón derecho del ratón en el Proyecto y seleccione Maven > Actualizar proyecto.
  2. Seleccione commerce-custom-search-processors > commerce-custom-search-marketplace-seller > Forzar actualización de instantáneas/versiones y pulse el botón Aceptar. Vuelva a compilar los binarios para el proyecto commerce-custom-search-bundles-9.1.10.0.
    Note:
    • El proyecto de personalización commerce-custom-search-marketplace-seller no tiene dependencias en el proyecto commerce-custom-search-bundles-9.1.x.x , sin embargo, se recomienda compilar el proyecto commerce-custom-search-bundles-9.1.x.x antes de continuar con las personalizaciones. Esto puede ser útil para otras personalizaciones que pueden tener dependencias en commerce-custom-search-bundles-9.1.x.x para otros casos de uso.
    • Si nota que faltan dependencias para los archivos JAR dummy-commerce-search-processors, dummy-hcl-cache-core o dummy-cf-base, consulte Resolución de problemas: Faltan dependencias personalizadas del procesador NiFi.

    Compile los binarios para el proyecto commerce-custom-search-marketplace-seller:

    Inicie una Compilación de Maven... en el proyecto del paquete raíz. En el Explorador de proyectos, haga clic con el botón derecho en la raíz (commerce-search-custom-bundle-9.1.x.x) y seleccione Ejecutar como > Compilación de Maven.... Se abre la ventana Editar configuración.

    Escriba el siguiente comando en el campo de entrada Objetivos:
    clean install -U -Denforcer.skip=true
    Pulse el botón Ejecutar.

    Una vez que la compilación se ha realizado correctamente, los archivos JAR pueden visualizarse en el subdirectorio de destino del proyecto commerce-custom-search-processors. Para obtener más información, consulte Procesadores NiFi personalizados.

En este tema se ha explorado la lógica exclusiva del procesador NiFi del kit de herramientas NiFi. La lógica de Ingest ahora se puede personalizar y desplegar en entornos de producción.