Menggunakan data referensi dari SQL Database untuk pekerjaan Azure Stream Analytics

Azure Stream Analytics mendukung Azure SQL Database sebagai sumber input untuk data referensi. Anda dapat menggunakan SQL Database sebagai data referensi untuk pekerjaan Analisis Aliran Anda di portal Microsoft Azure dan di Visual Studio dengan alat Analisis Aliran. Artikel ini menunjukkan cara melakukan kedua metode tersebut.

Portal Azure

Gunakan langkah-langkah berikut untuk menambahkan Azure SQL Database sebagai sumber input referensi menggunakan portal Microsoft Azure:

Prasyarat portal

  1. Membuat pekerjaan Azure Stream Analytics.

  2. Buat akun penyimpanan yang akan digunakan oleh tugas Analisis Aliran.

    Penting

    Azure Stream Analytics mempertahankan rekam jepret dalam akun penyimpanan ini. Saat mengonfigurasi kebijakan penyimpanan, sangat penting untuk memastikan bahwa rentang waktu yang dipilih secara efektif mencakup durasi pemulihan yang diinginkan untuk pekerjaan Azure Stream Analytics Anda.

  3. Buat Azure SQL Database Anda dengan himpunan data yang akan digunakan sebagai data referensi oleh pekerjaan Analisis Aliran.

Menentukan input data referensi SQL Database

  1. Di pekerjaan Analisis Aliran Anda, pilih Input di bawah Topologi pekerjaan. Klik Tambahkan input referensi dan pilih SQL Database.

    Inputs is selected in the left navigation pane. On Inputs, + Add reference input is selected, revealing a drop-down list that shows the values Blob storage and SQL Database.

  2. Isi Konfigurasi Input Analisis Aliran. Pilih nama database, nama server, nama pengguna, dan kata sandi. Jika Anda ingin input data referensi Anda di-refresh secara berkala, pilih “Aktif” untuk menentukan laju refresh dalam DD:HH:MM. Jika Anda memiliki himpunan data besar dengan laju refresh singkat. Kueri Delta memungkinkan Anda melacak perubahan dalam data referensi Anda dengan mengambil semua baris dalam Database SQL yang dimasukkan atau dihapus dalam waktu mulai, @deltaStartTime, dan waktu akhir @deltaEndTime.

Silakan lihat kueri delta.

When SQL Database is selected, the SQL Database New input page appears. There is a configuration form in the left pane, and a Snapshot query in the right pane.

  1. Uji kueri rekam jepret di editor kueri SQL. Untuk informasi selengkapnya, lihat Menggunakan editor kueri SQL portal Microsoft Azure untuk menyambungkan dan mengkueri data.

Menentukan akun penyimpanan dalam konfigurasi Pekerjaan

Navigasikan ke Pengaturan akun penyimpanan di bawah Konfigurasikan dan pilih Tambahkan akun penyimpanan.

Storage account settings is selected in the left pane. There is an Add storage account button in the right pane.

Mulai pekerjaan

Setelah mengonfigurasi input, output, dan kueri lain, Anda dapat memulai pekerjaan Analisis Aliran.

Alat untuk Visual Studio

Gunakan langkah-langkah berikut untuk menambahkan Azure SQL Database sebagai sumber input referensi menggunakan Visual Studio:

Prasyarat Visual Studio

  1. Menginstal alat Analisis Aliran untuk Visual Studio. Versi Visual Studio berikut didukung:

    • Visual Studio 2015
    • Visual Studio 2019
  2. Biasakan diri dengan mulai cepat Alat Analisis Aliran untuk Visual Studio.

  3. Membuat akun penyimpanan.

    Penting

    Azure Stream Analytics mempertahankan rekam jepret dalam akun penyimpanan ini. Saat mengonfigurasi kebijakan penyimpanan, sangat penting untuk memastikan bahwa rentang waktu yang dipilih secara efektif mencakup durasi pemulihan yang diinginkan untuk pekerjaan Azure Stream Analytics Anda.

Membuat tabel SQL Database

