Azure Stream Analytics işi için SQL Veritabanı başvuru verilerini kullanma

Referans veriler, akış verilerinizle birleştirerek onları zenginleştirdiğiniz, statik veya yavaş değişen bir veri kümesidir; buna örnek olarak, bir satış olayları akışına ürün ayrıntıları eklenmesi verilebilir. Azure Stream Analytics, referans veri kaynağı olarak Azure SQL Veritabanı'i destekliyor, böylece bu verileri gerçek zamanlı girdinizle birleştirebiliyorsunuz.

Bu makale, Azure portalı ve Visual Studio ile Stream Analytics araçlarını kullanarak bir Stream Analytics işi için referans veri girişi olarak Azure SQL Veritabanı'i nasıl yapılandıracağınızı gösteriyor.

Azure portalını kullanarak SQL Veritabanı referans verisi ekleyin

Azure portalını kullanarak referans giriş kaynağı olarak Azure SQL Veritabanı'i eklemek için aşağıdaki adımları kullanın:

Portal önkoşulları

  1. Stream Analytics işi oluşturun.

  2. Stream Analytics işi için bir depolama hesabı oluşturun.

    Önemli

    Azure Stream Analytics bu storage account içindeki snapshotları saklar. Tutma politikasını yapılandırırken, seçilen zaman aralığının Stream Analytics işiniz için istediğiniz kurtarma süresini içerdiğinden emin olun.

  3. Stream Analytics işinin referans verisi olarak kullandığı bir veri setiyle Azure SQL Veritabanı'inizi oluşturun.

SQL Veritabanı başvuru veri girişini tanımlama

  1. Stream Analytics işinizde, İş topolojisi altında Girişler'i seçin. Referans girdisi ekle seçeneğini seçin ve ardından SQL Veritabanı'nı seçin.

    Referans girişi ekle seçiliyken, Blob depolama ve SQL Veritabanı değerlerini içeren bir açılır listeyi gösteren Stream Analytics Girişleri bölmesinin ekran görüntüsü.

  2. Stream Analytics giriş yapılandırmasını doldurun. Veritabanı adı, sunucu adı ve veritabanı için giriş kimlik bilgilerini seçin. Referans verisi girişinizi periyodik olarak yenilemek için On'u seçin ve DD:HH:MM içinde yenileme hızını belirtin. Kısa yenileme hızına sahip büyük veri kümeleri için, delta sorgu, SQL Veritabanı'nda başlangıç zamanı @deltaStartTimeile bitiş zamanı arasında eklenen veya silinen tüm satırları alarak referans verinizdeki değişiklikleri izler. @deltaEndTime

    Daha fazla bilgi için delta sorgusuna bakınız.

    SQL Veritabanı'nın yeni giriş sayfasının ekran görüntüsü, sol panelde yapılandırma formu ve sağ panelde bir anlık sorgu.

  3. SQL sorgu düzenleyicisinde anlık görüntü sorgusunu test edin. Daha fazla bilgi için, Azure portalının SQL sorgu düzenleyicisini kullanarak veri bağlamak ve sorgulamak için bkz.

İş yapılandırmasında depolama hesabını belirtin

Yapılandırma altındaki Depolama hesabı ayarlarına gidin ve ardından Depolama hesabı ekle'yi seçin.

Depolama hesabı ayarları panelinin ekran görüntüsü, sağ panelde Depolama hesabı ekle butonu ile.

İşi başlatma

  1. Diğer girdileri, çıktıları ve sorguyu yapılandırdıktan sonra Stream Analytics işini başlatın.

SQL Veritabanı referans verisini Visual Studio kullanarak ekleyin

Visual Studio kullanarak Azure SQL Veritabanı'i referans giriş kaynağı olarak eklemek için aşağıdaki adımları kullanın:

Visual Studio önkoşulları

  1. Visual Studio için Stream Analytics araçlarını yükleyin. Stream Analytics araçları, Visual Studio'nun aşağıdaki sürümlerini destekler:

    • Visual Studio 2015
    • Visual Studio 2019
  2. Visual Studio için Stream Analytics araçları hızlı başlangıcı hakkında bilgi sahibi olun.

  3. Depolama hesabı oluşturma.

    Önemli

    Azure Stream Analytics bu storage account içindeki snapshotları saklar. Tutma politikasını yapılandırırken, seçilen zaman aralığının Stream Analytics işiniz için istediğiniz kurtarma süresini içerdiğinden emin olun.

SQL Veritabanı tablosu oluşturma

Başvuru verilerinizi depolamak üzere bir tablo oluşturmak için SQL Server Management Studio'yu kullanın. Ayrıntılar için bkz. SSMS kullanarak ilk Azure SQL Veritabanı tasarlama.

Aşağıdaki ifade örnek tabloyu oluşturur:

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

Aboneliğinizi seçin

  1. Visual Studio'nun Görünüm menüsünde Sunucu Gezgini'ni seçin.

  2. Azure'u seçin ve basılı tutun (veya sağ tıklayın), Microsoft Azure Aboneliği'ne Bağla seçin ve Azure hesabınızla giriş yapın.

Stream Analytics projesi oluşturma

  1. Dosya>Yeni Proje seçin.

  2. Şablonlar listesinde Stream Analytics seçin, ardından Azure Stream Analytics Application'ı seçin.

  3. Proje Adı, Konum ve Çözüm adını girin ve ardından OK seçin.

    Stream Analytics şablonu ve Azure Stream Analytics Application seçilmiş, İsim, Konum ve Çözüm adı kutuları vurgulanmış, New Project diyaloğunun ekran görüntüsü.

SQL Veritabanı başvuru veri girişini tanımlama

  1. Yeni bir giriş oluşturun.

    Input’un seçili olduğu Yeni Öğe Ekle iletişim kutusunun ekran görüntüsü.

  2. Çözüm Gezgini içindeInput.json aç.

  3. Stream Analytics Giriş Yapılandırması'nı doldurun. Veritabanı adı, sunucu adı, yenileme türü ve yenileme hızını girin. Yenileme hızını biçiminde DD:HH:MMbelirtin.

    Stream Analytics Giriş Konfigürasyonu'nun ekran görüntüsü, açılır menülerden girilen veya seçilen değerlerle.

    Sadece bir kez Execute veya periyodik olarak Execute seçerseniz, Visual Studio projede Input.json dosya düğümünün altında [Input Alias].snapshot.sql adlı bir SQL CodeBehind dosyası oluşturur.

    Chemicals.snapshot.sql SQL CodeBehind dosyasının vurgulandığı Çözüm Gezgini ekran görüntüsü.

    Delta ile Periyodik Yenilemeyi seçerseniz, Visual Studio iki SQL CodeBehind dosyası oluşturur: [Input Alias].snapshot.sql ve [Input Alias].delta.sql.

    Chemicals.delta.sql ve Chemicals.snapshot.sql SQL CodeBehind dosyalarının vurgulandığı Çözüm Gezgini ekran görüntüsü.

  4. Düzenleyicide SQL dosyasını açın ve SQL sorgusunu yazın.

  5. Eğer Visual Studio 2019 kullanıyorsanız ve SQL Server Veri Araçları'u yüklediyseniz, Execute'u seçerek sorguyu test edebilirsiniz. SQL Veritabanı'na bağlanmanıza yardımcı olacak bir sihirbaz açılıyor ve sorgu sonucu aşağıdaki pencerede görünüyor.

Depolama hesabını belirtme

SQL başvuru anlık görüntülerinin depolanacağı depolama hesabını belirtmek için JobConfig.json dosyasını açın.

Stream Analytics iş yapılandırmasının ekran görüntüsü, varsayılan değerlerle ve Küresel Depolama Ayarları vurgulanmış.

Yerel olarak test etme ve Azure'a dağıtma

