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

Azure Stream Analytics, başvuru verileri için giriş kaynağı olarak Azure SQL Veritabanı destekler. SQL Veritabanı'yi Azure portalında ve Stream Analytics araçlarıyla Visual Studio'da Stream Analytics işiniz için başvuru verileri olarak kullanabilirsiniz. Bu makalede her iki yöntemin de nasıl gerçekleştir olduğu gösterilmektedir.

Azure portalı

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

Portal önkoşulları

  1. Stream Analytics işi oluşturma.

  2. Stream Analytics işi tarafından kullanılacak bir depolama hesabı oluşturun.

    Önemli

    Azure Stream Analytics, anlık görüntüleri bu depolama hesabında tutar. Bekletme ilkesini yapılandırırken, seçilen zaman aralığının Stream Analytics işiniz için istenen kurtarma süresini etkili bir şekilde kapsadığından emin olmak zorunludur.

  3. Stream Analytics işi tarafından başvuru verileri olarak kullanılacak bir veri kümesiyle Azure SQL Veritabanı oluşturun.

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

  1. Stream Analytics işinizde İş topolojisi'nin altındaki Girişler'i seçin. Başvuru girişi ekle'ye tıklayın ve SQL Veritabanı seçin.

    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. Stream Analytics Giriş Yapılandırmalarını doldurun. Veritabanı adını, sunucu adını, kullanıcı adını ve parolayı seçin. Başvuru verileri girişinizin düzenli aralıklarla yenilenmesini istiyorsanız DD:HH:MM'de yenileme hızını belirtmek için "Açık" seçeneğini belirleyin. Kısa yenileme hızına sahip büyük veri kümeleriniz varsa. Delta sorgusu, SQL Veritabanı bir başlangıç saati içinde eklenen veya silinen tüm satırları ve bitiş saatini @deltaStartTime@deltaEndTimealarak başvuru verilerinizdeki değişiklikleri izlemenizi sağlar.

Lütfen delta sorgusuna bakın.

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. SQL sorgu düzenleyicisinde anlık görüntü sorgusunu test edin. Daha fazla bilgi için bkz . Azure portalının SQL sorgu düzenleyicisini kullanarak verileri bağlama ve sorgulama

İş yapılandırmasında depolama hesabı belirtme

Yapılandır'ın altında Depolama hesap ayarlarına gidin ve Depolama hesabı ekle'yi seçin.

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

İşi başlatma

Diğer girişleri, çıkışları ve sorguyu yapılandırdıktan sonra Stream Analytics işini başlatabilirsiniz.

Visual Studio Araçları

Visual Studio kullanarak başvuru giriş kaynağı olarak Azure SQL Veritabanı 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. Visual Studio'nun aşağıdaki sürümleri desteklenir:

    • 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, anlık görüntüleri bu depolama hesabında tutar. Bekletme ilkesini yapılandırırken, seçilen zaman aralığının Stream Analytics işiniz için istenen kurtarma süresini etkili bir şekilde kapsadığından emin olmak zorunludur.

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 örnekte kullanılan örnek tablo aşağıdaki deyimden oluşturulmuştur:

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'a sağ tıklayın, Microsoft Azure Aboneliği'ne Bağlan seçin ve Azure hesabınızla oturum açın.

Stream Analytics projesi oluşturma

  1. Dosya > Yeni Proje'yi seçin.

  2. Sol taraftaki şablon listesinden Stream Analytics'i ve ardından Azure Stream Analytics Uygulaması'nı seçin.

  3. Proje Adı, Konum ve Çözüm adını girin ve Tamam'ı seçin.

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

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

  1. Yeni bir giriş oluşturun.

    On Add New Item, Input is selected.

  2. Çözüm Gezgini Input.json dosyasına çift tıklayın.

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

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

    "Yalnızca bir kez yürüt" veya "Düzenli aralıklarla yürüt" seçeneğini belirlerseniz, projede Input.json dosya düğümü altında [Input Alias].snapshot.sql adlı bir SQL CodeBehind dosyası oluşturulur.

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

    "Delta ile Düzenli Aralıklarla Yenile" seçeneğini belirlerseniz, iki SQL CodeBehind dosyası oluşturulur: [Input Alias].snapshot.sql ve [Input Alias].delta.sql.

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

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

  5. Visual Studio 2019 kullanıyorsanız ve SQL Server Veri araçlarını yüklediyseniz Yürüt'e tıklayarak sorguyu test edebilirsiniz. SQL Veritabanı bağlanmanıza yardımcı olacak bir sihirbaz penceresi açılır ve sorgu sonucu en alttaki pencerede görünür.

Depolama hesabını belirtme

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

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

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 bkz . Visual Studio için Azure Stream Analytics araçlarını (Önizleme) kullanarak canlı verileri yerel olarak test edin. Testi tamamladığınızda Azure'a gönder'e tıklayın. İşi nasıl başlatacağınızı öğrenmek için Visual Studio için Azure Stream Analytics araçlarını kullanarak Stream Analytics oluşturma hızlı başlangıcına başvurun.

Delta sorgusu

