Paramétrez Openflow Connector for SQL Server

Note

Ce connecteur est soumis aux conditions d’utilisation de Snowflake Connector.

Cette rubrique explique comment configurer le Openflow Connector for SQL Server.

Pour plus d’informations sur le processus de chargement incrémentiel, consultez Réplication incrémentielle.

Conditions préalables

Avant de configurer le connecteur, assurez-vous d’avoir rempli les conditions préalables suivantes :

  1. Assurez-vous d’avoir consulté À propos de Openflow Connector for SQL Server.

  2. Assurez-vous d’avoir consulté Versions du serveur SQL prises en charge.

  3. Assurez-vous d’avoir configuré votre déploiement d’exécution. Pour plus d’informations, consultez les rubriques suivantes :

  4. Si vous utilisez Openflow - Snowflake Deployments, assurez-vous d’avoir examiné la configuration des domaines requis et d’avoir accordé l’accès aux domaines requis pour le connecteur SQL Server.

Configurer votre instance SQL Server

Avant de configurer le connecteur, effectuez les tâches suivantes dans votre environnement SQL Server :

Note

Vous devez effectuer ces tâches en tant qu’administrateur de base de données.

  1. Activez le suivi des modifications sur les bases de données et les tables que vous prévoyez de répliquer, comme montré dans l’exemple SQL Server suivant :

    ALTER DATABASE <database>
      SET CHANGE_TRACKING = ON
      (CHANGE_RETENTION = 2 DAYS, AUTO_CLEANUP = ON);
    
    ALTER TABLE <schema>.<table>
      ENABLE CHANGE_TRACKING;
    

    Note

    Exécutez ces commandes pour chaque base de données et chaque table que vous prévoyez de répliquer.

    Le connecteur exige que le suivi des modifications soit activé sur les bases de données et les tables avant le début de la réplication. Assurez-vous que le suivi des modifications est activé pour chaque table que vous prévoyez de répliquer. Vous pouvez également activer le suivi des modifications pour d’autres tables lorsque le connecteur est en cours d’exécution.

  2. Créez une connexion pour l’instance SQL Server :

    CREATE LOGIN <user_name> WITH PASSWORD = '<password>';
    

    Cette connexion est utilisée pour créer des utilisateurs pour les bases de données que vous prévoyez de répliquer.

  3. Créez un utilisateur pour chaque base de données que vous répliquez en exécutant la commande SQL Server suivante dans chaque base de données :

    USE <source_database>;
    CREATE USER <user_name> FOR LOGIN <user_name>;
    
  4. Accordez les autorisations SELECT et VIEW CHANGE TRACKING à l’utilisateur pour chaque base de données que vous répliquez :

    GRANT SELECT ON <database>.<schema>.<table> TO <user_name>;
    GRANT VIEW CHANGE TRACKING ON <database>.<schema>.<table> TO <user_name>;
    

    Exécutez ces commandes dans chaque base de données pour chaque table que vous prévoyez de répliquer. Ces autorisations doivent être accordées à l’utilisateur de chaque base de données que vous avez créée précédemment.

  5. (Facultatif) Accordez le privilège VIEW DEFINITION sur les types de données définis par l’utilisateur (UDDT).

    Si vos tables contiennent des colonnes qui utilisent des types de données définis par l’utilisateur (UDDT), et si ces UDDT appartiennent à un autre utilisateur que l’utilisateur du connecteur, vous devez accorder l’autorisation VIEW DEFINITION à l’utilisateur du connecteur, comme indiqué dans l’exemple suivant SQL Server :

    GRANT VIEW DEFINITION TO <user_name>;
    

    Sans cette autorisation, les colonnes utilisant des UDDT sont exclues silencieusement de la réplication.

  6. (Facultatif) Configurez la connexion SSL.

    Si vous utilisez une connexion SSL pour vous connecter au SQL Server, créez le certificat racine pour votre serveur de base de données. Ceci est nécessaire lors de la configuration du connecteur.

Configurer votre environnement Snowflake

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

  1. Créez une base de données de destination dans Snowflake pour stocker les données répliquées :

    CREATE DATABASE <destination_database>;
    
  2. Créez un utilisateur de service Snowflake :

    CREATE USER <openflow_user>
      TYPE = SERVICE
      COMMENT='Service user for automated access of Openflow';
    
  3. Créez un rôle Snowflake pour le connecteur et accordez-lui les privilèges requis :

    CREATE ROLE <openflow_role>;
    GRANT ROLE <openflow_role> TO USER <openflow_user>;
    GRANT USAGE ON DATABASE <destination_database> TO ROLE <openflow_role>;
    GRANT CREATE SCHEMA ON DATABASE <destination_database> TO ROLE <openflow_role>;
    

    Utilisez ce rôle pour gérer l’accès du connecteur à la base de données Snowflake.

    Pour créer des objets dans la base de données de destination, vous devez accorder les privilèges USAGE et CREATE SCHEMA sur la base de données au rôle utilisé pour gérer l’accès.

  4. Créez un entrepôt Snowflake pour le connecteur et accordez-lui les privilèges requis :

    CREATE WAREHOUSE <openflow_warehouse> WITH
      WAREHOUSE_SIZE = 'XSMALL'
      AUTO_SUSPEND = 300
      AUTO_RESUME = TRUE;
    GRANT USAGE, OPERATE ON WAREHOUSE <openflow_warehouse> TO ROLE <openflow_role>;
    

    Snowflake recommande de commencer par une taille d’entrepôt XSMALL, puis de tester différentes tailles en fonction du nombre de tables répliquées et de la quantité de données transférées. Un grand nombre de tables s’adaptent généralement mieux aux entrepôts multi-clusters qu’à un entrepôt de plus grande taille. Pour plus d’informations, consultez la section relative aux entrepôts multi-clusters.

  5. Configurez les clés publiques et privées pour l’authentification par paire de clés :

    1. Créez une paire de clés sécurisées (publique et privée).

    2. Stockez la clé privée de l’utilisateur dans un fichier à fournir à la configuration du connecteur.

    3. Attribuez la clé publique à l’utilisateur du service Snowflake :

      ALTER USER <openflow_user> SET RSA_PUBLIC_KEY = 'thekey';
      

      Pour plus d’informations, voir Authentification par paire de clés et rotation de paires de clés.

Installer le connecteur

Pour installer le connecteur, procédez comme suit en tant qu’ingénieur des données :

  1. Accédez à 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 le connecteur et sélectionnez Add to runtime.

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

    Note

    Avant d’installer le connecteur, assurez-vous que vous avez créé une base de données et un schéma dans Snowflake pour que le connecteur puisse stocker les données ingérées.

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

  5. 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é.

Configuration du connecteur

Pour configurer le connecteur, procédez comme suit en tant qu’ingénieur des données :

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

  2. Remplissez les valeurs de paramètres requises.

    Pour plus d’informations sur les valeurs de paramètres requises, reportez-vous aux sections suivantes :

Commencez par définir les paramètres du contexte des paramètres source SQLServer, puis définissez le contexte des paramètres de destination SQLServer. Une fois cette opération terminée, activez le connecteur. Le connecteur se connecte à la fois à SQLServer et à Snowflake et démarre l’exécution. Toutefois, le connecteur ne réplique aucune donnée tant que les tables à répliquer n’ont pas été explicitement ajoutées à sa configuration.

Pour configurer des tables spécifiques pour la réplication, modifiez le contexte des paramètres d’ingestion SQLServer. Une fois que vous avez appliqué les modifications au contexte des paramètres d’ingestion SQLServer, la configuration est reprise par le connecteur et le cycle de vie de la réplication démarre pour chaque table.

Paramètres source SQLServer

Paramètre

Description

SQLServer Connexion URL

L’adresse complète URL JDBC de la base de données source.

Exemple :

  • jdbc:sqlserver://example.com:1433;encrypt=false;

Pilote SQLServer JDBC

Cochez la case Reference asset pour charger le pilote JDBC du serveur SQL.

Nom d’utilisateur SQLServer

Le nom d’utilisateur du connecteur.

Mot de passe SQLServer

Le mot de passe du connecteur.

Paramètres de destination SQLServer

Paramètre

Description

Obligatoire

Base de données de destination

La base de données dans laquelle les données sont conservées. Elle doit déjà exister dans Snowflake. Le nom est sensible à la casse. Pour les identificateurs sans guillemets, indiquez le nom en majuscules.

Oui

Stratégie d’authentification Snowflake

Lorsque vous utilisez :

  • Déploiement Snowflake Openflow ou BYOC : Utilisez SNOWFLAKE_MANAGED_TOKEN. Ce jeton est géré automatiquement par Snowflake. Les déploiements BYOC doivent disposer de rôles d’exécution pour utiliser SNOWFLAKE_MANAGED_TOKEN.

  • BYOC : BYOC peut également utiliser KEY_PAIR comme valeur pour la stratégie d’authentification.