İşi Azure'a dağıtmadan önce, sorgu mantığını canlı giriş verileriyle yerel olarak test edebilirsiniz. Bu özellik hakkında daha fazla bilgi için, Visual Studio için Azure Stream Analytics tools (Preview) kullanarak Live Data Local Test bölümüne bakınız. Test yaptıktan sonra Submit to Azure seçeneğini seçin. İşin nasıl başlatılacağını öğrenmek için Visual Studio için Azure Stream Analytics araçlarını kullanarak bir Stream Analytics işi oluşturma hızlı başlangıcına bakın.

Delta sorgusu

Delta sorgusunu kullandığınızda, Azure SQL Veritabanı'de zamansal tablolar kullanın.

  1. Azure SQL Veritabanı'da zamana bağlı bir tablo oluşturun.

       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. Anlık görüntü sorgusunu yazın.

    @snapshotTime parametresini kullanarak Stream Analytics çalışma zamanına SQL Veritabanı zamansal tablosundan referans veri setini sistem zamanında geçerli hale getirmesini talimat verebilirsiniz. Bu parametri sağlamazsanız, saat sapmaları nedeniyle yanlış bir temel referans veri seti elde etme riski taşır. Aşağıdaki örnek tam bir anlık sorguyu gösterir:

       SELECT DeviceId, GroupDeviceId, [Description]
       FROM dbo.DeviceTemporal
       FOR SYSTEM_TIME AS OF @snapshotTime
    
  3. Delta sorgusunu yazın.

    Bu sorgu, SQL Veritabanı'nda bir başlangıç zamanı, @deltaStartTime ve bitiş zamanı @deltaEndTime içinde eklenen veya silinmiş tüm satırları alır. Delta sorgusu, hem anlık görüntü sorgusuyla aynı sütunları hem de sütun işlemini döndürmelidir. Bu sütun, satırın @deltaStartTime ile @deltaEndTime arasında eklenip silinmediğini tanımlar. Ortaya çıkan satırlar, kayıtlar eklendiyse 1, silindiyse 2 olarak işaretlenir. Delta dönemindeki tüm güncelleştirmelerin uygun şekilde yakalanmasını sağlamak için, sorguya SQL Server tarafında watermark da eklenmelidir. Delta sorgusunun watermark olmadan kullanılması yanlış bir referans veri setine yol açabilir.

    Güncelleştirilen kayıtlar için, zamansal tablo ekleme ve silme işlemini yakalayarak kayıt tutma işlemi yapar. Stream Analytics çalışma zamanı, delta sorgusunun sonuçlarını önceki anlık görüntüye uygular ve referans veriyi güncel tutar. Aşağıdaki örnek bir delta sorgusunu gösterir:

       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
    

    Stream Analytics çalışma zamanı, kontrol noktalarını depolamak için delta sorgusuna ek olarak anlık sorguyu periyodik olarak çalıştırabilir.

    Önemli

    Referans veri delta sorguları kullandığınızda, zamansal referans veri tablosunda aynı güncellemeleri birden fazla kez yapmayın. Bu yanlış sonuçlar verebilir. İşte referans verilerin yanlış sonuçlar vermesine neden olabilecek bir örnek:

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

    Doğru örnek:

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

    Bu koşul, tekrarlanan güncellemelerin gerçekleşmemesini sağlar.

Sorgunuzu test etme

Sorunuzun Stream Analytics işinin referans veri olarak kullandığı beklenen veri setini döndürdüğünü doğrulayın. Sorunuzu test etmek için portaldaki İş topolojisi bölümündeki Girişler bölümüne gidin. Sonra SQL Veritabanı referans girişinizde Örnek veriyi seçin. Örnek erişilebilir hale geldikten sonra dosyayı indirebilir ve geri dönen verinin beklendiği gibi olup olmadığını kontrol edebilirsiniz. Geliştirme ve test yinelemelerinizi optimize etmek için Visual Studio için Stream Analytics araçlarını kullanın. Ayrıca, sorgunun Azure SQL Veritabanı'inizden doğru sonuçları verdiğinden emin olmak için tercih ettiğiniz herhangi bir aracı da kullanabilirsiniz, ardından bu sorguyu Stream Analytics işinizde kullanabilirsiniz.

Visual Studio Code ile sorgunuzu test edin

