Questions fréquentes

Présentation

Sur cette page, vous trouverez des réponses aux questions fréquentes sur l'utilisation de Datastream. Cette FAQ est associée à:

  • Questions générales sur Datastream et la capture des données modifiées (CDC, Change Data Capture)
  • Comportement et limites généraux de la source
  • Comportement et limites de la source MySQL
  • Comportement et limites des sources Oracle
  • Comportement et limites de la source PostgreSQL (y compris AlloyDB pour PostgreSQL)
  • Comportement et limites de la source SQL Server
  • Comportement de la destination BigQuery
  • Comportement de la destination Cloud Storage
  • Cas d'utilisation courants de Datastream
  • Comment Datastream s'intègre aux services de données Google Cloud
  • Sécurité et connectivité
  • Surveiller Datastream
  • Tarification
  • 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éponse
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 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 d'autoscaling sans serveur, Datastream vous permet de configurer facilement un pipeline ELT (extraction, chargement et transformation) pour une réplication de données à faible latence permettant d'obtenir des insights en temps quasi réel.

Datastream est également capable de synchroniser des 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. Ce service permet une intégration simplifiée aux modèles Dataflow afin de répliquer des bases de données dans Cloud SQL ou Spanner pour synchroniser les bases de données, ou d'exploiter le flux d'événements directement depuis Cloud Storage pour réaliser des architectures basées sur des événements. De plus, Datastream s'intègre à Cloud Data Fusion pour les clients qui souhaitent créer des pipelines de données avec des transformations vers BigQuery.

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 de l'intégration des données qui vous permet d'intégrer et d'analyser des données plus rapidement, en utilisant moins de ressources système. Cette méthode permet 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 des datastores opérationnels et des entrepôts de données. Elle élimine le besoin de mettre à jour le chargement groupé et de créer des fenêtres par lot inadaptées en permettant le chargement incrémentiel ou la diffusion en temps quasi réel des modifications de données dans une destination de données.

La CDC peut être utilisée dans de nombreux cas d'utilisation qui tirent de la valeur de l'accès constant aux modifications de données en temps réel, telles que les analyses, la synchronisation des données sur des systèmes géographiquement distribués et les architectures basées sur des é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 vers une destination. Par conséquent, la destination est "renseignée" 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 en plusieurs lots et les transfère vers un lot de destination par lot.
  • Dump complet: lors du remplissage du vidage complet, Datastream extrait toutes les données en même temps et les diffuse vers une destination.
Existe-t-il des limites à prendre en compte lorsque vous effectuez un remplissage ?

Pour en savoir plus sur les contraintes de remplissage, consultez les pages des limites connues pour les types de sources respectifs:

Quel est l'ordre recommandé pour les opérations de CDC et de remplissage ? Dans la plupart des cas, il n'y a pas de considération particulière dans ce cas. Lorsque le remplissage est activé sur un flux, Datastream effectue le remplissage et la CDC en même temps. Dans certains cas particuliers, par exemple lorsque vous répliquez de très grandes tables qui ne peuvent pas être remplies à l'aide de Datastream, vous devrez peut-être d'abord 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 par 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 de la CDC correspond en fait à l'état du flux. Si l'opération CDC échoue, l'ensemble du flux échoue.

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

Qu'est-ce qu'un flux de modifications par rapport à la réplication ?

Un flux de modification est une séquence d'événements que Datastream émet vers une destination à des fins d'utilisation en aval. Le résultat d'un flux de modifications écrit dans Cloud Storage est un ensemble de fichiers contenant les événements du journal des modifications provenant d'une table spécifique sur une période donnée. Les événements représentent des insertions, des mises à jour et des suppressions dans cette table. Ils peuvent être utilisés et traités en aval de Cloud Storage par des services tels que Dataflow pour des cas d'utilisation comme les architectures basées sur des événements.

Dans le contexte Datastream, la réplication correspond à une représentation 1:1 et à jour de la table source dans la destination. Par exemple, il peut s'agir d'une table Oracle dont les modifications sont répliquées en continu dans une table BigQuery, où la table BigQuery est mise à jour à l'aide des modifications diffusées depuis la table Oracle. La réplication exploite les 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. Il exploite des modèles qui extraient les événements de flux de modifications de 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 un agent sur la source. Datastream utilise des interfaces existantes (telles qu'Oracle LogMiner) pour extraire les données de la source.
Combien de tables puis-je inclure dans un seul flux ? Datastream peut gérer jusqu'à 10 000 tables dans un seul flux. Il n'y a aucune raison technique de diviser une base de données en plusieurs flux. L'utilisation de différents flux pour différents flux logiques peut nécessiter des considérations commerciales, mais chaque flux ajoute une charge à la base de données source. Cette charge est négligeable pour la 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 magasins de données et les entrepôts de données de destination. La CDC élimine également la nécessité d'effectuer des mises à jour groupées et des fenêtres par lot inadaptées en permettant un chargement incrémentiel ou un flux de données en temps quasi réel dans une destination.

De plus, Datastream minimise l'impact d'un remplissage initial en limitant le nombre de tâches de remplissage simultanées et en vous permettant de choisir les objets à remplir et à quel moment.

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, et 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 diffusé au moins une fois. Les métadonnées supplémentaires que Datastream écrit pour 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 qui vous intéressent depuis une source vers une destination. Pour les tables incluses, vous pouvez exclure des colonnes spécifiques des tables afin d'affiner davantage les données à diffuser vers 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 la diffusion que vous avez créée.
  3. Une fois que le flux que vous avez créé présente l'état RUNNING, suspendez le flux existant.
  4. Si vous le souhaitez, vous pouvez modifier le nouveau flux en cochant la case Données historiques de remplissage. Les données existantes dans les tables ajoutées ultérieurement au flux seront diffusées en continu depuis 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 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 en tant qu'opérations en 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 consulter 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 de la source

Question Réponse
Quelles sont les sources compatibles avec Datastream ?

Datastream est compatible avec les flux de données provenant de sources Oracle, MySQL, PostgreSQL, AlloyDB pour PostgreSQL et SQL Server, hébergées dans le cloud et autogérées. Pour en savoir plus sur les versions spécifiques à la 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 pour extraire les événements de modification.

Pour Oracle, Datastream utilise LogMiner et les paramètres de journalisation supplé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 dans la base de données, et permet de les consommer et de les traiter.

Pour SQL Server, Datastream suit les modifications apportées au 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 les interroge 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 base de données spécifiques.

Les limites générales sont les suivantes :

  • Débit: environ 5 Mbit/s avec une taille de ligne maximale de 30 Mo pour la destination Cloud Storage et 10 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 troncation de la table est ignorée.

Pour connaître les limites spécifiques à la 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 permettent d'établir l'ordre et de garantir la diffusion "exactement une fois".
Datastream garantit-il la mise en ordre ? Bien que Datastream ne garantit pas l'ordre, il fournit des métadonnées supplémentaires pour chaque événement. Ces métadonnées peuvent être utilisées pour garantir une cohérence à terme dans la destination. En fonction de la source, de la fréquence et de la fréquence des modifications, ainsi que d'autres paramètres, une cohérence à terme peut généralement être obtenue dans un délai d'une heure.
Datastream garantit-il une diffusion de type "exactement une fois" ? Datastream est distribué 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 entre les sources en normalisant les types de données sur toutes les sources. Datastream prend le type de données sources d'origine (par exemple, un type NUMERIC MySQL ou PostgreSQL, ou un type Oracle NUMBER) et le normalise dans un type unifié Datastream.

Les types unifiés représentent un sur-ensemble sans perte de tous les types de sources possibles, tandis que la normalisation permet de traiter facilement les données provenant de différentes sources et de les interroger en aval, indépendamment de la source.

Comment Datastream gère-t-il les modifications de structure (schéma) dans la source ? Datastream récupère périodiquement le schéma de la source. Les schémas sont stockés dans le registre de schémas interne de Datastream. 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 procéder à des ajustements en fonction de ces modifications, ce qui garantit que toutes les données sont diffusées et chargées correctement vers la destination. Toutefois, entre les récupérations de schéma, certaines modifications de schéma peuvent passer inaperçues, ce qui peut entraîner des écarts de données.
J'ai supprimé (supprimé) une colonne de 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 pouvez préférer conserver la colonne supprimée dans la destination. Par exemple, Datastream interprète le changement de nom d'une colonne dans la source comme la suppression d'une colonne et l'ajout d'une autre colonne. Dans ce cas, il ne faut 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 de l'exécuter malgré tout. Comment dépasser cette validation ? Vous pouvez démarrer le flux à l'aide de l'API en ajoutant l'indicateur force=true et en ignorant les contrôles de validation. Notez que le fait d'ignorer les validations ne garantit pas l'exécution du flux. De plus, il peut échouer si la base de données ne dispose pas de la configuration ou des autorisations nécessaires.
Puis-je redémarrer une diffusion ayant échoué ?