Gunakan SQL Server Management Studio untuk membuat tabel untuk menyimpan data referensi Anda. Lihat Merancang Azure SQL Database pertama Anda menggunakan SQL Server Management Studio untuk detailnya.

Tabel contoh yang digunakan dalam contoh berikut dibuat dari pernyataan berikut:

create table chemicals(Id Bigint,Name Nvarchar(max),FullName Nvarchar(max));

Memilih langganan Anda

  1. Di Visual Studio, pada menu Tampilan, pilih Penjelajah Server.

  2. Klik kanan Azure, pilih Sambungkan ke Langganan Microsoft Azure, dan masuk dengan akun Azure Anda.

Membuat proyek Analisis Aliran

  1. Pilih File > Proyek Baru.

  2. Di daftar templat di sebelah kiri, pilih Analisis Aliran, lalu pilihAplikasi Azure Stream Analytics.

  3. Masukkan Nama, Lokasi, serta Nama solusi proyek, dan pilih OK.

    The Stream Analytics template is selected, Azure Stream Analytics Application is selected, and the Name, Location, and Solution names boxes are highlighted.

Menentukan input data referensi SQL Database

  1. Buat input baru.

    On Add New Item, Input is selected.

  2. Klik dua kali Input.json di Penjelajah Solusi.

  3. Isi Konfigurasi Input Analisis Aliran. Pilih nama database, nama server, jenis refresh, dan laju refresh. Tentukan laju refresh dalam format DD:HH:MM.

    In Stream Analytics Input Configuration, values are entered or selected from drop-down lists.

    Jika Anda memilih "Cukup jalankan satu kali" atau "Jalankan secara berkala", satu file SQL CodeBehind bernama [Input Alias].snapshot.sql dibuat dalam proyek di bawah node file Input.json.

    The SQL CodeBehind file Chemicals.snapshot.sql is highlighted.

    Jika Anda memilih "Refresh Secara Berkala dengan Delta", dua file SQL CodeBehind akan dibuat: [Input Alias].snapshot.sql dan [Input Alias].delta.sql.

    The SQL CodeBehind files Chemicals.delta.sql and Chemicals.snapshot.sql are highlighted.

  4. Buka file SQL di editor dan tulis kueri SQL.

  5. Jika Anda menggunakan Visual Studio 2019, dan sudah menginstal alat SQL Server Data, Anda dapat menguji kueri dengan mengeklik Jalankan. Jendela wizard akan muncul untuk membantu Anda menyambungkan ke SQL Database dan hasil kueri akan muncul di jendela di bagian bawah.

Menentukan akun penyimpanan

Buka JobConfig.json untuk menentukan akun penyimpanan untuk menyimpan rekam jepret referensi SQL.

Stream Analytics Job Configure Configuration is shown with default values. The Global Storage Settings are highlighted.

Menguji secara lokal dan menyebarkan ke Azure

Sebelum menyebarkan pekerjaan ke Azure, Anda dapat menguji logika kueri secara lokal terhadap data input langsung. Untuk informasi selengkapnya tentang fitur ini, lihat Menguji data langsung secara lokal menggunakan alat Azure Stream Analytics untuk Visual Studio (Pratinjau). Saat Anda sudah selesai menguji, klik Kirim ke Azure. Rujuk mulai cepat Membuat Analisis Aliran menggunakan alat Azure Stream Analytics untuk Visual Studio untuk mempelajari cara memulai pekerjaan.

Kueri delta

