Questions fréquentes

Sur cette page, vous trouverez les réponses aux questions fréquentes sur l'utilisation de Datastream. Ces questions fréquentes sont associées à :

  • Questions générales sur Datastream et la capture des données modifiées (CDC, Change Data Capture)
  • Comportement et limites généraux des sources
  • Comportement et limites de la source MySQL
  • Comportement et limites de la source Oracle
  • Comportement et limites des sources PostgreSQL (y compris AlloyDB pour PostgreSQL)
  • Comportement et limites des sources SQL Server
  • Comportement et limites de la source Salesforce
  • Comportement de la destination BigQuery
  • Comportement de la destination Cloud Storage
  • Cas d'utilisation courants de Datastream
  • Comment Datastream s'intègre-t-il aux services de données Google Cloud
  • Sécurité et connectivité
  • Surveiller Datastream
  • Tarifs
  • Informations supplémentaires sur Datastream

Questions générales sur Datastream et la capture des données modifiées (CDC, Change Data Capture)

Question Répondre
Qu'est-ce que DataStream ?

Datastream est un service de capture et de réplication de données (CDC pour "Change Data Capture") facile à utiliser et sans serveur. Datastream permet de répliquer facilement les données de sources de bases de données relationnelles telles qu'AlloyDB pour PostgreSQL, PostgreSQL, MySQL, SQL Server et Oracle, ainsi que Salesforce et MongoDB, directement dans BigQuery. Datastream offre l'évolutivité, la rapidité, la sécurité et la simplicité dont les entreprises modernes ont besoin. Grâce à son architecture sans serveur à autoscaling, Datastream vous permet de configurer un pipeline ELT (extraction, chargement et transformation) pour la réplication de données à faible latence, vous permettant ainsi de bénéficier d'insights en temps quasi réel.

Datastream permet également de synchroniser les flux de données entre des bases de données et des applications hétérogènes de manière fiable et avec une latence minimale. Vous pouvez intégrer le service aux modèles Dataflow pour répliquer des bases de données dans Cloud SQL ou Spanner afin de synchroniser les bases de données, ou exploiter le flux d'événements directement depuis Cloud Storage pour réaliser des architectures basées sur des événements.

Quelles sont les méthodes de diffusion des données par DataStream ? Datastream diffuse les données en streaming d'une source vers une destination à l'aide de l'une des deux méthodes suivantes :
  • CDC : capturer les modifications en cours depuis la source en temps réel.
  • Remplissage : fournir un instantané historique des données existant dans une table.
Qu'est-ce que la CDC ?

La CDC est une approche d'intégration de données qui vous permet d'intégrer et d'analyser les données plus rapidement, en utilisant moins de ressources système. Il s'agit d'une méthode permettant d'extraire uniquement les dernières modifications (mises à jour, insertions ou suppressions) d'une source de données, souvent en lisant le journal des modifications que la source conserve pour sa propre intégrité transactionnelle interne.

La CDC est un mécanisme très efficace pour limiter l'impact sur la source lors du chargement de nouvelles données dans les magasins de données opérationnelles et les entrepôts de données. Elle élimine le besoin de mise à jour par chargement groupé et de fenêtres de traitement par lot peu pratiques en permettant le chargement incrémentiel ou le streaming en quasi-temps réel des modifications de données vers une destination de données.

La CDC peut être utilisée dans de nombreux cas d'utilisation qui dérivent une valeur de l'accès constant aux modifications de données au fur et à mesure qu'elles se produisent, telles que l'analyse, la synchronisation des données sur des systèmes distribués géographiquement et les architectures basées sur les événements.

Qu'est-ce que le remplissage ?

En plus des modifications en cours, Datastream utilise également le remplissage pour extraire toutes les données existantes d'une source, puis les diffuser dans une destination. Par conséquent, la destination est "remplie" avec toutes les données historiques de la source. Il existe deux types de remplissage :

  • Incrémentiel : type de remplissage par défaut pour les tables. Lors du remplissage incrémentiel, Datastream récupère les données de plages de lignes dans plusieurs lots et les diffuse vers une destination lot par lot.
  • Exportation complète : lors du remplissage avec une exportation complète, Datastream extrait toutes les données en une seule fois et les diffuse dans une destination.
Existe-t-il des limites à prendre en compte lors du remplissage ?

Pour en savoir plus sur les contraintes de remplissage, consultez les pages sur les limites connues pour les types de sources concernés :

Quel est l'ordre recommandé pour les opérations CDC et de remplissage ? Dans la plupart des cas, aucune considération particulière n'est requise. Lorsque le remplissage est activé sur un flux, Datastream effectue à la fois le remplissage et la CDC. Dans certains cas extrêmes, par exemple lors de la réplication de très grandes tables qui ne peuvent pas être remplies à l'aide de Datastream, vous devrez peut-être charger les données dans BigQuery avant de démarrer le flux.
Puis-je surveiller l'état des opérations de CDC et de remplissage ?

Vous pouvez surveiller l'état du remplissage pour chaque objet :

  1. Dans la console Google Cloud , accédez à la page Flux.
  2. Cliquez sur le flux que vous souhaitez surveiller.
  3. Cliquez sur l'onglet Objets.

L'état du CDC correspond à l'état du flux. Si l'opération CDC échoue, l'intégralité du flux échoue.

D'autres métriques au niveau des objets sont disponibles dans Cloud Monitoring. Pour en savoir plus, consultez la documentation de Cloud Monitoring.

Quelle est la différence entre un flux de modifications et la réplication ?

