Aracılığıyla paylaş


Denetim tablosu içeren bir veritabanından delta kopyası

UYGULANANLAR: Azure Data Factory Azure Synapse Analytics

İpucu

Kuruluşlar için hepsi bir arada analiz çözümü olan Microsoft Fabric'te Data Factory'yi deneyin. Microsoft Fabric , veri taşımadan veri bilimine, gerçek zamanlı analize, iş zekasına ve raporlamaya kadar her şeyi kapsar. Yeni bir deneme sürümünü ücretsiz olarak başlatmayı öğrenin!

Bu makalede, yüksek filigran değerini depolayan bir dış denetim tablosu kullanarak veritabanı tablosundan Azure'a artımlı olarak yeni veya güncelleştirilmiş satırları yüklemek için kullanılabilecek bir şablon açıklanmaktadır.

Bu şablon, kaynak veritabanının şemasının yeni veya güncelleştirilmiş satırları tanımlamak için bir zaman damgası sütunu veya artımlı anahtar içermesini gerektirir.

Not

Kaynak veritabanınızda yeni veya güncelleştirilmiş satırları tanımlamak için bir zaman damgası sütununuz varsa ancak değişiklik kopyalama için kullanılacak bir dış denetim tablosu oluşturmak istemiyorsanız, bunun yerine azure data factory veri kopyalama aracını kullanarak işlem hattı alabilirsiniz. Bu araç, kaynak veritabanındaki yeni satırları okumak için değişken olarak tetikleyiciyle zamanlanmış bir zaman kullanır.

Bu çözüm şablonu hakkında

Bu şablon önce eski filigran değerini alır ve geçerli filigran değeriyle karşılaştırır. Bundan sonra, iki filigran değeri arasındaki karşılaştırmaya göre yalnızca kaynak veritabanındaki değişiklikleri kopyalar. Son olarak, yeni yüksek filigran değerini bir sonraki sefer delta veri yüklemesi için bir dış denetim tablosuna depolar.

Şablon dört etkinlik içerir:

  • Arama , dış denetim tablosunda depolanan eski yüksek filigran değerini alır.
  • Başka bir Arama etkinliği, kaynak veritabanından geçerli yüksek filigran değerini alır.
  • Yalnızca kaynak veritabanındaki değişiklikleri hedef depoya kopyalar . Kaynak veritabanındaki değişiklikleri tanımlayan sorgu, 'SELECT * FROM Data_Source_Table WHERE TIMESTAMP_Column > "son yüksek filigran" ve TIMESTAMP_Column <= "geçerli üst filigran" ile benzerdir.
  • SqlServerStoredProcedure , bir dahaki sefere değişiklik kopyası için geçerli yüksek filigran değerini bir dış denetim tablosuna yazar.

Şablon aşağıdaki parametreleri tanımlar:

  • Data_Source_Table_Name, kaynak veritabanındaki veri yüklemek istediğiniz tablodur.
  • Data_Source_WaterMarkColumn, kaynak tablodaki yeni veya güncelleştirilmiş satırları tanımlamak için kullanılan sütunun adıdır. Bu sütunun türü genellikle datetime, INT veya benzeridir.
  • Data_Destination_Container, hedef deponuzda verilerin kopyalandığı yerin kök yoludur.
  • Data_Destination_Directory, hedef deponuzda verilerin kopyalandığı yerin kökünün altındaki dizin yoludur.
  • Data_Destination_Table_Name, verilerin hedef deponuzda kopyalandığı yerdir (Veri Hedefi olarak "Azure Synapse Analytics" seçildiğinde geçerlidir).
  • Data_Destination_Folder_Path, verilerin hedef deponuzda kopyalandığı yerdir (Veri Hedefi olarak "Dosya Sistemi" veya "Azure Data Lake Storage 1. Nesil" seçildiğinde geçerlidir).
  • Control_Table_Table_Name, yüksek filigran değerini depolayan dış denetim tablosudur.
  • Control_Table_Column_Name, dış denetim tablosundaki yüksek filigran değerini depolayan sütundur.