Delta sorgusu kullanılırken, Azure SQL Veritabanı zamansal tablolar önerilir.

  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.

    Stream Analytics çalışma zamanına başvuru veri kümesini sistem zamanında geçerli SQL Veritabanı zamansal tablodan almasını bildirmek için @snapshotTime parametresini kullanın. Bu parametreyi sağlamazsanız, saat dengesizliklerinden dolayı yanlış bir temel başvuru veri kümesi alma riskiyle karşı karşıyasınız. Tam anlık görüntü sorgusu örneği aşağıda gösterilmiştir:

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

    Bu sorgu, SQL Veritabanı bir başlangıç saati, @deltaStartTime ve bitiş saati @deltaEndTime içinde eklenen veya silinen 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 eklenmediğini veya silindiğini tanımlar. Sonuçta elde edilen satırlar, kayıtlar eklendiyse 1 veya silinirse 2 olarak işaretlenir. Delta dönemindeki tüm güncelleştirmelerin uygun şekilde yakalandığından emin olmak için sorgunun SQL Server tarafından filigran eklemesi de gerekir. Delta sorgusunu filigran olmadan kullanmak yanlış başvuru veri kümesine neden olabilir.

    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ı, başvuru verilerini güncel tutmak için delta sorgusunun sonuçlarını önceki anlık görüntüye uygular. Aşağıda delta sorgusu örneği gösterilmektedir:

       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ının, denetim noktalarını depolamak için delta sorgusuna ek olarak anlık görüntü sorgusunu düzenli aralıklarla çalıştırabileceğini unutmayın.

    Önemli

    Başvuru verileri değişim sorgularını kullanırken, zamansal başvuru veri tablosunda birden çok kez aynı güncelleştirmeleri yapmayın. Bu, yanlış sonuçların üretilmesine neden olabilir. Başvuru verilerinin yanlış sonuçlar üretmesine neden olabilecek bir örnek aşağıda verilmişti:

     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, yinelenen güncelleştirmelerin gerçekleştirilmemesini sağlar.

Sorgunuzu test etme

Sorgunuzun Stream Analytics işinin başvuru verileri olarak kullanacağı beklenen veri kümesini döndürdüğünü doğrulamak önemlidir. Sorgunuzu test etmek için portalda İş Topolojisi bölümünde Giriş'e gidin. Daha sonra SQL Veritabanı Başvuru girişinizde Örnek Veriler'i seçebilirsiniz. Örnek kullanıma sunulduktan sonra dosyayı indirebilir ve döndürülen verilerin beklendiği gibi olup olmadığını kontrol edebilirsiniz. Geliştirme ve test yinelemelerinizi iyileştirmek istiyorsanız Visual Studio için Stream Analytics araçlarını kullanmanız önerilir. Ayrıca, sorgunun Azure SQL Veritabanı doğru sonuçları döndürdüğünü ve ardından Stream Analytics işinizde bunu kullandığından emin olmak için tercih ettiğiniz diğer herhangi bir aracı da 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.

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

  2. SQL Server simgesini seçin ve Bağlan ekle'ye tıklayın.

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

  3. Bağlantı bilgilerini doldurun.

    The two boxes for database and server information are highlighted.

  4. Başvuru SQL'ine sağ tıklayın ve Sorguyu Yürüt'e tıklayın.

    Execute Query is highlighted in the context menu.

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

    The dialog box says

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

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

ile ilgili SSS

Azure Stream Analytics'te SQL başvuru verileri girişini kullanarak ek maliyet doğuracak miyim?

Stream Analytics işinde akış birimi başına ek maliyet yoktur. Ancak Stream Analytics işinin ilişkili bir Azure depolama hesabına sahip olması gerekir. Stream Analytics işi, başvuru veri kümesini almak için SQL DB'yi (iş başlatma ve yenileme aralığı sırasında) sorgular ve bu anlık görüntüyü depolama hesabında depolar. Bu anlık görüntülerin depolanması, Azure depolama hesabının fiyatlandırma sayfasında ayrıntılı olarak belirtilen ek ücretlere neden olur.

Başvuru verileri anlık görüntüsünün SQL DB'den sorgulandığını ve Azure Stream Analytics işinde kullanıldığını biliyor Nasıl yaparım??

Mantıksal Ada göre filtrelenmiş iki ölçüm vardır (Ölçümler Azure portalı altında), SQL Veritabanı başvuru veri girişinin durumunu izlemek için kullanabilirsiniz.

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

Bu ölçümlerin her ikisinin birleşimi, işin başvuru veri kümesini getirmek ve ardından belleğe yüklemek için SQL Veritabanı sorgulayıp sorgulamayacağını çıkarsamak için kullanılabilir.

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

Azure Stream Analytics her tür Azure SQL Veritabanı ile çalışır. Ancak, başvuru verileri girişiniz için ayarlanan yenileme hızının sorgu yükünüzü etkileyebileceğini anlamak önemlidir. Delta sorgu seçeneğini kullanmak için Azure SQL Veritabanı'de zamana bağlı tabloların kullanılması önerilir.

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

Stream Analytics tam bir olay işlemesi ve en az bir olay teslimini garanti eder. Geçici sorunların işinizi etkilediği durumlarda, durumu geri yüklemek için az miktarda yeniden yürütme gerekir. Yeniden yürütmeyi etkinleştirmek için bu anlık görüntülerin bir Azure Depolama hesabında depolanması gerekir. Denetim noktası yeniden yürütme hakkında daha fazla bilgi için bkz . Azure Stream Analytics işlerinde denetim noktası ve yeniden yürütme kavramları.

Sonraki adımlar