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

Un flux dans Datastream peut effectuer un remplissage avec des données d'historique tout en diffusant les modifications en cours par flux vers une destination. Lors de la création d'un flux, vous avez configuré des informations sur la base de données source du flux.

Si vous cochez la case Remplir les données de l'historique, Datastream diffuse toutes les données existantes, en plus des modifications apportées aux données, de la source vers la destination.

Si vous ne cochez pas cette case, Datastream ne diffuse que les modifications apportées aux données. Pour que Datastream diffuse un instantané de toutes les données existantes de la source vers la destination, vous devez lancer un remplissage pour les objets contenant ces données. Les objets se présentent sous la forme de schémas de base de données, de tables et de colonnes.

Il peut également être utile de lancer le remplissage d'un objet lorsque les données ne sont pas synchronisées entre la source et la destination. Par exemple, un utilisateur peut supprimer par inadvertance des données dans la destination, auquel cas les données sont perdues. Dans ce cas, le remplissage de l'objet sert de mécanisme de réinitialisation, car toutes les données sont insérées par flux dans la destination en une seule opération. Par conséquent, les données sont synchronisées entre la source et la destination.

Après avoir lancé le remplissage d'un objet, vous pouvez l'arrêter. Dans l'exemple précédent, l'utilisateur modifie le schéma de la base de données, et le schéma ou les données sont corrompus. Vous ne voulez pas que ce schéma ou ces données soient diffusés vers la destination. Vous arrêtez donc le remplissage de l'objet.

Vous pouvez également arrêter le remplissage des objets à des fins d'équilibrage de charge. Datastream peut exécuter plusieurs remplissages en parallèle. Cela peut ajouter une charge supplémentaire à la source. Si la charge est importante, arrêtez le remplissage des objets, puis relancez-le objet par objet.

États des objets

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

  • Aucun état (représenté dans l'interface utilisateur sous l'intitulé -) : les raisons de cet état sont les suivantes :

    • Le flux n'a pas démarré.
    • La case Remplir les données de l'historique n'est pas 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 une telle situation, aucun remplissage automatique n'est créé lorsque de nouvelles tables sont ajoutées à la source (car les nouvelles tables ne contiennent généralement aucune donnée historique à remplir).
  • Pending : le remplissage n'a pas encore démarré pour l'objet.

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

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

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

  • Failed: le remplissage de l'objet a échoué. Le remplissage doit être déclenché à nouveau.

Déclencher le remplissage

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

    Accéder à la page "Flux"

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

  3. Cliquez sur l'onglet Objets.

  4. Cochez la case correspondant à chaque objet pour lequel vous souhaitez lancer un remplissage.

  5. Cliquez sur Déclencher le remplissage.

  6. Si vous n'avez sélectionné qu'un seul objet, dans la boîte de dialogue, cliquez sur DÉMARRER LE REMPLISSAGE D'OBJET. Dans le cas contraire, si vous avez sélectionné plusieurs objets, cliquez sur DÉMARRER LES REMPLISSAGES D'OBJET.

    Datastream commence le remplissage des objets sélectionnés, et leur état passe de Pending à Active, puis à Completed. Lorsqu'un objet possède l'état Completed, cela signifie que Datastream a lu toutes les données de l'objet, mais qu'elles sont peut-être encore en cours de chargement dans 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 fournissez une clause SQL WHERE en tant que filtre personnalisé.

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

  • SQL Server
  • Spanner
  • Oracle
  • PostgreSQL

Pour lancer un remplissage partiel :

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

    Accéder à la page "Flux"

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

  3. Cliquez sur l'onglet Objets.

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

  5. Cliquez sur Déclencher le remplissage.

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

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

  8. Cliquez sur Déclencher 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 est compatible avec un sous-ensemble fondamental de la syntaxe de la clause SQL WHERE. 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 entre guillemets simples, par exemple, 'value',
    • Nombres : entiers (123), décimaux (123.45), nombres négatifs (-10) et nombres avec exposants (1.2e3).
    • Valeurs booléennes : mots clés sensibles à la casse TRUE ou FALSE.
  • 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 pour les 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 remplissage partiel

Certaines instructions, certains opérateurs et certains mots clés sont explicitement interdits et leur utilisation génère 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 plutôt >= et <=.
  • Sous-requêtes, par exemple, (SELECT ...) dans la clause WHERE.
  • CASE instructions, par exemple, CASE WHEN ... END.
  • Comparaisons de colonnes, telles que column1 = column2. Les comparaisons doivent être effectuées par rapport à des littéraux.
  • Types ou fonctions spécifiques DATE et TIME.
  • Opérateurs spécifiques aux tableaux ou à JSON.
  • Casting explicite : par exemple, CAST(column AS INT).

Arrêter le remplissage

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

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

  5. Cliquez sur Arrêter le remplissage.

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

    Datastream interrompra le remplissage pour les objets que vous avez sélectionnés, et leur état passe à Stopped.

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

Étape suivante