Saat menggunakan kueri delta, tabel temporal di Azure SQL Database disarankan.

  1. Buat tabel temporal di Azure SQL Database.

       CREATE TABLE DeviceTemporal
       (
          [DeviceId] int NOT NULL PRIMARY KEY CLUSTERED
          , [GroupDeviceId] nvarchar(100) NOT NULL
          , [Description] nvarchar(100) NOT NULL
          , [ValidFrom] datetime2 (0) GENERATED ALWAYS AS ROW START
          , [ValidTo] datetime2 (0) GENERATED ALWAYS AS ROW END
          , PERIOD FOR SYSTEM_TIME (ValidFrom, ValidTo)
       )
       WITH (SYSTEM_VERSIONING = ON (HISTORY_TABLE = dbo.DeviceHistory));  -- DeviceHistory table will be used in Delta query
    
  2. Tulis kueri rekam jepret.

    Gunakan parameter @snapshotTime untuk menginstruksikan runtime bahasa umum Azure Stream Analytics agar mendapatkan himpunan data referensi dari tabel temporal SQL Database yang valid pada waktu sistem. Jika Anda tidak memberikan parameter ini, Anda berisiko mendapatkan himpunan data referensi dasar yang tidak akurat akibat penyimpangan jam. Contoh kueri rekam jepret lengkap diperlihatkan di bawah ini:

       SELECT DeviceId, GroupDeviceId, [Description]
       FROM dbo.DeviceTemporal
       FOR SYSTEM_TIME AS OF @snapshotTime
    
  3. Tulis kueri delta.

    Kueri ini mengambil semua baris dalam SQL Database yang disisipkan atau dihapus dalam waktu mulai, @deltaStartTime, dan waktu akhir @deltaEndTime. Kueri delta harus mengembalikan kolom yang sama seperti kueri rekam jepret, serta kolom operasi. Kolom ini menentukan apakah baris disisipkan atau dihapus di antara @deltaStartTime dan @deltaEndTime. Baris yang dihasilkan ditandai bendera sebagai 1 jika rekaman disisipkan, atau 2 jika dihapus. Kueri juga harus menambahkan marka air dari sisi SQL Server untuk memastikan semua pembaruan dalam periode delta ditangkap dengan tepat. Menggunakan kueri delta tanpa marka air dapat menghasilkan himpunan data yang salah.

    Untuk rekaman yang diperbarui, tabel temporal melakukan pembukuan dengan menangkap operasi penyisipan dan penghapusan. Runtime Analisis Aliran selanjutnya akan menerapkan hasil kueri delta ke rekam jepret sebelumnya agar data referensi tetap baru. Contoh kueri delta ditampilkan di bawah ini:

       SELECT DeviceId, GroupDeviceId, Description, ValidFrom as _watermark_, 1 as _operation_
       FROM dbo.DeviceTemporal
       WHERE ValidFrom BETWEEN @deltaStartTime AND @deltaEndTime   -- records inserted
       UNION
       SELECT DeviceId, GroupDeviceId, Description, ValidTo as _watermark_, 2 as _operation_
       FROM dbo.DeviceHistory   -- table we created in step 1
       WHERE ValidTo BETWEEN @deltaStartTime AND @deltaEndTime     -- record deleted
    

    Perhatikan bahwa runtime Analisis Aliran dapat secara berkala menjalankan kueri rekam jepret selain kueri delta untuk menyimpan titik pemeriksaan.

    Penting

    Saat menggunakan kueri delta data referensi, jangan membuat pembaruan yang identik pada tabel data referensi temporal beberapa kali. Ini dapat menyebabkan hasil yang salah diproduksi. Berikut adalah contoh yang dapat menyebabkan data referensi menghasilkan hasil yang salah:

     UPDATE myTable SET VALUE=2 WHERE ID = 1;
     UPDATE myTable SET VALUE=2 WHERE ID = 1;      
    

    Contoh yang benar:

     UPDATE myTable SET VALUE = 2 WHERE ID = 1 and not exists (select * from myTable where ID = 1 and value = 2);
    

    Ini memastikan tidak ada pembaruan duplikat yang dilakukan.

Menguji kueri Anda

Penting untuk memverifikasi bahwa kueri Anda mengembalikan himpunan data yang diharapkan yang akan digunakan oleh pekerjaan Analisis Aliran sebagai data referensi. Untuk menguji kueri Anda, buka Input di bawah bagian Topologi Pekerjaan di portal. Anda selanjutnya dapat memilih Sampel Data pada input Referensi SQL Database Anda. Setelah sampel tersedia, Anda dapat mengunduh file dan memeriksa untuk melihat apakah data yang dikembalikan seperti yang diharapkan. Jika Anda ingin mengoptimalkan pengembangan dan menguji perulangan, sebaiknya gunakan alat Analisis Aliran untuk Visual Studio. Anda juga dapat menggunakan alat lain dari preferensi Anda untuk terlebih dahulu memastikan kueri mengembalikan hasil yang tepat dari Azure SQL Database Anda, lalu menggunakannya dalam pekerjaan Analisis Aliran Anda.