Un flux de modifications est une séquence d'événements que Datastream émet vers une destination à des fins de consommation en aval. Lorsqu'un flux de modifications est écrit dans Cloud Storage, il génère un ensemble de fichiers contenant des événements de journal des modifications d'une table spécifique sur une période donnée. Les événements représentent les insertions, les mises à jour et les suppressions dans ce tableau. Ils peuvent être consommés et traités en aval de Cloud Storage par des services tels que Dataflow pour des cas d'utilisation tels que les architectures basées sur les événements.

Dans le contexte de Datastream, la réplication désigne une représentation à jour et à l'identique de la table source dans la destination. Par exemple, une table Oracle dont les modifications sont répliquées en continu dans une table BigQuery, où la table BigQuery est tenue à jour à l'aide des modifications diffusées depuis la table Oracle. La réplication utilise des flux de modifications en consommant chaque événement de modification et en l'utilisant pour mettre à jour la destination. Datastream permet la réplication directe dans BigQuery et est compatible avec d'autres destinations comme Cloud SQL et Spanner grâce à l'intégration à Dataflow. Pour ce faire, il utilise des modèles qui extraient les événements du flux de modifications depuis Cloud Storage et mettent à jour les tables de destination en conséquence.

Datastream nécessite-t-il un agent sur la source ? Vous n'avez pas besoin d'installer d'agent sur la source. Datastream utilise des interfaces existantes (telles qu'Oracle LogMiner) pour extraire les données de la source.
Combien de tableaux puis-je inclure dans un même flux ? Datastream peut gérer jusqu'à 10 000 tables dans un même flux. Il n'y a aucune raison technique de diviser une base de données en plusieurs flux. Toutefois, il peut y avoir des considérations commerciales qui vous incitent à utiliser différents flux pour différents flux logiques, par exemple lors de la réplication de transactions volumineuses à partir de sources PostgreSQL. Toutefois, chaque flux ajoute une charge à la base de données source. Cette charge est négligeable pour CDC, mais peut être importante pour le remplissage.
Quel est l'impact sur les performances de l'utilisation de Datastream sur une base de données de production ?

La CDC est un mécanisme très efficace pour limiter l'impact sur la source lorsque de nouvelles données sont chargées dans les entrepôts de données et les data warehouses de destination. La CDC élimine également la nécessité d'effectuer des mises à jour par chargement groupé et d'utiliser des fenêtres de traitement par lot peu pratiques. Elle permet en effet le chargement incrémentiel ou le streaming en temps quasi réel des modifications de données vers une destination.

De plus, Datastream minimise l'impact d'un remplissage initial en limitant le nombre de tâches de remplissage simultanées, et vous permet de décider des objets à remplir et quand les remplir.

Pouvez-vous copier les fichiers journaux de la source vers Google Cloud ? Non. Datastream interroge les journaux directement sur le serveur de base de données. Seules les modifications apportées aux tables spécifiées sont écrites dans la destination.
Datastream peut-il également transférer des données de l'historique ? Oui. Par défaut, Datastream récupère toutes les données d'historique des tables de base de données de votre source que vous spécifiez, en parallèle avec le flux CDC. Datastream vous permet d'obtenir des données d'historique d'une partie ou de l'ensemble des tables de base de données de votre source. En outre, lorsque vous configurez votre flux, vous pouvez choisir de désactiver le remplissage d'historique.
Datastream garantit-il une diffusion de type "exactement une fois" ? Non. Datastream est une diffusion de type "au moins une fois". Les métadonnées supplémentaires que Datastream écrit dans chaque événement peuvent être utilisées pour supprimer les données en double.
Datastream peut-il gérer des bases de données chiffrées ? Oui.
Datastream peut-il diffuser des tables et des colonnes spécifiques d'une source ? Oui. Avec Datastream, vous pouvez spécifier des listes d'inclusion et d'exclusion pour les tables et les schémas, afin de diffuser uniquement les données souhaitées d'une source vers une destination. Pour les tables incluses, vous pouvez exclure des colonnes spécifiques afin d'affiner davantage les données à diffuser dans la destination. Toutefois, les vues matérialisées ne peuvent pas être répliquées.
Comment déplacez-vous un flux vers un autre projet ou une autre région ?
  1. Créez un flux dans une nouvelle région ou un nouveau projet avec la même configuration que le flux existant, mais ne cochez pas la case Remplir les données historiques.
  2. Démarrez le flux que vous avez créé.
  3. Une fois que le flux que vous avez créé présente l'état RUNNING, suspendez le flux existant.
  4. Si vous le souhaitez, modifiez le nouveau flux en cochant la case Remplir les données de l'historique. Les données existantes dans les tables ajoutées au flux à l'avenir seront diffusées de la source vers la destination.
Comment Datastream gère-t-il les transactions non validées dans les fichiers journaux de la base de données ? Lorsque les fichiers journaux de la base de données contiennent des transactions non validées, si des transactions sont annulées, la base de données le reflète dans les fichiers journaux sous la forme d'opérations de langage de manipulation de données (LMD) "inverses". Par exemple, une opération INSERT annulée aura une opération DELETE correspondante. Datastream lit ces opérations à partir des fichiers journaux.
Quelle est la disponibilité régionale de DataStream ?

Pour afficher la liste des régions dans lesquelles Datastream est disponible, consultez Listes d'autorisation d'adresses IP et régions.

Comportement et limites généraux des sources

Question Réponse
Quelles sources sont compatibles avec Datastream ?

Datastream est compatible avec les flux de données provenant de sources Oracle, MySQL, PostgreSQL, AlloyDB pour PostgreSQL, SQL Server, Salesforce (aperçu) et MongoDB (aperçu), qu'elles soient hébergées dans le cloud ou autogérées. Pour en savoir plus sur les versions spécifiques à chaque source, consultez les pages suivantes :

Datastream peut-il gérer des bases de données chiffrées ? Oui.
Comment Datastream extrait-il les données des sources ?

