Azure portalını kullanarak verileri Azure SQL Veritabanı'den Azure Blob depolamaya artımlı olarak 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, Azure SQL Veritabanı'daki bir tablodan Azure Blob depolamaya delta verileri 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:

  • Eşik değerini depolamak için veri deposunu hazırlama.
  • Veri fabrikası oluşturma.
  • Bağlı hizmet oluşturma.
  • Kaynak, havuz ve eşik veri kümeleri oluşturun.
  • İşlem hattı oluşturma.
  • Ardışık düzeni çalıştırma.
  • İşlem hattı çalıştırmasını izleme.
  • Sonuçları gözden geçirme
  • Kaynağa daha fazla veri ekleyin.
  • İşlem hattını yeniden çalıştırın.
  • İkinci işlem hattı çalıştırmasını izleme
  • İkinci çalıştırmanın sonuçlarını gözden geçirme

Genel Bakış

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

Incrementally load data

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ı dilimlemek için 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 iş akışı ile bir işlem hattı oluşturun:

    Bu çözümdeki işlem hattı aşağıdaki etkinlikleri içerir:

    • İ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.
    • 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 Blob depolama alanına yeni bir dosya olarak kopyalanır.
    • Sonraki seferde çalışan işlem hattı için eşik değerini güncelleştiren bir StoredProcedure etkinliği oluşturun.

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

Önkoşullar

  • Azure SQL Veritabanı. Veritabanını kaynak veri deposu olarak kullanabilirsiniz. Azure SQL Veritabanı'da veritabanınız yoksa, oluşturma adımları için bkz. Azure SQL Veritabanı'da veritabanı oluşturma.
  • Azure Depolama. Blob depolamayı havuz veri deposu olarak kullanabilirsiniz. Depolama hesabınız yoksa, oluşturma adımları için bkz. Depolama hesabı oluşturma. adftutorial adlı bir kapsayıcı oluşturun.

SQL veritabanınızda bir veri kaynağı tablosu oluşturma

  1. SQL Server Management Studio'yu açın. Sunucu Gezgini’nde veritabanına sağ tıklayın ve Yeni Sorgu’yu seçin.

  2. SQL veritabanınızda aşağıdaki SQL komutunu çalıştırarak veri kaynağı deponuz olarak data_source_table adlı bir tablo oluşturun:

    create table data_source_table
    (
        PersonID int,
        Name varchar(255),
        LastModifytime datetime
    );
    
    INSERT INTO data_source_table
        (PersonID, Name, LastModifytime)
    VALUES
        (1, 'aaaa','9/1/2017 12:56:00 AM'),
        (2, 'bbbb','9/2/2017 5:23:00 AM'),
        (3, 'cccc','9/3/2017 2:36:00 AM'),
        (4, 'dddd','9/4/2017 3:21:00 AM'),
        (5, 'eeee','9/5/2017 8:06:00 AM');
    

    Bu öğreticide eşik sütunu olarak LastModifytime kullanılır. Veri kaynağı deposundaki veriler aşağıdaki tabloda gösterilmiştir:

    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
    

Üst eşik değerini depolamak için SQL veritabanınızda başka bir tablo oluşturma

  1. SQL veritabanınızda aşağıdaki SQL komutunu çalıştırarak eşik değerini depolamak için watermarktable adlı bir tablo oluşturun:

    create table watermarktable
    (
    
    TableName varchar(255),
    WatermarkValue datetime,
    );
    
  2. Üst eşiğin varsayılan değerini kaynak veri deposunun tablo adıyla ayarlayın. Bu öğreticide tablo adı data_source_table şeklindedir.

    INSERT INTO watermarktable
    VALUES ('data_source_table','1/1/2010 12:00:00 AM')    
    
  3. watermarktable tablosundaki verileri gözden geçirin.

    Select * from watermarktable
    

    Çıkış:

    TableName  | WatermarkValue
    ----------  | --------------
    data_source_table | 2010-01-01 00:00:00.000
    

SQL veritabanınızda bir saklı yordam oluşturma

SQL veritabanınızda bir saklı yordam oluşturmak için aşağıdaki komutu çalıştırın:

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

BEGIN

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

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 ADFIncCopyTutorialDF 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.

    "ADFIncCopyTutorialDF" veri fabrikası adı kullanılamıyor

  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 veri depoları (Azure Depolama, Azure SQL Veritabanı, Azure SQL Yönetilen Örneği vb.) ve işlem (HDInsight vb.) diğer 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.