Oui

Identificateur de compte Snowflake

Lorsque vous utilisez :

  • Stratégie d’authentification par jeton de session : doit être vide.

  • KEY_PAIR : nom d’utilisateur Snowflake au format [nom-organisation]-[nom-utilisateur] où les données seront conservées.

Oui

Stratégie de connexion à Snowflake

Lorsque vous utilisez KEY_PAIR, spécifiez la stratégie de connexion à Snowflake :

  • STANDARD (par défaut) : Connectez-vous à l’aide du routage public standard aux services Snowflake.

  • PRIVATE_CONNECTIVITY : Connectez-vous en utilisant des adresses privées associées à la plateforme Cloud prise en charge, comme AWS PrivateLink.

Requis pour BYOC avec KEY_PAIR uniquement ; ignoré dans les autres cas.

Résolution de l’identificateur d’objet Snowflake

Spécifie la manière dont les identificateurs d’objets sources tels que les schémas, les tables et les noms de colonnes sont stockés et interrogés dans Snowflake. Ce paramètre détermine si vous devrez utiliser des guillemets doubles dans les requêtes SQL.

Option 1 : Par défaut, insensible à la casse (recommandé).

  • Transformation : Tous les identificateurs sont convertis en majuscules. Par exemple, My_Table devient MY_TABLE.

  • Requêtes : les requêtes SQL ne sont pas sensibles à la casse et ne nécessitent pas de guillemets doubles SQL.

    Par exemple SELECT * FROM my_table; renvoie les mêmes résultats que SELECT * FROM MY_TABLE;.

Note

Snowflake recommande d’utiliser cette option si les objets de la base de données ne sont pas censés avoir des noms avec une casse mixte.

Important

Ne modifiez pas ce paramètre une fois que l’ingestion du connecteur a commencé. La modification de ce paramètre après le début de l‘ingestion interrompt l’ingestion existante. Si vous devez modifier ce paramètre, créez une nouvelle instance de connecteur.

Option 2 : sensible à la casse.

  • Transformation : La casse est préservée. Par exemple, My_Table reste My_Table.

  • Requêtes : les requêtes SQL doivent utiliser des guillemets doubles pour respecter la casse exacte des objets de base de données. Par exemple, SELECT * FROM "My_Table";.

Note

Snowflake recommande d’utiliser cette option si vous devez préserver la casse source pour des raisons héritées ou de compatibilité. Par exemple, si la base de données source comprend des noms de tables qui ne diffèrent que par la casse, comme MY_TABLE et my_table, il en résultera un conflit de noms lors de l’utilisation de comparaisons non sensibles à la casse.

Oui

Clé privée de Snowflake

Lorsque vous utilisez :

  • Stratégie d’authentification par jeton de session : doit être vide.

  • KEY_PAIR : Doit correspondre à la clé privée RSA utilisée pour l’authentification.

    La clé RSA doit être formatée conformément aux normes PKCS8 et posséder des en-têtes et des pieds de page PEM standards. Notez qu’un fichier de clé privée Snowflake ou une clé privée Snowflake doit être défini.

Non

Fichier de clé privée de Snowflake

Lorsque vous utilisez :

  • Stratégie d’authentification par jeton de session : le fichier de la clé privée doit être vide.

  • KEY_PAIR : Chargez le fichier qui contient la clé privée RSA utilisée pour l’authentification auprès de Snowflake, formatée conformément aux normes PKCS8 et possédant des en-têtes et des pieds de page PEM standards. La ligne d’en-tête commence par -----BEGIN PRIVATE. Pour charger le fichier de la clé privée, cochez la case Reference asset.

Non

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

Lorsque vous utilisez :

  • Stratégie d’authentification par jeton de session : doit être vide.

  • KEY_PAIR : fournissez le mot de passe associé au fichier de la clé privée Snowflake.

Non

Rôle Snowflake

Lorsque vous utilisez :

  • Stratégie d’authentification par jeton de session : Utilisez le rôle Snowflake attribué au runtime ou le rôle enfant attribué à ce rôle Snowflake. Vous pouvez trouver votre rôle Snowflake d’exécution dans l’UI Openflow, en développant le bouton More Options [⋮] pour votre runtime et en sélectionnant Set Snowflake role.

  • Stratégie d’authentification KEY_PAIR : Utilisez un rôle valide configuré pour votre utilisateur de service.

Oui

Nom d’utilisateur Snowflake

Lorsque vous utilisez :

  • Stratégie d’authentification par jeton de session : doit être vide.

  • KEY_PAIR : indiquez le nom d’utilisateur utilisé pour vous connecter à l’instance Snowflake.

Oui

Oversized Value Strategy

Determines how the connector handles values that exceed its internal size limits (16 MB) during replication. Possible values are:

  • Fail Table (default): The table is marked as permanently failed, and replication stops for that table.

  • Set Null: The value is replaced with NULL in the destination table. Use this to prevent table failures when it is acceptable to lose data in tables beyond the oversized value.

Non

Entrepôt Snowflake

Entrepôt Snowflake utilisé pour exécuter des requêtes.

Oui

Paramètres d’ingestion SQLServer

Paramètre

Description

Noms des tables incluses

Une liste de chemins d’accès aux tables sources séparés par des virgules, y compris leurs bases de données et leurs schémas, par exemple :

database_1.public.table_1, database_2.schema_2.table_2

Table incluse Regex

Une expression régulière à associer aux chemins d’accès aux tables, y compris les noms de bases de données et de schémas. Chaque chemin correspondant à l’expression est répliqué, et les nouvelles tables correspondant au modèle qui sont créées ultérieurement sont également incluses automatiquement, par exemple :

database_name\.public\.auto_.*

Filtre de colonne JSON

En option. Un tableau JSON d’objets de filtre spécifiant les colonnes à inclure ou à exclure par table. Pour plus de détails sur la syntaxe et des exemples, consultez Réplication d’un sous-ensemble de colonnes dans une table.

Fusionner la planification des tâches CRON

Expression CRON définissant les périodes au cours desquelles les opérations de fusion du journal vers la table de destination seront déclenchées. Paramétrez cet élément sur * * * * * ? si vous souhaitez une fusion continue ou une planification pour limiter la durée d’exécution de l’entrepôt.

Par exemple :

  • La chaîne * 0 * * * ? indique que vous souhaitez planifier des fusions à l’heure pleine pendant une minute

  • La chaîne * 20 14 ? * MON-FRI indique que vous souhaitez planifier les fusions à 14h20 tous les lundis et vendredis.

Pour plus d’informations et d’exemples, consultez le tutoriel sur les déclencheurs cron dans la documentation de Quartz

Répliquer des tables à partir d’un serveur de réplique SQL Server

Le connecteur peut ingérer des données d’un serveur principal ou d’un serveur d’abonnement à l’aide d’une réplication transactionnelle. Avant de configurer le connecteur pour qu’il se connecte à une réplique SQL Server, assurez-vous que la réplication entre les nœuds principaux et les nœuds de réplique fonctionne correctement. Pour obtenir des instructions sur la configuration de la réplication transactionnelle, consultez Tutoriel : Configurer la réplication transactionnelle. Lorsque vous enquêtez sur des problèmes liés à des données manquantes dans le connecteur, assurez-vous d’abord que les lignes manquantes et les événements de suivi des modifications sont présents dans le serveur de réplique utilisé par le connecteur.

Note

Lors de l’utilisation d’un serveur de réplique, la configuration du connecteur diffère de la configuration standard du serveur principal. Il n’est pas nécessaire de configurer l’utilisateur de connexion et le suivi des modifications sur le serveur principal. Au lieu de cela, assurez-vous que l’utilisateur de connexion est disponible sur le serveur de réplique, et qu’il a accès aux données et aux tables de suivi des modifications sur ce dernier.

Pour configurer le connecteur afin qu’il lise à partir d’un serveur d’abonnés au lieu d’un serveur de l’éditeur, spécifiez l’URL du serveur d’abonnés dans le paramètre SQLServer Connection URL.

Avertissement

Ne modifiez pas le serveur de base de données une fois la réplication commencée. Chaque base de données conserve son propre état de suivi des modifications de manière indépendante, de sorte que le passage à un autre serveur entraînerait une perte de traçage des modifications déjà traitées et pourrait causer une perte de données.

Redémarrer la réplication de table

Une table à l’état FAILED, par exemple, en raison d’une clé primaire manquante ou d’un changement de schéma non pris en charge, ne redémarre pas automatiquement. Si une table passe à l’état FAILED ou si vous devez redémarrer la réplication à partir de zéro, utilisez la procédure suivante pour supprimer et ajouter à nouveau la table à la réplication.

Note

Si l’échec a été causé par un problème dans la table source, tel qu’une clé primaire manquante, résolvez ce problème dans la base de données source avant de continuer.

  1. Supprimez la table des paramètres de flux. Dans le contexte Paramètres d’ingestion, supprimez la table dans les Included Table Names ou modifiez le Included Table Regex de sorte que la table n’a plus aucune correspondance.

  2. Vérifiez que la table a été supprimée :

    1. Dans le canevas de l’environnement d’exécution Openflow, cliquez avec le bouton droit de la souris sur un groupe de processeurs et choisissez Controller Services.

    2. Dans la table répertoriant les services du contrôleur, recherchez la ligne Table State Store, cliquez sur les trois points verticaux sur le côté droit de la ligne, puis choisissez View State.

    Important

    Vous devez attendre que l’état de la table soit entièrement supprimé de cette liste avant de poursuivre. Ne continuez pas tant que cette modification de la configuration n’est pas terminée.

  3. Nettoyez la destination. Une fois que l’état de la table indique qu’elle est entièrement supprimés, DROP manuellement la table de destination dans Snowflake. Notez que le connecteur ne remplacera pas une table de destination existante pendant la phase de l’instantané. Si la table existe toujours, la réplication échouera à nouveau. En option, la table et le flux de journal peuvent également être supprimés s’ils ne sont plus nécessaires.

  4. Rajouter la table : Mettez à jour les paramètres Included Table Names ou Included Table Regex pour inclure à nouveau la table.

  5. Vérifiez le redémarrage. Vérifiez le Table State Store en utilisant les instructions données précédemment. L’état de la table doit apparaître avec le statut NEW, puis SNAPSHOT_REPLICATION et pour finir INCREMENTAL_REPLICATION.

Répliquer un sous-ensemble de colonnes dans une table

Le connecteur peut filtrer les données répliquées par table vers un sous-ensemble de colonnes configurées. Les colonnes de clé primaire sont toujours incluses, quelles que soient les exclusions.

Pour appliquer des filtres de colonnes, définissez le paramètre Column Filter JSON dans le contexte Paramètres d’ingestion sur un tableau JSON d’objets de filtre, à raison d’un par table que vous souhaitez filtrer.

Les colonnes peuvent être incluses ou exclues par leur nom ou par un modèle d’expression régulière. Vous pouvez appliquer une seule condition par table ou combiner plusieurs conditions, les exclusions ayant toujours la priorité sur les inclusions.

Syntaxe

Chaque objet du tableau identifie une table et spécifie les colonnes à inclure ou à exclure. Étant donné que ce connecteur utilise des noms entièrement qualifiés en trois parties (base de données, schéma et table), chaque objet peut inclure un champ database ou databasePattern en plus des champs de schéma et de table.

[
    {
        "database": "<database>" | "databasePattern": "<regex>",
        "schema": "<schema>" | "schemaPattern": "<regex>",
        "table": "<table>" | "tablePattern": "<regex>",
        "included": ["<column>", "<column>"],
        "excluded": ["<column>", "<column>"],
        "includedPattern": "<regex>",
        "excludedPattern": "<regex>"
    }
]

Les règles suivantes s’appliquent :

  • Utilisez database, schema et table pour une correspondance exacte des noms, ou databasePattern, schemaPattern et tablePattern pour la correspondance regex. Vous ne pouvez pas utiliser à la fois un champ et sa variante de modèle dans le même objet (par exemple, schema et``schemaPattern`` ne peuvent pas apparaître tous les deux).

  • Au moins un des champs included, excluded,``includedPattern`` ou excludedPattern doivent être indiqués.

  • Lorsque des filtres d’inclusion et d’exclusion sont spécifiés, les exclusions ont la priorité.

  • Lorsque plusieurs filtres correspondent à la même table, le dernier filtre correspondant est utilisé, les correspondances exactes prévalant sur les filtres basés sur des modèles.

  • La valeur peut être un tableau d’objets permettant d’appliquer différents filtres à différentes tables.

Exemples

Inclure des colonnes spécifiques par leur nom :

[
    {
        "database": "my_db",
        "schema": "dbo",
        "table": "orders",
        "included": ["account_id", "status", "created_at"]
    }
]

Exclure des colonnes spécifiques par leur nom :

[
    {
        "database": "my_db",
        "schema": "dbo",
        "table": "orders",
        "excluded": ["internal_note", "debug_flag"]
    }
]

