Share via


Azure portalını kullanarak SQL Server'daki birden çok tablodan Azure SQL Veritabanı veritabanına artımlı olarak veri yükleme

UYGULANANLAR: Azure Data Factory Azure Synapse Analytics

Bahşiş

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 öğreticide, SQL Server veritabanındaki birden çok tablodaki delta verilerini Azure SQL Veritabanı'daki bir veritabanına yükleyen bir işlem hattına sahip bir Azure Data Factory oluşturacaksınız.

Bu öğreticide aşağıdaki adımları gerçekleştireceksiniz:

  • Kaynak ve hedef veri depolarını hazırlayın.
  • Veri fabrikası oluşturma.
  • Şirket içinde barındırılan tümleştirme çalışma zamanı oluşturma.
  • Tümleştirme çalışma zamanını yükleyin.
  • Bağlı hizmet oluşturma.
  • Kaynak, havuz ve eşik veri kümeleri oluşturun.
  • İşlem hattını oluşturma, çalıştırma ve izleme.
  • Sonuçları inceleyin.
  • Kaynak tablolarına veri ekleyin veya bu verileri güncelleştirin.
  • İşlem hattını yeniden çalıştırın ve izleyin.
  • Son sonuçları gözden geçirin.

Genel Bakış

Bu çözümü oluşturmak için önemli adımlar şunlardır:

  1. Eşit sütununu seçin.

    Kaynak veri deposunda her çalıştırma için yeni veya güncelleştirilmiş kayıtları tanımlamak için her tablodan kullanılabilen bir sütun seçin. Normalde, satırlar oluşturulduğunda veya güncelleştirildiğinde seçilen bu sütundaki veriler (örneğin, last_modify_time veya kimlik) artmaya devam eder. Bu sütundaki en büyük değer eşik olarak kullanılır.

  2. Eşik değerini depolamak için veri deposunu hazırlayın.

    Bu öğreticide, eşik değerini bir SQL veritabanında depolayacaksınız.

  3. Aşağıdaki eylemler ile bir işlem hattı oluşturun:

    a. İşlem hattına parametre olarak geçen kaynak tablosu adlarının bir listesi üzerinden yinelenen bir ForEach eylemi oluşturun. Her kaynak tablosunda, bu tabloya yönelik olarak yüklenen değişiklikleri gerçekleştirmek için aşağıdaki eylemleri çağırır.

    b. İki arama etkinliği oluşturun. Son eşik değerini almak için ilk Arama etkinliğini kullanın. Yeni eşik değerini almak için ikinci Arama etkinliğini kullanın. Bu eşik değerleri, Kopyalama etkinliğine geçirilir.

    c. Eşik sütununun değeri eski eşik değerinden büyük ve yeni eşik değerinden küçük olacak şekilde, satırları kaynak veri deposundan kopyalayan bir Kopyalama etkinliği oluşturun. Ardından, delta veriler kaynak veri deposundan Azure Blob depolama alanına yeni bir dosya olarak kopyalanır.

    d. Sonraki seferde çalışan işlem hattı için eşik değerini güncelleştiren bir StoredProcedure etkinliği oluşturun.

    Yüksek düzeyli çözüm diyagramı aşağıdaki gibidir:

    Incrementally load data

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Önkoşullar

  • SQL Server. Bu öğreticide kaynak veri deposu olarak bir SQL Server veritabanı kullanırsınız.
  • Azure SQL Veritabanı. havuz veri deposu olarak Azure SQL Veritabanı'da bir veritabanı kullanırsınız. SQL Veritabanı'da veritabanınız yoksa, oluşturma adımları için bkz. Azure SQL Veritabanı'da veritabanı oluşturma.

SQL Server veritabanınızda kaynak tabloları oluşturma

  1. SQL Server Management Studio’yu açın ve SQL Server veritabanınıza bağlanın.

  2. Sunucu Gezgini’nde veritabanına sağ tıklayın ve Yeni Sorgu’yu seçin.

  3. customer_table ve project_table adlı tabloları oluşturmak için aşağıdaki SQL komutunu veritabanınızda çalıştırın:

    create table customer_table
    (
        PersonID int,
        Name varchar(255),
        LastModifytime datetime
    );
    
    create table project_table
    (
        Project varchar(255),
        Creationtime datetime
    );
    
    INSERT INTO customer_table
    (PersonID, Name, LastModifytime)
    VALUES
    (1, 'John','9/1/2017 12:56:00 AM'),
    (2, 'Mike','9/2/2017 5:23:00 AM'),
    (3, 'Alice','9/3/2017 2:36:00 AM'),
    (4, 'Andy','9/4/2017 3:21:00 AM'),
    (5, 'Anny','9/5/2017 8:06:00 AM');
    
    INSERT INTO project_table
    (Project, Creationtime)
    VALUES
    ('project1','1/1/2015 0:00:00 AM'),
    ('project2','2/2/2016 1:23:00 AM'),
    ('project3','3/4/2017 5:16:00 AM');
    
    

