Paramétrez Openflow Connector for Snowflake to Kafka

Note

Le connecteur est soumis aux conditions d’utilisation du connecteur.

Cette rubrique décrit les étapes pour paramétrer Openflow Connector for Snowflake to Kafka.

Conditions préalables

  1. Assurez-vous d’avoir consulté À propos de Openflow Connector for Snowflake to Kafka.

  2. Assurez-vous que vous avez paramétré Openflow.

  3. Créez un flux Snowflake qui fera l’objet d’une requête pour les changements.

  4. Créez un sujet Kafka qui recevra les messages CDC du flux Snowflake.

Paramétrage du compte Snowflake

En tant qu’administrateur de compte Snowflake, effectuez les tâches suivantes :

  1. Créez la base de données, la table source et l’objet flux que le connecteur utilisera pour lire les événements CDC. Par exemple :

    create database stream_db;
    use database stream_db;
    create table stream_source (user_id varchar, data varchar);
    create stream stream_on_table on table stream_source;
    
    Copy
  2. Créez un nouveau rôle ou utilisez un rôle existant et accordez le privilège SELECT sur le flux et l’objet source du flux. Le connecteur devra également disposer du privilège USAGE sur la base de données et le schéma contenant le flux et l’objet source du flux. Par exemple :

    create role stream_reader;
    grant usage on database stream_db to role stream_reader;
    grant usage on schema stream_db.public to role stream_reader;
    grant select on stream_source to role stream_reader;
    grant select on stream_on_table to role stream_reader;
    
    Copy
  3. Créez un nouvel utilisateur du service Snowflake avec le type SERVICE. Par exemple :

    create user stream_user type = service;
    
    Copy
  4. Autorisez l’utilisateur du service Snowflake le rôle que vous avez créé dans les étapes précédentes. Par exemple :

    grant role stream_reader to user stream_user;
    
    Copy
  5. Configurez avec l’authentification par paire de clés pour l’utilisateur de Snowflake SERVICE de l’étape 3.

  6. Snowflake recommande vivement cette étape. Configurez un gestionnaire de secrets pris en charge par Openflow, par exemple AWS, Azure et Hashicorp, et stockez les clés publiques et privées dans le magasin de secrets. Notez toutefois que la clé privée générée à l’étape 4 peut être utilisée directement comme paramètre de configuration pour la configuration du connecteur. Dans ce cas, la clé privée est stockée dans la configuration de l’environnement d’exécution d’Openflow.

    Note

    Si, pour une raison quelconque, vous ne souhaitez pas utiliser un gestionnaire de secrets, il vous incombe de protéger les fichiers de clés publiques et privées utilisés pour l’authentification par paires de clés conformément aux politiques de sécurité de votre organisation.

    1. Une fois le gestionnaire de secrets configuré, déterminez comment vous vous y authentifierez. Sur AWS, il est recommandé d’utiliser le rôle de l’instance EC2 associée à Openflow, car de cette manière, aucun autre secret ne doit être conservé.

    2. Dans Openflow, configurez un fournisseur de paramètres associé à ce gestionnaire de secrets, à partir du menu hamburger en haut à droite. Naviguez vers Controller Settings » Parameter Provider et récupérez les valeurs de vos paramètres.

    3. À ce stade, tous les identifiants peuvent être référencés avec les chemins de paramètres associés et aucune valeur sensible ne doit être conservée dans Openflow.

  7. Désignez un entrepôt à utiliser par le connecteur. Un connecteur peut répliquer une seule table vers un seul sujet Kafka. Pour ce type de traitement, vous pouvez choisir l’entrepôt le plus petit.

Définir le connecteur

En tant qu’ingénieur des données, effectuez les tâches suivantes pour installer et configurer un connecteur :

  1. Naviguez jusqu’à la page d’aperçu d’Openflow. Dans la section Featured connectors, sélectionnez View more connectors.

  2. Sur la page des connecteurs Openflow, trouvez et choisissez le connecteur en fonction du type d’instance de broker Kafka avec lequel le connecteur doit communiquer.

    • Version mTLS : choisissez ce connecteur si vous utilisez le protocole de sécurité SSL (mutual TLS) ou si vous utilisez le protocole SASL_SSL et que vous vous connectez au broker qui utilise des certificats auto-signés.

    • Version SASL : choisissez ce connecteur si vous utilisez un autre protocole de sécurité

  3. Sélectionnez Add to runtime.

  4. Dans la boîte de dialogue Select runtime, sélectionnez votre environnement d’exécution dans la liste déroulante Available runtimes.

  5. Sélectionnez Add.

  6. Authentifiez-vous au déploiement avec les identifiants de votre compte Snowflake et sélectionnez Allow lorsque vous êtes invité à autoriser l’application d’exécution à accéder à votre compte Snowflake. Le processus d’installation du connecteur prend quelques minutes.

  7. Authentifiez-vous auprès de l’environnement d’exécution avec les identifiants de votre compte Snowflake.

    Le canevas Openflow apparaît avec le groupe de processus du connecteur ajouté.

  8. Cliquez avec le bouton droit de la souris sur le groupe de processus importé et sélectionnez Parameters.

  9. Renseignez les valeurs des paramètres requis comme décrit dans Paramètres de débit.

Paramètres de débit

