Delta menyalin dari database dengan tabel kontrol
BERLAKU UNTUK:Azure Data Factory Azure Synapse Analytics
Tip
Cobalah Data Factory di Microsoft Fabric, solusi analitik all-in-one untuk perusahaan. Microsoft Fabric mencakup semuanya mulai dari pergerakan data hingga ilmu data, analitik real time, kecerdasan bisnis, dan pelaporan. Pelajari cara memulai uji coba baru secara gratis!
Artikel ini menguraikan templat yang tersedia untuk memuat baris baru atau yang diperbarui secara bertahap dari tabel database ke Azure dengan menggunakan tabel kontrol eksternal yang menyimpan nilai marka air tinggi.
Templat ini mengharuskan skema database sumber berisi kolom tanda waktu atau kunci penambahan untuk mengidentifikasi baris baru atau yang diperbarui.
Catatan
Jika Anda memiliki kolom tanda waktu di database sumber Anda untuk mengidentifikasi baris baru atau yang diperbarui tetapi Anda tidak ingin membuat tabel kontrol eksternal untuk digunakan untuk penyalinan delta, Anda bisa menggunakan alat Data Penyalinan Azure Data Factory untuk mendapatkan alur. Alat itu menggunakan pemicu waktu terjadwal sebagai variabel untuk membaca baris baru dari database sumber.
Tentang templat solusi ini
Templat ini pertama kali mengambil nilai marka air lama dan membandingkannya dengan nilai marka air saat ini. Setelah itu, hanya menyalin perubahan dari database sumber, berdasarkan perbandingan antara dua nilai marka air. Akhirnya, ia menyimpan nilai marka air tinggi baru ke tabel kontrol eksternal untuk pemuatan data delta lain kali.
Templat berisi empat aktivitas:
- Pencarian mengambil nilai marka air tinggi yang lama, yang disimpan dalam tabel kontrol eksternal.
- Aktivitas Pencarian lain mengambil nilai marka air tinggi saat ini dari database sumber.
- Menyalin hanya menyalin berubah dari database sumber ke penyimpanan tujuan. Kueri yang mengidentifikasi perubahan dalam database sumber mirip dengan 'SELECT * FROM Data_Source_Table WHERE TIMESTAMP_Column > “last high-watermark” dan TIMESTAMP_Column <= “current high-watermark”'.
- SqlServerStoredProcedure menulis nilai marka air tinggi saat ini ke tabel kontrol eksternal untuk penyalinan delta lain kali.
Templat menentukan parameter berikut:
- Data_Source_Table_Name adalah tabel dalam database sumber tempat Anda ingin memuat data.
- Data_Source_WaterMarkColumn adalah nama kolom dalam tabel sumber yang digunakan untuk mengidentifikasi baris baru atau yang diperbarui. Jenis kolom ini biasanya tanggalwaktu, INT, atau sejenisnya.
- Data_Destination_Container adalah jalur akar tempat data disalin di penyimpanan tujuan Anda.
- Data_Destination_Directory adalah jalur direktori di bawah akar tempat data disalin di penyimpanan tujuan Anda.
- Data_Destination_Table_Name adalah tempat di mana data disalin di penyimpanan tujuan Anda (berlaku saat "Azure Synapse Analytics" dipilih sebagai Tujuan Data).
- Data_Destination_Folder_Path adalah tempat di mana data disalin di penyimpanan tujuan Anda (berlaku saat "Sistem File" atau "Azure Data Lake Storage Gen1" dipilih sebagai Tujuan Data).
- Control_Table_Table_Name adalah tabel kontrol eksternal yang menyimpan nilai marka air tinggi.
- Control_Table_Column_Name adalah kolom dalam tabel kontrol eksternal yang menyimpan nilai marka air tinggi.
Cara menggunakan templat solusi ini
Jelajahi tabel sumber yang ingin Anda muat, dan tentukan kolom marka air tinggi yang bisa digunakan untuk mengidentifikasi baris baru atau yang diperbarui. Jenis kolom ini mungkin tanggalwaktu, INT, atau sejenisnya. Nilai kolom ini meningkat saat baris baru ditambahkan. Dari contoh tabel sumber berikut (data_source_table), kita bisa menggunakan kolom LastModifytime sebagai kolom marka air tinggi.
PersonID Name LastModifytime 1 aaaa 2017-09-01 00:56:00.000 2 bbbb 2017-09-02 05:23:00.000 3 cccc 2017-09-03 02:36:00.000 4 dddd 2017-09-04 03:21:00.000 5 eeee 2017-09-05 08:06:00.000 6 fffffff 2017-09-06 02:23:00.000 7 gggg 2017-09-07 09:01:00.000 8 hhhh 2017-09-08 09:01:00.000 9 iiiiiiiii 2017-09-09 09:01:00.000
Buat tabel kontrol di SQL Server atau Azure SQL Database untuk menyimpan nilai marka air tinggi untuk pemuatan data delta. Dalam contoh berikut, nama tabel kontrol adalah watermarktable. Dalam tabel ini, WatermarkValue adalah kolom yang menyimpan nilai marka air tinggi, dan jenisnya adalah tanggalwaktu.
create table watermarktable ( WatermarkValue datetime, ); INSERT INTO watermarktable VALUES ('1/1/2010 12:00:00 AM')
Buat prosedur yang disimpan dalam instans SQL Server atau Azure SQL Database yang Anda gunakan untuk membuat tabel kontrol. Prosedur yang disimpan digunakan untuk menulis nilai marka air tinggi baru ke tabel kontrol eksternal untuk pemuatan data delta lain kali.
CREATE PROCEDURE update_watermark @LastModifiedtime datetime AS BEGIN UPDATE watermarktable SET [WatermarkValue] = @LastModifiedtime END
Buka Penyalinan delta dari templat Database. Buat koneksi Baru ke database sumber yang ingin Anda salin datanya.
Buat koneksi Baru ke penyimpanan data tujuan tempat Anda ingin menyalin data.
Buat koneksi Baru ke tabel kontrol eksternal dan prosedur tersimpan yang Anda buat di langkah 2 dan 3.
Pilih Gunakan templat ini.
Anda melihat alur yang tersedia, seperti yang diperlihatkan dalam contoh berikut:
Pilih Prosedur Tersimpan. Untuk Nama prosedur tersimpan, pilih [dbo].[ update_watermark]. Pilih Impor parameter, lalu pilih Tambahkan konten dinamis.
Tulis konten @{activity('LookupCurrentWaterMark').output.firstRow.NewWatermarkValue}, lalu pilih Selesai.
Pilih Debug, masukkan Parameter, lalu pilih Selesai.
Hasil yang mirip dengan contoh berikut ditampilkan:
Anda bisa membuat baris baru di tabel sumber Anda. Berikut adalah contoh bahasa SQL untuk membuat baris baru:
INSERT INTO data_source_table VALUES (10, 'newdata','9/10/2017 2:23:00 AM') INSERT INTO data_source_table VALUES (11, 'newdata','9/11/2017 9:01:00 AM')
Untuk menjalankan alur lagi, pilih Debug, masukkan Parameter, lalu pilih Selesai.
Anda akan melihat bahwa hanya baris baru yang disalin ke tujuan.
(Opsional:) Jika Anda memilih Azure Synapse Analytics sebagai tujuan data, Anda juga harus menyediakan koneksi ke penyimpanan Blob Azure untuk pementasan, yang diperlukan oleh Azure Synapse Analytics Polybase. Templat akan menghasilkan jalur kontainer untuk Anda. Setelah alur berjalan, periksa apakah kontainer telah dibuat di penyimpanan Blob.
Konten terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk