Bagikan melalui


Tutorial: Menyinkronkan data dari penyimpanan SQL Edge ke Azure Blob dengan menggunakan Azure Data Factory

Penting

Azure SQL Edge tidak lagi mendukung platform ARM64.

Tutorial ini menunjukkan kepada Anda cara menggunakan Azure Data Factory untuk menyinkronkan data secara bertahap ke penyimpanan Azure Blob dari tabel dalam instans Azure SQL Edge.

Sebelum Anda mulai

Jika Anda belum membuat database atau tabel dalam penyebaran Azure SQL Edge, gunakan salah satu metode berikut untuk membuatnya:

  • Gunakan SQL Server Management Studio atau Azure Data Studio untuk menyambungkan ke SQL Edge. Jalankan skrip SQL untuk membuat database dan tabel.

  • Buat database dan tabel dengan menggunakan sqlcmd dengan langsung menyambungkan ke modul SQL Edge. Untuk informasi selengkapnya, lihat Menyambungkan ke Mesin Database dengan menggunakan sqlcmd.

  • Gunakan SQLPackage.exe untuk menyebarkan file paket DAC ke kontainer SQL Edge. Anda dapat mengotomatiskan proses ini dengan menentukan URI file SqlPackage sebagai bagian dari konfigurasi properti yang diinginkan modul. Anda juga dapat langsung menggunakan SqlPackage.exe klien anda untuk menyebarkan paket DAC ke SQL Edge.

    Untuk informasi tentang cara mengunduh SqlPackage.exe, lihat Mengunduh dan menginstal sqlpackage. Berikut ini adalah beberapa contoh perintah untuk SqlPackage.exe. Untuk informasi selengkapnya, lihat dokumentasi SqlPackage.exe.

    Membuat paket DAC

    sqlpackage /Action:Extract /SourceConnectionString:"Data Source=<Server_Name>,<port>;Initial Catalog=<DB_name>;User ID=<user>;Password=<password>" /TargetFile:<dacpac_file_name>
    

    Menerapkan paket DAC

    sqlpackage /Action:Publish /Sourcefile:<dacpac_file_name> /TargetServerName:<Server_Name>,<port> /TargetDatabaseName:<DB_Name> /TargetUser:<user> /TargetPassword:<password>
    

Membuat tabel dan prosedur SQL untuk menyimpan dan memperbarui tingkat watermark

Tabel watermark digunakan untuk menyimpan tanda waktu terakhir hingga data mana yang telah disinkronkan dengan Azure Storage. Prosedur tersimpan Transact-SQL (T-SQL) digunakan untuk memperbarui tabel watermark setelah setiap sinkronisasi.

Jalankan perintah ini pada instans SQL Edge:

CREATE TABLE [dbo].[watermarktable] (
    TableName VARCHAR(255),
    WatermarkValue DATETIME,
);
GO

CREATE PROCEDURE usp_write_watermark @timestamp DATETIME,
    @TableName VARCHAR(50)
AS
BEGIN
    UPDATE [dbo].[watermarktable]
    SET [WatermarkValue] = @timestamp
    WHERE [TableName] = @TableName;
END
GO

Membuat saluran alur Data Factory

Di bagian ini, Anda akan membuat alur Azure Data Factory untuk menyinkronkan data ke penyimpanan Azure Blob dari tabel di Azure SQL Edge.

Membuat pabrik data dengan menggunakan UI Pabrik Data

Buat pabrik data dengan mengikuti instruksi dalam tutorial ini.

Membuat saluran alur Data Factory

  1. Pada halaman Mari kita mulai UI Data Factory, pilih Buat pipeline.

    Screenshot of the create a Data Factory pipeline.

  2. Pada halaman Umum jendela Properti untuk alur, masukkan PeriodicSync untuk nama tersebut.

  3. Tambahkan aktivitas Pencarian untuk mendapatkan nilai watermark lama. Di panel Aktivitas, perluas Umum dan seret aktivitas Pencarian ke permukaan perancang alur. Ubah nama aktivitas menjadi OldWatermark.

    Screenshot of adding the old watermark lookup.

  4. Beralih ke tab Pengaturan dan pilih Baru untuk Himpunan Data Sumber. Sekarang Anda akan membuat himpunan data untuk mewakili data dalam tabel watermark. Tabel ini berisi watermark lama yang digunakan dalam operasi salinan sebelumnya.

  5. Di jendela Himpunan Data Baru, pilih Azure SQL Server, lalu pilih Lanjutkan.

  6. Di jendela Atur properti untuk himpunan data, di bawah Nama, masukkan WatermarkDataset.

  7. Untuk Layanan Tertaut, pilih Baru, lalu selesaikan langkah-langkah ini:

    1. Di bawahNama, masukkan SQLDBEdgeLinkedService.

    2. Di bawah Nama server, masukkan detail server SQL Edge Anda.

    3. Pilih nama Database Anda dari daftar.

    4. Masukkan Nama pengguna dan Kata Sandi Anda.

    5. Untuk menguji koneksi ke instans SQL Edge, pilih Pengujian koneksi.

    6. Pilih Buat.

      Screenshot of creating a linked service.

    7. Pilih OK.

  8. Pada tab Pengaturan, pilih Edit.

  9. Pada tab Koneksi ion, pilih [dbo].[watermarktable] untuk Tabel. Jika Anda ingin melihat pratinjau data dalam tabel, pilih Pratinjau data.

  10. Beralih ke editor alur dengan memilih tab alur di bagian atas atau dengan memilih nama alur di tampilan pohon di sebelah kiri. Di jendela properti untuk aktivitas Pencarian, konfirmasikan bahwa WatermarkDataset dipilih di daftar Himpunan data sumber.

  11. Di panel Aktivitas, perluas Umum dan seret aktivitas Pencarian lain ke permukaan perancang alur. Atur nama ke NewWatermark pada tab Umum dari jendela properti. Aktivitas Pencarian ini mendapatkan nilai watermark baru dari tabel yang berisi data sumber sehingga dapat disalin ke tujuan.

  12. Di jendela properti untuk aktivitas Pencarian kedua, beralihlah ke tab Pengaturan dan pilih Baru untuk membuat himpunan data untuk mengarah ke tabel sumber yang berisi nilai watermark baru.

  13. Di jendela Himpunan Data Baru, pilih instans SQL Edge, lalu pilih Lanjutkan.

    1. Di jendela Atur properti, di bawah Nama, masukkan SourceDataset. Di bawah Layanan tertaut, pilih SQLDBEdgeLinkedService.

    2. Di bawah Tabel, pilih tabel yang ingin Anda sinkronkan. Anda juga dapat menentukan kueri untuk himpunan data ini, seperti yang dijelaskan nanti dalam tutorial ini. Kueri lebih diutamakan daripada tabel yang Anda tentukan dalam langkah ini.

    3. Pilih OK.

  14. Beralih ke editor alur dengan memilih tab alur di bagian atas atau dengan memilih nama alur di tampilan pohon di sebelah kiri. Di jendela properti untuk aktivitas Pencarian, konfirmasikan bahwa SourceDataset dipilih di daftar himpunan data sumber.

  15. Pilih Kueri di bawah Gunakan kueri. Perbarui nama tabel dalam kueri berikut ini lalu masukkan kueri. Anda hanya memilih nilai maksimum timestamp dari tabel. Pastikan untuk memilih Baris pertama saja.

    SELECT MAX(timestamp) AS NewWatermarkValue
    FROM [TableName];
    

    Screenshot of a select query.

  16. Di panel Aktivitas, perluas Pindahkan & Transformasi dan seret aktivitas Salin dari panel Aktivitas ke permukaan perancang. Atur nama aktivitas ke IncrementalCopy.

  17. Hubungkan kedua aktivitas Pencarian ke aktivitas Salin dengan menyeret tombol hijau yang dilampirkan ke aktivitas Pencarian ke aktivitas Salin. Rilis tombol mouse saat Anda melihat warna batas aktivitas Salin berubah menjadi biru.

  18. Pilih aktivitas Salin dan konfirmasikan bahwa Anda melihat properti untuk aktivitas di jendela Properti.

  19. Beralih ke tab Sumber di jendela Properti dan selesaikan langkah-langkah ini:

    1. Dalam kotak Himpunan data sumber, pilih SourceDataset.

    2. Di bawah Gunakan kueri, pilih Kueri.

    3. Masukkan kueri SQL dalam kotak Kueri. Berikut contoh kueri:

    SELECT *
    FROM TemperatureSensor
    WHERE timestamp > '@{activity(' OldWaterMark ').output.firstRow.WatermarkValue}'
        AND timestamp <= '@{activity(' NewWaterMark ').output.firstRow.NewWatermarkvalue}';
    
  20. Pada tab Sink, pilih Baru di bawah Himpunan Data Sink.

  21. Dalam tutorial ini, penyimpanan data sink adalah penyimpanan data penyimpanan Azure Blob. Pilih penyimpanan Azure Blob, lalu pilih Lanjutkan di jendela Himpunan Data Baru.

  22. Di jendela Pilih Format, pilih format data Anda, lalu pilih Lanjutkan.

  23. Di jendela Atur Properti, di bawah Nama, masukkan SinkDataset. Di bawah Layanan tertaut, pilih Baru. Sekarang Anda akan membuat koneksi (layanan tertaut) ke penyimpanan Azure Blob Anda.

  24. Di jendela Layanan Tertaut Baru (penyimpanan Azure Blob), selesaikan langkah-langkah ini:

    1. Dalam kotak Nama, masukkan AzureStorageLinkedService.

    2. Di bawah Nama akun penyimpanan, pilih akun penyimpanan Azure untuk langganan Azure Anda.

    3. Uji koneksi lalu pilih Selesai.

  25. Di jendela Atur Properti, konfirmasikan bahwa AzureStorageLinkedService dipilih di bawah Layanan tertaut. Pilih Buat dan OK.

  26. Pada tab Sink, pilih Edit.

  27. Buka tab Koneksi di SinkDataset dan selesaikan langkah-langkah ini:

    1. Di bawah Jalur file, masukkan asdedatasync/incrementalcopy, di mana asdedatasync adalah nama kontainer blob dan incrementalcopy merupakan nama folder. Buat kontainer jika tidak ada, atau gunakan nama yang sudah ada. Azure Data Factory secara otomatis membuat folder incrementalcopy output jika tidak ada. Anda juga dapat menggunakan tombol Telusurijalur File untuk menavigasi ke folder dalam kontainer blob.

    2. Untuk bagian File dari jalur File, pilih Tambahkan konten dinamis [Alt+P], lalu masukkan @CONCAT('Incremental-', pipeline().RunId, '.txt') di jendela yang terbuka. Pilih Selesai. Nama file dibuat secara dinamis oleh ekspresi. Setiap eksekusi alur memiliki ID unik. Aktivitas Salin menggunakan eksekusi ID untuk menghasilkan nama file.

  28. Beralih ke editor alur dengan memilih tab alur di bagian atas atau dengan memilih nama alur di tampilan pohon di sebelah kiri.

  29. Di panel Aktivitas, perluas Umum dan seret aktivitas Prosedur Tersimpan dari panel Aktivitas ke permukaan perancang alur. Menyambungkan output hijau (sukses) dari aktivitas Salin ke aktivitas Prosedur Tersimpan.

  30. Pilih Aktivitas Prosedur Tersimpan di perancang alur dan ubah namanya menjadi SPtoUpdateWatermarkActivity.

  31. Beralih ke tab Akun SQL, dan pilih *QLDBEdgeLinkedService di bawah Layanan tertaut.

  32. Beralih ke tab Prosedur Tersimpan dan selesaikan langkah-langkah ini:

    1. Di bawah Nama prosedur tersimpan, pilih [dbo].[usp_write_watermark].

    2. Untuk menentukan nilai untuk parameter prosedur tersimpan, pilih Impor parameter dan masukkan nilai-nilai ini untuk parameter:

    Nama Jenis Nilai
    LastModifiedTime DateTime @{activity('NewWaterMark').output.firstRow.NewWatermarkvalue}
    TableName String @{activity('OldWaterMark').output.firstRow.TableName}
  33. Untuk memvalidasi pengaturan alur, pilih Validasi pada toolbar. Konfirmasikan bahwa tidak ada kesalahan validasi. Untuk menutup jendela Laporan Validasi Alur, pilih >>.

  34. Terbitkan entitas (layanan tertaut, himpunan data, dan alur) ke layanan Azure Data Factory dengan memilih tombol Terbitkan Semua. Tunggu hingga Anda melihat pesan yang mengonfirmasi bahwa operasi penerbitan telah berhasil.

Memicu alur berdasarkan jadwal

  1. Pada toolbar alur, pilih Tambahkan Pemicu, pilih Baru/Edit,lalu pilih Baru.

  2. Beri nama pemicu Anda HourlySync. Di bawah Jenis, pilih Jadwalkan. Atur Pengulangan ke setiap 1 jam.

  3. Pilih OK.

  4. Pilih Terbitkan Semua.

  5. Pilih Picu Sekarang.

  6. Beralih ke tab Monitor di bagian kiri. Anda dapat melihat status eksekusi alur yang dipicu oleh pemicu manual. Pilih Refresh untuk menyegarkan daftar.

Langkah berikutnya

  • Alur Azure Data Factory dalam tutorial ini menyalin data dari tabel pada instans SQL Edge ke lokasi di penyimpanan Azure Blob setiap jam satu kali. Untuk mempelajari tentang menggunakan Data Factory dalam skenario lain, lihat tutorial ini.