Questions fréquentes

Présentation

Cette page contient les réponses aux questions fréquentes sur l'utilisation de Datastream. Cette FAQ est associée aux éléments suivants:

  • 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 de la destination BigQuery
  • Comportement de la destination Cloud Storage
  • Cas d'utilisation courants de Datastream
  • Intégration de Datastream 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 que 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 sans serveur à autoscaling, Datastream vous permet de configurer facilement 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 peut également 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. Le service offre une intégration simplifiée avec les modèles Dataflow pour répliquer des bases de données dans Cloud SQL ou Spanner afin de les synchroniser, 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 ?

Le CDC est une approche d'intégration des 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 capture des données modifiées est un mécanisme très efficace pour limiter l'impact sur la source lors du chargement de nouvelles données dans des entrepôts et des magasins de données opérationnels. Elle élimine le besoin de mises à jour par lot et de fenêtres de traitement par lot inopportunes en permettant le chargement incrémentiel ou le streaming quasi en 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 vers 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 extrait des données à partir de plages de lignes dans plusieurs lots et les transmet à une destination 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 vers une destination.
Existe-t-il des limites à prendre en compte lors de l'exécution d'un remplissage ?

Pour en savoir plus sur les contraintes de remplissage, consultez les pages sur les problèmes connus pour les types de sources respectifs :

Quelle est l'ordre recommandé pour les opérations de 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 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 renseignées à l'aide de Datastream, vous devrez peut-être d'abord charger les données dans BigQuery avant de lancer 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 CDC correspond en réalité à 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 Cloud Monitoring.

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

Un flux de modifications est une séquence d'événements qu'émet Datastream vers une destination à des fins de consommation en aval. Lorsqu'un flux de modifications est écrit dans Cloud Storage, un ensemble de fichiers contenant les événements du journal des modifications d'une table spécifique sur une période donnée est généré. 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 tels que les architectures basées sur des événements.

Dans le contexte de Datastream, la réplication est une représentation 1:1 actualisée de la table source dans la destination. Par exemple, une table dans 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 à partir de 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 accepte d'autres destinations telles que Cloud SQL et Spanner grâce à l'intégration à Dataflow, en exploitant des modèles qui extraient les événements de flux de modifications à partir de Cloud Storage et en mettant à 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 même flux ? Datastream peut gérer jusqu'à 10 000 tables dans un même flux. Il n'existe aucune raison technique de diviser une base de données en plusieurs flux, mais des considérations commerciales peuvent justifier l'utilisation de différents flux pour différents flux logiques, par exemple lors de la réplication de grandes transactions à partir de sources PostgreSQL. Toutefois, 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 ?

Le 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 datastores de destination. La CDC élimine également le besoin de mises à jour groupées et de fenêtres de traitement par lot inadaptées en permettant le chargement incrémentiel ou le streaming en temps quasi réel des modifications de données 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 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 assure une distribution de type "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 ne diffuser que 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 plus précisément les données que vous souhaitez 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. Vous pouvez également modifier le nouveau flux en cochant la case Remplir les données historiques. Les données existantes des tables ajoutées au flux ultérieurement 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 LMD (langage de manipulation de données) "inverses". Par exemple, une opération INSERT annulée est associée à une opération DELETE. 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 général et limites des sources

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, qu'elles soient hébergées dans le cloud ou 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 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 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 des tables spécifiées vers la destination.
Quelles sont les limites des données que Datastream peut traiter ?

Il existe des limitations 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 :

  • Taille de l'événement : limite maximale de 100 Mo par ligne pour la destination Cloud Storage et de 20 Mo par ligne 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 :
    • Supprimer une colonne au milieu d'une table Cela peut entraîner un écart de 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 de la table 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'ensemble 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 assurer la diffusion "exactement une fois".
Datastream garantit-il la mise en ordre ? Bien que Datastream ne garantisse 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. Selon la source, le taux et la fréquence des modifications, ainsi que d'autres paramètres, la cohérence 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 NUMBER Oracle) 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 permet de traiter facilement les données provenant de différentes sources et de les interroger en aval, quelle que soit leur source.

