Öğretici: Azure Data Factory kullanarak VERILERI SQL Edge'den Azure Blob depolamaya eşitleme

Önemli

Azure SQL Edge artık ARM64 platformunu desteklememektedir.

Bu öğreticide, Azure SQL Edge örneğindeki bir tablodan Azure Blob depolamaya artımlı olarak veri eşitlemek için Azure Data Factory'nin nasıl kullanılacağı gösterilmektedir.

Başlamadan önce

Azure SQL Edge dağıtımınızda henüz bir veritabanı veya tablo oluşturmadıysanız, oluşturmak için şu yöntemlerden birini kullanın:

  • SQL Edge'e bağlanmak için SQL Server Management Studio veya Azure Data Studio kullanın. Veritabanını ve tabloyu oluşturmak için bir SQL betiği çalıştırın.

  • SQL Edge modülüne doğrudan bağlanarak sqlcmd kullanarak bir veritabanı ve tablo oluşturun. Daha fazla bilgi için bkz. sqlcmd kullanarak Veritabanı Altyapısı'na Bağlan.

  • SQL Edge kapsayıcısına bir DAC paket dosyası dağıtmak için SQLPackage.exe dosyasını kullanın. Modülün istenen özellikler yapılandırmasının bir parçası olarak SqlPackage dosya URI'sini belirterek bu işlemi otomatikleştirebilirsiniz. SqlPackage.exe istemci aracını doğrudan kullanarak DAC paketini SQL Edge'e dağıtabilirsiniz.

    SqlPackage.exe dosyasını indirme hakkında bilgi için bkz . sqlpackage'ı indirme ve yükleme. SqlPackage.exe için bazı örnek komutlar aşağıda verilmiştır. Daha fazla bilgi için SqlPackage.exe belgelerine bakın.

    DAC paketi oluşturma

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

    DAC paketi uygulama

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

Filigran düzeylerini depolamak ve güncelleştirmek için SQL tablosu ve yordamı oluşturma

Filigran tablosu, Verilerin Azure Depolama ile eşitlenmiş olduğu son zaman damgasını depolamak için kullanılır. Transact-SQL (T-SQL) saklı yordamı, her eşitlemeden sonra filigran tablosunu güncelleştirmek için kullanılır.

SQL Edge örneğinde şu komutları çalıştırın:

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

Data Factory işlem hattı oluşturma

Bu bölümde, Azure SQL Edge'deki bir tablodan Azure Blob depolama ile veri eşitlemek için bir Azure Data Factory işlem hattı oluşturacaksınız.

Data Factory kullanıcı arabirimini kullanarak veri fabrikası oluşturma

Bu öğreticideki yönergeleri izleyerek bir veri fabrikası oluşturun.