Pour MySQL, Datastream traite le journal binaire MySQL afin d'extraire les événements de modification.

Pour Oracle, Datastream utilise LogMiner et les paramètres de journalisation complémentaire pour extraire les données des journaux de rétablissement d'Oracle.

Pour PostgreSQL et AlloyDB pour PostgreSQL, Datastream s'appuie sur la fonctionnalité de décodage logique de PostgreSQL. Le décodage logique expose toutes les modifications validées à la base de données, et permet la consommation et le traitement de ces modifications.

Pour SQL Server, Datastream suit les modifications du langage de manipulation de données (LMD) à l'aide des journaux de transactions.

Est-il possible de copier des fichiers journaux directement depuis une source vers Google Cloud ? Datastream ne copie pas l'intégralité des fichiers journaux, mais interroge les fichiers journaux directement à partir du serveur de base de données et ne réplique que les modifications apportées aux tables spécifiées vers la destination.
Quelles sont les limites des données que Datastream peut traiter ?

Il existe des limites générales et des limites qui s'appliquent à des sources de données spécifiques.

Les limites générales sont les suivantes :

  • Taille de l'événement : la taille maximale des lignes est de 100 Mo pour la destination Cloud Storage et de 20 Mo pour BigQuery.
  • Certaines opérations langage de définition de données (LDD) ne sont pas compatibles avec la réplication, y compris les opérations suivantes :
    • Suppression d'une colonne au milieu d'un tableau Cela peut entraîner un écart dans les données, car les valeurs sont associées à la mauvaise colonne.
    • Modifier le type de données d'une colonne. Cela peut entraîner un écart dans les données, car les données ne sont pas correctement mappées avec le type unifié Datastream correct et les données peuvent être corrompues.
    • Les suppressions en cascade sont ignorées.
    • La troncature des tables est ignorée.

Pour connaître les limites spécifiques à chaque source, consultez les pages suivantes :

Quelles données sont incluses dans chaque événement généré par Datastream ? Chaque événement généré (pour les insertions, les mises à jour et les suppressions) inclut l'intégralité de la ligne de données de la source, avec le type de données et la valeur de chaque colonne. Chaque événement inclut également des métadonnées d'événement qui peuvent être utilisées pour établir l'ordre et garantir une diffusion unique.
Datastream garantit-il la mise en ordre ? Bien que Datastream ne garantisse pas l'ordre des événements, il fournit des métadonnées supplémentaires pour chacun d'eux. Ces métadonnées peuvent être utilisées pour assurer la cohérence finale dans la destination. En fonction de la source, du taux et de la fréquence des modifications, ainsi que d'autres paramètres, la cohérence finale peut généralement être atteinte dans un délai d'une heure.
Datastream garantit-il une diffusion de type "exactement une fois" ? Datastream assure une distribution de type "au moins une fois". Vous pouvez éliminer les données en double en utilisant des métadonnées supplémentaires que Datastream écrit dans chaque événement.
Comment DataStream représente-t-il les types de données de la source à utiliser dans le traitement en aval ?

Lorsque vous écrivez dans une destination sans schéma, telle que Cloud Storage, Datastream simplifie le traitement en aval des données dans les sources en normalisant les types de données de toutes les sources. Datastream utilise le type de données de la source d'origine (par exemple, un type MySQL ou PostgreSQL NUMERIC ou un type Oracle NUMBER) et le normalise en un type unifié Datastream.

Les types unifiés représentent un sur-ensemble sans perte de tous les types de sources possibles. La normalisation signifie que les données provenant de différentes sources peuvent être traitées avec un minimum d'effort et interrogées en aval de manière indépendante de la source.

Comment Datastream gère-t-il les modifications de structure (schéma) dans la source ? Datastream récupère régulièrement le schéma à partir de la source. Les schémas sont stockés dans le registre de schémas interne de Datastream, et chaque événement fait référence au schéma au moment de sa génération. Cela permet à Datastream de suivre les modifications de schéma et de s'adapter en conséquence, en s'assurant que toutes les données sont correctement diffusées et chargées dans la destination. Toutefois, entre deux extractions de schéma, il est possible que certaines modifications de schéma passent inaperçues, ce qui peut entraîner des incohérences de données.
J'ai supprimé une colonne dans ma base de données source, mais elle apparaît toujours dans ma destination. Pourquoi ? Datastream ne supprime pas les colonnes dans la destination. Vous devez supprimer les colonnes manuellement. Ce comportement est intentionnel, car dans certains cas, vous préférerez peut-être conserver la colonne supprimée dans la destination. Par exemple, Datastream interprète le fait de renommer une colonne dans la source comme la suppression d'une colonne et l'ajout d'une autre. Dans ce cas, vous ne souhaitez pas perdre la colonne d'origine dans la destination.
Le flux ne démarre pas en raison d'un échec de validation, mais je pense qu'il s'agit d'une erreur ou je souhaite essayer d'exécuter le flux malgré tout. Comment puis-je passer cette validation ? Vous pouvez démarrer le flux à l'aide de l'API en ajoutant l'indicateur force=true et en ignorant les vérifications de validation. Notez que le fait d'ignorer les validations ne garantit pas que le flux pourra s'exécuter. Il peut toujours échouer si la base de données ne dispose pas de la configuration ou des autorisations nécessaires.
Puis-je redémarrer un flux en échec ?

Pour corriger un flux dont l'état est Failed, corrigez les erreurs signalées par Datastream. Pour en savoir plus, consultez Résoudre les problèmes liés à un flux.

Vous pouvez également récupérer un flux dont l'état est Failed permanently. Pour en savoir plus, consultez Récupérer un flux.

Datastream verrouille-t-il les tables de base de données ?

Non, Datastream n'a pas besoin de verrouiller les tables.