Combiner un modèle d’inclusion avec une exclusion spécifique (par exemple, inclure toutes les colonnes d’e-mail sauf admin_email) :

[
    {
        "database": "my_db",
        "schema": "dbo",
        "table": "contacts",
        "includedPattern": ".*_email",
        "excluded": ["admin_email"]
    }
]

Combiner un modèle de base de données avec un nom de schéma et de table exact pour appliquer un filtre entre les bases de données :

[
    {
        "databasePattern": "prod_.*",
        "schema": "dbo",
        "table": "customers",
        "excluded": ["internal_note"]
    }
]

Transmettre plusieurs objets de filtre pour appliquer différentes règles à différentes tables :

[
    {"database": "my_db", "schema": "dbo", "table": "orders", "included": ["account_id", "status"]},
    {"database": "my_db", "schema": "dbo", "table": "customers", "excludedPattern": ".*_internal"}
]

Réplication d’une table partitionnée

Le connecteur prend en charge la réplication des tables partitionnées. Une table partitionnée du serveur SQL est répliquée dans Snowflake sous la forme d’une seule table de destination, contenant les données de toutes les partitions.

Pour répliquer une table partitionnée, assurez-vous que le suivi des modifications est activé sur la table partitionnée, comme décrit dans Configurer votre instance SQL Server.

Suivre les changements de données dans les tables

Le connecteur réplique l’état actuel des données des tables sources, ainsi que les modifications détectées à partir de chaque intervalle d’interrogation. Ces données sont stockées dans des tables de journal créées dans le même schéma que la table de destination.

Note

Parce que le connecteur utilise le suivi des modifications du serveur SQL, plusieurs mises à jour de la même ligne entre les intervalles d’interrogation sont regroupées en une seule modification. Les tables de journal reflètent le résultat net des modifications, et non chaque état intermédiaire. Pour plus d’informations, voir À propos de Openflow Connector for SQL Server.

Les noms des tables de journal sont formatés comme suit : <source_table_name>_JOURNAL_<timestamp>_<schema_generation><timestamp> correspond au nombre de secondes écoulées depuis l’époque de référence au moment où la table source a été ajoutée à la réplication, et <schema_generation> est un nombre entier qui augmente à chaque modification du schéma de la table source. Par conséquent, les tables sources qui subissent des modifications de schéma auront plusieurs tables de journal.

Lorsque vous supprimez une table de la réplication, puis que vous l’ajoutez à nouveau, la valeur <timestamp> change, et <schema_generation> recommence à partir de 1.

Important

Snowflake recommande de ne pas modifier la structure des tables de journal de quelque manière que ce soit. Le connecteur les utilise pour mettre à jour la table de destination dans le cadre du processus de réplication.

Le connecteur ne supprime jamais les tables de journal, mais il utilise le journal le plus récent pour chaque table source répliquée, en se contentant de lire les flux d’ajout uniquement au-dessus des journaux. Pour récupérer le stockage, vous pouvez :

  • Tronquer toutes les tables de journal à tout moment.

  • Supprimer les tables de journal liées aux tables sources qui ont été retirées de la réplication.

  • Supprimer toutes les tables de journal de la dernière génération, sauf les tables activement répliquées.

Par exemple, si votre connecteur est paramétré pour répliquer activement la table source orders, et que vous avez précédemment supprimé la table customers de la réplication, vous pouvez avoir les tables de journal suivantes. Dans ce cas, vous pouvez toutes les supprimer, à l’exception de orders_5678_2.

customers_1234_1
customers_1234_2
orders_5678_1
orders_5678_2

Configuration de la planification des tâches de fusion

Le connecteur utilise un entrepôt pour fusionner les données de capture des données de changement (CDC) dans les tables de destination. Cette opération est déclenchée par le processeur MergeSnowflakeJournalTable. S’il n’y a pas de nouvelles modifications ou si aucun nouveau fichier de flux n’est en attente dans la file d’attente MergeSnowflakeJournalTable, aucune fusion n’est déclenchée et l’entrepôt se suspend automatiquement.

Utilisez l’expression CRON dans le paramètre de planification CRON de la tâche de fusion pour limiter le coût de l’entrepôt et restreindre les fusions aux seules heures planifiées. Elle limite les fichiers de flux arrivant au processeur MergeSnowflakeJournalTable et les fusions ne sont déclenchées qu’au cours d’une période donnée. Pour plus d’informations sur la planification, voir Stratégie de planification.

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.