Menguji kueri Anda dengan Visual Studio Code

Instal Alat Azure Stream Analytics dan SQL Server (mssql) di Visual Studio Code dan siapkan proyek ASA Anda. Untuk informasi selengkapnya, lihat Mulai Cepat: Membuat pekerjaan Azure Stream Analytics di Visual Studio Code dan tutorial ekstensi SQL Server (mssql).

  1. Konfigurasikan input data referensi SQL Anda.

    A Visual Studio Code editor (tab) shows ReferenceSQLDatabase.json.

  2. Pilih ikon SQL Server dan klik Tambahkan Koneksi.

    + Add Connection appears in the left pane and is highlighted.

  3. Isi informasi koneksi.

    The two boxes for database and server information are highlighted.

  4. Klik kanan di referensi SQL dan pilih Jalankan Kueri.

    Execute Query is highlighted in the context menu.

  5. Pilih koneksi Anda.

    The dialog box says

  6. Tinjau dan verifikasi hasil kueri Anda.

    The query search results are in a VS Code editor tab.

Tanya Jawab Umum

Apakah saya akan dikenakan biaya tambahan dengan menggunakan input data referensi SQL di Azure Stream Analytics?

Tidak ada biaya tambahan per unit streaming dalam pekerjaan Analisis Aliran. Namun, pekerjaan Analisis Aliran harus memiliki akun penyimpanan Azure terkait. Pekerjaan Analisis Aliran mengkueri SQL DB (selama interval mulai dan refresh pekerjaan) untuk mengambil himpunan data referensi dan menyimpan rekam jepret tersebut di akun penyimpanan. Menyimpan rekam jepret ini akan dikenakan biaya tambahan yang diperinci dalam halaman harga untuk akun penyimpanan Azure.

Bagaimana cara mengetahui rekam jepret data referensi sedang dikueri dari SQL DB dan digunakan dalam pekerjaan Azure Stream Analytics?

Ada dua metrik yang difilter oleh Nama Logika (di bawah portal Metrics Azure) yang dapat Anda gunakan untuk memantau kesehatan input data referensi SQL Database.

  • InputEvents: Metrik ini mengukur jumlah rekaman yang dimuat dari himpunan data referensi SQL Database.
  • InputEventBytes: Metrik ini mengukur ukuran rekam jepret data referensi yang dimuat dalam memori pekerjaan Analisis Aliran.

Kombinasi kedua metrik ini dapat digunakan untuk menyimpulkan apakah pekerjaan mengkueri SQL Database untuk mengambil himpunan data referensi, lalu memuatnya ke memori.

Apakah saya akan memerlukan jenis Azure SQL Database khusus?

Azure Stream Analytics akan berfungsi dengan semua jenis Azure SQL Database. Namun, penting untuk dipahami bahwa laju refresh yang ditetapkan untuk input data referensi Anda dapat memengaruhi pemuatan kueri Anda. Untuk menggunakan opsi kueri delta, sebaiknya gunakan tabel temporal di Azure SQL Database.

Mengapa Azure Stream Analytics menyimpan rekam jepret di akun Azure Storage?

Analisis Aliran menjamin pemrosesan peristiwa tepat satu kali dan pengiriman peristiwa setidaknya satu kali. Dalam kasus ketika masalah sementara memengaruhi pekerjaan Anda, sejumlah kecil pemutaran ulang diperlukan untuk memulihkan status. Untuk mengaktifkan pemutaran ulang, rekam jepret ini harus disimpan di akun Azure Storage. Untuk informasi selengkapnya tentang pemutaran ulang titik pemeriksaan, lihat Konsep titik pemeriksaan dan pemutaran ulang dalam pekerjaan Azure Stream Analytics.

Langkah berikutnya