Visual Studio Code'a Azure Stream Analytics Araçları ve SQL Server (mssql) yükleyin ve ASA projenizi ayarlayın. Daha fazla bilgi için bkz: Hızlı başlangıç: Visual Studio Code'da Azure Stream Analytics işi oluşturma ve SQL Server (mssql) uzantısı öğreticisi.

  1. SQL başvuru veri girişinizi yapılandırın.

    ReferenceSQLDatabase.json dosyasını gösteren Visual Studio Code editörü sekmesinin ekran görüntüsü.

  2. SQL Server simgesini seçin ve Bağlantı Ekle'yi seçin.

    Sol panelin ekran görüntüsü ve Bağlantı Ekle seçeneği vurgulanmış.

  3. Bağlantı bilgilerini doldurun.

    Veritabanı ve sunucu bilgi kutuları vurgulanmış bağlantı formunun ekran görüntüsü.

  4. Referans SQL içinde basılı tutun (veya sağ tıklayın) ve Execute Query'yi seçin.

    Sorguyu Yürüt seçeneği vurgulanmış bağlam menüsünün ekran görüntüsü.

  5. Bağlantınızı seçin.

    “Aşağıdaki listeden bir bağlantı profili oluşturun” yazan ve listedeki tek girişin vurgulandığı bir iletişim kutusunun ekran görüntüsü.

  6. Sorgu sonucunuzu gözden geçirin ve doğrulayın.

    Sorgu arama sonucunun ekran görüntüsü Visual Studio Code düzenleyici sekmesinde ortaya çıkıyor.

SSS

Azure Stream Analytics'te SQL referans veri girişi kullanarak ekstra maliyetler mi oluşturabilirim?

Stream Analytics işinde yayın birimi başına ekstra bir maliyet yok. Ancak Stream Analytics işinin ilişkili bir Azure depolama hesabına sahip olması gerekir. Stream Analytics işi, referans veri setini almak için SQL Veritabanını (iş başlatma ve yenileme aralığında) sorgular ve bu anlık görüntüyü depolama hesabında saklar. Bu anlık görüntülerin saklanması, Azure depolama hesabı için fiyatlandırma sayfasında detaylandırılan ekstra ücretler gerektirir.

SQL Veritabanı'ndan bir referans veri anlık görüntüsünün sorgulanıp sorgulanmadığını ve Azure Stream Analytics işinde kullanılıp kullanılmadığını nasıl anlayabilirim?

Mantıksal Isim ile filtrelenen iki metrik (Azure portalında Metrikler altında), SQL Veritabanı referans veri girişinin sağlığını izlemenize olanak tanır.

  • InputEvents: Bu metrik, SQL Veritabanı referans veri setinden yüklenen kayıt sayısını ölçür.
  • InputEventBytes: Bu ölçüm, Stream Analytics işinin belleğine yüklenen referans verileri anlık görüntüsünün boyutunu ölçer.

Her iki metrik birlikte, işin referans veri setini almak için SQL Veritabanı sorgulayıp ardından belleğe yükleyip yüklemediğini gösterir.

Özel bir Azure SQL Veritabanı türüne ihtiyacım var mı?

Azure Stream Analytics, herhangi bir Azure SQL Veritabanı türüyle çalışır. Ancak, referans veri girişiniz için ayarladığınız yenileme hızı, sorgu yükünüzü etkileyebilir. Delta sorgu seçeneğini kullanmak için Azure SQL Veritabanı'de zamansal tabloları kullanın.

Azure Stream Analytics neden bir Azure Depolama hesabında anlık görüntüleri saklar?

Stream Analytics, olayların tam olarak bir kez işlenmesini ve olayların en az bir kez teslim edilmesini garanti eder. Geçici sorunlar işinizi etkilerse, durumu geri yüklemek için az miktarda yeniden oynatma gerekir. Tekrar oynatmayı etkinleştirmek için bu anlık görüntülerin Azure Depolama hesabında saklanması gerekir. Checkpoint replay hakkında daha fazla bilgi için Azure Stream Analytics işlerindeki Checkpoint ve yeniden oynatma kavramları bölümüne bakın.