Questions fréquentes

Présentation

Sur cette page, vous trouverez 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 de la source 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
  • 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 issues 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 sans serveur avec autoscaling, Datastream vous permet de configurer facilement un pipeline ELT (Extract, Load, and Transform) pour une réplication des données à faible latence permettant d'obtenir des 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 vous offre une intégration simplifiée aux modèles Dataflow afin de répliquer des bases de données dans Cloud SQL ou Spanner pour la synchronisation des bases de données, ou d'exploiter le flux d'événements directement depuis Cloud Storage pour créer 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. Il s'agit d'une méthode permettant d'extraire uniquement les dernières modifications (mises à jour, insertions ou suppressions) d'une source de données, souvent en lisant le journal des modifications que la source conserve pour sa propre intégrité transactionnelle interne.

La CDC est un mécanisme très efficace pour limiter l'impact sur la source lors du chargement de nouvelles données dans les data stores opérationnels et les entrepôts de données. Elle élimine le besoin de mises à jour groupées et de fenêtres par lot inadaptées en permettant un chargement incrémentiel ou un flux en quasi-temps 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, par exemple pour les analyses, la synchronisation des données sur des systèmes répartis géographiquement et les architectures basées sur des événements.

Qu'est-ce que le remplissage ?

En plus des modifications continues, 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 récupère les données de plages de lignes dans plusieurs lots et les diffuse vers une destination par lot, par lot.
  • Dump complet: lors du remplissage du vidage complet, Datastream extrait toutes les données en même temps, puis les transfère 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 limitations connues 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, il n'y a pas de considération particulière. Lorsque le remplissage est activé sur un flux, Datastream effectue le remplissage et la CDC en même temps. Dans certains cas limites, par exemple lors de la réplication de tables très volumineuses 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 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 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 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. Les événements 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 consiste en 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, dans laquelle la table BigQuery est mise à jour à l'aide des modifications transmises par 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 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. Utiliser différents flux pour différents flux logiques peut nécessiter des considérations commerciales, mais chaque flux ajoute une charge supplémentaire à 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 datastores et entrepôts de données 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 en vous offrant la possibilité de décider quels objets remplir et quand les remplir.

Pouvez-vous copier les fichiers journaux de la source vers Google Cloud ? Non. Datastream interroge les journaux directement sur le serveur de base de données. Seules les modifications apportées aux tables spécifiées sont écrites dans la destination.
Datastream peut-il également transférer des données de l'historique ? Oui. Par défaut, Datastream récupère toutes les données d'historique des tables de base de données de votre source que vous spécifiez, en parallèle avec le flux CDC. Datastream vous permet d'obtenir des données d'historique d'une partie ou de l'ensemble des tables de base de données de votre source. En outre, lorsque vous configurez votre flux, vous pouvez choisir de désactiver le remplissage d'historique.
Datastream garantit-il une diffusion de type "exactement une fois" ? Non. Datastream est 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 souhaitées d'une source vers une destination. Pour les tables incluses, vous pouvez exclure des colonnes spécifiques des tables afin d'affiner avec précision les données que vous souhaitez 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 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 dans les tables ajoutées au flux à l'avenir seront diffusées en continu 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 font l'objet d'un rollback, la base de données le reflète dans les fichiers journaux en tant qu'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 et limites généraux 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 :

  • Débit: environ 5 Mbit/s, avec une limite maximale de taille de ligne de 30 Mo pour la destination Cloud Storage et une limite de taille de ligne de 20 Mo pour BigQuery.
  • Certaines opérations langage de définition de données (LDD) ne sont pas compatibles avec la réplication, y compris les opérations suivantes :
    • Suppression d'une colonne du milieu d'un tableau. 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 troncation de table est ignorée.

Pour connaître les limites spécifiques aux sources, 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 la ligne entière 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 des événements, 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, du taux et de la fréquence des modifications et d'autres paramètres, la cohérence à terme peut généralement être obtenue dans une fenêtre d'une heure.
Datastream garantit-il une diffusion de type "exactement une fois" ? Datastream est distribué "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 ?

Lors de l'écriture 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 utilise le type de données source d'origine (par exemple, un type NUMERIC MySQL ou PostgreSQL, ou un type NUMBER Oracle) et les normalise en un type unifié Datastream.

Les types unifiés représentent un sur-ensemble sans perte de tous les types de sources possibles. Avec la normalisation, les données provenant de différentes sources peuvent être traitées facilement et interrogées 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 régulièrement le schéma de la source. Les schémas sont stockés dans le registre de schémas interne de Datastream, et chaque événement fait référence au schéma au moment de sa génération. Datastream peut ainsi suivre les modifications de schéma et s'adapter en fonction de ces modifications, ce qui garantit que toutes les données sont diffusées et chargées correctement vers 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 dans la destination. Vous devez supprimer les colonnes manuellement. Ce comportement est intentionnel, car dans certains cas, vous préférerez peut-être conserver la colonne supprimée dans la destination. Par exemple, Datastream interprète le fait de renommer une colonne dans la source comme la suppression d'une colonne et l'ajout d'une autre colonne. Dans ce cas, vous ne devez 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'option force=true et en ignorant les vérifications de validation. Notez que le fait d'ignorer les validations ne garantit pas l'exécution du flux. Il peut aussi é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 associé à l'état Failed en résolvant les erreurs signalées par Datastream. Pour en savoir plus, consultez l'article Résoudre les problèmes liés à la diffusion en direct.

Vous pouvez également récupérer une diffusion associée à l'état Failed permanently. Pour en savoir plus, consultez la section 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 disposer de plusieurs flux dont le nombre total de tables dépasse 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 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.

De quelles autorisations Datastream a-t-il besoin pour répliquer des données à partir 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'accepte pas la compression des événements de transaction à l'aide de la compression des transactions dans les journaux binaires. Désactivez la compression des transactions dans les 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 toutes ses tables et bases de données. Pouvez-vous toujours 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é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. Datastream continuera de prendre en charge LogMiner dans toutes les versions à venir. Oracle a cessé de prendre en charge l'option CONTINUOUS_MINE de LogMiner, mais celle-ci n'est pas utilisée par Datastream. L'abandon de cette option 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 prend en charge le chiffrement des données en transit grâce à Oracle Net Services. Datastream s'exécute en mode REQUESTED.

Datastream est-il compatible avec les chiffrements 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 n'autorise pas l'octroi de 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 à 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 streaming en direct.

Datastream permet-il 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 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 aux bases de données à l'aide de la fonctionnalité SCAN (Single Client Access Name) 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 comme 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 permet-il la réplication à partir d'une instance répliquée PostgreSQL avec accès en lecture ? Les instances répliquées avec accès en lecture ne peuvent pas agir en tant que diffuseurs de réplication logique, car PostgreSQL n'est pas compatible avec le décodage logique des 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 lorsque RLS est activé. Toutefois, vous pouvez 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 figurant déjà dans la file d'attente des emplacements de réplication soient traités.
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 de la source 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 les journaux de transactions, et non les tables Microsoft basées sur la CDC. Cette approche permet de réduire la charge pesant 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 pour répliquer des données à partir d'une base de données SQL Server source ?

Vous devez accorder les rôles et autorisations suivants à votre utilisateur Datastream pour répliquer les données d'une base de données 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 savoir comment ajouter un utilisateur au rôle, consultez les pages de configuration pour 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 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 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.

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 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 traitent-ils les tables sans clé primaire ? Si la table source ne possède pas de clé primaire, les tables sont traitées comme des "appends uniquement", et chaque événement d'une ligne donnée apparaît comme une ligne distincte dans BigQuery.
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 les tarifs de la CDC 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 portent le préfixe _. Pouvez-vous modifier ce comportement afin que les tables dans BigQuery suivent la même structure que dans la base de données source ? Lorsque vous configurez des ensembles de données pour une destination BigQuery, vous créez un ensemble de données pour chaque schéma ou un seul ensemble de données pour tous les schémas. Lorsque vous créez un ensemble de données pour chaque schéma, chaque schéma de la source est mappé à un ensemble de données dans BigQuery, et toutes les tables du schéma source sont mappées aux tables de l'ensemble de données. Lorsque vous sélectionnez l'option 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 pour celles déjà répliquées dans 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é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 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 du jeu 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 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 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 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 ? Comme l'ordre dans les fichiers et entre les fichiers n'est pas garanti, la meilleure façon de déterminer l'ordre de traitement des fichiers de la source est d'obtenir tous les événements de tous les fichiers pour l'horodatage spécifique, puis d'appliquer le tri à 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 avant et après ? Lorsque la clé primaire d'une ligne change, Datastream génère deux événements pour cette 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 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. Cela peut servir, par exemple, à surveiller les systèmes et à obtenir des insights à jour sur l'état de l'activité 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 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 basées sur la consommation des données d'événement à partir de ces destinations.

Intégrations

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

Datastream complète et améliore la suite de données Google Cloud en 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 global.

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

  • BigQuery:Datastream utilise l'API BigQuery Write pour 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 dans les destinations. Les modèles sont disponibles dans l'interface utilisateur 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 Oracle de réplication que Datastream "alimente" de manière transparente pour 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:à l'aide des modèles Datastream et Dataflow, vous pouvez maintenir à jour les tables répliquées 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 en 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 accepte plusieurs configurations de connectivité privée et sécurisée pour protéger les données en transit lorsqu'elles sont transférées 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'UI.
  • Tunnel SSH de transfert : cette méthode fournit une connectivité sécurisée sur les réseaux publics en utilisant un bastion SSH configuré par le client en plus d'ajouter des adresses IP régionales à la liste d'autorisation.
  • Connectivité privée via 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 ceux que vous souhaitez exclure de la diffusion.

Les journaux de base de données peuvent contenir des données de modification provenant d'éléments exclus dans votre définition de flux. Étant donné que vous ne pouvez pas filtrer ces éléments au niveau de 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, et Google les stocke dans ses systèmes de stockage propriétaires. 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 n'est requis que pour créer l'appairage de VPC. Une fois l'appairage établi, vous n'avez plus besoin de ce rôle. Si votre organisation n'autorise pas l'attribution du rôle networkAdmin au compte de service Datastream, créez un rôle personnalisé avec les autorisations spécifiques suivantes:

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

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

Créer des réseaux appairés

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

Réserver des adresses IP

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

Surveiller Datastream

Question Réponse
Comment savoir quand toutes mes données 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 à quel moment 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é.

Tarification

Question Réponse
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 la tarification de Datastream, consultez la section 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 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 avec Datastream. Ce guide de dépannage traite également les problèmes courants que vous pouvez rencontrer lors de l'utilisation de Datastream.