Öğretici: SQL Server veritabanındaki verileri Azure Blob depolamaya kopyalama

ŞUNLARA UYGULANIR: Azure Data Factory Azure Synapse Analytics

İpucu

Microsoft Fabric'daki Data Factory, daha basit bir mimariye, yerleşik yapay zekaya ve yeni özelliklere sahip yeni nesil Azure Data Factory. Veri tümleştirmeyi yeni kullanmaya başladıysanız Fabric Data Factory ile başlayın. Mevcut ADF iş yükleri veri bilimi, gerçek zamanlı analiz ve raporlama genelinde yeni özelliklere erişmek için Fabric yükseltebilir.

Bu öğreticide, SQL Server veritabanındaki verileri Azure Blob depolama alanına kopyalayan bir veri fabrikası işlem hattı oluşturmak için Azure PowerShell kullanacaksınız. Verileri şirket içi ile bulut veri depoları arasında taşıyan, şirket içinde barındırılan bir tümleştirme çalışma zamanı oluşturup kullanabilirsiniz.

Not

Bu makale, Data Factory hizmetine ayrıntılı giriş bilgileri sağlamaz. Daha fazla bilgi için bkz. Azure Data Factory'a giriş.

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

  • Veri fabrikası oluşturma.
  • Yerel barındırmalı tümleştirme çalışma zamanı oluşturma.
  • SQL Server ve Azure Depolama bağlantılı hizmetler oluşturun.
  • SQL Server ve Azure Blob veri kümeleri oluşturun.
  • Verileri taşımak için kopyalama etkinliğiyle bir işlem hattı oluşturun.
  • Bir işlem hattı çalıştırmasını başlat.
  • İşlem hattı çalışmasını izleyin.

Önkoşullar

Azure aboneliği

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

Azure rolleri

Veri fabrikası örnekleri oluşturmak için, Azure oturum açmak için kullandığınız kullanıcı hesabına Contributor veya Owner rolü atanmalıdır veya Azure aboneliğinin administrator olmalıdır.

Abonelikte sahip olduğunuz izinleri görüntülemek için Azure portalına gidin, sağ üst köşedeki kullanıcı adınızı seçin ve ardından Permissions öğesini seçin. Birden çok aboneliğe erişiminiz varsa uygun aboneliği seçin. Bir kullanıcıyı role eklemeyle ilgili örnek yönergeler için Azure portalını kullanarak Azure rolleri atayın makalesine bakın.

SQL Server 2014, 2016 ve 2017

Bu öğreticide SQL Server veritabanını source veri deposu olarak kullanacaksınız. Bu öğreticide oluşturduğunuz veri fabrikasındaki işlem hattı, verileri bu SQL Server veritabanından (kaynak) Azure Blob depolama alanına (havuz) kopyalar. Ardından SQL Server veritabanınızda emp adlı bir tablo oluşturur ve tabloya birkaç örnek girdi eklersiniz.

  1. SQL Server Management Studio başlayın. Makinenizde yüklü değilse İndir SQL Server Management Studio adresine gidin.

  2. Kimlik bilgilerinizi kullanarak SQL Server örneğine bağlanın.

  3. Örnek bir veritabanı oluşturun. Ağaç görünümünde Veritabanları'na sağ tıklayın ve Yeni Veritabanı'nı seçin.

  4. Yeni Veritabanı penceresinde, veritabanı için bir ad girin ve Tamam'ı seçin.

  5. emp tablosunu oluşturmak ve içine bazı örnek verileri eklemek için veritabanında aşağıdaki sorgu betiğini çalıştırın. Ağaç görünümünde, oluşturduğunuz veritabanına sağ tıklayın ve Yeni Sorgu'yu seçin.

    CREATE TABLE dbo.emp
    (
        ID int IDENTITY(1,1) NOT NULL,
        FirstName varchar(50),
        LastName varchar(50)
    )
    GO
    
    INSERT INTO emp (FirstName, LastName) VALUES ('John', 'Doe')
    INSERT INTO emp (FirstName, LastName) VALUES ('Jane', 'Doe')
    GO
    

Azure Depolama hesabı

Bu öğreticide, hedef/havuz veri deposu olarak genel amaçlı bir Azure depolama hesabı (özellikle Azure Blob depolama) kullanacaksınız. Genel amaçlı bir Azure depolama hesabınız yoksa bkz. Depolama hesabı oluşturma. Bu öğreticide oluşturduğunuz veri fabrikasındaki işlem hattı, verileri SQL Server veritabanından (kaynak) bu Azure Blob depolama alanına (havuz) kopyalar.