İşlem hattı oluşturma

Bu öğreticide tek işlem hattında zincirlenmiş iki Arama etkinliği, bir Kopyalama etkinliği ve bir StoredProcedure etkinliği ile işlem hattı oluşturacaksınız.

  1. Data Factory kullanıcı arabiriminin giriş sayfasında Düzenleme kutucuğuna tıklayın.

    Screenshot that shows the data factory home page with the Orchestrate button highlighted.

  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. Eski filigran değerini almak için ilk arama etkinliğini ekleyelim. Etkinlikler araç kutusunda Genel’i genişletin ve bir Arama etkinliğini sürükleyerek işlem hattı tasarımcısının yüzeyine bırakın. Etkinliğin adını LookupOldWaterMarkActivity olarak değiştirin.

    First lookup activity - name

  4. Ayarlar sekmesine geçin ve Kaynak Veri Kümesi için + Yeni’ye tıklayın. Bu adımda, filigran tablosundaki verileri temsil eden bir veri kümesi oluşturursunuz. Bu tablo, önceki kopyalama işleminde kullanılan eski filigranı içerir.

  5. Yeni Veri Kümesi penceresinde Azure SQL Veritabanı'ı seçin ve Devam'a tıklayın. Veri kümesi için yeni bir pencere açılır.

  6. Veri kümesinin Özellikleri ayarla penceresinde Ad için WatermarkDataset girin.

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

    1. Ad için AzureSqlDatabaseLinkedService adını girin.

    2. Sunucu adı için sunucunuzu seçin.

    3. Açılan listeden Veritabanı adınızı seçin.

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

    5. SQL veritabanınıza bağlantıyı test etmek için Bağlantıyı test et'e tıklayın.

    6. Finish (Son) düğmesine tıklayın.

    7. Bağlı hizmet için AzureSqlDatabaseLinkedService'in seçildiğini onaylayın.

      New linked service window

    8. Bitir'i seçin.

  8. Bağlan sekmesinde [dbo].[ öğesini seçin watermarktable] for Table. Tablodaki verilerin önizlemesini yapmak istiyorsanız Veri önizlemesini görüntüle’ye tıklayın.

    Watermark dataset - connection settings

  9. Üstteki işlem hattı sekmesine veya soldaki ağaç görünümünden işlem hattının adına tıklayarak işlem hattı düzenleyicisine geçin. Arama etkinliğinin özellikler penceresinde Kaynak Veri Kümesi alanı için WatermarkDataset seçeneğinin belirlendiğinden emin olun.

  10. Etkinlikler araç kutusunda Genel’i genişletip başka bir Arama etkinliğini işlem hattı tasarımcısının yüzeyine sürükleyin ve özellikler penceresinin Genel sekmesinde adı LookupNewWaterMarkActivity olarak ayarlayın. Bu Arama etkinliği, kaynak verileri içeren tablodan hedefe kopyalanacak yeni filigran değerini alır.

  11. İkinci Arama etkinliğinin özellikler penceresinde Ayarlar sekmesine geçip Yeni’ye tıklayın. Yeni filigran değerini (en yüksek LastModifyTime değeri) içeren kaynak tabloyu gösteren bir veri kümesi oluşturursunuz.

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

  13. Özellikleri ayarla penceresinde, Ad için SourceDataset girin. Bağlı hizmet için AzureSqlDatabaseLinkedService hizmetini seçin.

  14. Tablo için [dbo].[data_source_table] tablosunu seçin. Bu öğreticinin sonraki bölümlerinde, bu veri kümesinde bir sorgu belirtirsiniz. Bu sorgu, bu adımda belirttiğiniz tablodan önceliklidir.

  15. Bitir'i seçin.

  16. Üstteki işlem hattı sekmesine veya soldaki ağaç görünümünden işlem hattının adına tıklayarak işlem hattı düzenleyicisine geçin. Arama etkinliğinin özellikler penceresinde Kaynak Veri Kümesi alanı için SourceDataset seçeneğinin belirlendiğinden emin olun.

  17. Sorgu Kullan alanı için Sorgu’yu seçin ve aşağıdaki sorguyu girin: data_source_table tablosundan yalnızca en yüksek LastModifytime değerini seçersiniz. Lütfen yalnızca ilk satırı da işaretlediğinizden emin olun.

    select MAX(LastModifytime) as NewWatermarkvalue from data_source_table
    

    Second lookup activity - query

  18. Etkinlikler araç kutusunda Taşı ve Dönüştür'ü genişletin, Etkinlikler araç kutusundan Kopyalama etkinliğini sürükleyip bırakın ve adı IncrementalCopyActivity olarak ayarlayın.

  19. 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ğinin kenarlık renginin mavi olduğunu gördüğünüzde fare düğmesini bırakın.

    Connection Lookup activities to Copy activity

  20. Kopyalama etkinliğini seçin ve Özellikler penceresinde etkinliğin özelliklerini gördüğünüzü onaylayın.

  21. Özellikler penceresinde Kaynak sekmesine geçin ve aşağıdaki adımları uygulayın:

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

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

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

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

      Copy activity - source

  22. Havuz sekmesine geçin ve Havuz Veri Kümesi alanı için + Yeni’ye tıklayın.

  23. Bu öğreticide, havuz veri deposu Azure Blob Depolama türündedir. Bu nedenle, Azure Blob Depolama seçin ve Yeni Veri Kümesi penceresinde Devam'atıklayın.

  24. Biçim Seç penceresinde verilerinizin biçim türünü seçin ve Devam'a tıklayın.

  25. Özellikleri Ayarla penceresinde Ad için SinkDataset girin. Bağlı Hizmet için + Yeni'yi seçin. Bu adımda, Azure Blob Depolama’nıza yönelik bir bağlantı (bağlı hizmet) oluşturursunuz.

  26. Yeni Bağlı Hizmet (Azure Blob Depolama) penceresinde aşağıdaki adımları uygulayın:

    1. Ad için AzureStorageLinkedService adını girin.
    2. Depolama hesabı adı için Azure Depolama hesabınızı seçin.
    3. Bağlan test edin ve son'a tıklayın.
  27. Özellikleri Ayarla penceresinde, Bağlı hizmet için Azure Depolama LinkedService seçeneğinin belirlendiğini onaylayın. Ardından Son’u seçin.

  28. SinkDataset'in Bağlan ion sekmesine gidin ve aşağıdaki adımları uygulayın:

    1. Dosya yolu alanı için adftutorial/incrementalcopy girin. adftutorial blob kapsayıcısı adı, incrementalcopy klasör adıdır. Bu kod parçacığı blob depolama hesabınızda adftutorial adlı bir blob kapsayıcıya sahip olduğunuzu varsayar. Henüz yoksa kapsayıcıyı oluşturun veya var olan bir kapsayıcının adına ayarlayın. incrementalcopy adlı çıktı dosyası mevcut değilse Azure Data Factory tarafından otomatik olarak oluşturulur. Bir blob kapsayıcısındaki klasörlerden birine gitmek istiyorsanız Dosya yolu için Gözat düğmesini de kullanabilirsiniz.
    2. Dosya yolu alanının 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'). Ardından Son’u seçin. Dosya adı, ifade kullanılarak 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.
  29. Üstteki işlem hattı sekmesine veya soldaki ağaç görünümünden işlem hattının adına tıklayarak işlem hattı düzenleyicisine geçin.

  30. Etkinlikler araç kutusunda Genel’i genişletin ve Etkinlikler araç kutusundan Saklı Yordam etkinliğini sürükleyip işlem hattı tasarımcısının yüzeyine bırakın. Kopyalama etkinliğinin yeşil (Başarılı) çıktısını Saklı Yordam etkinliğine bağlayın.

  31. İşlem hattı tasarımcısında Saklı Yordam Etkinliğini seçip etkinliğin adını StoredProceduretoWriteWatermarkActivity olarak değiştirin.

  32. SQL Hesabı sekmesine geçin ve Bağlı hizmet için AzureSqlDatabaseLinkedService'i seçin.

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

    1. Saklı yordam adı için usp_write_watermark'ı seçin.

    2. Saklı yordam parametrelerinin değerlerini belirtmek için, Parametreyi içeri aktar’a tıklayın ve parametreler için aşağıdaki değerleri girin:

      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

  34. İşlem hattı ayarlarını doğrulamak için araç çubuğunda Doğrula’ya tıklayın. Doğrulama hatası olmadığından emin olun. İşlem Hattı Doğrulama Raporu penceresini kapatmak için öğesine tıklayın>>.

  35. Tümünü Yayımla düğmesine tıklayarak varlıkları (bağlı hizmetler, veri kümeleri ve işlem hatları) Azure Data Factory hizmetinde yayımlayın. Yayımlamanın başarılı olduğunu belirten bir ileti görene kadar bekleyin.

