Gérer le remplissage pour les objets d'un flux

Le remplissage dans Datastream vous permet de charger un instantané des données historiques de vos objets sources dans votre destination, en plus de la capture des données modifiées en cours. Vous pouvez lancer manuellement un remplissage complet ou partiel si vous n'avez pas sélectionné Remplir les données historiques lorsque vous avez configuré votre source. Le lancement d'un remplissage vous permet également de resynchroniser les objets de destination si des données sont supprimées accidentellement.

Pendant l'exécution d'un flux, vous pouvez surveiller l'état des objets et arrêter un backfill actif à tout moment. L'arrêt d'une opération empêche la réplication d'un schéma ou de données corrompus et vous permet d'exécuter des tâches parallèles une par une pour réduire la charge source.

États des objets

Les différents états du cycle de vie du lancement et de l'arrêt du remplissage d'un objet sont les suivants :

  • Aucun état (représenté dans l'interface utilisateur par -) : les raisons pour lesquelles un objet reçoit cet état sont les suivantes :

    • Le flux n'a pas démarré.
    • La case Remplir les données historiques n'a pas été cochée (le remplissage est donc défini comme manuel).
    • L'objet est exclu explicitement du remplissage automatique.
    • Le flux est configuré pour inclure les tables futures. Dans ce cas, lorsque de nouvelles tables sont ajoutées à la source, aucune tâche de backfill automatique n'est créée pour elles (car les nouvelles tables ne contiennent généralement pas de données historiques à backfiller).
  • Pending : le remplissage n'a pas encore commencé pour l'objet.

  • Active : le remplissage est en cours pour l'objet.

  • Completed : le remplissage est terminé pour l'objet.

  • Stopped : le backfill est arrêté pour l'objet. Si le backfill est à nouveau lancé pour l'objet, Datastream diffusera toutes les données existantes associées à l'objet de la source vers la destination.

  • Failed : le remplissage a échoué pour l'objet et doit être relancé.

Déclencher le remplissage

  1. Accédez à la page Flux dans la console Google Cloud .

    Accéder à la page "Flux"

  2. Cliquez sur le flux contenant les objets pour lesquels vous souhaitez lancer le backfill.

  3. Cliquez sur l'onglet Objets.

  4. Cochez la case correspondant à chaque objet pour lequel vous souhaitez lancer le backfill.

  5. Cliquez sur Lancer le remplissage.

  6. Si vous n'avez sélectionné qu'un seul objet, cliquez sur INITIER LE REMPLISSAGE DE L'OBJET dans la boîte de dialogue. Sinon, si vous avez sélectionné plusieurs objets, cliquez sur INITIER LES REMPLISSAGES D'OBJETS.

    Datastream commencera le remplissage des objets que vous avez sélectionnés, et l'état de chaque objet passera de Pending à Active, puis à Completed. Lorsqu'un objet présente l'état Completed, cela signifie que Datastream a lu toutes les données de l'objet, mais que les données sont peut-être encore en cours de chargement vers la destination.

Déclencher un remplissage partiel

En plus des remplissages complets, vous pouvez effectuer un remplissage partiel pour charger un sous-ensemble spécifique de données de la source vers la destination. Pour ce faire, vous devez fournir une clause SQL WHERE en tant que filtre personnalisé.

Datastream est compatible avec le backfill partiel pour les sources suivantes :

  • SQL Server
  • Spanner
  • Oracle
  • PostgreSQL
  • MySQL

Pour lancer un backfill partiel :

  1. Accédez à la page Flux dans la console Google Cloud .

    Accéder à la page "Flux"

  2. Cliquez sur le flux contenant les objets pour lesquels vous souhaitez lancer le backfill.

  3. Cliquez sur l'onglet Objets.

  4. Sélectionnez l'objet pour lequel vous souhaitez lancer le remplissage.

  5. Cliquez sur Lancer le remplissage.

  6. Dans le panneau qui s'affiche, cochez la case Activer le filtre personnalisé.

  7. Saisissez votre clause SQL WHERE. Exemple :product_id > 12 AND timestamp = '2025-01-06T22:00:00.00'

  8. Cliquez sur Lancer le remplissage.

Datastream valide le filtre. Si la validation échoue, un message d'erreur s'affiche au-dessus de l'éditeur. Si la validation réussit, Datastream démarre le job de remplissage.

Syntaxe de filtre personnalisé compatible

Lorsque vous fournissez un filtre personnalisé, Datastream accepte un sous-ensemble fondamental de la syntaxe de la clause WHERE SQL. Les éléments compatibles sont les suivants :

  • Opérateurs logiques : AND, OR
  • Opérateurs de comparaison : =, <, >, <=, >=, !=
  • Conditions : IN, NOT IN, IS NULL, IS NOT NULL
  • Regroupement : parenthèses () pour définir des groupes de conditions
  • Valeurs :

    • Chaînes : texte entouré de guillemets simples, par exemple 'value'.
    • Nombres : entiers (123), décimaux (123.45), négatifs (-10) et nombres avec exposants (1.2e3).
    • Valeurs booléennes : mots clés TRUE ou FALSE sensibles à la casse.
  • Identifiants :

    • Qualification : les noms de colonnes peuvent être entièrement qualifiés à l'aide de points pour spécifier le schéma ou la table, par exemple myColumn, myTable.myColumn ou mySchema.myTable.myColumn.
    • Identifiants sans guillemets : ils peuvent contenir des lettres, des chiffres et des traits de soulignement, et doivent commencer par une lettre ou un trait de soulignement. La sensibilité à la casse des noms de colonnes ou de tables dépend de la base de données cible.
    • Identifiants entre guillemets doubles : doivent être placés entre guillemets doubles (").

Limites du backfill partiel

Certaines instructions, certains opérateurs et certains mots clés sont explicitement interdits, et leur utilisation entraîne une erreur. Exemples :

  • Commentaires, tels que -- ou /* */.
  • Fonctions, par exemple UPPER(column) et NOW().
  • Expressions arithmétiques, par exemple column + 1 > 10.
  • L'opérateur LIKE. Les caractères génériques tels que % ou _ ne sont pas compatibles avec LIKE.
  • L'opérateur BETWEEN. Utilisez >= et <= à la place.
  • Sous-requêtes, par exemple (SELECT ...) dans la clause WHERE.
  • Instructions CASE, par exemple CASE WHEN ... END.
  • Comparaisons de colonnes, telles que column1 = column2. Les comparaisons doivent être effectuées par rapport à des littéraux.
  • DATE et TIME des types ou des fonctions spécifiques.
  • Opérateurs spécifiques aux tableaux ou au format JSON.
  • Casting explicite : par exemple, CAST(column AS INT).

Arrêter le remplissage

  1. Accédez à la page Flux dans la console Google Cloud .

    Accéder à la page "Flux"

  2. Cliquez sur le flux contenant les objets pour lesquels vous souhaitez arrêter le remplissage.

  3. Cliquez sur l'onglet Objets.

  4. Cochez la case correspondant à chaque objet pour lequel vous souhaitez arrêter le backfill.

  5. Cliquez sur Arrêter le remplissage.

  6. Si vous n'avez sélectionné qu'un seul objet, cliquez sur Arrêter le backfill de l'objet dans la boîte de dialogue. Sinon, si vous avez sélectionné plusieurs objets, cliquez sur Arrêter les remplissages d'objets.

    Datastream arrêtera le backfill pour les objets que vous avez sélectionnés, et l'état de chaque objet passera à Stopped.

    Lorsqu'un objet présente cet état, le remplissage est arrêté pour cet objet. Si le remplissage est à nouveau lancé pour l'objet, Datastream diffusera toutes les données existantes associées à l'objet de la source vers la destination.

Étapes suivantes