Vous pouvez corriger un flux affichant l'état Failed en corrigeant les erreurs signalées par Datastream. Pour en savoir plus, consultez Résoudre les problèmes liés aux flux.

Vous pouvez également récupérer une diffusion dont l'état est Failed permanently. Pour en savoir plus, consultez l'article 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 limitation pour chaque source spécifient que les flux peuvent contenir 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 à la fois ? Non. La limite indiquée s'applique à chaque diffusion. Vous pouvez avoir plusieurs flux dont le nombre total de tables peut dépasser 10 000.

Comportement et limites de la source MySQL

Question Réponse
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 répliqué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 suivante:


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

Pour en savoir plus, consultez la section 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 via la compression des transactions de journaux binaires. Désactivez la compression des transactions de journaux binaires pour utiliser la fonctionnalité de capture des données modifiées pour MySQL dans Datastream.

Votre organisation n'autorise pas l'octroi de l'autorisation SELECT sur l'ensemble de ses tables et bases de données. Pouvez-vous toujours utiliser Datastream ?

Vous pouvez accorder l'autorisation SELECT aux tables que vous souhaitez répliquer ou à l'intégralité 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 à 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 concernée.

Comportement et limites des sources Oracle

Question Réponse
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 d'Oracle en disponibilité générale, et Datastream continuera d'être compatible avec LogMiner dans toutes les prochaines versions. Oracle n'est plus compatible avec l'option CONTINUOUS_MINE de LogMiner. Toutefois, cette option n'est pas utilisée par Datastream. Cet abandon n'a donc 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 grâce à 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. Pouvez-vous toujours 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 en flux continu à 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 une diffusion.

Datastream est-il compatible avec la réplication à partir d'instances répliquées avec accès en lecture Oracle ? Datastream est compatible avec la réplication à partir d'instances Oracle répliqué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, nom d'accès client unique) dans les environnements Oracle Real Application Clusters (RAC) utilisant 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 de la source PostgreSQL

Question Réponse
Comment Datastream extrait-il des 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 en savoir plus sur la configuration de 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 AlloyDB Omni source, consultez Configurer une base de données PostgreSQL autogérée.
Datastream est-il compatible avec la réplication à partir d'une instance PostgreSQL avec accès en lecture ? Les instances répliquées avec accès en lecture ne peuvent pas agir en tant que diffuseurs pour la réplication logique, car PostgreSQL n'est pas compatible avec le décodage logique dans les instances répliquées avec accès en lecture.
Datastream est-il compatible avec la sécurité au niveau des lignes (RLS) ? Datastream n'est pas compatible avec la réplication de tables pour lesquelles la fonctionnalité RLS est activée. Vous pouvez toutefois contourner cette limitation à l'aide de 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 des emplacements de réplication. Les emplacements de réplication ne sont pas compatibles avec les connexions simultanées. Il ne peut y avoir qu'une seule tâche CDC lue à la fois à partir de l'emplacement de réplication. Par exemple, si vous supprimez un grand nombre d'enregistrements de la base de données source, l'emplacement de réplication peut être surchargé d'événements de suppression. Toute modification ultérieure de la source est retardée jusqu'à ce que les événements de suppression déjà présents dans la file d'attente d'emplacements de réplication soient traités.
Datastream est-il compatible avec le chiffrement SSL (Secure Sockets Layer) et TLS (Transport Layer Security) ?

Datastream est compatible avec les connexions chiffrées SSL/TLS qui ne nécessitent pas de certificat client.

Comportement et limites de la source SQL Server

Question Réponse
Quelles sont les éditions de SQL Server compatibles avec Datastream ? Datastream est compatible avec les versions de base de données SQL Server compatibles avec la capture des données modifiées. Pour obtenir la liste complète des versions et éditions de SQL Server compatibles, consultez la page 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, contrairement aux tables Microsoft basées sur des CDC. Cette approche réduit la charge sur la base de données tout en maintenant une récupération rapide des données.
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 attribuer les rôles et autorisations suivants à votre utilisateur Datastream pour répliquer les données d'une base de données MySQL:

  • Autorisations SELECT sur la base de données, sys.fn_dblog et sys.fn_dump_dblog
  • VIEW DATABASE STATE
  • VIEW SERVER STATE
  • L'utilisateur doit disposer du rôle de base de données fixe db_owner. Pour en savoir plus sur l'ajout d'un utilisateur au rôle, consultez les pages de configuration de votre type de base de données SQL Server source.
