Configurer une base de données Azure SQL pour la CDC

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

Pour configurer une base de données Azure SQL :

  1. Activez la capture des données modifiées (CDC) pour votre base de données Azure SQL source. Pour ce faire, connectez-vous à la base de données à l'aide d'Azure Data Studio ou de SQL Server Management Studio, puis exécutez la commande suivante :

    EXEC sys.sp_cdc_enable_db;
    GO
    
  2. Activez la CDC sur les tables pour lesquelles vous devez capturer les modifications :

    EXEC sys.sp_cdc_enable_table
    @source_schema = N'SCHEMA_NAME',
    @source_name = N'TABLE_NAME',
    @role_name = NULL
    GO
    

    Remplacez les éléments suivants :

    • SCHEMA_NAME : nom du schéma auquel appartiennent les tables.
    • TABLE_NAME : nom de la table pour laquelle vous souhaitez activer la CDC
  3. 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, en particulier pour les 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 la cohérence des données copiées, 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.

  4. Créez un utilisateur Datastream :

    1. Connectez-vous à la base de données master et créez un identifiant :

      USE master;
      CREATE LOGIN YOUR_LOGIN WITH PASSWORD = 'PASSWORD';
      
    2. Connectez-vous à la base de données source et créez un utilisateur pour votre identifiant :

      USE DATABASE_NAME
      CREATE USER USER_NAME FOR LOGIN YOUR_LOGIN;
      
    3. Attribuez les rôles db_owner et db_denydatawriter à votre utilisateur :

      EXEC sp_addrolemember 'db_owner', 'USER_NAME';
      EXEC sp_addrolemember 'db_denydatawriter', 'USER_NAME';
      
    4. Accordez l'autorisation VIEW DATABASE STATE à votre utilisateur :

      GRANT VIEW DATABASE STATE TO USER_NAME;
      

Étapes suivantes