Cette section décrit les paramètres de flux que vous pouvez configurer en fonction des contextes de paramètres suivants :

Paramètres de la source Kafka Sink

Paramètre

Description

Obligatoire

Identificateur de compte Snowflake

Nom du compte Snowflake formaté comme suit : [nom de l’organisation]-[nom du compte] où les données seront conservées. Exemple : example.snowflakecomputing.com

Oui

Stratégie d’authentification Snowflake

Stratégie d’authentification auprès de Snowflake. Valeurs possibles :

  • SNOWFLAKE_SESSION_TOKEN: Lorsque vous utilisez le connecteur sur SPCS

  • KEY_PAIR: Lorsque vous souhaitez établir un accès à l’aide d’une clé privée

Oui

Base de données source

Base de données source. Cette base de données doit contenir les objets du flux Snowflake qui seront consommés.

Oui

Mot de passe de la clé privée de Snowflake

Le mot de passe associé à la clé privée de Snowflake. Elle n’est pas exigée lorsque la clé privée utilisée n’est pas sécurisée par un mot de passe.

Non

Rôle Snowflake

Rôle Snowflake utilisé lors de l’exécution de la requête

Oui

Nom d’utilisateur Snowflake

Nom d’utilisateur utilisé pour se connecter à l’instance de Snowflake

Oui

Entrepôt Snowflake

L’entrepôt de Snowflake est utilisé pour exécuter des requêtes

Oui

Clé privée de Snowflake

La clé privée RSA utilisée pour l’authentification. La clé RSA doit être formatée selon les normes PKCS8 et comporter les en-têtes et pieds de page standard PEM. Notez que vous devez définir soit le fichier de clé privée de Snowflake, soit la clé privée de Snowflake.

Oui

Fichier de clé privée de Snowflake

Le fichier qui contient la clé privée RSA utilisée pour l’authentification à Snowflake, formaté selon les normes PKCS8 et comportant les en-têtes et pieds de page standard PEM. La ligne d’en-tête commence par -----BEGIN PRIVATE. Cochez la case Reference asset pour télécharger le fichier de la clé privée.

Non

Schéma de la source

Le schéma source. Ce schéma doit contenir l’objet du flux Snowflake qui sera consommé.

Oui

Paramètres de destination Kafka Sink

Paramètre

Description

Obligatoire

Serveurs Bootstrap Kafka

Une liste de brokers Kafka, séparés par des virgules, vers lesquels envoyer les données.

Oui

Mécanisme Kafka SASL

Mécanisme SASL utilisé pour l’authentification. Correspond à la propriété Kafka Client sasl.mechanism. Valeurs possibles :

  • PLAIN

  • SCRAM-SHA-256

  • SCRAM-SHA-512

  • AWS_MSK_IAM

Oui

Nom d’utilisateur Kafka SASL

Le nom d’utilisateur pour s’authentifier auprès de Kafka

Oui

Mot de passe Kafka SASL

Le mot de passe pour s’authentifier auprès de Kafka

Oui

Protocole de sécurité de Kafka

Protocole de sécurité utilisé pour communiquer avec les courtiers. Correspond à la propriété Kafka Client security.protocol. Valeurs possibles :

  • PLAINTEXT

  • SASL_PLAINTEXT

  • SASL_SSL

  • SSL

Oui

Rubrique Kafka

Le sujet Kafka, où les CDCs du flux Snowflake seront envoyés

Oui

Champ de la clé du message Kafka

Indiquez le nom de la colonne de la base de données qui sera utilisée comme clé du message Kafka. Si elle n’est pas spécifiée, la clé de message ne sera pas définie. Si elle est spécifiée, la valeur de cette colonne sera utilisée comme clé de message. La valeur de ce paramètre est sensible à la casse.

Non

Nom de fichier du keystore de Kafka

Chemin d’accès complet à un keystore stockant une clé et un certificat client pour la méthode d’authentification mTLS. Exigence pour l’authentification mTLS et lorsque le protocole de sécurité est SSL.

Non

Type de keystore Kafka

Le type de référentiel. Requis pour l’authentification mTLS. Valeurs possibles :

  • PKCS12

  • JKS

  • BCFKS

Non

Mot de passe du keystore de Kafka

Le mot de passe utilisé pour sécuriser le fichier keystore.

Non

Mot de passe de la clé Kafka

Un mot de passe pour la clé privée stockée dans le keystore. Requis pour l’authentification mTLS.

Non

Nom de fichier Truststore de Kafka

Chemin complet vers un truststore stockant les certificats des brokers. Le client utilisera le certificat de ce truststore pour vérifier l’identité du broker.

Non

Type de Truststore Kafka

Le type de fichier truststore. Valeurs possibles :

  • PKCS12

  • JKS

  • BCFKS

Non

Mot de passe du Truststore Kafka

Un mot de passe pour le fichier truststore.

Non

Paramètres d’ingestion Kafka Sink

Paramètre

Description

Obligatoire

Nom du flux Snowflake FQN

Nom complet du flux Snowflake.

Oui

Exécutez le flux

  1. Cliquez avec le bouton droit de la souris sur l’avion et sélectionnez Enable all Controller Services.

  2. Cliquez avec le bouton droit de la souris sur le groupe de processus importé et sélectionnez Start. Le connecteur démarre l’ingestion des données.