Pourquoi avez-vous besoin d'une configuration, telle que la modification des intervalles d'interrogation et la mise en place d'une protection contre la troncation lorsque vous configurez votre source SQL Server ? Lorsque vous répliquez des données à partir d'une source SQL Server, Datastream suit les modifications apportées au LMD à l'aide des journaux de transactions. Si un journal est tronqué avant que Datastream ne le lit, des données sont perdues. La modification des intervalles d'interrogation et la configuration de la protection contre la troncation sont facultatives, mais fournissent un niveau 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 la page Configurer une base de données SQL Server source.

Comportement de la destination BigQuery

Question Réponse
Comment Datastream et BigQuery fonctionnent-ils conjointement pour répliquer les modifications de la base de données source ? Datastream lit en continu le flux de modifications de la base de données source, puis diffuse les événements upsert et de suppression dans les tables de destination BigQuery à l'aide de l'API Storage Write. BigQuery applique ensuite les modifications à la table en fonction de la configuration d'obsolescence de la table.
Comment les opérations UPDATE et DELETE sont-elles appliquées dans BigQuery ? 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.
Comment Datastream et BigQuery gèrent-ils les tables sans clé primaire ? Si la table source ne possède pas de clé primaire, les tables sont traitées comme des tables de type "append-only", et chaque événement d'une ligne donnée apparaît sur une ligne distincte dans BigQuery.
Comment Datastream et BigQuery gèrent-ils l'ordre des événements ? BigQuery utilise les métadonnées de l'événement et un numéro de séquence de modifications interne (CSN) pour appliquer les événements à la table dans le bon ordre. Pour en savoir plus sur les métadonnées d'événements, consultez Événements et flux.
Comment les coûts BigQuery sont-ils calculés lorsque Datastream est utilisé ? 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 la page Tarifs de la CDC dans BigQuery.
Quelle est la taille de ligne maximale acceptée par Datastream lors de l'insertion de données en flux continu dans BigQuery ? La taille de ligne maximale acceptée par Datastream est de 20 Mo.
Lorsque vous insérez des données en flux continu dans BigQuery, les tables sont précédées de _. Pouvez-vous modifier ce comportement pour que les tables dans BigQuery aient 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 "Ensemble de données unique pour tous les schémas", les noms des tables sont précédés du préfixe _, conformément à la convention d'attribution de noms des 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 répercutées dans les tables déjà renseignées dans les 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 dans la destination. Les colonnes supprimées sont ignorées, et Datastream les insère avec des valeurs NULL dans la destination. Vous pouvez ensuite supprimer manuellement ces colonnes dans BigQuery.

Comportement de la destination Cloud Storage

Question Réponse
Comment les fichiers sont-ils créés dans Cloud Storage ? Datastream crée un dossier pour chaque table. Dans chaque dossier, Datastream fait pivoter le fichier (ou en crée un) chaque fois qu'il atteint le seuil de taille ou de temps défini par l'utilisateur. Datastream fait également pivoter le 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 de l'horodatage du premier événement du fichier. Pour des raisons de sécurité, ces noms de fichiers n'ont pas vocation à être lus ou compris.
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 façon 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 du jeu d'enregistrements), qui est en réalité composé de trois valeurs (par exemple, 0x0073c9.000a4e4c.01d0). Le champ 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 rétablissement 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 dans 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 est l'horodatage correspondant au moment où l'enregistrement a été modifié sur la source. Si les valeurs source_timestamp des événements que vous triez sont identiques, comparez les valeurs des 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 la section 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 l'ordre dans et entre les fichiers n'est pas garanti, 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 le code temporel spécifique, puis à appliquer l'ordre à l'aide de la méthode mentionnée précédemment dans cette section.
Comment les mises à jour de clés primaires sont-elles traitées ? L'événement contient-il des informations avant et après ? Lorsque la clé primaire d'une ligne change, Datastream génère deux événements pour la modification: UPDATE-DELETE et UPDATE-INSERT. L'événement UPDATE-DELETE représente les données avant la mise à jour et UPDATE-INSERT les données après la mise à jour. Pour en savoir plus sur les métadonnées spécifiques à la source, consultez Événements et flux.
Quelle est la taille de ligne maximale acceptée par Datastream lors de l'insertion de données en flux continu dans Cloud Storage ? La taille de ligne maximale acceptée par Datastream est de 30 Mo.