Les pages de limites pour chaque source indiquent que les flux peuvent comporter jusqu'à 10 000 tables. Cela signifie-t-il que Datastream ne peut pas exécuter d'opérations CDC en parallèle pour plus de 10 000 tables en même temps ? Non. La limite mentionnée s'applique à chaque flux. Vous pouvez avoir plusieurs flux avec un nombre total de tables supérieur à 10 000.

Comportement et limites de la source MySQL

Question Répondre
Comment Datastream extrait-il les données de MySQL ? Datastream utilise le journal binaire de MySQL pour extraire les événements de modification de MySQL.
Datastream est-il compatible avec les instances dupliquées avec accès en lecture Cloud SQL pour MySQL ?

Oui, Datastream est compatible avec les instances dupliquées avec accès en lecture pour les versions 5.7 et 8.0 de Cloud SQL pour MySQL.

Vous pouvez activer la journalisation binaire sur ces instances. Pour ce faire, exécutez la commande gcloud CLI suivante :

gcloud sql instances patch INSTANCE_NAME -- enable-bin-log

Pour en savoir plus, consultez Journalisation binaire sur les instances répliquées avec accès en lecture.

De quelles autorisations Datastream a-t-il besoin au minimum pour répliquer les données d'une base de données MySQL source ?

Vous devez accorder les autorisations suivantes à votre utilisateur Datastream pour répliquer les données d'une base de données MySQL :

  • SELECT
  • REPLICATION SLAVE
  • REPLICATION CLIENT
Datastream est-il compatible avec la compression des journaux binaires ?

Non, Datastream n'est pas compatible avec la compression des événements de transaction à l'aide de la compression des transactions de journaux binaires. Désactivez la compression des transactions du journal binaire pour utiliser la fonctionnalité de capture des données modifiées pour MySQL dans Datastream.

Votre organisation ne permet pas d'accorder l'autorisation SELECT sur toutes ses tables et bases de données. Puis-je continuer à utiliser Datastream ?

Vous pouvez accorder l'autorisation SELECT aux tables spécifiques que vous souhaitez répliquer ou à l'ensemble du schéma d'une base de données. Pour ce faire, exécutez l'une des commandes suivantes :

GRANT SELECT ON DATABASE_NAME.TABLE_NAME TO USER_NAME@'%';
ou
GRANT SELECT ON DATABASE_NAME.* TO USER_NAME@'%';

Remplacez les éléments suivants :

  • DATABASE_NAME : nom de votre base de données MySQL.
  • TABLE_NAME : nom de la table pour laquelle vous accordez l'autorisation SELECT.
  • USER_NAME : nom de l'utilisateur auquel vous accordez l'autorisation SELECT.

Si vous souhaitez limiter les autorisations à un nom d'hôte particulier, remplacez le caractère % par l'adresse IP ou la plage d'adresses spécifique.

Comportement et limites de la source Oracle

Question Répondre
Comment Datastream extrait-il les données d'Oracle ? Datastream utilise Oracle LogMiner pour extraire les données des journaux de rétablissement d'Oracle.
DataStream nécessite-t-il une licence GoldGate d'Oracle ? Non. DataStream ne nécessite pas de licence GoldenGate, car il utilise Oracle LogMiner pour lire les données des journaux de rétablissement de la base de données.
Que se passe-t-il lorsque Oracle LogMiner n'est plus accepté ? Oracle LogMiner est toujours compatible avec toutes les versions Oracle en disponibilité générale, et Datastream continuera à le prendre en charge dans toutes les futures versions. Oracle a cessé d'être compatible avec l'option CONTINUOUS_MINE de LogMiner. Cette option n'étant toutefois pas utilisée par Datastream, cet abandon n'a aucun impact sur Datastream.
Datastream est-il compatible avec le chiffrement des données en transit à partir des bases de données Oracle ?

Datastream est compatible avec le chiffrement des données en transit basé sur Oracle Net Services. Datastream s'exécute en mode REQUESTED.

Datastream est-il compatible avec le chiffrement SSL (Secure Sockets Layer) et TLS (Transport Layer Security) ?

Oui, Datastream est compatible avec le protocole TCPS pour les connexions chiffrées SSL/TLS aux sources Oracle.

Datastream est-il compatible avec l'architecture mutualisée Oracle, en particulier avec les bases de données de conteneurs (CDB) et les bases de données connectables (PDB) ? Oui, Datastream est compatible avec l'architecture mutualisée Oracle (CDB/PDB). Toutefois, vous ne pouvez répliquer qu'une seule base de données connectable dans un flux.
Votre organisation ne permet pas d'accorder l'autorisation GRANT SELECT ANY TABLE. Puis-je continuer à utiliser Datastream ?

Si vous ne pouvez pas accorder l'autorisation GRANT SELECT ANY TABLE, vous pouvez accorder les autorisations SELECT à la liste de tables suivante :

  • ALL_COL_COMMENTS
  • ALL_CONS_COLUMNS
  • ALL_CONSTRAINTS
  • ALL_DB_LINKS
  • ALL_EXTERNAL_TABLES
  • ALL_IND_COLUMNS
  • ALL_INDEXES
  • ALL_LOG_GROUPS
  • ALL_MVIEWS
  • ALL_OBJECTS
  • ALL_PART_TABLES
  • ALL_SEQUENCES
  • ALL_SOURCE
  • ALL_SYNONYMS
  • ALL_TAB_COLS
  • ALL_TAB_COLUMNS
  • ALL_TAB_COMMENTS
  • ALL_TABLES
  • ALL_TRIGGERS
  • ALL_TRIGGER_COLS
  • ALL_TYPES
  • ALL_USERS
  • ALL_VIEWS
  • DATABASE_PROPERTIES
  • DBA_ROLE_PRIVS
  • DUAL
  • PRODUCT_COMPONENT_VERSION
  • ROLE_SYS_PRIVS
  • USER_ROLE_PRIVS
  • USER_TAB_PRIVS