Data Factory işlem hattı oluşturma

  1. Data Factory kullanıcı arabiriminin Başlayalım sayfasında İşlem hattı oluştur'u seçin.

    Screenshot of the create a Data Factory pipeline.

  2. İşlem hattının Özellikler penceresinin Genel sayfasında, ad olarak PeriodicSync girin.

  3. Eski filigran değerini almak için Arama etkinliğini ekleyin. Etkinlikler bölmesinde Genel'i genişletin ve Arama etkinliğini işlem hattı tasarımcısının yüzeyine sürükleyin. Etkinliğin adını OldWatermark olarak değiştirin.

    Screenshot of adding the old watermark lookup.

  4. Ayarlar sekmesine geçin ve Kaynak Veri Kümesi için Yeni'yi seçin. Şimdi filigran tablosundaki verileri temsil eden bir veri kümesi oluşturacaksınız. Bu tablo, önceki kopyalama işleminde kullanılan eski filigranı içerir.

  5. Yeni Veri Kümesi penceresinde Azure SQL Server'ı ve ardından Devam'ı seçin.

  6. Veri kümesinin Özellikleri ayarla penceresindeki Ad alanına WatermarkDataset yazın.

  7. Bağlı Hizmet için Yeni'yi seçin ve şu adımları tamamlayın:

    1. Ad alanına SQLDBEdgeLinkedService girin.

    2. Sunucu adı'nın altında SQL Edge sunucunuzun ayrıntılarını girin.

    3. Listeden Veritabanı adınızı seçin.

    4. Kullanıcı adınızı ve Parolanızı girin.

    5. SQL Edge örneğine bağlantıyı test etmek için Bağlantıyı test et'i seçin.

    6. Oluştur’u seçin.

      Screenshot of creating a linked service.

    7. Tamam seçeneğini işaretleyin.

  8. Ayarlar sekmesinde Düzenle'yi seçin.

  9. Bağlan sekmesinde Tablo'ya tıklayın[dbo].[watermarktable]. Tablodaki verilerin önizlemesini görüntülemek istiyorsanız Verileri önizle'yi seçin.

  10. Üstteki işlem hattı sekmesini seçerek veya soldaki ağaç görünümünde işlem hattının adını seçerek işlem hattı düzenleyicisine geçin. Arama etkinliğinin özellikler penceresinde, Kaynak veri kümesi listesinde WatermarkDataset'in seçili olduğunu onaylayın.

  11. Etkinlikler bölmesinde Genel'i genişletin ve başka bir Arama etkinliğini işlem hattı tasarımcısı yüzeyine sürükleyin. Özellikler penceresinin Genel sekmesinde adı NewWatermark olarak ayarlayın. Bu Arama etkinliği, hedefe kopyalanabilmesi için kaynak verileri içeren tablodan yeni filigran değerini alır.

  12. İkinci Arama etkinliğinin özellikler penceresinde Ayarlar sekmesine geçin ve yeni filigran değerini içeren kaynak tabloya işaret eden bir veri kümesi oluşturmak için Yeni'yi seçin.

  13. Yeni Veri Kümesi penceresinde SQL Edge örneği'ni ve ardından Devam'ı seçin.

    1. Özellikleri ayarla penceresindeki Ad alanına SourceDataset yazın. Bağlı hizmet'in altında SQLDBEdgeLinkedService'i seçin.

    2. Tablo altında, eşitlemek istediğiniz tabloyu seçin. Bu öğreticinin ilerleyen bölümlerinde açıklandığı gibi bu veri kümesi için bir sorgu da belirtebilirsiniz. Sorgu, bu adımda belirttiğiniz tablodan önceliklidir.

    3. Tamam seçeneğini işaretleyin.

  14. Üstteki işlem hattı sekmesini seçerek veya soldaki ağaç görünümünde işlem hattının adını seçerek işlem hattı düzenleyicisine geçin. Arama etkinliğinin özellikler penceresinde, Kaynak veri kümesi listesinde SourceDataset'in seçili olduğunu onaylayın.

  15. Sorgu kullan'ın altında Sorgu'yu seçin. Aşağıdaki sorgudaki tablo adını güncelleştirin ve sorguyu girin. Tablodan yalnızca en yüksek değeri timestamp seçiyorsunuz. Yalnızca ilk satır'ı seçtiğinizden emin olun.

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

    Screenshot of a select query.

  16. Etkinlikler bölmesinde Taşı ve Dönüştür'ü genişletin ve Etkinlikler bölmesindeki Kopyalama etkinliğini tasarımcı yüzeyine sürükleyin. Etkinliğin adını IncrementalCopy olarak ayarlayın.

  17. Arama etkinliklerine bağlı yeşil düğmeyi Kopyalama etkinliğine sürükleyerek her iki Arama etkinliğini Kopyalama etkinliğine bağlayın. Kopyalama etkinliği kenarlık renginin maviye değiştiğini gördüğünüzde fare düğmesini bırakın.

  18. Kopyalama etkinliği seçin ve Özellikler penceresinde etkinliğin özelliklerini gördüğünüzden emin olun.

  19. Özellikler penceresinde Kaynak sekmesine geçin ve şu adımları tamamlayın:

    1. Kaynak veri kümesi kutusunda SourceDataset'i seçin.

    2. Sorgu kullan'ın altında Sorgu'yu seçin.

    3. Sorgu kutusuna SQL sorgusunu girin. Aşağıda örnek bir sorgu verilmişti:

    SELECT *
    FROM TemperatureSensor
    WHERE timestamp > '@{activity(' OldWaterMark ').output.firstRow.WatermarkValue}'
        AND timestamp <= '@{activity(' NewWaterMark ').output.firstRow.NewWatermarkvalue}';
    
  20. Havuz sekmesinde Havuz Veri Kümesi'nin altında Yeni'yi seçin.

  21. Bu öğreticide havuz veri deposu bir Azure Blob depolama veri deposudur. Azure Blob depolama'yı ve ardından Yeni Veri Kümesi penceresinde Devam'ıseçin.

  22. Biçim Seç penceresinde verilerinizin biçimini ve ardından Devam'ı seçin.

  23. Özellikleri Ayarla penceresindeki Ad'ın altında SinkDataset yazın. Bağlı hizmet'in altında Yeni'yi seçin. Şimdi Azure Blob depolama alanınıza bir bağlantı (bağlı hizmet) oluşturacaksınız.

  24. Yeni Bağlı Hizmet (Azure Blob depolama) penceresinde şu adımları tamamlayın:

    1. Ad kutusuna Azure Depolama LinkedService girin.

    2. Depolama hesap adı altında, Azure aboneliğiniz için Azure depolama hesabını seçin.

    3. Bağlantıyı test edin ve ardından Son'u seçin.

  25. Özellikleri Ayarla penceresinde, Bağlı hizmet altında Azure Depolama LinkedService seçeneğinin belirlendiğini onaylayın. Oluştur ve Tamam'ı seçin.

  26. Havuz sekmesinde Düzenle'yi seçin.

  27. SinkDataset'in Bağlan ion sekmesine gidin ve şu adımları tamamlayın:

    1. Dosya yolu'na yazınasdedatasync/incrementalcopy; burada asdedatasync blob kapsayıcı adı ve incrementalcopy klasör adıdır. Yoksa kapsayıcıyı oluşturun veya var olan bir kapsayıcının adını kullanın. Azure Data Factory, yoksa çıkış klasörünü incrementalcopy otomatik olarak oluşturur. Bir blob kapsayıcısındaki klasörlerden birine gitmek istiyorsanız Dosya yolu için Gözat düğmesini de kullanabilirsiniz.

    2. Dosya yolunun Dosya bölümü için Dinamik içerik ekle [Alt+P] öğesini seçin ve açılan pencereye girin.@CONCAT('Incremental-', pipeline().RunId, '.txt') Bitir'i seçin. Dosya adı, ifade tarafından dinamik olarak oluşturulur. Her işlem hattı çalıştırması benzersiz bir kimliğe sahiptir. Kopyalama etkinliği, dosya adını oluşturmak için çalışma kimliğini kullanır.

  28. Üstteki işlem hattı sekmesini seçerek veya soldaki ağaç görünümünde işlem hattının adını seçerek işlem hattı düzenleyicisine geçin.

  29. Etkinlikler bölmesinde Genel'i genişletin ve Saklı Yordam etkinliğini Etkinlikler bölmesinden işlem hattı tasarımcısının yüzeyine sürükleyin. saklı yordam etkinliğine Kopyalama etkinliği yeşil (başarılı) çıkışını Bağlan.

  30. İşlem hattı tasarımcısında Saklı Yordam Etkinliği'ni seçin ve adını olarak SPtoUpdateWatermarkActivitydeğiştirin.

  31. SQL Hesabı sekmesine geçin ve Bağlı hizmet altında *QLDBEdgeLinkedService öğesini seçin.

  32. Saklı Yordam sekmesine geçin ve şu adımları tamamlayın:

    1. Saklı yordam adı altında öğesini seçin[dbo].[usp_write_watermark].

    2. Saklı yordam parametrelerinin değerlerini belirtmek için Parametreyi içeri aktar'ı seçin ve parametreler için şu değerleri girin:

    Veri Akışı Adı Tür Value
    LastModifiedTime DateTime @{activity('NewWaterMark').output.firstRow.NewWatermarkvalue}
    TableName String @{activity('OldWaterMark').output.firstRow.TableName}
  33. İşlem hattı ayarlarını doğrulamak için araç çubuğunda Doğrula'yı seçin. Doğrulama hatası olmadığından emin olun. İşlem Hattı Doğrulama Raporu penceresini kapatmak için öğesini seçin>>.

  34. Tümünü Yayımla düğmesini seçerek varlıkları (bağlı hizmetler, veri kümeleri ve işlem hatları) Azure Data Factory hizmetinde yayımlayın. Yayımlama işleminin başarılı olduğunu onaylayan bir ileti görene kadar bekleyin.

Zamanlamaya göre işlem hattı tetikleme

  1. İşlem hattı araç çubuğunda Tetikleyici Ekle'yi, Yeni/Düzenle'yi ve ardından Yeni'yi seçin.

  2. Tetikleyicinize HourlySync adını verin. Tür altında Zamanla'yı seçin. Yinelenme'yi her 1 saatte bir olarak ayarlayın.

  3. Tamam seçeneğini işaretleyin.

  4. Tümünü Yayımla.

  5. Şimdi Tetikle'yi seçin.

  6. Soldaki İzleyici sekmesine geçin. El ile tetikleme işlemi tarafından tetiklenen işlem hattı çalıştırmasının durumunu görebilirsiniz. Listeyi yenilemek için Yenile’yi seçin.

Sonraki adımlar

  • Bu öğreticideki Azure Data Factory işlem hattı, SQL Edge örneğindeki bir tablodaki verileri saatte bir Azure Blob depolama alanındaki bir konuma kopyalar. Data Factory'yi diğer senaryolarda kullanma hakkında bilgi edinmek için bu öğreticilere bakın.