İşlem hattı çalıştırmasını tetikleme

  1. Araç çubuğunda Tetikleyici Ekle'ye ve ardından Şimdi Tetikle'ye tıklayın.

  2. İşlem Hattı Çalıştırma penceresinde Son’u seçin.

İşlem hattı çalıştırmasını izleme

  1. Soldaki İzleyici sekmesine geçin. el ile tetiklenen işlem hattı çalıştırmasının durumunu görürsünüz. İşlem HATTı ADı sütununun altındaki bağlantıları kullanarak çalıştırma 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. İş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

  1. Azure Depolama Gezgini gibi araçları kullanarak Azure Depolama Hesabınıza bağlanın. adftutorial kapsayıcısının incrementalcopy klasöründe bir çıktı dosyası oluşturulduğunu doğrulayın.

    First output file

  2. Çıktı dosyasını açın ve data_source_table tablosundaki tüm verilerin blob dosyasına kopyalandığına dikkat edin.

    1,aaaa,2017-09-01 00:56:00.0000000
    2,bbbb,2017-09-02 05:23:00.0000000
    3,cccc,2017-09-03 02:36:00.0000000
    4,dddd,2017-09-04 03:21:00.0000000
    5,eeee,2017-09-05 08:06:00.0000000
    
  3. watermarktable içindeki en son değeri denetleyin. Eşik değerinin güncelleştirildiğini görürsünüz.

    Select * from watermarktable
    

    Çıktı şöyledir:

    | TableName | WatermarkValue |
    | --------- | -------------- |
    | data_source_table | 2017-09-05	8:06:00.000 |
    

