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
Accédez à la page Flux dans la Google Cloud console.
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 Déclencher le remplissage.
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'étatCompleted, 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 :
Accédez à la page Flux dans la Google Cloud console.
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 Déclencher le remplissage.
Dans le panneau qui s'affiche, cochez la case Activer le filtre personnalisé.
Saisissez votre clause SQL
WHERE. Par exemple,product_id > 12 AND timestamp = '2025-01-06T22:00:00.00'.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
TRUEouFALSE.
- 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.myColumn, oumySchema.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 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)etNOW(). - 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 avecLIKE. - L'opérateur
BETWEEN. Utilisez plutôt>=et<=. - Sous-requêtes, par exemple,
(SELECT ...)dans la clauseWHERE. CASEinstructions, 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
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 dans la Google Cloud console.
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.
Étape suivante
- Pour en savoir plus sur les flux, consultez la section Cycle de vie des flux.
- Pour savoir comment afficher des informations sur votre flux, consultez la section Afficher un flux.
- Pour savoir comment modifier un flux, consultez la section Modifier un flux.
- Pour savoir comment surveiller un flux, consultez la section Surveiller un flux.
- Pour savoir comment récupérer un flux ayant échoué, consultez la section Récupérer un flux.