Ubah Pengambilan Data (SSIS)

Berlaku untuk: Integration Runtime SSIS SQL Server di Azure Data Factory

Dalam SQL Server, tangkapan data perubahan menawarkan solusi yang efektif untuk tantangan melakukan beban inkremental secara efisien dari tabel sumber ke mart data dan gudang data.

Apa itu Change Data Capture?

Tabel sumber berubah dari waktu ke waktu. Mart data atau gudang data yang didasarkan pada tabel tersebut perlu mencerminkan perubahan ini. Namun, proses yang secara berkala menyalin rekam jepret dari seluruh sumber menghabiskan terlalu banyak waktu dan sumber daya. Pendekatan alternatif yang mencakup kolom tanda waktu, pemicu, atau kueri kompleks sering merusak performa dan meningkatkan kompleksitas. Apa yang diperlukan adalah aliran data perubahan yang andal yang terstruktur sehingga dapat dengan mudah diterapkan oleh konsumen untuk menargetkan representasi data. Ubah pengambilan data di SQL Server menyediakan solusi ini.

Fitur ubah pengambilan data mesin database menangkap aktivitas sisipkan, perbarui, dan hapus yang diterapkan ke tabel SQL Server, dan membuat detail perubahan tersedia dalam format relasional yang mudah dikonsumsi. Tabel perubahan yang digunakan oleh tangkapan data perubahan berisi kolom yang mencerminkan struktur kolom tabel sumber terlacak, bersama dengan metadata yang diperlukan untuk memahami perubahan yang telah terjadi berdasarkan baris demi baris.

Catatan

Mengubah pengambilan data tidak tersedia di setiap edisi Microsoft SQL Server. Untuk daftar fitur yang didukung oleh edisi SQL Server, lihat Fitur yang Didukung oleh Edisi SQL Server 2016.

Cara Kerja Penangkapan Data Perubahan di Layanan Integrasi

Paket Layanan Integrasi dapat dengan mudah memanen data perubahan dalam database SQL Server untuk melakukan beban inkremental yang efisien ke gudang data. Namun, sebelum Anda dapat menggunakan Layanan Integrasi untuk memuat data perubahan, administrator harus mengaktifkan perubahan pengambilan data pada database dan tabel tempat Anda ingin mengambil perubahan. Untuk informasi selengkapnya tentang cara mengonfigurasi perubahan pengambilan data pada database, lihat Mengaktifkan dan Menonaktifkan Ubah Pengambilan Data (SQL Server).

Setelah administrator mengaktifkan perubahan pengambilan data pada database, Anda dapat membuat paket yang melakukan beban tambahan data perubahan. Diagram berikut menunjukkan langkah-langkah untuk membuat paket seperti itu yang melakukan beban tambahan dari satu tabel:

Mengubah langkah-langkah pembuatan paket pengambilan data

Seperti yang ditunjukkan pada diagram sebelumnya, membuat paket yang melakukan beban tambahan data yang diubah melibatkan langkah-langkah berikut:

Langkah 1: Merancang Alur Kontrol
Dalam alur kontrol dalam paket, tugas berikut perlu ditentukan:

  • Hitung nilai tanggalwaktu awal dan akhir untuk interval perubahan pada data sumber yang ingin Anda ambil.

    Untuk menghitung nilai-nilai ini, gunakan tugas Execute SQL atau ekspresi Integration Services dengan fungsi tanggalwaktu . Anda kemudian menyimpan titik akhir ini dalam variabel paket untuk digunakan nanti dalam paket.

    Untuk informasi selengkapnya:Tentukan Interval Data Perubahan

  • Tentukan apakah data perubahan untuk interval yang dipilih sudah siap. Langkah ini diperlukan karena proses pengambilan asinkron mungkin belum mencapai titik akhir yang dipilih.

    Untuk menentukan apakah data sudah siap, mulailah dengan kontainer For Loop untuk menunda eksekusi, jika perlu, hingga data perubahan untuk interval yang dipilih siap. Di dalam kontainer perulangan, gunakan tugas Jalankan SQL untuk mengkueri tabel pemetaan waktu yang dikelola dengan mengubah pengambilan data. Kemudian, gunakan tugas Skrip yang memanggil metode Thread.Sleep , atau tugas Execute SQL lainnya dengan pernyataan WAITFOR , untuk menunda eksekusi paket untuk sementara, jika perlu. Secara opsional, gunakan tugas Skrip lain untuk mencatat kondisi kesalahan atau waktu habis.

    Untuk informasi selengkapnya:Tentukan Apakah Data Perubahan Siap

  • Siapkan string kueri yang akan digunakan untuk mengkueri data perubahan.

    Gunakan tugas Skrip atau tugas Jalankan SQL untuk merakit pernyataan SQL yang akan digunakan untuk mengkueri perubahan.

    Untuk informasi selengkapnya:Bersiaplah untuk Mengkueri Perubahan Data

Langkah 2: Menyiapkan Kueri untuk Mengubah Data
Buat fungsi bernilai tabel yang akan mengkueri data.

Gunakan SQL Server Management Studio untuk mengembangkan dan menyimpan kueri.

Untuk informasi selengkapnya:Mengambil dan Memahami Data Perubahan

Langkah 3: Merancang Aliran Data
Dalam aliran data paket, tugas berikut perlu ditentukan:

  • Ambil data perubahan dari tabel perubahan.

    Untuk mengambil data, gunakan komponen sumber untuk mengkueri tabel perubahan untuk perubahan yang termasuk dalam interval yang dipilih. Sumber memanggil fungsi bernilai tabel Transact-SQL yang harus Anda buat sebelumnya.

    Untuk informasi selengkapnya:Mengambil dan Memahami Data Perubahan

  • Pisahkan perubahan menjadi sisipan, pembaruan, dan penghapusan untuk diproses.

    Untuk membagi perubahan, gunakan transformasi Pemisahan Bersyarah untuk mengarahkan sisipan, pembaruan, dan penghapusan ke output yang berbeda untuk pemrosesan yang sesuai.

    Untuk informasi selengkapnya:Proses Sisipkan, Updates, dan Hapus

  • Terapkan sisipan, penghapusan, dan pembaruan ke tujuan.

    Untuk menerapkan perubahan ke tujuan, gunakan komponen tujuan untuk menerapkan sisipan ke tujuan. Selain itu, gunakan transformasi Perintah OLE DB dengan pernyataan UPDATE dan DELETE berparameter untuk menerapkan pembaruan dan penghapusan ke tujuan. Anda juga dapat menerapkan pembaruan dan penghapusan dengan menggunakan komponen tujuan untuk menyimpan baris ke tabel sementara. Kemudian, gunakan tugas Jalankan SQL untuk melakukan operasi pembaruan massal dan penghapusan massal terhadap tujuan dari tabel sementara.

    Untuk informasi selengkapnya:Terapkan Perubahan ke Tujuan

Mengubah Data dari Beberapa Tabel

Proses yang diuraikan dalam diagram sebelumnya dan langkah-langkah melibatkan beban inkremental dari satu tabel. Ketika harus melakukan beban inkremental dari beberapa tabel, proses keseluruhannya sama. Namun, desain paket perlu diubah untuk mengakomodasi pemrosesan beberapa tabel. Untuk informasi selengkapnya tentang cara membuat paket yang melakukan beban inkremental dari beberapa tabel, lihat Melakukan Beban Tambahan Dari Beberapa Tabel.

Entri blog, Pola Desain SSIS - Beban Inkremental, di sqlblog.com