Kaynağa daha fazla veri ekleme

Veritabanınıza yeni veriler ekleyin (veri kaynağı deposu).

INSERT INTO data_source_table
VALUES (6, 'newdata','9/6/2017 2:23:00 AM')

INSERT INTO data_source_table
VALUES (7, 'newdata','9/7/2017 9:01:00 AM')

Veritabanınızdaki güncelleştirilmiş veriler:

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 | newdata | 2017-09-06 02:23:00.000
7 | newdata | 2017-09-07 09:01:00.000

Başka bir işlem hattı çalıştırması tetikleme

  1. Düzenle sekmesine geçin. Tasarımcıda açılmamışsa ağaç görünümünde işlem hattına tıklayın.

  2. Araç çubuğunda Tetikleyici Ekle'ye ve ardından Şimdi Tetikle'ye tıklayın.

İkinci işlem hattı çalıştırmasını izleme

  1. Soldaki İzleyici sekmesine geçin. el ile tetiklenen işlem hattı çalıştırmasının durumunu 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. İş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.

İkinci çıkışı doğrulama

  1. Blob depolama alanında başka bir dosyanın oluşturulduğunu görürsünüz. Bu öğreticide yeni dosya adı Incremental-<GUID>.txt şeklindedir. Bu dosyayı açın, içinde 2 satır kaydı göreceksiniz.

    6,newdata,2017-09-06 02:23:00.0000000
    7,newdata,2017-09-07 09:01:00.0000000    
    
  2. watermarktable içindeki en son değeri denetleyin. Eşik değerinin tekrar güncelleştirildiğini görürsünüz.

    Select * from watermarktable
    

    Örnek çıkış:

    | TableName | WatermarkValue |
    | --------- | -------------- |
    | data_source_table | 2017-09-07 09:01:00.000 |
    

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

  • Eşik değerini depolamak için veri deposunu hazırlama.
  • Veri fabrikası oluşturma.
  • Bağlı hizmet oluşturma.
  • Kaynak, havuz ve eşik veri kümeleri oluşturun.
  • İşlem hattı oluşturma.
  • Ardışık düzeni çalıştırma.
  • İşlem hattı çalıştırmasını izleme.
  • Sonuçları gözden geçirme
  • Kaynağa daha fazla veri ekleyin.
  • İşlem hattını yeniden çalıştırın.
  • İkinci işlem hattı çalıştırmasını izleme
  • İkinci çalıştırmanın sonuçlarını gözden geçirme

Bu öğreticide işlem hattı, SQL Veritabanı'daki tek bir tablodan Blob depolamaya veri kopyaladı. SQL Server veritabanındaki birden çok tablodaki verileri SQL Veritabanı kopyalamayı öğrenmek için aşağıdaki öğreticiye ilerleyin.