Pour diffuser des modifications à l'aide de Datastream, vous devez également disposer d'un accès en lecture à toutes les tables incluses dans le flux.

Pour démarrer le flux, contournez la validation à l'aide de l'API. Pour en savoir plus, consultez Démarrer un flux.

Datastream est-il compatible avec la réplication à partir d'instances Oracle dupliquées avec accès en lecture ? Datastream est compatible avec la réplication à partir d'instances Oracle dupliquées avec accès en lecture, à condition que l'instance soit configurée conformément aux consignes de configuration.
Datastream est-il compatible avec les bases de données Oracle SCAN RAC ? Oui. Toutefois, vous ne pouvez pas établir de connectivité directe aux bases de données à l'aide de la fonctionnalité SCAN (Single Client Access Name) dans les environnements Oracle RAC (Real Application Clusters) avec Datastream. Pour contourner cette limitation, connectez-vous directement à l'un des nœuds ou utilisez Oracle Connection Manager. Vous pouvez également créer une configuration de connectivité privée à l'aide de solutions de proxy inverse telles que HAProxy.

Comportement et limites des sources PostgreSQL

Question Réponse
Comment Datastream extrait-il les données de PostgreSQL ? Datastream utilise la fonctionnalité de décodage logique de PostgreSQL pour extraire les événements de modification de PostgreSQL.
Datastream est-il compatible avec la réplication à partir de sources AlloyDB pour PostgreSQL ou AlloyDB Omni ? Oui. Datastream est compatible avec ces deux sources. Pour savoir comment configurer votre base de données source AlloyDB pour PostgreSQL, consultez Configurer une base de données AlloyDB pour PostgreSQL. Pour savoir comment configurer votre base de données source AlloyDB Omni, consultez Configurer une base de données PostgreSQL autogérée.
Datastream est-il compatible avec la réplication à partir d'une instance répliquée avec accès en lecture PostgreSQL ? Non, Datastream n'est pas compatible avec la réplication à partir d'instances répliquées avec accès en lecture pour PostgreSQL.
Datastream est-il compatible avec la sécurité au niveau des lignes ? Datastream ne permet pas de répliquer les tables pour lesquelles la sécurité au niveau des lignes est activée. Toutefois, vous pouvez contourner cette limitation en utilisant la clause BYPASSRLS :
ALTER USER USER_NAME BYPASSRLS;

Remplacez USER_NAME par le nom de l'utilisateur que Datastream utilise pour se connecter à la base de données et pour lequel vous souhaitez contourner les règles RLS.

Datastream est-il compatible avec les opérations CDC simultanées lors de la réplication à partir d'une source PostgreSQL ?

Non. La réplication PostgreSQL repose sur le concept de slots de réplication, qui ne sont pas compatibles avec les connexions simultanées. Il ne peut y avoir qu'une seule tâche CDC lisant à partir de l'emplacement de réplication à la fois. Par exemple, si vous supprimez un grand nombre d'enregistrements de la base de données source, le slot de réplication peut être surchargé d'événements de suppression. Toute modification ultérieure apportée à la source est retardée jusqu'à ce que les événements de suppression déjà dans la file d'attente de l'emplacement de réplication soient traités.

Pour en savoir plus sur l'approche suggérée lors de la réplication de grands volumes de données transactionnelles, consultez Diagnostiquer les problèmes.

Datastream est-il compatible avec le chiffrement SSL (Secure Sockets Layer) et TLS (Transport Layer Security) ?

Oui, Datastream est compatible avec les connexions chiffrées SSL/TLS.

Comportement et limites des sources SQL Server

Question Réponse
Quelles éditions de SQL Server sont compatibles avec Datastream ? Datastream est compatible avec les versions de base de données SQL Server qui prennent en charge la capture des données modifiées. Pour obtenir la liste complète des versions et éditions de SQL Server compatibles, consultez Versions.
Comment fonctionne la réplication CDC Datastream pour les sources SQL Server ? Le processus d'ingestion de données Datastream utilise des journaux de transactions ou des tables de modifications, en fonction de la configuration de la source. Pour en savoir plus, consultez Base de données SQL Server source.
De quelles autorisations Datastream a-t-il besoin au minimum pour répliquer les données d'une base de données SQL Server source ?

Vous devez accorder les rôles et autorisations suivants à votre utilisateur Datastream pour répliquer les données d'une base de données SQL Server :

Pour la méthode CDC des tables de modifications :

  • db_owner
  • db_denydatawriter

De plus, pour la méthode CDC des journaux de transactions :

  • Autorisations SELECT sur la base de données et pour la fonction sys.fn_dblog
  • Autorisations SELECT sur la table dbo.sysjobs
  • VIEW SERVER STATE
  • Pour en savoir plus sur la configuration de votre source, consultez les pages de configuration correspondantes pour votre type de base de données.

Pourquoi avez-vous besoin d'une configuration telle que la modification des intervalles d'interrogation et la configuration d'une protection contre la troncature lorsque vous utilisez des journaux de transactions ? Lorsque vous répliquez des données à partir d'une source SQL Server à l'aide de journaux de transactions, si un journal est tronqué avant que Datastream ne le lise, des données sont perdues. La modification des intervalles d'interrogation et la configuration d'une protection contre la troncature sont facultatives, mais offrent une couche de protection supplémentaire pour garantir que Datastream peut lire les données même en cas de temps d'arrêt ou de problèmes de connectivité. Pour en savoir plus, consultez Configurer une base de données SQL Server source.
Quelle méthode CDC sélectionner lors de la réplication à partir d'une source SQL Server ?