Comment Datastream gère-t-il les modifications de structure (schéma) dans la source ? Datastream récupère le schéma de la source régulièrement. 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'y adapter, ce qui garantit que toutes les données sont correctement diffusées et chargées à la destination. Cependant, entre les extractions de schéma, certaines modifications de schéma peuvent ne pas être détectées, 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 de 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 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, 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 l'omission des 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 une diffusion en échec ?

Pour corriger un flux avec l'état Failed, corrigez les erreurs signalées par Datastream. Pour en savoir plus, consultez Dépannage d'un flux.

Vous pouvez également récupérer une diffusion associée à l'état 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 limitation pour chaque source spécifient 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 sur plus de 10 000 tables en même temps ? Non, il s'agit d'une limite par diffusion. Vous pouvez avoir plusieurs flux dont le nombre total de tables dépasse 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 suivante :

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

Pour en savoir plus, consultez la page Journalisation binaire sur les instances dupliquées avec accès en lecture.

Quelles autorisations Datastream doit-il disposer 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 accepte-t-il la compression des journaux binaires ?

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

Votre organisation ne vous autorise pas à accorder l'autorisation SELECT à toutes ses tables et bases de données. Puis-je encore 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 à 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 disponibles dans le commerce, et Datastream continuera de prendre en charge LogMiner dans toutes les futures versions. Oracle a cessé de prendre en charge l'option CONTINUOUS_MINE de LogMiner, mais celle-ci n'est pas utilisée par Datastream. Par conséquent, 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 grâce à Oracle Net Services. Datastream s'exécute en mode REQUESTED.

Datastream est-il compatible avec le chiffrement SSL (Secure Socket 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 n'autorise pas l'octroi de l'autorisation GRANT SELECT ANY TABLE. Puis-je encore 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 de réplication avec accès en lecture Oracle ? Datastream est compatible avec la réplication à partir d'instances répliquées avec accès en lecture Oracle, à 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 avec les bases de données à l'aide de la fonctionnalité SCAN (Single Client Access Name) dans les environnements Oracle Real Application Clusters (RAC) à l'aide de Datastream. Pour contourner cette limitation, connectez-vous directement à l'un des nœuds ou utilisez le gestionnaire de connexion Oracle. 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 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 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 en savoir plus sur la configuration de 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 de réplication avec accès en lecture PostgreSQL ? Les instances répliquées avec accès en lecture ne peuvent pas agir en tant qu'éditeurs 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 avec RLS activé. 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 accepte-t-il les opérations CDC simultanées lors d'une réplication à partir d'une source PostgreSQL ?

Non. La réplication PostgreSQL repose sur le concept d'emplacements de réplication, et les emplacements de réplication ne sont pas compatibles avec les connexions simultanées. Une seule tâche CDC peut être lue à 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, 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 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 données de transaction volumineuses, consultez la page Diagnostiquer les problèmes.

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

Datastream accepte les connexions chiffrées par SSL/TLS qui ne nécessitent pas de certificats client.

Comportement et limites des sources SQL Server

Question Réponse
Quelles sont les éditions SQL Server compatibles avec Datastream ? Datastream est compatible avec les versions de bases de données SQL Server compatibles avec la capture de données modifiées. Pour obtenir la liste complète des versions et éditions SQL Server compatibles, consultez la section Versions.
Comment la réplication CDC Datastream fonctionne-t-elle pour les sources SQL Server ? Le processus d'ingestion de données Datastream utilise des journaux de transactions ou des tables de modification, en fonction de la configuration de la source. Pour en savoir plus, consultez Base de données SQL Server source.
Quelles autorisations Datastream doit-il disposer au minimum pour répliquer des données à partir 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 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 respectives pour votre type de base de données.

Pourquoi devez-vous configurer des éléments tels que la modification des intervalles d'interrogation et la configuration d'une protection contre la troncation 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, une perte de données se produit. La modification des intervalles d'interrogation et la configuration d'une protection contre la troncation sont facultatives. Toutefois, elles fournissent 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 choisir lors d'une 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 la 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 permet un débit inférieur et augmente la charge sur votre base de données.

Pour en savoir plus, consultez la section Présentation de SQL Server en tant que 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 à partir de la base de données source, et diffuse les événements d'insertion des mises à jour 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 de l'obsolescence de la table.
Comment les opérations en langage de manipulation de données (LMD) sont-elles appliquées dans BigQuery ?
  • En mode Ajout uniquement, les données sont ajoutées dans BigQuery en tant que flux de modifications, avec une ligne distincte pour chaque événement INSERT, UPDATE-INSERT, UPDATE-DELETE et DELETE.
  • En 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 des clés primaires 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 était 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 interne (CSN) 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'ils sont utilisés 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 la CDC BigQuery
Quelle est la taille maximale de ligne compatible avec Datastream lors du streaming de données dans BigQuery ? La taille de ligne maximale acceptée par Datastream est de 20 Mo.
Lorsque vous transmettez des données en continu vers BigQuery, les tables sont précédées du préfixe _. Pouvez-vous modifier ce comportement afin que les tables de 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 d'un seul ensemble de données pour tous les schémas, les noms des tables sont précédés du préfixe _, conformément à la convention de dénomination 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à remplies 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 celles déjà répliquées à la destination. Les colonnes supprimées sont ignorées, et Datastream les renseigne 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 fait pivoter le fichier (ou crée un nouveau fichier) dès qu'il atteint les seuils de taille ou de durée définis par l'utilisateur. Datastream effectue également la 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 conçus pour être lus ou compris par des personnes.
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 réalité composé de trois valeurs (par exemple, 0x0073c9.000a4e4c.01d0). rs_id identifie de manière unique l'enregistrement dans le journal de relecture.
  • ssn (numéro de séquence SQL), qui est utilisé lorsque l'enregistrement du journal de relecture est trop long. Par conséquent, 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 correspond à l'horodatage du changement d'enregistrement sur la source. Si les valeurs source_timestamp des événements que vous triez sont identiques, comparez les valeurs lsn.
  • lsn (numéro séquentiel du 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 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 tôt dans cette section.
Comment les mises à jour de clés primaires sont-elles traitées ? L'événement contient-il des informations sur les événements précédents et postérieurs ? Lorsqu'une clé primaire de ligne change, Datastream génère deux événements pour la modification : 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. 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. Ils peuvent ainsi surveiller les systèmes et obtenir des insights à jour sur l'état de leur 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 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 à faible temps d'arrêt de la source vers la destination, ou pour les 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épondre
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 offrant une réplication des données CDC depuis les sources vers divers services Google Cloud. En s'intégrant parfaitement à ces services, Datastream s'intègre à 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 s'intègre à 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 de les traiter directement.
  • 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 des modèles Datastream et Dataflow, vous pouvez gérer 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é. 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ées sécurisées pour protéger les données en transit lors de leur diffusion d'une source à une destination. Une fois les données répliquées, elles sont chiffrées par défaut et exploitent 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 les adresses IP régionales de Datastream à la liste d'autorisation 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 dans une destination, et les éléments que vous souhaitez exclure de la diffusion.

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

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, 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'association établie, 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 quand le remplissage d'une table est terminé.
La latence augmente parfois, puis diminue progressivement au fil du temps. Est-ce normal ? Datastream effectue un scaling automatique à la hausse lorsque le débit des événements générés 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 nombre d'événements en attente est traité.

Tarifs

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

Les tarifs de Datastream sont basés sur le volume (Go) de données traitées depuis votre source vers une destination.

Pour en savoir plus sur les tarifs 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 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. Ce guide de dépannage traite également les problèmes courants que vous pouvez rencontrer lors de l'utilisation de Datastream.

Étape suivante