Depolama hesabı adını ve hesap anahtarını alma

Bu öğreticide Azure depolama hesabınızın adını ve anahtarını kullanırsınız. Aşağıdakileri yaparak depolama hesabınızın adını ve anahtarını alın:

  1. Azure kullanıcı adınız ve parolanızla Azure portalında oturum açın.

  2. Sol bölmede, Depolama anahtar sözcüğünü kullanarak Diğer hizmetler filtresini ve ardından Depolama hesapları’nı seçin.

    Depolama hesabını arama

  3. Depolama hesapları listesinde, depolama hesabınız için filtre uygulayın (gerekirse) ve ardından depolama hesabınızı seçin.

  4. Depolama hesabı penceresinde Erişim anahtarları'nı seçin.

  5. Depolama hesabı adı ve key1 kutularında değerleri kopyalayın ve ardından onları öğreticide daha sonra kullanmak için Not Defteri'ne veya başka bir düzenleyiciye yapıştırın.

Adftutorial kapsayıcısını oluşturma

Bu bölümde, Azure Blob depolama alanınızda adftutorial adlı bir blob kapsayıcısı oluşturacaksınız.

  1. Depolama hesabı penceresinde Genel Bakış’a geçin ve sonra Bloblar’ı seçin.

    Bloblar seçeneğini belirleyin

  2. Blob hizmeti penceresinde Kapsayıcı’yı seçin.

  3. Yeni kapsayıcı penceresinde, Ad kutusuna adftutorial girin ve ardından Tamam’ı seçin.

    Kapsayıcı adını girin

  4. Kapsayıcılar listesinde adftutorial’ı seçin.

  5. adftutorial öğesine ait kapsayıcı penceresini açık tutun. Öğreticinin sonunda çıktıyı doğrulamak için kullanırsınız. Data Factory bu kapsayıcıda çıktı klasörünü otomatik olarak oluşturduğundan sizin oluşturmanız gerekmez.

Windows PowerShell

Azure PowerShell yükleme

Not

Azure ile etkileşime geçmek için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz. Azure PowerShell yükleme. Az PowerShell modülüne nasıl geçiş yapılacağını öğrenmek için bkz. AzureRM'den Az Azure PowerShell dağıtma.

Makinenizde yoksa Azure PowerShell'ın en son sürümünü yükleyin. Ayrıntılı yönergeler için bkz. Azure PowerShell yükleme ve yapılandırma.

PowerShell’de oturum açın

  1. Makinenizde PowerShell'i başlatın ve bu hızlı başlangıç öğreticisi tamamlanana dek açık tutun. Kapatıp yeniden açarsanız bu komutları yeniden çalıştırmanız gerekir.

  2. Aşağıdaki komutu çalıştırın ve Azure portalında oturum açmak için kullandığınız Azure kullanıcı adını ve parolayı girin:

    Connect-AzAccount
    
  3. Birden çok Azure aboneliğiniz varsa, çalışmak istediğiniz aboneliği seçmek için aşağıdaki komutu çalıştırın. SubscriptionId değerini Azure aboneliğinizin kimliğiyle değiştirin:

    Select-AzSubscription -SubscriptionId "<SubscriptionId>"   	
    

Veri fabrikası oluşturma

  1. Daha sonra PowerShell komutlarında kullanacağınız kaynak grubu adı için bir değişken tanımlayın. Aşağıdaki komutu PowerShell'e kopyalayın, Azure kaynak grubu için bir ad belirtin (çift tırnak içine alınmış, örneğin, "adfrg") ve ardından komutunu çalıştırın.

    $resourceGroupName = "ADFTutorialResourceGroup"
    
  2. Azure kaynak grubunu oluşturmak için aşağıdaki komutu çalıştırın:

    New-AzResourceGroup $resourceGroupName -location 'East US'
    

    Kaynak grubu zaten varsa, üzerine yazılmasını istemeyebilirsiniz. $resourceGroupName değişkenine farklı bir değer atayın ve komutu yeniden çalıştırın.

  3. Daha sonra PowerShell komutlarında kullanabileceğiniz veri fabrikası adı için bir değişken tanımlayın. Ad bir harf veya rakamla başlamalıdır; yalnızca harf, rakam ve tire (-) karakteri içerebilir.

    Önemli

    Veri fabrikasının adını genel olarak benzersiz bir adla güncelleştirin. Örnek olarak ADFTutorialFactorySP1127 olabilir.

    $dataFactoryName = "ADFTutorialFactory"
    
  4. Veri fabrikasının konumu için bir değişken tanımlayın:

    $location = "East US"
    
  5. Veri fabrikasını oluşturmak için aşağıdaki Set-AzDataFactoryV2 cmdlet’ini çalıştırın:

    Set-AzDataFactoryV2 -ResourceGroupName $resourceGroupName -Location $location -Name $dataFactoryName
    