Veritabanınızda hedef tablolar oluşturma

  1. SQL Server Management Studio'yu açın ve Azure SQL Veritabanı veritabanınıza bağlanın.

  2. Sunucu Gezgini’nde veritabanına sağ tıklayın ve Yeni Sorgu’yu seçin.

  3. customer_table ve project_table adlı tabloları oluşturmak için aşağıdaki SQL komutunu veritabanınızda çalıştırın:

    create table customer_table
    (
        PersonID int,
        Name varchar(255),
        LastModifytime datetime
    );
    
    create table project_table
    (
        Project varchar(255),
        Creationtime datetime
    );
    
    

Yüksek filigran değerini depolamak için veritabanınızda başka bir tablo oluşturma

  1. Filigran değerini depolamak için adlı watermarktable bir tablo oluşturmak için veritabanınızda aşağıdaki SQL komutunu çalıştırın:

    create table watermarktable
    (
    
        TableName varchar(255),
        WatermarkValue datetime,
    );
    
  2. Her iki kaynak tablonun ilk eşik değerlerini eşik tablosuna ekleyin.

    
    INSERT INTO watermarktable
    VALUES 
    ('customer_table','1/1/2010 12:00:00 AM'),
    ('project_table','1/1/2010 12:00:00 AM');
    
    

Veritabanınızda saklı yordam oluşturma

Veritabanınızda bir saklı yordam oluşturmak için aşağıdaki komutu çalıştırın. Bu saklı yordam, her işlem hattı çalıştırmasından sonra eşik değerini güncelleştirir.

CREATE PROCEDURE usp_write_watermark @LastModifiedtime datetime, @TableName varchar(50)
AS

BEGIN

UPDATE watermarktable
SET [WatermarkValue] = @LastModifiedtime 
WHERE [TableName] = @TableName

END

Veritabanınızda veri türleri ve ek saklı yordamlar oluşturma

Veritabanınızda iki saklı yordam ve iki veri türü oluşturmak için aşağıdaki sorguyu çalıştırın. Bunlar, kaynak tablodaki verileri hedef tablolarla birleştirmek için kullanılır.

