Azure SQL-Datenbank für CDC konfigurieren

Mit Datastream können Sie CDC-Updates (Change Data Capture) aus einer Azure SQL-Datenbank in unterstützte Ziele wie BigQuery oder Cloud Storage streamen. Datastream unterstützt die Azure SQL-Datenbank nur mit der CDC-Methode für Tabellenänderungen. Zur Vorbereitung der Quelle aktivieren Sie CDC für Ihre Datenbank und Tabellen, aktivieren Sie die Snapshot-Isolation und konfigurieren Sie einen Datastream-Nutzer.

So konfigurieren Sie eine Azure SQL-Datenbank:

  1. Aktivieren Sie Change Data Capture (CDC) für Ihre Azure SQL-Quelldatenbank. Stellen Sie dazu eine Verbindung zur Datenbank über Azure Data Studio oder SQL Server Management Studio her und führen Sie den folgenden Befehl aus:

    EXEC sys.sp_cdc_enable_db;
    GO
    
  2. Aktivieren Sie CDC für die Tabellen, für die Sie Änderungen erfassen müssen:

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

    Ersetzen Sie Folgendes:

    • SCHEMA_NAME: der Name des Schemas, zu dem die Tabellen gehören
    • TABLE_NAME: der Name der Tabelle, für die Sie CDC aktivieren möchten
  3. Aktivieren Sie die Snapshot-Isolation.

    Wenn Sie Daten aus Ihrer SQL Server-Datenbank nachfüllen, ist es wichtig, konsistente Snapshots zu gewährleisten. Wenn Sie die in diesem Abschnitt beschriebenen Einstellungen nicht anwenden, können Änderungen, die während des Nachfüllvorgangs an der Datenbank vorgenommen werden, zu Duplikaten oder falschen Ergebnissen führen. Die Anwendung von Snapshot-Isolationseinstellungen ist erforderlich, wenn Ihr Stream Tabellen ohne Primärschlüssel enthält.

    Durch das Aktivieren der Snapshot-Isolation wird zu Beginn des Nachfüllvorgangs eine temporäre Ansicht Ihrer Datenbank erstellt. So bleiben die kopierten Daten konsistent, auch wenn andere Nutzer gleichzeitig Änderungen an den Live-Tabellen vornehmen. Das Aktivieren der Snapshot-Isolation kann sich geringfügig auf die Leistung auswirken, ist aber für eine zuverlässige Datenextraktion unerlässlich.

    So aktivieren Sie die Snapshot-Isolation:

    1. Stellen Sie eine Verbindung zur Datenbank über einen SQL Server-Client her.
    2. Führen Sie dazu diesen Befehl aus:
    ALTER DATABASE DATABASE_NAME SET ALLOW_SNAPSHOT_ISOLATION ON;
    

    Ersetzen Sie DATABASE_NAME durch den Namen Ihrer Datenbank.

  4. Erstellen Sie einen Datastream-Nutzer:

    1. Stellen Sie eine Verbindung zur master-Datenbank her und erstellen Sie eine Anmeldung:

      USE master;
      CREATE LOGIN YOUR_LOGIN WITH PASSWORD = 'PASSWORD';
      
    2. Stellen Sie eine Verbindung zur Quelldatenbank her und erstellen Sie einen Nutzer für Ihre Anmeldung:

      USE DATABASE_NAME
      CREATE USER USER_NAME FOR LOGIN YOUR_LOGIN;
      
    3. Weisen Sie Ihrem Nutzer die Rollen db_owner und db_denydatawriter zu:

      EXEC sp_addrolemember 'db_owner', 'USER_NAME';
      EXEC sp_addrolemember 'db_denydatawriter', 'USER_NAME';
      
    4. Erteilen Sie Ihrem Nutzer die Berechtigung VIEW DATABASE STATE:

      GRANT VIEW DATABASE STATE TO USER_NAME;
      

Nächste Schritte