Not

  • Veri fabrikasının adı genel olarak benzersiz olmalıdır. Aşağıdaki hata iletisini alırsanız adı değiştirip yeniden deneyin.
    The specified data factory name 'ADFv2TutorialDataFactory' is already in use. Data factory names must be globally unique.
    
  • Veri fabrikası örnekleri oluşturmak için Azure'a oturum açmak için kullanacağınız kullanıcı hesabına katkıda bulunan veya sahip rolü atanmalı ya da Azure aboneliğinin yöneticisi olmalıdır.
  • Data Factory'nin şu anda kullanılabilir olduğu Azure bölgelerin listesi için aşağıdaki sayfada ilginizi çekebilecek bölgeleri seçin ve ardından Analytics'yi genişleterek Data Factory: Products by region öğesini bulun. Veri fabrikası tarafından kullanılan veri depoları (Azure Depolama, Azure SQL Veritabanı vb.) ve işlem (Azure HDInsight vb.) başka bölgelerde olabilir.

Kendi kendine barındırılan tümleştirme çalışma zamanı oluşturmak

Bu bölümde, kendi kendine barındırılan bir tümleştirme çalışma zamanı oluşturur ve bunu SQL Server veritabanını içeren şirket içi bir makineyle ilişkilendirirsiniz. Kendi kendine barındırılan tümleştirme çalışma zamanı, makinenizdeki SQL Server veritabanındaki verileri Azure Blob depolama alanına kopyalayan bileşendir.

  1. Tümleştirme çalışma zamanının adı için bir değişken oluşturun. Benzersiz bir ad kullanın ve bu adı not edin. Daha sonra bu öğreticide kullanacaksınız.

    $integrationRuntimeName = "ADFTutorialIR"
    
  2. Yerel barındırmalı tümleştirme çalışma zamanı oluşturma.

    Set-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $resourceGroupName -DataFactoryName $dataFactoryName -Name $integrationRuntimeName -Type SelfHosted -Description "selfhosted IR description"
    

    Örnek çıktı aşağıdaki gibidir:

    Name              : ADFTutorialIR
    Type              : SelfHosted
    ResourceGroupName : <resourceGroupName>
    DataFactoryName   : <dataFactoryName>
    Description       : selfhosted IR description
    Id                : /subscriptions/<subscription ID>/resourceGroups/<resourceGroupName>/providers/Microsoft.DataFactory/factories/<dataFactoryName>/integrationruntimes/<integrationRuntimeName>
    
  3. Oluşturulan tümleştirme çalışma zamanının durumunu almak için aşağıdaki komutu çalıştırın:

    Get-AzDataFactoryV2IntegrationRuntime -name $integrationRuntimeName -ResourceGroupName $resourceGroupName -DataFactoryName $dataFactoryName -Status
    

    Örnek çıktı aşağıdaki gibidir:

    State                     : NeedRegistration
    Version                   :
    CreateTime                : 9/10/2019 3:24:09 AM
    AutoUpdate                : On
    ScheduledUpdateDate       :
    UpdateDelayOffset         :
    LocalTimeZoneOffset       :
    InternalChannelEncryption :
    Capabilities              : {}
    ServiceUrls               : {eu.frontend.clouddatahub.net}
    Nodes                     : {}
    Links                     : {}
    Name                      : <Integration Runtime name>
    Type                      : SelfHosted
    ResourceGroupName         : <resourceGroup name>
    DataFactoryName           : <dataFactory name>
    Description               : selfhosted IR description
    Id                        : /subscriptions/<subscription ID>/resourceGroups/<resourceGroupName>/providers/Microsoft.DataFactory/factories/<dataFactoryName>/integrationruntimes/<integrationRuntimeName>
    
  4. Yerel olarak barındırılan tümleştirme çalışma zamanını Data Factory hizmetine bulutta kaydetmek için kimlik doğrulama anahtarlarını elde etmek üzere aşağıdaki komutu çalıştırın. Sonraki adımda makinenize yükleyeceğiniz yerel tümleştirme çalışma zamanını kaydetmek için anahtarlardan birini (tırnak işaretleri hariç) kopyalayın.

    Get-AzDataFactoryV2IntegrationRuntimeKey -Name $integrationRuntimeName -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName | ConvertTo-Json
    

    Örnek çıktı aşağıdaki gibidir:

    {
        "AuthKey1":  "IR@0000000000-0000-0000-0000-000000000000@xy0@xy@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=",
        "AuthKey2":  "IR@0000000000-0000-0000-0000-000000000000@xy0@xy@yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy="
    }
    