Yolculuğun başlamasını kolaylaştırmak için, delta verilerini bir tablo değişkeni aracılığıyla içeri geçiren bu Saklı Yordamları doğrudan kullanır ve sonra bunları hedef depoda birleştiririz. Tablo değişkeninde "büyük" sayıda delta satırı (100'den fazla) depolanmasını beklemediğinden dikkatli olun.

Çok sayıda delta satırını hedef depoyla birleştirmeniz gerekiyorsa, kopyalama etkinliğini kullanarak tüm delta verilerini önce hedef depodaki geçici bir "hazırlama" tablosuna kopyalamanızı ve ardından bunları "hazırlama" tablosundan "son" tabloya birleştirmek için tablo değişkeni kullanmadan kendi saklı yordamınızı oluşturmanızı öneririz.

CREATE TYPE DataTypeforCustomerTable AS TABLE(
    PersonID int,
    Name varchar(255),
    LastModifytime datetime
);

GO

CREATE PROCEDURE usp_upsert_customer_table @customer_table DataTypeforCustomerTable READONLY
AS

BEGIN
  MERGE customer_table AS target
  USING @customer_table AS source
  ON (target.PersonID = source.PersonID)
  WHEN MATCHED THEN
      UPDATE SET Name = source.Name,LastModifytime = source.LastModifytime
  WHEN NOT MATCHED THEN
      INSERT (PersonID, Name, LastModifytime)
      VALUES (source.PersonID, source.Name, source.LastModifytime);
END

GO

CREATE TYPE DataTypeforProjectTable AS TABLE(
    Project varchar(255),
    Creationtime datetime
);

GO

CREATE PROCEDURE usp_upsert_project_table @project_table DataTypeforProjectTable READONLY
AS

BEGIN
  MERGE project_table AS target
  USING @project_table AS source
  ON (target.Project = source.Project)
  WHEN MATCHED THEN
      UPDATE SET Creationtime = source.Creationtime
  WHEN NOT MATCHED THEN
      INSERT (Project, Creationtime)
      VALUES (source.Project, source.Creationtime);
END

Veri fabrikası oluşturma

  1. Microsoft Edge veya Google Chrome web tarayıcısını açın. Şu anda Data Factory kullanıcı arabirimi yalnızca Microsoft Edge ve Google Chrome web tarayıcılarında desteklenmektedir.

  2. Sol menüde Kaynak>oluştur Integration>Data Factory'yi seçin:

    Data Factory selection in the "New" pane

  3. Yeni veri fabrikası sayfasında ad için ADFMultiIncCopyTutorialDF adını girin.

    Azure Data Factory adı genel olarak benzersiz olmalıdır. Aşağıdaki hatayla birlikte kırmızı bir ünlem işareti görürseniz veri fabrikasının adını değiştirin (örneğin adınızADFIncCopyTutorialDF) ve yeniden oluşturmayı deneyin. Data Factory yapıtlarının adlandırma kuralları için Data Factory - Adlandırma Kuralları makalesine bakın.

    Data factory name "ADFIncCopyTutorialDF" is not available

  4. Veri fabrikasını oluşturmak istediğiniz Azure aboneliğini seçin.

  5. Kaynak Grubu için aşağıdaki adımlardan birini uygulayın:

  6. Sürüm için V2'yi seçin.

  7. Data factory için konum seçin. Açılan listede yalnızca desteklenen konumlar görüntülenir. Veri fabrikası tarafından kullanılan verileri depoları (Azure Depolama, Azure SQL Veritabanı vb.) ve işlemler (HDInsight vb.) başka bölgelerde olabilir.

  8. Oluştur’a tıklayın.

  9. Oluşturma işlemi tamamlandıktan sonra, görüntüde gösterildiği gibi Data Factory sayfasını görürsünüz.

    Home page for the Azure Data Factory, with the Open Azure Data Factory Studio tile.

  10. Azure Data Factory kullanıcı arabirimini (UI) ayrı bir sekmede başlatmak için Azure Data Factory Studio'yu Aç kutucuğunda Aç'ı seçin.

Şirket içinde barındırılan tümleştirme çalışma zamanı oluşturma

Özel bir ağda yer alan (şirket içi) bir veri deposundaki verileri bir Azure veri deposuna taşırken, şirket içi ortamınıza şirket içinde barındırılan bir tümleştirme çalışma zamanı (IR) yükleyin. Şirket içinde barındırılan IR, özel ağınız ile Azure arasında veri taşır.

  1. Azure Data Factory kullanıcı arabiriminin giriş sayfasında, en soldaki bölmeden Yönet sekmesini seçin.

    The home page Manage button

  2. Sol bölmede Tümleştirme çalışma zamanları'nı ve ardından +Yeni'yi seçin.

    Create an integration runtime

  3. Tümleştirme Çalışma Zamanı Kurulumu penceresinde Veri taşıma ve dış işlemlere gönderme etkinliklerini gerçekleştir'i seçin ve Devam'a tıklayın.

  4. Şirket İçinde Barındırılan'ı seçin ve Devam'a tıklayın.

  5. Ad için MySelfHostedIR girin ve Oluştur'a tıklayın.

  6. 1. Seçenek: Hızlı kurulum bölümünde Bu bilgisayarda hızlı kurulumu başlatmak için buraya tıklayın seçeneğine tıklayın.

    Click Express setup link

  7. Tümleştirme Çalışma Zamanı (Şirket İçinde Barındırılan) Hızlı Kurulum penceresinde Kapat’a tıklayın.

    Integration runtime setup - successful

  8. Web tarayıcısında, Tümleştirme Çalışma Zamanı Kurulumu penceresinde Son’a tıklayın.

  9. Tümleştirme çalışma zamanları listesinde MySelfHostedIR öğesini gördüğünüzü doğrulayın.

Bağlı hizmetler oluşturma

Veri depolarınızı ve işlem hizmetlerinizi veri fabrikasına bağlamak için veri fabrikasında bağlı hizmetler oluşturursunuz. Bu bölümde, Azure SQL Veritabanı'da SQL Server veritabanınıza ve veritabanınıza bağlı hizmetler oluşturacaksınız.

SQL Server bağlı hizmet oluşturma

Bu adımda SQL Server veritabanınızı veri fabrikasına bağlarsınız.

  1. Bağlantılar penceresinde Tümleştirme Çalışma Zamanları sekmesinden Bağlı Hizmetler sekmesine geçip + Yeni’ye tıklayın.

    New linked service.

  2. Yeni Bağlı Hizmet penceresinde SQL Server’ı seçip Devam’a tıklayın.

  3. New Linked Service (Yeni Bağlı Hizmet) penceresinde aşağıdaki adımları izleyin:

    1. Ad için SqlServerLinkedService adını girin.
    2. Tümleştirme çalışma zamanı aracılığıyla bağlan için MySelfHostedIR seçeneğini belirleyin. Bu önemli bir adımdır. Varsayılan tümleştirme çalışma zamanı bir şirket içi veri deposuna bağlanamaz. Daha önce oluşturduğunuz şirket içinde barındırılan tümleştirme çalışma zamanını kullanın.
    3. Sunucu adı olarak SQL Server veritabanını içeren bilgisayarınızın adını girin.
    4. Veritabanı adı olarak SQL Server’ınızdaki kaynak verileri içeren veritabanının adını girin. Ön koşulların bir parçası olarak bir tablo oluşturdunuz ve bu veritabanına veri eklediniz.
    5. Kimlik doğrulama türü alanına veritabanına bağlanmak için kullanmak istediğiniz kimlik doğrulama türünü seçin.
    6. Kullanıcı adı alanına SQL Server veritabanına erişimi olan kullanıcının adını girin. Kullanıcı hesabınızda veya sunucu adında eğik çizgi karakteri (\) kullanmanız gerekirse kaçış karakterini (\) kullanın. mydomain\\myuser bunun bir örneğidir.
    7. Parola alanına kullanıcının parolasını girin.
    8. Data Factory’nin SQL Server veritabanınıza bağlanıp bağlanamadığını test etmek için Bağlantıyı sına’ya tıklayın. Bağlantı başarılı olana kadar tüm hataları düzeltin.
    9. Bağlı hizmeti kaydetmek için Son'a tıklayın.

Azure SQL Veritabanı bağlı hizmetini oluşturun

Son adımda, kaynak SQL Server veritabanınızı veri fabrikasına bağlamak için bağlı bir hizmet oluşturursunuz. Bu adımda, hedef/havuz veritabanınızı veri fabrikasına bağlarsınız.

  1. Bağlantılar penceresinde Tümleştirme Çalışma Zamanları sekmesinden Bağlı Hizmetler sekmesine geçip + Yeni’ye tıklayın.

  2. New Linked Service (Yeni Bağlı Hizmet) penceresinde Azure SQL Veritabanı’nı seçip Devam’a tıklayın.

  3. New Linked Service (Yeni Bağlı Hizmet) penceresinde aşağıdaki adımları izleyin:

    1. Ad için AzureSqlDatabaseLinkedService adını girin.
    2. Sunucu adı için açılan listeden sunucunuzun adını seçin.
    3. Veritabanı adı için, customer_table oluşturduğunuz veritabanını seçin ve önkoşulların bir parçası olarak project_table.
    4. Kullanıcı adı için veritabanına erişimi olan kullanıcının adını girin.
    5. Parola alanına kullanıcının parolasını girin.
    6. Data Factory’nin SQL Server veritabanınıza bağlanıp bağlanamadığını test etmek için Bağlantıyı sına’ya tıklayın. Bağlantı başarılı olana kadar tüm hataları düzeltin.
    7. Bağlı hizmeti kaydetmek için Son'a tıklayın.
  4. Listede iki bağlı hizmet gördüğünüzü doğrulayın.

    Two linked services

Veri kümeleri oluşturma

Bu adımda veri kaynağı, veri hedefi ve eşiğin depolanacağı yeri temsil eden veri kümeleri oluşturacaksınız.

Kaynak veri kümesi oluşturma

  1. Sol bölmede, + (artı) düğmesine ve sonra Veri Kümesi’ne tıklayın.

  2. Yeni Veri Kümesi penceresinde SQL Server'ı seçin ve Devam'a tıklayın.

  3. Web tarayıcısında veri kümesinin yapılandırılması için yeni bir sekme açıldığını görürsünüz. Ayrıca ağaç görünümünde bir veri kümesi görürsünüz. Alttaki Özellikler penceresinin Genel sekmesinde Ad için SourceDataset adını girin.

  4. Özellikler penceresinin Bağlantı sekmesine geçin ve Bağlı hizmet için SqlServerLinkedService hizmetini seçin. Burada bir tablo seçmezsiniz. İşlem hattındaki Kopyalama etkinliği, tüm tabloyu yüklemek yerine verileri yüklemek için bir SQL sorgusu kullanır.

    Source dataset - connection

Havuz veri kümesi oluşturma

  1. Sol bölmede, + (artı) düğmesine ve sonra Veri Kümesi’ne tıklayın.

  2. Yeni Veri Kümesi penceresinde Azure SQL Veritabanı'ı seçin ve Devam'a tıklayın.

  3. Web tarayıcısında veri kümesinin yapılandırılması için yeni bir sekme açıldığını görürsünüz. Ayrıca ağaç görünümünde bir veri kümesi görürsünüz. Alttaki Özellikler penceresinin Genel sekmesinde, Ad için SinkDataset adını girin.

  4. Özellikler penceresinin Parametreler sekmesine geçin ve aşağıdaki adımları uygulayın:

    1. Parametre oluştur/güncelleştir bölümünde + Yeni’ye tıklayın.

    2. Ad alanına SinkTableName, tür alanına String değerini girin. Bu veri kümesi, SinkTableName değerini bir parametre olarak alır. SinkTableName parametresi, çalışma zamanında dinamik olarak işlem hattı tarafından ayarlanır. İşlem hattındaki ForEach etkinliği, tablo adlarının bir listesi üzerinden yinelenir ve her yinelemede tablo adını bu veri kümesine geçirir.

      Sink Dataset - properties

  5. Özellikler penceresi Bağlan ion sekmesine geçin ve Bağlı hizmet için AzureSqlDatabaseLinkedService'i seçin. Table özelliği için Dinamik içerik ekle'ye tıklayın.

  6. Dinamik İçerik Ekle penceresinde Parametreler bölümünde SinkTableName'iseçin.

  7. Son'a tıkladıktan sonra "@dataset() ifadesini görürsünüz. Tablo adı olarak SinkTableName" yazın.

    Sink Dataset - connection

Eşik için veri kümesi oluşturma

Bu adımda üst eşik değerini depolamak için bir veri kümesi oluşturacaksınız.

  1. Sol bölmede, + (artı) düğmesine ve sonra Veri Kümesi’ne tıklayın.

  2. Yeni Veri Kümesi penceresinde Azure SQL Veritabanı'ı seçin ve Devam'a tıklayın.

  3. Alttaki Özellikler penceresinin Genel sekmesinde, Ad için WatermarkDataset adını girin.

  4. Bağlantı sekmesine geçin ve aşağıdaki adımları uygulayın:

    1. Bağlı hizmet için AzureSqlDatabaseLinkedService hizmetini seçin.

    2. Tablo için [dbo].[watermarktable] seçeneğini belirleyin.

      Watermark Dataset - connection

İşlem hattı oluşturma

Bu işlem hattı parametre olarak tablo adları listesini alır. ForEach etkinliği, tablo adları listesi üzerinden yinelenir ve aşağıdaki işlemleri gerçekleştirir:

  1. Eski eşik değerini (ilk değer veya son yinelemede kullanılan değer) almak için Arama etkinliğini kullanın.

  2. Yeni eşik değerini (kaynak tablodaki eşik sütununda bulunan en yüksek değer) almak için Arama etkinliğini kullanın.

  3. Bu iki eşik değeri arasında kaynak veritabanından hedef veritabanına veri kopyalamak için Kopyalama etkinliğini kullanın.

  4. Bir sonraki yinelemede kullanılacak eski eşik değerini güncelleştirmek için StoredProcedure etkinliğini kullanın.

İşlem hattını oluşturma

  1. Sol bölmede, + (artı) düğmesine ve sonra da İşlem Hattı’na tıklayın.

  2. Özellikler'in altındaki Genel panelinde Ad için IncrementalCopyPipeline değerini belirtin. Ardından sağ üst köşedeki Özellikler simgesine tıklayarak paneli daraltın.

  3. Parametreler sekmesinde aşağıdaki adımları uygulayın:

    1. + Yeni öğesine tıklayın.
    2. name parametresi için tableList girin.
    3. Parametre türü için Dizi'yi seçin.
  4. Etkinlikler araç kutusunda Yineleme ve Koşullar’ı genişletin ve ForEach etkinliğini sürükleyerek işlem hattı tasarımcısı yüzeyine bırakın. Özellikler penceresinin Genel sekmesinde IterateSQLTables girin.

  5. Ayarlar sekmesine geçin ve Öğeler için @pipeline().parameters.tableList değerini girin. ForEach etkinliği, bir tablo listesi üzerinden yinelenir ve artımlı kopyalama işlemini gerçekleştirir.

    ForEach activity - settings

  6. İşlem hattında ForEach etkinliği zaten seçili değilse bunu seçin. Düzenle (Kalem simgesi) düğmesine tıklayın.

  7. Etkinlikler araç kutusunda Genel’i genişletin, Arama etkinliğini sürükleyerek işlem hattı tasarımcısının yüzeyine bırakın ve Ad için LookupOldWaterMarkActivity girin.

  8. Özellikler penceresinin Ayarlar sekmesine geçin ve aşağıdaki adımları uygulayın:

    1. Kaynak Veri Kümesi için WatermarkDataset’i seçin.

    2. Sorgu Kullan için Sorgu’yu seçin.

    3. Sorgu için aşağıdaki SQL sorgusunu girin.

      select * from watermarktable where TableName  =  '@{item().TABLE_NAME}'
      

      First Lookup Activity - settings

  9. Etkinlikler araç kutusundan Arama etkinliğini sürükleyip bırakın ve Ad için LookupNewWaterMarkActivity adını girin.

  10. Ayarlar sekmesine geçin.

    1. Kaynak Veri Kümesi için SourceDataset’i seçin.

    2. Sorgu Kullan için Sorgu’yu seçin.

    3. Sorgu için aşağıdaki SQL sorgusunu girin.

      select MAX(@{item().WaterMark_Column}) as NewWatermarkvalue from @{item().TABLE_NAME}
      

      Second Lookup Activity - settings

  11. Etkinlikler araç kutusundan Kopyalama etkinliğini sürükleyip bırakın ve Ad için IncrementalCopyActivity adını girin.

  12. Arama etkinliklerini tek tek Kopyalama etkinliğine bağlayın. Bağlanmak için Arama etkinliğine bağlı yeşil kutuyu sürüklemeye başlayın ve Kopyalama etkinliğinin üzerine başlayın. Kopyalama etkinliğinin kenarlık rengi mavi olduğunda fare düğmesini bırakın.

    Connect Lookup activities to Copy activity

  13. İşlem hattında Kopyalama etkinliğini seçin. Özellikler penceresinin Kaynak sekmesine geçin.

    1. Kaynak Veri Kümesi için SourceDataset’i seçin.

    2. Sorgu Kullan için Sorgu’yu seçin.

    3. Sorgu için aşağıdaki SQL sorgusunu girin.

      select * from @{item().TABLE_NAME} where @{item().WaterMark_Column} > '@{activity('LookupOldWaterMarkActivity').output.firstRow.WatermarkValue}' and @{item().WaterMark_Column} <= '@{activity('LookupNewWaterMarkActivity').output.firstRow.NewWatermarkvalue}'        
      

      Copy Activity - source settings

  14. Havuz sekmesine geçin ve Havuz Veri Kümesi alanı için SinkDataset’i seçin.

  15. Aşağıdaki adımları yapın:

    1. Veri kümesi özelliklerinde SinkTableName parametresi için girin@{item().TABLE_NAME}.

    2. Saklı Yordam Adı özelliği için girin@{item().StoredProcedureNameForMergeOperation}.

    3. Tablo türü özelliği için girin@{item().TableType}.

    4. Tablo türü parametre adı için girin@{item().TABLE_NAME}.

      Copy Activity - parameters

  16. Etkinlikler araç kutusundan Saklı Yordam etkinliğini sürükleyerek işlem hattı tasarımcısının yüzeyine bırakın. Kopyalama etkinliğini Saklı Yordam etkinliğine bağlayın.

  17. İşlem hattında Saklı Yordam etkinliğini seçin ve Özellikler penceresinin Genel sekmesinde Ad alanına StoredProceduretoWriteWatermarkActivity adını girin.

  18. SQL Hesabı sekmesine geçin ve Bağlı Hizmet için AzureSqlDatabaseLinkedService seçeneğini belirleyin.

    Stored Procedure Activity - SQL Account

  19. Saklı Yordam sekmesine geçin ve aşağıdaki adımları uygulayın:

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

    2. Parametreyi içeri aktar’ı seçin.

    3. Parametreler için aşağıdaki değerleri belirtin:

      Veri Akışı Adı Tür Value
      LastModifiedtime DateTime @{activity('LookupNewWaterMarkActivity').output.firstRow.NewWatermarkvalue}
      TableName String @{activity('LookupOldWaterMarkActivity').output.firstRow.TableName}

      Stored Procedure Activity - stored procedure settings

  20. Oluşturduğunuz varlıkları Data Factory hizmetinde yayımlamak için Tümünü Yayımla'yı seçin.

  21. Başarıyla yayımlandı iletisini görene kadar bekleyin. Bildirimleri görmek için Bildirimleri Göster bağlantısına tıklayın. X simgesine tıklayarak bildirim penceresini kapatın.

İşlem hattını çalıştırma

  1. İşlem hattının araç çubuğunda Tetikleyici ekle'ye ve ardından Şimdi Tetikle'ye tıklayın.

  2. İşlem Hattı Çalıştırma penceresinde tableList parametresi için aşağıdaki değeri girip Son’a tıklayın.

    [
        {
            "TABLE_NAME": "customer_table",
            "WaterMark_Column": "LastModifytime",
            "TableType": "DataTypeforCustomerTable",
            "StoredProcedureNameForMergeOperation": "usp_upsert_customer_table"
        },
        {
            "TABLE_NAME": "project_table",
            "WaterMark_Column": "Creationtime",
            "TableType": "DataTypeforProjectTable",
            "StoredProcedureNameForMergeOperation": "usp_upsert_project_table"
        }
    ]
    

    Pipeline Run arguments

İşlem hattını izleme

  1. Soldaki İzleyici sekmesine geçin. El ile tetikleme yoluyla tetiklenen işlem hattı çalıştırmasını görürsünüz. İşlem HATTı ADı sütununun altındaki bağlantıları kullanarak etkinlik ayrıntılarını görüntüleyebilir ve işlem hattını yeniden çalıştırabilirsiniz.

  2. İşlem hattı çalıştırmasıyla ilişkili etkinlik çalıştırmalarını görmek için İşlem HATI ADI sütununun altındaki bağlantıyı seçin. Etkinlik çalıştırmalarıyla ilgili ayrıntılar için ETKİ ADI sütununun altındaki Ayrıntılar bağlantısını (gözlük simgesi) seçin.

  3. İşlem Hattı Çalıştırmaları görünümüne dönmek için üstteki Tüm işlem hattı çalıştırmaları'nı seçin. Görünümü yenilemek için Yenile’yi seçin.

Sonuçları gözden geçirin

Verilerin kaynak tablolardan hedef tablolara kopyalandığını doğrulamak için, SQL Server Management Studio’da SQL veritabanında aşağıdaki sorguları çalıştırın:

Sorgu

select * from customer_table

Çıktı

===========================================
PersonID	Name	LastModifytime
===========================================
1	        John	2017-09-01 00:56:00.000
2	        Mike	2017-09-02 05:23:00.000
3	        Alice	2017-09-03 02:36:00.000
4	        Andy	2017-09-04 03:21:00.000
5	        Anny	2017-09-05 08:06:00.000

Sorgu

select * from project_table

Çıktı

===================================
Project	    Creationtime
===================================
project1	2015-01-01 00:00:00.000
project2	2016-02-02 01:23:00.000
project3	2017-03-04 05:16:00.000

Sorgu

select * from watermarktable

Çıktı

======================================
TableName	    WatermarkValue
======================================
customer_table	2017-09-05 08:06:00.000
project_table	2017-03-04 05:16:00.000

Her iki tablonun da eşik değerlerinin güncelleştirildiğine dikkat edin.

Kaynak tablolara daha fazla veri ekleme

customer_table içerisindeki mevcut bir satırı güncelleştirmek için aşağıdaki sorguyu kaynak SQL Server veritabanında çalıştırın. Project_table içine yeni bir satır ekleyin.

UPDATE customer_table
SET [LastModifytime] = '2017-09-08T00:00:00Z', [name]='NewName' where [PersonID] = 3

INSERT INTO project_table
(Project, Creationtime)
VALUES
('NewProject','10/1/2017 0:00:00 AM');

İşlem hattını yeniden çalıştırma

  1. Web tarayıcısı penceresinde, soldaki Düzenle sekmesine geçin.

  2. İşlem hattının araç çubuğunda Tetikleyici ekle'ye ve ardından Şimdi Tetikle'ye tıklayın.

  3. İşlem Hattı Çalıştırma penceresinde tableList parametresi için aşağıdaki değeri girip Son’a tıklayın.

    [
        {
            "TABLE_NAME": "customer_table",
            "WaterMark_Column": "LastModifytime",
            "TableType": "DataTypeforCustomerTable",
            "StoredProcedureNameForMergeOperation": "usp_upsert_customer_table"
        },
        {
            "TABLE_NAME": "project_table",
            "WaterMark_Column": "Creationtime",
            "TableType": "DataTypeforProjectTable",
            "StoredProcedureNameForMergeOperation": "usp_upsert_project_table"
        }
    ]
    

İşlem hattını yeniden izleme

  1. Soldaki İzleyici sekmesine geçin. El ile tetikleme yoluyla tetiklenen işlem hattı çalıştırmasını görürsünüz. İşlem HATTı ADı sütununun altındaki bağlantıları kullanarak etkinlik ayrıntılarını görüntüleyebilir ve işlem hattını yeniden çalıştırabilirsiniz.

  2. İşlem hattı çalıştırmasıyla ilişkili etkinlik çalıştırmalarını görmek için İşlem HATI ADI sütununun altındaki bağlantıyı seçin. Etkinlik çalıştırmalarıyla ilgili ayrıntılar için ETKİ ADI sütununun altındaki Ayrıntılar bağlantısını (gözlük simgesi) seçin.

  3. İşlem Hattı Çalıştırmaları görünümüne dönmek için üstteki Tüm işlem hattı çalıştırmaları'nı seçin. Görünümü yenilemek için Yenile’yi seçin.

Son sonuçları gözden geçirme

SQL Server Management Studio'da, güncelleştirilmiş/yeni verilerin kaynak tablolardan hedef tablolara kopyalandığını doğrulamak için hedef SQL veritabanında aşağıdaki sorguları çalıştırın.

Sorgu

select * from customer_table

Çıktı

===========================================
PersonID	Name	LastModifytime
===========================================
1	        John	2017-09-01 00:56:00.000
2	        Mike	2017-09-02 05:23:00.000
3	        NewName	2017-09-08 00:00:00.000
4	        Andy	2017-09-04 03:21:00.000
5	        Anny	2017-09-05 08:06:00.000

3 numaraya ait PersonID için yeni Name ve LastModifytime değerlerine dikkat edin.

Sorgu

select * from project_table

Çıktı

===================================
Project	    Creationtime
===================================
project1	2015-01-01 00:00:00.000
project2	2016-02-02 01:23:00.000
project3	2017-03-04 05:16:00.000
NewProject	2017-10-01 00:00:00.000

NewProject girişinin project_table tablosuna eklendiğine dikkat edin.

Sorgu

select * from watermarktable

Çıktı

======================================
TableName	    WatermarkValue
======================================
customer_table	2017-09-08 00:00:00.000
project_table	2017-10-01 00:00:00.000

Her iki tablonun da eşik değerlerinin güncelleştirildiğine dikkat edin.

Bu öğreticide aşağıdaki adımları gerçekleştirdiniz:

  • Kaynak ve hedef veri depolarını hazırlayın.
  • Veri fabrikası oluşturma.
  • Şirket içinde barındırılan tümleştirme çalışma (IR) zamanı oluşturun.
  • Tümleştirme çalışma zamanını yükleyin.
  • Bağlı hizmet oluşturma.
  • Kaynak, havuz ve eşik veri kümeleri oluşturun.
  • İşlem hattını oluşturma, çalıştırma ve izleme.
  • Sonuçları inceleyin.
  • Kaynak tablolarına veri ekleyin veya bu verileri güncelleştirin.
  • İşlem hattını yeniden çalıştırın ve izleyin.
  • Son sonuçları gözden geçirin.

Azure üzerinde bir Spark kümesi kullanarak veri dönüştürme hakkında bilgi edinmek için aşağıdaki öğreticiye geçin: