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 diffusera 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 diffusera 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
Accédez à la page Flux de la console Google Cloud .
Cliquez sur le flux contenant les objets pour lesquels vous souhaitez lancer un remplissage.
Cliquez sur l'onglet Objets.
Cochez la case correspondant à chaque objet pour lequel vous souhaitez lancer un remplissage.
Cliquez sur Initier le remplissage.
Si vous n'avez sélectionné qu'un seul objet, dans la boîte de dialogue, cliquez sur INITIATE OBJECT BACKFILL (DÉMARRER LE REMPLISSAGE D'OBJET). Dans le cas contraire, si vous avez sélectionné plusieurs objets, cliquez sur INITIATE OBJECT BACKFILLS.
Datastream commence le remplissage des objets sélectionnés, et leur état passe de
PendingàActive, puis àCompleted. Lorsqu'un objet possède l'étatCompleted, 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 WHERE SQL en tant que filtre personnalisé.
Datastream est compatible avec le remplissage partiel de l'historique pour les sources suivantes :
- SQL Server
- Spanner
- Oracle
- PostgreSQL
Pour lancer un remplissage partiel :
Accédez à la page Flux de la console Google Cloud .
Cliquez sur le flux contenant les objets pour lesquels vous souhaitez lancer un remplissage.
Cliquez sur l'onglet Objets.
Sélectionnez l'objet pour lequel vous souhaitez lancer un remplissage.
Cliquez sur Initier le remplissage.
Dans le panneau qui s'affiche, cochez la case Activer le filtre personnalisé.
Saisissez votre clause SQL
WHERE. Exemple :product_id > 12 AND timestamp = '2025-01-06T22:00:00.00'Cliquez sur Initier 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 lance le job de remplissage.
Syntaxe des filtres personnalisés acceptée
Lorsque vous fournissez un filtre personnalisé, Datastream est compatible avec un sous-ensemble fondamental de la syntaxe de la clause SQL WHERE. Voici les éléments acceptés :
- 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), nombres décimaux (123.45), nombres négatifs (-10) et nombres avec exposants (1.2e3). - Valeurs booléennes : mots clés
TRUEouFALSEsensibles à la casse.
- Chaînes : texte entre guillemets simples, par exemple
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.myColumnoumySchema.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 (
").
- 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,
Limites de remplissage partiel
Certaines instructions, certains opérateurs et certains mots clés sont explicitement interdits. Leur utilisation génère une erreur. Exemples :
- Commentaires, tels que
--ou/* */. - Fonctions, par exemple
UPPER(column)etNOW(). - Expressions arithmétiques, par exemple
column + 1 > 10. - L'opérateur
LIKELes caractères génériques tels que%ou_ne sont pas acceptés avecLIKE. - L'opérateur
BETWEENUtilisez>=et<=à la place. - Sous-requêtes, par exemple
(SELECT ...)dans la clauseWHERE. - Instructions
CASE, par exempleCASE WHEN ... END. - Comparaisons de colonnes, telles que
column1 = column2. Les comparaisons doivent être effectuées avec des littéraux. - Types ou fonctions spécifiques
DATEetTIME - Opérateurs spécifiques aux tableaux ou à JSON.
- Casting explicite : par exemple,
CAST(column AS INT).
Arrêter le remplissage
Accédez à la page Flux de la console Google Cloud .
Cliquez sur le flux contenant les objets pour lesquels vous souhaitez arrêter le remplissage.
Cliquez sur l'onglet Objets.
Cochez la case correspondant à chaque objet pour lequel vous souhaitez arrêter le remplissage.
Cliquez sur Arrêter le remplissage.
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.
Étapes suivantes
- Pour en savoir plus sur les flux, consultez Cycle de vie des flux.
- Pour savoir comment afficher des informations sur votre flux, consultez Afficher un flux.
- Pour savoir comment modifier un flux, consultez Modifier un flux.
- Pour savoir comment surveiller un flux, consultez Surveiller un flux.
- Pour savoir comment récupérer un flux ayant échoué, consultez Récupérer un flux.