Tümleştirme çalışma zamanını yükleme

  1. yerel bir Windows makinesine Azure Data Factory Integration Runtime indirin ve yüklemeyi çalıştırın.

  2. Welcome to Microsoft Integration Runtime Setup sihirbazında Next öğesini seçin.

  3. Son Kullanıcı Lisans Sözleşmesi penceresinde koşulları ve lisans sözleşmesini kabul edin ve İleri'yi seçin.

  4. Hedef Klasör penceresinde İleri’yi seçin.

  5. Microsoft Integration Runtime Kuruluma Hazır penceresinde, Install seçeneğini seçin.

  6. Microsoft Integration Runtime Kurulumu tamamlandı sihirbazında Finish öğesini seçin.

  7. Register Integration Runtime (Kendi Kendine Barındırılan) penceresinde, önceki bölümde kaydettiğiniz anahtarı yapıştırın ve Kaydet öğesini seçin.

    Tümleştirme çalışma zamanını kaydetme

  8. Yeni Entegrasyon Zamanlayıcısı (Şirket içinde barındırılan) Düğümü penceresinde Tamamla öğesini seçin.

    Yeni Integration Runtime Düğümü penceresi

  9. Şirket içinde barındırılan tümleştirme çalışma zamanı başarıyla kaydedildiğinde aşağıdaki ileti görüntülenir:

    Başarıyla kaydedildi

  10. Register Integration Runtime (Kendinden Barındırmalı) penceresinde Yapılandırma Yöneticisini Başlat öğesini seçin.

  11. Düğüm bulut hizmetine bağlandığında şu ileti görüntülenir:

    Düğüm bağlı

  12. Aşağıdakileri yaparak SQL Server veritabanınıza bağlantıyı test edin:

    a. Yapılandırma Yöneticisi penceresinde Diagnostics sekmesine geçin.

    b. Veri kaynağı türü kutusunda SqlServer’ı seçin.

    c. Sunucu adını girin.

    d. Veritabanı adını girin.

    e. Kimlik doğrulama modunu seçin.

    f. Kullanıcı adını girin.

    g. Kullanıcı adıyla ilişkili parolayı girin.

    h. Tümleştirme çalışma zamanının SQL Server bağlanabildiğini onaylamak için Test öğesini seçin.
    Bağlantı başarılı oldu

    Bağlantı başarılı olursa yeşil bir onay işareti görüntülenir. Başarılı olmazsa hata ile ilişkili bir hata iletisi alırsınız. Tüm sorunları düzeltin ve tümleştirme çalışma zamanının SQL Server örneğine bağlanadığından emin olun.

    Bu öğreticide daha sonra kullanmak için önceki tüm değerleri not edin.

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şturun. Bu öğreticide, Azure depolama hesabınızı ve SQL Server örneğinizi veri deposuna bağlarsınız. Bağlı hizmetler, Data Factory hizmetinin bunlara bağlanmak için çalışma zamanında kullandığı bağlantı bilgilerini içerir.

Azure Depolama bağlı hizmet oluşturma (hedef/kaynak)

Bu adımda, Azure depolama hesabınızı veri fabrikasına bağlarsınız.

  1. C:\ADFv2Tutorial klasöründe aşağıdaki kodla AzureStorageLinkedService.json adlı bir JSON dosyası oluşturun. ADFv2Tutorial klasörü henüz yoksa oluşturun.

    Önemli

    Dosyayı kaydetmeden önce <accountName> ve <accountKey> Azure depolama hesabınızın adı ve anahtarıyla değiştirin. Bunları Önkoşullar bölümünde not etmiştiniz.

    {
        "name": "AzureStorageLinkedService",
        "properties": {
            "annotations": [],
            "type": "AzureBlobStorage",
            "typeProperties": {
                "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountName>;AccountKey=<accountKey>;EndpointSuffix=core.windows.net"
            }
        }
    }
    
  2. PowerShell’de C:\ADFv2Tutorial klasörüne geçin.

    Set-Location 'C:\ADFv2Tutorial'
    
  3. AzureStorageLinkedService adlı bağlı hizmeti oluşturmak için aşağıdaki Set-AzDataFactoryV2LinkedService cmdlet’ini çalıştırın:

    Set-AzDataFactoryV2LinkedService -DataFactoryName $dataFactoryName -ResourceGroupName $ResourceGroupName -Name "AzureStorageLinkedService" -File ".\AzureStorageLinkedService.json"
    

    Örnek çıktı aşağıdaki gibidir:

    LinkedServiceName : AzureStorageLinkedService
    ResourceGroupName : <resourceGroup name>
    DataFactoryName   : <dataFactory name>
    Properties        : Microsoft.Azure.Management.DataFactory.Models.AzureBlobStorageLinkedService
    

    "Dosya bulunamadı" hatasını alırsanız dir komutunu çalıştırarak dosyanın var olduğunu doğrulayın. Dosya .txt uzantısına sahipse (örneğin, AzureStorageLinkedService.json.txt) uzantıyı atıp PowerShell komutunu tekrar çalıştırın.

SQL Server bağlı hizmetini oluştur ve şifrele (kaynak)

Bu adımda, SQL Server örneğinizi veri fabrikasına bağlarsınız.

  1. C:\ADFv2Tutorial klasöründe aşağıdaki kodu kullanarak SqlServerLinkedService.json adlı bir JSON dosyası oluşturun:

    Önemli

    SQL Server bağlanmak için kullandığınız kimlik doğrulamasını temel alan bölümü seçin.

    SQL kimlik doğrulaması (sa) kullanarak:

    {  
        "name":"SqlServerLinkedService",
        "type":"Microsoft.DataFactory/factories/linkedservices",
        "properties":{  
            "annotations":[  
    
            ],
            "type":"SqlServer",
            "typeProperties":{  
                "connectionString":"integrated security=False;data source=<serverName>;initial catalog=<databaseName>;user id=<userName>;password=<password>"
            },
            "connectVia":{  
                "referenceName":"<integration runtime name> ",
                "type":"IntegrationRuntimeReference"
            }
        }
    }
    

    Windows kimlik doğrulamasını kullanarak:

    {  
        "name":"SqlServerLinkedService",
        "type":"Microsoft.DataFactory/factories/linkedservices",
        "properties":{  
            "annotations":[  
    
            ],
            "type":"SqlServer",
            "typeProperties":{  
                "connectionString":"integrated security=True;data source=<serverName>;initial catalog=<databaseName>",
                "userName":"<username> or <domain>\\<username>",
                "password":{  
                    "type":"SecureString",
                    "value":"<password>"
                }
            },
            "connectVia":{  
                "referenceName":"<integration runtime name>",
                "type":"IntegrationRuntimeReference"
            }
        }
    }
    

    Önemli

    • SQL Server örneğine bağlanmak için kullandığınız kimlik doğrulamasını temel alan bölümü seçin.
    • Tümleştirme çalışma zamanı adını< tümleştirme çalışma zamanınızın adıyla değiştirin>.
    • Dosyayı kaydetmeden önce <servername>, <databasename>, <username> ve <password> SQL Server örneğinizin değerleriyle.
    • Kullanıcı hesabınızda veya sunucu adınızda ters eğik çizgi (\) kullanmanız gerekiyorsa, önüne kaçış karakteri (\) koyun. Örneğin, mydomain\\myuser kullanın.
  2. Hassas verileri (kullanıcı adı, parola ve benzeri) şifrelemek için New-AzDataFactoryV2LinkedServiceEncryptedCredential cmdlet'ini çalıştırın.
    Bu şifreleme, kimlik bilgilerinin Veri Koruma Uygulama Programlama Arabirimi (DPAPI) kullanılarak şifrelenmesini sağlar. Şifrelenmiş kimlik bilgileri, kendi kendine barındırılan tümleştirme çalıştırma düğümünde (yerel makinede) kaydedilir. Çıktı yükü, şifrelenmiş kimlik bilgilerini içeren başka bir JSON dosyasına (bu örnekte encryptedLinkedService.json) yönlendirilebilir.

    New-AzDataFactoryV2LinkedServiceEncryptedCredential -DataFactoryName $dataFactoryName -ResourceGroupName $ResourceGroupName -IntegrationRuntimeName $integrationRuntimeName -File ".\SQLServerLinkedService.json" > encryptedSQLServerLinkedService.json
    
  3. EncryptedSqlServerLinkedService öğesini oluşturan aşağıdaki komutu çalıştırın:

    Set-AzDataFactoryV2LinkedService -DataFactoryName $dataFactoryName -ResourceGroupName $ResourceGroupName -Name "EncryptedSqlServerLinkedService" -File ".\encryptedSqlServerLinkedService.json"
    