Vous pouvez sélectionner l'une des deux méthodes CDC disponibles, en fonction de la configuration de votre base de données SQL Server source :

  • Journaux des transactions : sélectionnez cette méthode pour traiter les modifications directement à partir des journaux de base de données. Cette méthode est plus efficace et offre les meilleures performances, mais elle nécessite des étapes de configuration supplémentaires qui peuvent ne pas être acceptées par votre base de données.
  • Tables de modifications : sélectionnez cette méthode pour traiter les modifications à partir de tables de modifications dédiées. Cette méthode est plus facile à configurer et présente moins de limites, mais elle prend en charge un débit plus faible et augmente la charge sur votre base de données.

Pour en savoir plus, consultez Présentation de SQL Server en tant que source.

Comportement et limites de la source Salesforce

Question Réponse
Qu'est-ce qu'une organisation Salesforce ? Une organisation Salesforce, également appelée organisation, est votre déploiement dédié de Salesforce, semblable à une instance de base de données. Une organisation dispose d'un ensemble défini d'utilisateurs sous licence et stocke toutes les données et applications client.
Que sont les objets, les enregistrements et les champs Salesforce ?

Un objet est une entité de classe. Il est semblable à une table dans la nomenclature des bases de données relationnelles. Elles peuvent être standards ou personnalisées. Les objets standards sont inclus dans Salesforce par défaut, tandis que les objets personnalisés sont créés par les utilisateurs pour stocker des données spécifiques à leur cas d'utilisation.

Un enregistrement est une instance spécifique d'un objet, semblable à une ligne dans les bases de données relationnelles.

Un champ est un attribut spécifique d'un objet, semblable à une colonne dans les bases de données relationnelles.

Comportement de la destination BigQuery

Question Réponse
Comment Datastream et BigQuery fonctionnent-ils ensemble pour répliquer les modifications apportées à la base de données source ? Datastream lit en continu le flux de modifications de la base de données source et transmet les événements d'upsert et de suppression aux tables de destination BigQuery à l'aide de l'API Storage Write. BigQuery applique ensuite les modifications à la table en fonction de la configuration de l'obsolescence de la table.
Comment les opérations du langage de manipulation de données (LMD) sont-elles appliquées dans BigQuery ?
  • Dans le mode Ajout uniquement, les données sont ajoutées à BigQuery sous forme de flux de modifications, avec une ligne distincte pour chaque événement INSERT, UPDATE-INSERT, UPDATE-DELETE et DELETE.
  • Dans le mode Fusionner (par défaut), lorsque Datastream crée une table dans BigQuery, il définit les clés primaires de la table en fonction de celles définies dans la source. BigQuery traite les événements et applique les modifications à la table BigQuery sous-jacente en fonction des clés primaires de la table source. Si la table source ne comporte pas de clé primaire, elle est traitée comme si le mode Ajout uniquement avait été utilisé.
Comment Datastream et BigQuery gèrent-ils l'ordre des événements ? BigQuery utilise les métadonnées d'événement et un numéro de séquence de modification (CSN) interne pour appliquer les événements à la table dans le bon ordre. Pour en savoir plus sur les métadonnées d'événement, consultez Événements et flux.
Comment les coûts BigQuery sont-ils calculés lorsqu'il est utilisé avec Datastream ? Les coûts BigQuery sont calculés et facturés séparément de Datastream. Pour savoir comment contrôler vos coûts BigQuery, consultez Tarifs de BigQuery CDC.
Quelle est la taille maximale de ligne compatible avec Datastream lors du streaming de données dans BigQuery ? La taille maximale de ligne compatible avec Datastream est de 20 Mo.
Lorsque vous transmettez des données en continu à BigQuery, les tables sont précédées du préfixe _. Pouvez-vous modifier ce comportement afin que les tables dans BigQuery suivent la même structure que dans la base de données source ? Lorsque vous configurez des ensembles de données pour une destination BigQuery, vous créez un ensemble de données pour chaque schéma ou un seul ensemble de données pour tous les schémas. Lorsque vous créez un ensemble de données pour chaque schéma, chaque schéma de la source est mappé à un ensemble de données dans BigQuery, et toutes les tables du schéma source sont mappées aux tables de l'ensemble de données. Lorsque vous sélectionnez l'option "Un seul ensemble de données pour tous les schémas", les noms de table sont précédés de _, conformément à la convention d'attribution de noms aux tables dans BigQuery.
La CDC peut-elle capturer les modifications du schéma source, par exemple lorsqu'une colonne est insérée ou supprimée dans la source ? Ces modifications sont-elles automatiquement reflétées dans les tables déjà renseignées des ensembles de données BigQuery de destination ? Datastream détecte automatiquement les nouvelles colonnes et les ajoute au schéma de destination pour les nouvelles lignes, mais pas pour celles déjà répliquées vers la destination. Les colonnes supprimées sont ignorées, et Datastream les remplit avec des valeurs NULL dans la destination. Vous pouvez ensuite supprimer manuellement ces colonnes dans BigQuery.

Comportement de la destination Cloud Storage

Question Répondre
Comment les fichiers sont-ils créés dans Cloud Storage ? Datastream crée un dossier pour chaque table. Dans chaque dossier, Datastream effectue une rotation du fichier (ou en crée un) chaque fois qu'il atteint le seuil de taille ou de temps défini par l'utilisateur. Datastream effectue également une rotation du fichier chaque fois qu'une modification de schéma est détectée. Le nom de fichier sera composé d'une clé de schéma unique (basée sur un hachage du schéma), suivie du code temporel du premier événement du fichier. Pour des raisons de sécurité, ces noms de fichiers ne sont pas destinés à être lus ni compris par les utilisateurs.
Si les données de Cloud Storage ne sont pas ordonnées, comment les événements peuvent-ils être réordonnés avant d'être chargés dans la destination ?