Bu çözüm şablonunu kullanma

  1. Yüklemek istediğiniz kaynak tabloyu keşfedin ve yeni veya güncelleştirilmiş satırları tanımlamak için kullanılabilecek yüksek filigran sütununu tanımlayın. Bu sütunun türü datetime, INT veya benzeri olabilir. Yeni satırlar eklendikçe bu sütunun değeri artar. Aşağıdaki örnek kaynak tablodan (data_source_table), LastModifytime sütununu üst filigran sütunu olarak kullanabiliriz.

    PersonID	Name            LastModifytime
    1           aaaa            2017-09-01 00:56:00.000
    2           bbbb            2017-09-02 05:23:00.000
    3           cccc            2017-09-03 02:36:00.000
    4           dddd            2017-09-04 03:21:00.000
    5           eeee            2017-09-05 08:06:00.000
    6           fffffff         2017-09-06 02:23:00.000
    7           gggg            2017-09-07 09:01:00.000
    8           hhhh            2017-09-08 09:01:00.000
    9           iiiiiiiii       2017-09-09 09:01:00.000
    
  2. Sql Server'da veya Azure SQL Veritabanı delta veri yükleme için yüksek filigran değerini depolamak üzere bir denetim tablosu oluşturun. Aşağıdaki örnekte, denetim tablosunun adı filigran şeklindedir. Bu tabloda WatermarkValue, yüksek filigran değerini depolayan sütundur ve türü datetime'dır.

    create table watermarktable
    (
    WatermarkValue datetime,
    );
    INSERT INTO watermarktable
    VALUES ('1/1/2010 12:00:00 AM')
    
  3. Denetim tablosunu oluşturmak için kullandığınız SQL Server veya Azure SQL Veritabanı örneğinde bir saklı yordam oluşturun. Saklı yordam, yeni yüksek filigran değerini dış denetim tablosuna gelecek sefer delta veri yüklemesi için yazmak için kullanılır.

    CREATE PROCEDURE update_watermark @LastModifiedtime datetime
    AS
    
    BEGIN
    
        UPDATE watermarktable
        SET [WatermarkValue] = @LastModifiedtime 
    
    END
    
  4. Veritabanı şablonundan Delta kopyasına gidin. Veri kopyalamak istediğiniz kaynak veritabanına yeni bir bağlantı oluşturun.

    Kaynak tabloya yeni bir bağlantı oluşturmayı gösteren ekran görüntüsü.

  5. Verileri kopyalamak istediğiniz hedef veri deposuna yeni bir bağlantı oluşturun.

    Hedef tabloya yeni bir bağlantı oluşturmayı gösteren ekran görüntüsü.

  6. 2. ve 3. adımlarda oluşturduğunuz dış denetim tablosuna ve saklı yordama yeni bir bağlantı oluşturun.

    Denetim tablosu veri deposuna yeni bir bağlantı oluşturmayı gösteren ekran görüntüsü.

  7. Bu şablonu kullan'ı seçin.

  8. Aşağıdaki örnekte gösterildiği gibi kullanılabilir işlem hattını görürsünüz:

    İşlem hattını gösteren ekran görüntüsü.

  9. Saklı Yordam'ı seçin. Saklı yordam adı için [dbo].[ öğesini seçin update_watermark]. Parametreyi içeri aktar'ı ve ardından Dinamik içerik ekle'yi seçin.

    Saklı yordam etkinliğinin ayarlanacağı yeri gösteren ekran görüntüsü.

  10. @{activity('LookupCurrentWaterMark').output.firstRow.NewWatermarkValue} içeriğini yazın ve Son'u seçin.

    Saklı yordamın parametreleri için içeriğin yazıldığı yeri gösteren ekran görüntüsü.

  11. Hata Ayıkla'yı seçin, Parametreler'i girin ve son'u seçin.

    Hata Ayıkla düğmesini gösteren ekran görüntüsü.

  12. Aşağıdaki örneğe benzer sonuçlar görüntülenir:

    İşlem hattı çalıştırmasının sonucunu gösteren sreenshot.

  13. Kaynak tablonuzda yeni satırlar oluşturabilirsiniz. Yeni satırlar oluşturmak için örnek SQL dili aşağıda verilmiştir:

    INSERT INTO data_source_table
    VALUES (10, 'newdata','9/10/2017 2:23:00 AM')
    
    INSERT INTO data_source_table
    VALUES (11, 'newdata','9/11/2017 9:01:00 AM')
    
  14. İşlem hattını yeniden çalıştırmak için Hata Ayıkla'yı seçin, Parametreler'i girin ve son'u seçin.

    Hedefe yalnızca yeni satırların kopyalandığını göreceksiniz.

  15. (İsteğe bağlı:) Veri hedefi olarak Azure Synapse Analytics'i seçerseniz, hazırlama için Azure Synapse Analytics Polybase tarafından gerekli olan Azure Blob depolamaya da bağlantı sağlamanız gerekir. Şablon sizin için bir kapsayıcı yolu oluşturur. İşlem hattı çalıştırıldıktan sonra kapsayıcının Blob depolamada oluşturulup oluşturulmadığını denetleyin.

    Polybase'in yapılandırıldığı yeri gösteren ekran görüntüsü.