Veri kümeleri oluşturma

Bu adımda, girdi ve çıktı veri kümelerini oluşturursunuz. Verileri SQL Server veritabanından Azure Blob depolama alanına kopyalayan kopyalama işlemi için giriş ve çıkış verilerini temsil eder.

Kaynak SQL Server veritabanı için veri kümesi oluşturma

Bu adımda, SQL Server veritabanı örneğindeki verileri temsil eden bir veri kümesi tanımlarsınız. Veri kümesi SqlServerTable türündedir. Önceki adımda oluşturduğunuz SQL Server bağlı hizmeti ifade eder. Bağlı hizmet, Data Factory hizmetinin çalışma zamanında SQL Server örneğine bağlanmak için kullandığı bağlantı bilgilerine sahiptir. Bu veri kümesi, verileri içeren veritabanındaki SQL tablosunu belirtir. Bu öğreticide, emp tablosu kaynak verileri içerir.

  1. C:\ADFv2Tutorial klasöründe aşağıdaki kodla SqlServerDataset.json adlı bir JSON dosyası oluşturun:

    {  
        "name":"SqlServerDataset",
        "properties":{  
            "linkedServiceName":{  
                "referenceName":"EncryptedSqlServerLinkedService",
                "type":"LinkedServiceReference"
            },
            "annotations":[  
    
            ],
            "type":"SqlServerTable",
            "schema":[  
    
            ],
            "typeProperties":{  
                "schema":"dbo",
                "table":"emp"
            }
        }
    }
    
  2. SqlServerDataset veri kümesini oluşturmak için Set-AzDataFactoryV2Dataset cmdlet'ini çalıştırın.

    Set-AzDataFactoryV2Dataset -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "SqlServerDataset" -File ".\SqlServerDataset.json"
    

    Örnek çıktı aşağıdaki gibidir:

    DatasetName       : SqlServerDataset
    ResourceGroupName : <resourceGroupName>
    DataFactoryName   : <dataFactoryName>
    Structure         :
    Properties        : Microsoft.Azure.Management.DataFactory.Models.SqlServerTableDataset
    

Azure Blob depolama (havuz) için veri kümesi oluşturma

Bu adımda, Azure Blob depolamaya kopyalanacak verileri temsil eden bir veri kümesi tanımlarsınız. Veri kümesi AzureBlob türündedir. Bu öğreticinin önceki bölümünde oluşturduğunuz Azure Depolama bağlantılı hizmeti ifade eder.

