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

Vous pouvez diffuser en flux continu les mises à jour de la capture des données modifiées (CDC, Change Data Capture) depuis une base de données Azure SQL vers des destinations compatibles, telles que BigQuery ou Cloud Storage, à l'aide de Datastream. Datastream ne prend en charge Azure SQL Database que lorsque vous utilisez la méthode CDC des tables de modifications. Pour préparer votre source, vous devez activer la CDC sur votre base de données et vos tables, activer l'isolation d'instantané et configurer un utilisateur Datastream.

Pour configurer une base de données Azure SQL :

  1. Activez la capture des données modifiées (CDC, Change Data Capture) pour votre base de données source Azure SQL. 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 remplissez 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. L'application des paramètres d'isolation d'instantané est obligatoire si votre flux inclut des tables sans clé primaire.

    L'activation de l'isolation d'instantané 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 apportent des modifications aux tables en direct en même temps. L'activation de l'isolation d'instantané 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;
      

Étape suivante

  • Découvrez comment Datastream fonctionne avec les sources SQL Server.