Création d'un connecteur de service NiFi
Les connecteurs sont des ensembles de canaux de données avec traitement intégré, qui forment ensemble un pipeline. Pour créer un nouveau connecteur, définissez un descripteur afin de décrire le schéma, le pipeline que le connecteur utilisera et la planification (intervalle, récurrence) qu'il suit.
Before you begin
Important: Lorsque le service Ingest démarre, il tente de vérifier les paramètres de connecteur requis dans ZooKeeper et NiFi. Si aucune configuration de connecteur antérieure n'est détectée, le service Ingest créera automatiquement tous les connecteurs HCL Commerce Search obligatoires. Cette procédure ponctuelle peut prendre jusqu'à 20 minutes en fonction de la puissance de calcul de votre système. Notez que les montages externes avec conteneurs Docker autonomes, ou des volumes persistants dans Kubernetes, sont fortement recommandés pour ce processus. Vous pouvez vous référer à l'exemple docker-compose ou aux chartes Helm pour plus de détails.
La raison de ce contrôle de vérification est que les données à l'intérieur des conteneurs d'application peuvent être perdues une fois le conteneur supprimé. L'avantage est que la configuration de l'application et les métadonnées internes sont stockées dans un stockage externe, ce qui permet à l'application de reprendre immédiatement à l'état le plus récent et de continuer à fonctionner même après le redéploiement du conteneur.
About this task
Dans ce sujet, vous apprendrez à générer un connecteur NiFi pour une utilisation avec le service Ingest. Vous créez le connecteur en définissant un descripteur et en envoyant une requête au service Ingest via POST: /connectors.
Procedure
-
Générez vos canaux NiFi. Chaque canal est un groupe de processus NiFi. Vous pouvez étendre les canaux par défaut existants en créant de nouveaux connecteurs et en stockant vos canaux dans le registre NiFi. En utilisant le registre, vous pouvez profiter de sa capacité à entretenir les canaux séparément pour différents numéros de version.
Les pipelines prégénérés fournis dans la version 9.1 sont Magasin, Catalogue, Attribut, Catégorie, Produit, Référencement, Prix, Stock, Autorisation et Marchandisage.
- Royaume-Uni
- Nom, description, valeurs par défaut au niveau du magasin, langues et devises prises en charge
- Catalogue
- Nom, description, filtres de catalogue
- Attribut
- Nom, description, valeurs d'attribut et propriétés de facette
- Catégorie
- Nom, brève description, hiérarchie du catalogue de vente et propriétés de navigation, facettes, URL de référencement
- Produit
- Nom, brève description, marque, listes de prix, nombres de stocks, langage naturel, hiérarchie du catalogue de vente et propriétés de navigation, URL de référencement, correction orthographique, suggestion, autorisation, associations de marchandisage, pièces jointes
- URL
- Propriétés d'optimisation du moteur de recherche et résolution d'URL pour les produits et catégories
- Description
- Longue description du produit et de la catégorie.
-
Définissez votre connecteur. Un connecteur est un ensemble de canaux ou de pipelines, regroupés sous forme d'unité de traitement unique. L'outil standard pour la construction de connecteurs est l'interface Apache NiFi. Vous pouvez utiliser la console NiFi pour décrire les relations entre les pipelines qui traitent les données entrantes. Plusieurs pipelines de traitement peuvent être reliés les uns aux autres pour former une série de pipelines à l'intérieur d'un connecteur, y compris un pipeline personnalisé créé par les clients. La sortie est un descripteur de connecteur, que vous stockez dans ZooKeeper. La console se trouve dans http://nifi_hostname:30600/nifi.

Vous pouvez définir des connecteurs pour qu'ils s'exécutent une fois ou selon une planification récurrente.
-
Concevez votre connecteur en définissant les attributs requis dans un descripteur. Le descripteur sert de plan directeur pour un connecteur et possède les attributs suivants :
- Nom
- Chaque descripteur (et par extension chaque connecteur) doit avoir un nom unique. Si un connecteur reçoit un nom qui existe déjà, un nouveau connecteur ne sera pas créé et une erreur 400 : Bad Request sera renvoyée.
- Description
- Une description de ce que fait ce connecteur. Il est recommandé de donner une description à un connecteur afin qu'il soit facile d'en rappeler la fonction.
- Canaux
- La liste des canaux qui composent un connecteur. Chaque canal d'un connecteur est chargé d'effectuer une ou plusieurs opérations d'ETL. Chaque canal doit avoir un nom (qui correspond à un canal qui existe dans le registre NiFi). Pour plus d'informations, voir la documentation Apache NiFi Registry.
-
Créez des connecteurs dans le service Ingest.
Note: Si vous rencontrez une erreur "Aucun processeur défini" après avoir créé les connecteurs, redémarrez-les. Dans le panneau Fonctionnement NiFi, cliquez sur le bouton Arrêter puis sur le bouton Démarrer pour redémarrer tous les connecteurs.L'interface NiFi se trouve à l'adresse suivante :
http://nifi_hostname:30600/nifi/Un ensemble de connecteurs intégrés est mis à votre disposition. Avant la version 9.1.12, une version de ces connecteurs est disponible. A partir de la version 9.1.12 sous, il existe deux versions de chaque, l'une pour une utilisation avec le modèle d'indexation eSite et l'autre avec le modèle d'indexation de magasin de ressources de catalogue (CAS). Pour plus d'informations sur les différences entre ces deux approches d'indexation, voir Choix de votre modèle d'index.auth.validate(eSite) ouauth.validate.cas(modèle CAS)- Ce pipeline est utilisé pour vérifier l'état de l'index en comparant et en comptant les documents Elasticsearch par rapport à la base de données. Actuellement, il vérifie l'intégrité du magasin, de la catégorie, du produit, de l'attribut et de l'index URL.
auth.content/ live.content(eSite) ouauth.content.cas/ live.content.cas(modèle CAS)-
Crée des pages statiques dans l'index URL. La présentation de chaque page est construite à l'aide de la sélection de widgets de la bibliothèque de widgets Commerce Composer.
auth.delete/ live.delete(eSite) ouauth.delete.cas/ live.delete.cas(modèle CAS)- Lorsqu'un événement de suppression pour une catégorie, un produit ou un attribut se produit, ce canal est appelé. Ce canal supprime des produits ou une catégorie et envoie un événement de mise à jour au parent ou à l'enfant de ces produits ou catégories.
push-to-live(eSite) oupush-to-live.cas(modèle CAS)- Ce pipeline est appelé lorsque l'utilisateur est défini pour envoyer toutes les données d'index à l'environnement opérationnel. Il est utilisé comme mécanisme de verrouillage pour écrire des données dans l'environnement opérationnel. Lorsque l'accès en écriture est accordé dans un environnement opérationnel, l'authentification est désactivée.
Results
Vous disposez maintenant d'une définition de données, d'un canal ou d'un ensemble de canal, et de leur relation comme décrit dans un descripteur de données. Vous êtes prêt à utiliser le connecteur avec le service Ingest.