Bağlı hizmet, veri fabrikasının çalışma zamanında Azure depolama hesabınıza bağlanmak için kullandığı bağlantı bilgilerine sahiptir. Bu veri kümesi, verilerin SQL Server veritabanından kopyalandığı Azure depolama alanındaki klasörü belirtir. Bu öğreticide, adftutorial/fromonprem klasördür; burada adftutorial blob kapsayıcısı ve fromonprem de klasördür.

  1. C:\ADFv2Tutorial klasöründe aşağıdaki kodla AzureBlobDataset.json adlı bir JSON dosyası oluşturun:

    {  
        "name":"AzureBlobDataset",
        "properties":{  
            "linkedServiceName":{  
                "referenceName":"AzureStorageLinkedService",
                "type":"LinkedServiceReference"
            },
            "annotations":[  
    
            ],
            "type":"DelimitedText",
            "typeProperties":{  
                "location":{  
                    "type":"AzureBlobStorageLocation",
                    "folderPath":"fromonprem",
                    "container":"adftutorial"
                },
                "columnDelimiter":",",
                "escapeChar":"\\",
                "quoteChar":"\""
            },
            "schema":[  
    
            ]
        },
        "type":"Microsoft.DataFactory/factories/datasets"
    }
    
  2. AzureBlobDataset veri kümesini oluşturmak için Set-AzDataFactoryV2Dataset cmdlet'ini çalıştırın.

    Set-AzDataFactoryV2Dataset -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "AzureBlobDataset" -File ".\AzureBlobDataset.json"
    

    Örnek çıktı aşağıdaki gibidir:

    DatasetName       : AzureBlobDataset
    ResourceGroupName : <resourceGroupName>
    DataFactoryName   : <dataFactoryName>
    Structure         :
    Properties        : Microsoft.Azure.Management.DataFactory.Models.DelimitedTextDataset
    

Bir işlem hattı oluştur

Bu öğreticide, kopyalama etkinliği ile bir işlem hattı oluşturursunuz. Kopyalama etkinliği, girdi veri kümesi olarak SqlServerDataset’i çıktı veri kümesi olarak da AzureBlobDataset’i kullanır. Kaynak türü SqlSource ve havuz türü de BlobSink olarak ayarlanır.

  1. C:\ADFv2Tutorial klasöründe aşağıdaki kodla SqlServerToBlobPipeline.json adlı bir JSON dosyası oluşturun:

    {  
        "name":"SqlServerToBlobPipeline",
        "properties":{  
            "activities":[  
                {  
                    "name":"CopySqlServerToAzureBlobActivity",
                    "type":"Copy",
                    "dependsOn":[  
    
                    ],
                    "policy":{  
                        "timeout":"7.00:00:00",
                        "retry":0,
                        "retryIntervalInSeconds":30,
                        "secureOutput":false,
                        "secureInput":false
                    },
                    "userProperties":[  
    
                    ],
                    "typeProperties":{  
                        "source":{  
                            "type":"SqlServerSource"
                        },
                        "sink":{  
                            "type":"DelimitedTextSink",
                            "storeSettings":{  
                                "type":"AzureBlobStorageWriteSettings"
                            },
                            "formatSettings":{  
                                "type":"DelimitedTextWriteSettings",
                                "quoteAllText":true,
                                "fileExtension":".txt"
                            }
                        },
                        "enableStaging":false
                    },
                    "inputs":[  
                        {  
                            "referenceName":"SqlServerDataset",
                            "type":"DatasetReference"
                        }
                    ],
                    "outputs":[  
                        {  
                            "referenceName":"AzureBlobDataset",
                            "type":"DatasetReference"
                        }
                    ]
                }
            ],
            "annotations":[  
    
            ]
        }
    }
    
  2. SqlServerToBlobPipeline işlem hattını oluşturmak için Set-AzDataFactoryV2Pipeline cmdlet’ini çalıştırın.

    Set-AzDataFactoryV2Pipeline -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "SQLServerToBlobPipeline" -File ".\SQLServerToBlobPipeline.json"
    

    Örnek çıktı aşağıdaki gibidir:

    PipelineName      : SQLServerToBlobPipeline
    ResourceGroupName : <resourceGroupName>
    DataFactoryName   : <dataFactoryName>
    Activities        : {CopySqlServerToAzureBlobActivity}
    Parameters        :  
    

İşlem hattı çalıştırması oluştur

SQLServerToBlobPipeline işlem hattı için bir çalıştırma başlatın ve gelecekte izlemek üzere çalıştırma kimliğini kaydedin.

$runId = Invoke-AzDataFactoryV2Pipeline -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -PipelineName 'SQLServerToBlobPipeline'