Chaque événement contient plusieurs champs de métadonnées qui identifient de manière unique la ligne dans les fichiers journaux et vous permettent de trier les événements. Ces champs sont les suivants :

Pour les sources Oracle :

  • rs_id (ID de l'ensemble d'enregistrements), qui est en fait composé de trois valeurs (par exemple, 0x0073c9.000a4e4c.01d0). rs_id identifie de manière unique l'enregistrement dans le journal de rétablissement.
  • ssn (numéro de séquence SQL), utilisé lorsque l'enregistrement dans le journal de reprise est trop long. Pour cette raison, Oracle LogMiner divise l'enregistrement en plusieurs lignes.

Pour les sources MySQL :

  • log_file, à partir duquel Datastream extrait les événements lors de la réplication CDC.
  • log_position, qui identifie le décalage de l'enregistrement dans le journal binaire MySQL.

Pour les sources PostgreSQL :

  • source_timestamp, qui correspond à la date et heure de modification de l'enregistrement dans la source. Si les valeurs source_timestamp des événements que vous triez sont identiques, comparez les valeurs lsn.
  • lsn (numéro séquentiel dans le journal), qui identifie le décalage de l'enregistrement dans le fichier journal WAL.

Pour en savoir plus sur les champs de métadonnées, consultez Métadonnées spécifiques à la source.

Si plusieurs fichiers sont créés pour le même horodatage, dans quel ordre doivent-ils être traités ? Étant donné que la mise en ordre dans et entre les fichiers n'est pas garantie, le meilleur moyen de déterminer l'ordre de traitement des fichiers pour la source consiste à obtenir tous les événements de tous les fichiers pour l'horodatage spécifique, puis à appliquer la mise en ordre à l'aide de la méthode mentionnée plus haut dans cette section.
Comment les mises à jour de clés primaires sont-elles traitées ? Existe-t-il des informations avant et après l'événement ? Lorsqu'une clé primaire de ligne est modifiée, Datastream génère deux événements pour le changement : un UPDATE-DELETE et un UPDATE-INSERT. L'événement UPDATE-DELETE représente les données avant la mise à jour, et UPDATE-INSERT représente les données après la mise à jour. Pour en savoir plus sur les métadonnées spécifiques aux sources, consultez Événements et flux.
Quelle est la taille maximale de ligne compatible avec Datastream lors de la diffusion de données dans Cloud Storage ? La taille maximale de ligne compatible avec Datastream est de 100 Mo.

Cas d'utilisation

Question Répondre
Quels sont les cas d'utilisation courants de Datastream ?

Datastream est un service de capture des données modifiées (CDC) et de réplication, ce qui signifie qu'il est flexible dans divers cas d'utilisation qui peuvent bénéficier d'un accès aux données de modification en continu. Voici les cas d'utilisation les plus courants de Datastream :

  1. Analytics : en répliquant directement les données dans BigQuery, les clients peuvent accéder à des données opérationnelles à jour dans BigQuery. Les clients peuvent utiliser ces données mises à jour en continu dans BigQuery pour créer des tableaux de bord à jour sur leurs données. Cela peut être utilisé, par exemple, pour surveiller les systèmes et obtenir des insights à jour sur l'état de leur activité.
  2. Scénarios de réplication et de synchronisation de bases de données : en intégrant Datastream aux modèles Dataflow pour charger des données dans Cloud SQL ou Spanner, vous pouvez obtenir une réplication à jour de vos données sources dans ces bases de données. Vous pouvez utiliser ces données mises à jour en continu dans les bases de données de destination pour une migration de base de données avec un temps d'arrêt réduit de la source vers la destination, ou pour des configurations de cloud hybride, où la source et la destination résident dans des environnements d'hébergement différents.
  3. Architectures basées sur les événements : les architectures modernes basées sur des microservices reposent sur des hubs centraux de données qui sont mises à jour en continu avec les événements de votre organisation pour être basées sur les événements. En écrivant en continu les données d'événement dans des destinations telles que BigQuery et Cloud Storage, vous pouvez créer des architectures basées sur les événements et reposant sur la consommation des données d'événement à partir de ces destinations.

Intégrations

Question Réponse
Comment Datastream s'intègre-t-il aux services de données Google Cloud  ?

Datastream complète et améliore la suite de données Google Cloud en fournissant la réplication des données CDC des sources vers différents services Google Cloud . En s'intégrant parfaitement à ces services, Datastream s'inscrit dans l'écosystème Google Cloud plus vaste.

Datastream s'intègre aux services de données suivants :

  • BigQuery : Datastream utilise l'API BigQuery Write pour s'intégrer directement à BigQuery. Datastream écrit les événements de modification directement dans l'ensemble de données BigQuery, où les modifications sont fusionnées en continu (UPSERT) avec les données existantes.
  • Dataflow : Datastream peut s'intégrer à Dataflow à l'aide de modèles Dataflow. Ces modèles lisent les données de Cloud Storage et les chargent dans BigQuery, Cloud SQL pour PostgreSQL ou Spanner. L'objectif de ces modèles est de maintenir à jour les tables sources répliquées dans les destinations. Les modèles sont disponibles dans l'interface utilisateur de Dataflow et sont conçus pour les fichiers générés par Datastream afin d'être traités immédiatement.
  • Cloud Storage : Datastream s'intègre à Cloud Storage en y écrivant en tant que destination de streaming en modification.
  • Cloud SQL et Spanner : en utilisant les modèles Datastream et Dataflow, vous pouvez maintenir des tables répliquées à jour dans les bases de données.
Le modèle Datastream vers BigQuery dans Dataflow présente-t-il des limites concernant le nombre d'opérations de langage de manipulation de données (LMD) ? Non. Le modèle utilise l'API d'insertion en flux continu pour charger les données dans BigQuery. Par conséquent, le nombre d'opérations LMD n'est pas limité. Toutefois, certaines limites de quota s'appliquent.

Sécurité et connectivité

Question Répondre
Datastream est-il un service sécurisé pour les données sensibles ? Datastream est compatible avec plusieurs configurations de connectivité privées et sécurisées pour protéger les données en transit lorsqu'elles sont diffusées en streaming d'une source vers une destination. Une fois les données répliquées, elles sont chiffrées par défaut et utilisent les contrôles de sécurité de BigQuery ou de Cloud Storage. Toutes les données mises en mémoire tampon par Datastream sont chiffrées au repos.
Quelles sont les options de connectivité disponibles pour connecter vos sources à Datastream ?

Vous pouvez configurer trois types de méthodes de connectivité :

  • Liste d'autorisation d'adresses IP : cette méthode fournit une connectivité publique en ajoutant les adresses IP régionales de Datastream à la liste d'autorisation de la source. Lorsque vous créez votre flux, Datastream affiche ces adresses IP dans l'UI.
  • Tunnel SSH de transfert : cette méthode fournit une connectivité sécurisée sur les réseaux publics en utilisant un bastion SSH configuré par le client en plus d'ajouter des adresses IP régionales à la liste d'autorisation.
  • Connectivité privée via l'appairage de VPC : utilisez cette méthode pour vous connecter à vos bases de données hébergées sur Google Cloudvia le réseau interne de Google Cloud, ou profitez d'une connexion VPN ou Interconnect existante en établissant un appairage de VPC entre le réseau privé de Datastream et le VPC Google Cloud de votre organisation.
Comment puis-je limiter le traitement des données sensibles de Datastream ?

Datastream vous permet de spécifier les éléments de données spécifiques (schémas, tables et colonnes) de votre source que vous souhaitez diffuser dans une destination, ainsi que les éléments que vous souhaitez exclure de la diffusion.

Les journaux de base de données peuvent contenir des données de modification provenant d'éléments exclus de la définition de votre flux. Étant donné que vous ne pouvez pas filtrer ces éléments à la source, Datastream lira les données associées, mais les ignorera.

Comment Datastream protège-t-il les identifiants de la base de données ? Que vous utilisiez Secret Manager pour stocker votre mot de passe ou que vous le saisissiez manuellement lorsque vous créez votre profil de connexion, toutes les métadonnées utilisateur sont chiffrées en transit et au repos, et Google les stocke dans ses systèmes de stockage propriétaires. L'accès à ces métadonnées est suivi et audité.
Pourquoi la page Créer une configuration de connectivité privée indique-t-elle que vous devez attribuer le rôle roles/compute.networkAdmin au compte de service Datastream pour créer une configuration de connectivité privée sur un VPC partagé ? Le rôle networkAdmin n'est requis que pour créer l'appairage de VPC. Une fois l'appairage établi, vous n'avez plus besoin de ce rôle. Si votre organisation n'autorise pas l'attribution du rôle networkAdmin au compte de service Datastream, créez un rôle personnalisé avec les autorisations spécifiques suivantes :

Sélectionner des plages d'adresses IP de manière dynamique

  • compute.routes.get
  • compute.routes.list
  • compute.subnetworks.get
  • compute.subnetworks.list

Créer des réseaux appairés

  • compute.globalOperations.get
  • compute.networks.addPeering
  • compute.networks.removePeering
  • compute.networks.get

Réserver des adresses IP

  • compute.globalAddresses.get
  • compute.globalAddresses.create
  • compute.globalAddresses.createInternal
  • compute.globalAddresses.delete
  • compute.globalAddresses.deleteInternal
  • compute.networks.use
  • compute.networks.listPeeringRoutes
Puis-je utiliser Private Service Connect pour créer une configuration de connectivité privée ? Non, Datastream n'est pas compatible avec Private Service Connect.

Surveiller Datastream

Question Réponse
Comment savoir quand toutes mes données d'historique ont été copiées dans la destination ? Datastream fournit des informations sur son état actuel dans les fichiers journaux. Une entrée de journal est créée pour indiquer quand une table a fini d'être remplie.
La latence augmente parfois, puis diminue progressivement au fil du temps. Est-ce normal ? Datastream effectue automatiquement un scaling à la hausse lorsque le débit d'événements généré par la source augmente. Toutefois, pour protéger à la fois la base de données source et Datastream, le nombre de connexions et de processus simultanés que Datastream peut ouvrir à tout moment est limité. Des pics de latence temporaires sont à prévoir en cas d'augmentation significative du débit d'événements. Ils devraient diminuer progressivement à mesure que le backlog d'événements est traité.

Tarifs

Question Répondre
Comment sont calculés les tarifs de DataStream ?

Le tarif de Datastream est basé sur le volume (Go) de données traitées de votre source vers une destination.

Pour en savoir plus sur les tarifs de Datastream, consultez Tarifs.

Comment calculer la taille des données ? La facturation est calculée en fonction de la taille des données traitées par Datastream. Datastream ne facture que les données transmises à la destination.
Si vous utilisez Datastream avec BigQuery ou Dataflow, que payez-vous ? Chaque service fait l'objet d'une tarification distincte et est facturé séparément.

Informations supplémentaires

Question Répondre
Que dois-je faire si j'ai d'autres questions ou problèmes concernant l'utilisation de Datastream ? L'équipe d'assistance Google peut vous aider si vous rencontrez des problèmes avec Datastream. Le guide de dépannage traite également des problèmes courants que vous pouvez rencontrer lors de l'utilisation de Datastream.

Étapes suivantes