Mengonfigurasi database Azure SQL untuk CDC

Halaman ini menjelaskan cara mengonfigurasi change data capture (CDC) untuk mengalirkan data dari database Azure SQL ke tujuan yang didukung, seperti BigQuery atau Cloud Storage.

Untuk mengonfigurasi database Azure SQL:

  1. Aktifkan pengambilan data perubahan (CDC) untuk database Azure SQL sumber Anda. Untuk melakukannya, hubungkan ke database menggunakan Azure Data Studio atau SQL Server Management Studio, lalu jalankan perintah berikut:

    EXEC sys.sp_cdc_enable_db;
    GO
    
  2. Aktifkan CDC pada tabel yang perubahannya perlu Anda ambil:

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

    Ganti kode berikut:

    • SCHEMA_NAME: nama skema tempat tabel berada
    • TABLE_NAME: nama tabel yang ingin Anda aktifkan CDC-nya
  3. Aktifkan isolasi snapshot.

    Saat mengisi ulang data dari database SQL Server, Anda harus memastikan snapshot yang konsisten. Jika Anda tidak menerapkan setelan yang dijelaskan di bagian ini, perubahan yang dilakukan pada database selama proses pengisian ulang dapat menyebabkan duplikat atau hasil yang salah, terutama untuk tabel tanpa kunci utama.

    Mengaktifkan isolasi snapshot akan membuat tampilan sementara database Anda di awal proses pengisian ulang. Hal ini memastikan bahwa data yang disalin tetap konsisten, meskipun pengguna lain membuat perubahan pada tabel aktif pada saat yang sama. Mengaktifkan isolasi snapshot mungkin memiliki sedikit dampak performa, tetapi penting untuk ekstraksi data yang andal.

    Untuk mengaktifkan isolasi snapshot:

    1. Hubungkan ke database Anda menggunakan klien SQL Server.
    2. Jalankan perintah berikut:
    ALTER DATABASE DATABASE_NAME SET ALLOW_SNAPSHOT_ISOLATION ON;
    

    Ganti DATABASE_NAME dengan nama database Anda.

  4. Buat pengguna Datastream:

    1. Hubungkan ke database master dan buat login:

      USE master;
      CREATE LOGIN YOUR_LOGIN WITH PASSWORD = 'PASSWORD';
      
    2. Hubungkan ke database sumber dan buat pengguna untuk login Anda:

      USE DATABASE_NAME
      CREATE USER USER_NAME FOR LOGIN YOUR_LOGIN;
      
    3. Tetapkan peran db_owner dan db_denydatawriter kepada pengguna Anda:

      EXEC sp_addrolemember 'db_owner', 'USER_NAME';
      EXEC sp_addrolemember 'db_denydatawriter', 'USER_NAME';
      
    4. Berikan izin VIEW DATABASE STATE kepada pengguna Anda:

      GRANT VIEW DATABASE STATE TO USER_NAME;
      

Langkah berikutnya