İşlem hattını izleme

  1. SQLServerToBlobPipeline işlem hattının çalışma durumunu sürekli olarak denetlemek için PowerShell’de aşağıdaki betiği çalıştırın ve nihai sonucu yazdırın:

    while ($True) {
        $result = Get-AzDataFactoryV2ActivityRun -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -PipelineRunId $runId -RunStartedAfter (Get-Date).AddMinutes(-30) -RunStartedBefore (Get-Date).AddMinutes(30)
    
        if (($result | Where-Object { $_.Status -eq "InProgress" } | Measure-Object).count -ne 0) {
            Write-Host "Pipeline run status: In Progress" -foregroundcolor "Yellow"
            Start-Sleep -Seconds 30
        }
        else {
            Write-Host "Pipeline 'SQLServerToBlobPipeline' run finished. Result:" -foregroundcolor "Yellow"
            $result
            break
        }
    }
    

    Örnek çalıştırmanın çıktısı aşağıdaki gibidir:

    ResourceGroupName    : <resourceGroupName>
    DataFactoryName      : <dataFactoryName>
    ActivityRunId        : 24af7cf6-efca-4a95-931d-067c5c921c25
    ActivityName         : CopySqlServerToAzureBlobActivity
    ActivityType         : Copy
    PipelineRunId        : 7b538846-fd4e-409c-99ef-2475329f5729
    PipelineName         : SQLServerToBlobPipeline
    Input                : {source, sink, enableStaging}
    Output               : {dataRead, dataWritten, filesWritten, sourcePeakConnections...}
    LinkedServiceName    :
    ActivityRunStart     : 9/11/2019 7:10:37 AM
    ActivityRunEnd       : 9/11/2019 7:10:58 AM
    DurationInMs         : 21094
    Status               : Succeeded
    Error                : {errorCode, message, failureType, target}
    AdditionalProperties : {[retryAttempt, ], [iterationHash, ], [userProperties, {}], [recoveryStatus, None]...}
    
  2. SQLServerToBlobPipeline işlem hattının çalıştırma kimliğini alabilir ve aşağıdaki komutu çalıştırarak ayrıntılı etkinlik çalıştırma sonucunu denetleyebilirsiniz:

    Write-Host "Pipeline 'SQLServerToBlobPipeline' run result:" -foregroundcolor "Yellow"
    ($result | Where-Object {$_.ActivityName -eq "CopySqlServerToAzureBlobActivity"}).Output.ToString()
    

    Örnek çalıştırmanın çıktısı aşağıdaki gibidir:

    {  
        "dataRead":36,
        "dataWritten":32,
        "filesWritten":1,
        "sourcePeakConnections":1,
        "sinkPeakConnections":1,
        "rowsRead":2,
        "rowsCopied":2,
        "copyDuration":18,
        "throughput":0.01,
        "errors":[  
    
        ],
        "effectiveIntegrationRuntime":"ADFTutorialIR",
        "usedParallelCopies":1,
        "executionDetails":[  
            {  
                "source":{  
                    "type":"SqlServer"
                },
                "sink":{  
                    "type":"AzureBlobStorage",
                    "region":"CentralUS"
                },
                "status":"Succeeded",
                "start":"2019-09-11T07:10:38.2342905Z",
                "duration":18,
                "usedParallelCopies":1,
                "detailedDurations":{  
                    "queuingDuration":6,
                    "timeToFirstByte":0,
                    "transferDuration":5
                }
            }
        ]
    }
    

Çıktıyı doğrulama

İşlem hattı, blob kapsayıcısında adftutorial adlı çıktı klasörünü otomatik olarak oluşturur. Çıktı klasöründe dbo.emp.txt dosyasını gördüğünüzü onaylayın.

  1. Azure portalında, adftutorial kapsayıcı penceresinde çıkış klasörünü görmek için Refresh öğesini seçin.

  2. Klasör listesinde fromonprem seçeneğini belirleyin.

  3. dbo.emp.txt adlı bir dosya gördüğünüzü onaylayın.

    Çıktı dosyası

Bu örnekteki işlem hattı, Azure Blob depolama alanındaki verileri bir konumdan diğerine kopyalar. Şunları öğrendiniz:

  • Veri fabrikası oluşturma.
  • Yerel barındırmalı tümleştirme çalışma zamanı oluşturma.
  • SQL Server ve Azure Depolama bağlantılı hizmetler oluşturun.
  • SQL Server ve Azure Blob veri kümeleri oluşturun.
  • Verileri taşımak için kopyalama etkinliğiyle bir işlem hattı oluşturun.
  • Bir işlem hattı çalıştırmasını başlat.
  • İşlem hattı çalışmasını izleyin.

Data Factory tarafından desteklenen veri depolarının listesi için desteklenen veri depoları konusuna bakın.

Kaynaktan hedefe verileri toplu olarak kopyalama hakkında bilgi edinmek için aşağıdaki öğreticiye geçin: