Configurer une base de données Cloud SQL pour SQL Server pour la CDC

Cette page explique comment configurer la capture des données modifiées (CDC, change data capture) pour diffuser des données en flux continu depuis une base de données Cloud SQL pour SQL Server vers une destination compatible, comme BigQuery ou Cloud Storage.

  1. vous connecter à l'instance Cloud SQL ; Pour ce faire, utilisez la commande gcloud sql connect à l'invite Cloud Shell.

  2. Activez la CDC sur la base de données en exécutant la commande suivante :

    EXEC msdb.dbo.gcloudsql_cdc_enable_db 'DATABASE_NAME'
    

    Remplacez DATABASE_NAME par le nom de votre base de données source.

  3. Activez la CDC sur les tables pour lesquelles vous devez capturer les modifications :

    USE [DATABASE_NAME]
    EXEC sys.sp_cdc_enable_table
    @source_schema = N'SCHEMA_NAME',
    @source_name = N'TABLE_NAME',
    @role_name = NULL
    GO
    
  4. Activez l'isolation d'instantané.

    Lorsque vous complétez des données à partir de votre base de données SQL Server, il est important de vous assurer que les instantanés sont cohérents. Si vous n'appliquez pas les paramètres décrits dans cette section, les modifications apportées à la base de données pendant le processus de remplissage peuvent entraîner des doublons ou des résultats incorrects. Vous devez appliquer les paramètres d'isolation d'instantané si votre flux inclut des tables sans clé primaire.

    L'activation de l'isolation des instantanés crée une vue temporaire de votre base de données au début du processus de remplissage. Cela garantit que les données copiées restent cohérentes, même si d'autres utilisateurs modifient les tables en direct en même temps. L'activation de l'isolation des instantanés peut avoir un léger impact sur les performances, mais elle est essentielle pour une extraction fiable des données.

    Pour activer l'isolation d'instantané :

    1. Connectez-vous à votre base de données à l'aide d'un client SQL Server.
    2. Exécutez la commande suivante :
    ALTER DATABASE DATABASE_NAME SET ALLOW_SNAPSHOT_ISOLATION ON;
    

    Remplacez DATABASE_NAME par le nom de votre base de données.

  5. Créez un utilisateur Datastream :

    1. Dans la console Google Cloud , accédez à la page Instances Cloud SQL.

      Accéder à la page Instances Cloud SQL

    2. Créez un utilisateur et attribuez-lui les rôles db_owner et db_denydatawriter :

    CREATE USER USER_NAME FOR LOGIN YOUR_LOGIN;
    
    EXEC sp_addrolemember 'db_owner',