Cas d'utilisation

Question Réponse
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. Analyse: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. Ces outils peuvent servir, par exemple, à surveiller les systèmes et à obtenir des insights actualisés sur l'état de l'entreprise.
  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 bénéficier d'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 à faible temps d'arrêt de la source vers la destination, ou pour des configurations de cloud hybride, où la source et la destination résident dans différents environnements d'hébergement.
  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 des données d'événement dans des destinations telles que BigQuery et Cloud Storage, vous pouvez créer des architectures basées sur des événements basées sur la consommation de données d'événement depuis 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 une réplication de données CDC à partir de sources vers divers services Google Cloud. Grâce à une intégration parfaite à ces services, Datastream s'intègre dans l'écosystème Google Cloud au sens large.

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 s'intègre à Dataflow à l'aide de modèles Dataflow. Ces modèles lisent les données à partir 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 à jour 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 en vue d'un traitement prêt à l'emploi.
  • Cloud Data Fusion:Datastream s'intègre à Cloud Data Fusion en alimentant un connecteur Oracle via la fonctionnalité de réplication de Cloud Data Fusion. Vous pouvez créer une source de réplication Oracle que Datastream "optimise" en toute transparence afin de créer facilement un pipeline de données. Ce pipeline inclut des transformations enrichies pour les données Oracle que Datastream diffuse dans Cloud Data Fusion.
  • Cloud Storage : Datastream s'intègre à Cloud Storage en y écrivant en tant que destination de streaming en modification.
  • Cloud SQL et Spanner:vous pouvez gérer les tables répliquées à jour dans les bases de données à l'aide des modèles Datastream et Dataflow.
Le modèle Datastream vers BigQuery de Dataflow présente-t-il des limites concernant le nombre d'opérations en langage de manipulation de données (LMD) ? Non. Le modèle utilise l'API d'insertion en flux continu pour charger des données dans BigQuery. Par conséquent, le nombre d'opérations LMD n'est pas limité. Cependant, 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ée et sécurisée pour protéger les données en transit lors de leur diffusion depuis une source vers une destination. Une fois les données répliquées, elles sont chiffrées par défaut et s'appuient sur 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 vous fournit une connectivité publique en ajoutant à la liste d'autorisation les adresses IP régionales de Datastream sur la source. Lorsque vous créez votre flux, Datastream affiche ces adresses IP dans l'interface utilisateur.
  • 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 appairage VPC : utilisez cette méthode pour vous connecter à vos bases de données hébergées par Google Cloud via le réseau interne de Google Cloud, ou pour exploiter un VPN ou une interconnexion existant en établissant un appairage 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 vers une destination, et quels éléments vous voulez exclure du flux.

Les journaux de base de données peuvent contenir des données de modification provenant d'éléments qui ont été exclus dans votre définition de flux. Étant donné que vous ne pouvez pas filtrer ces éléments à la source, Datastream lit, mais ignore toutes les données qui leur sont associées.

Comment Datastream protège-t-il les identifiants de la base de données ? Toutes les métadonnées utilisateur (y compris le nom d'utilisateur et le mot de passe utilisés pour accéder aux sources de données) sont chiffrées en transit et au repos. L'accès à ces métadonnées fait l'objet d'un suivi et d'un 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 est uniquement requis 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 historiques 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 le moment où le remplissage de la table est terminé.
La latence augmente occasionnellement, puis diminue progressivement au fil du temps. Est-ce normal ? Datastream évolue automatiquement à la hausse lorsque le débit d'événements généré par la source augmente. Toutefois, pour protéger 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 temporaires de latence sont attendus en cas d'augmentation significative du débit d'événements, et ils devraient diminuer progressivement à mesure que les événements en attente sont traités.

Tarification

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

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

Pour en savoir plus sur les informations tarifaires de Datastream, consultez la page Tarifs.

Comment calculer la taille des données ? La facturation est calculée en fonction de la taille des données brutes (non compressées) diffusées de la source vers la destination. Datastream ne facture que les données diffusées vers la destination.
Si vous utilisez Datastream avec BigQuery, Dataflow ou Cloud Data Fusion, que payez-vous ? Chaque service fait l'objet d'une tarification distincte et est facturé séparément.

Informations supplémentaires

Question Réponse
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 lors de l'utilisation de Datastream. En outre, le guide de dépannage traite les problèmes courants que vous pouvez rencontrer lorsque vous utilisez Datastream.