Öğretici: SQL Server veritabanından Azure Blob depolamaya veri kopyalama

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 öğreticide Azure PowerShell kullanarak sql Server veritabanından Azure Blob depolama alanına veri kopyalayan bir veri fabrikası işlem hattı oluşturacaksı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'ye giriş.

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

  • Veri fabrikası oluşturma.
  • Şirket içinde barındırılan tümleştirme çalışma zamanı oluşturma.
  • SQL Server ve Azure Depolama bağlı hizmetlerini oluşturma.
  • SQL Server ve Azure Blob veri kümeleri oluşturma.
  • Verileri taşımak için kopyalama etkinliği ile işlem hattı oluşturma.
  • Bir işlem hattı çalıştırması başlatma.
  • İşlem hattı çalıştırmasını izleme.

Önkoşullar

Azure aboneliği

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

Azure rolleri

Veri fabrikası örnekleri oluşturmak için Azure’da oturum açarken kullandığınız kullanıcı hesabına Katkıda bulunan veya Sahip rolü atanmalı ya da bu hesap Azure aboneliğinin yöneticisi olmalıdır.

Abonelikte sahip olduğunuz izinleri görüntülemek için Azure portalına gidin, sağ üst köşeden kullanıcı adınızı seçtikten sonra İzinler’i seçin. Birden çok aboneliğe erişiminiz varsa uygun aboneliği seçin. Bir role kullanıcı eklemeyle ilgili örnek yönergeler için Azure portalını kullanarak Azure rolleri atama makalesine bakın.

SQL Server 2014, 2016 ve 2017

Bu öğreticide bir SQL Server veritabanını kaynak 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. Daha sonra SQL Server veritabanınızda emp adlı bir tablo oluşturur ve tabloya birkaç örnek girdi eklersiniz.

  1. SQL Server Management Studio'yu başlatın. Makinenizde zaten yüklü değilse SQL Server Management Studio'yu indirme’ye gidin.

  2. Kimlik bilgilerinizi kullanarak SQL Server örneğinize 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 Storage hesabı

Bu öğreticide, genel amaçlı bir Azure depolama hesabını (özel olarak Blob depolamayı) hedef/havuz veri deposu olarak kullanırsı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ı 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ını oluşturma

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

  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 sonundaki çıktıyı doğrulamak için bu sayfayı 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'i yükleme

Not

Azure ile etkileşim kurmak için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz. Azure PowerShell'i yükleme. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.

Makinenizde önceden yüklü değilse Azure PowerShell’in en son sürümünü yükleyin. Ayrıntılı yönergeler için bkz. Azure PowerShell'i 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 sonra Azure portalında oturum açmak için kullandığınız Azure kullanıcı adını ve parolasını girin:

    Connect-AzAccount
    
  3. Birden çok Azure aboneliğiniz varsa, birlikte çalışmak istediğiniz aboneliği seçmek için aşağıdaki komutu çalıştırın. SubscriptionId’yi Azure aboneliğinizin kimliği ile 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 komut metnini PowerShell'e kopyalayın Azure kaynak grubu için bir ad belirtin (çift tırnak içinde; örneğin, "adfrg") ve ardından komutu ç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’da oturum açarken kullandığınız kullanıcı hesabına katkıda bulunan veya sahip rolü atanmalı veya bu hesap Azure aboneliğinin yöneticisi olmalıdır.
  • Data Factory'nin kullanılabileceği Azure bölgelerinin bir listesi için bir sonraki sayfada ilgilendiğiniz bölgeleri seçin ve Analytics'i genişleterek Data Factory: Products available by region (Bölgeye göre kullanılabilir durumdaki ürünler) bölümünü bulun. Veri fabrikası tarafından kullanılan veri depoları (Azure Depolama, Azure SQL Veritabanı vb.) ve işlemler (Azure HDInsight vb.) başka bölgelerde olabilir.

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

Bu bölümde, şirket içinde barındırılan bir tümleştirme çalışma zamanı oluşturur ve SQL Server veritabanını içeren bir şirket içi makine ile ilişkilendirirsiniz. Şirket içinde barındırılan tümleştirme çalışma zamanı, makinenizdeki SQL Server veitabanınızdaki 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. Şirket içinde barındırılan 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. Şirket içinde barındırılan tümleştirme çalışma zamanını bulutta Data Factory hizmetine kaydetmek üzere kimlik doğrulaması anahtarlarını almak için aşağıdaki komutu çalıştırın. Sonraki adımda makinenize yüklediğiniz şirket içinde barındırılan tümleştirme çalışma zamanını kaydetmek için anahtarların birini (çift tırnak işaretlerini atarak) 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. Azure Data Factory Integration Runtime’ı yerel Windows makinesine indirin ve yüklemeyi çalıştırın.

  2. Microsoft Integration Runtime Kurulum Sihirbazına Hoş Geldiniz sayfasında İleri'yi 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 yüklenmeye hazır penceresinde Yükle'yi seçin.

  6. Microsoft Integration Runtime Kurulum Sihirbazı Tamamlandı sayfasında Son'u seçin.

  7. Integration Runtime’ı (şirket içinde barındırılan) Kaydet penceresinde, önceki bölümde kaydettiğiniz anahtarı yapıştırın ve Kaydol'u seçin.

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

  8. Yeni Integration Runtime (şirket içinde barındırılan) Düğümü penceresinde Son'u 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. Integration Runtime’ı (şirket içinde barındırılan) Kaydet penceresinde Configuration Manager'ı Başlat'ı seçin.

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

    Düğüm bağlı

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

    a. Configuration Manager penceresinde Tanılama 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.

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

    h. Tümleştirme çalışma zamanının SQL Server’a bağlanabildiğini onaylamak için Sına’yı seçin.
    Bağlan ivity 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. Sorunları giderin ve tümleştirme çalışma zamanının SQL Server örneğinize bağlanabildiğinden 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ı hizmeti oluşturma (hedef/havuz)

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> değerlerini 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ı hizmeti oluşturma ve şifreleme (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’a bağlanmak için kullandığınız kimlik doğrulaması yöntemine dayalı 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ı 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ğinize bağlanmak için kullandığınız kimlik doğrulaması yöntemine dayalı 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 sunucu adı, veritabanı adı>>, <<kullanıcı adı> ve <parola> değerlerini SQL Server örneğinizin değerleriyle değiştirin.<
    • 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, şirket içinde barındırılan tümleştirme çalışma zamanı düğümünde (yerel makine) yerel olarak 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 depolamaya 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ümesini tanımlarsınız. Veri kümesi SqlServerTable türündedir. Önceki adımda oluşturduğunuz SQL Server bağlı hizmetini ifade eder. Bağlı hizmet, Data Factory hizmetinin çalışma zamanında SQL Server örneğinize bağlanmak için kullandığı bağlantı bilgilerini içerir. 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 alanı (havuz) için veri kümesi oluşturma

Bu adımda, Azure Blob depolama alanına kopyalanacak verileri temsil eden bir veri kümesi tanımlarsınız. Veri kümesi AzureBlob türündedir. Bu öğreticide daha önce oluşturduğunuz Azure Depolama bağlı hizmetine başvurur.

Bağlı hizmet, veri fabrikasının çalışma zamanında Azure depolama hesabınıza bağlanmak için kullandığı bağlantı bilgilerini içerir. Bu veri kümesi, Azure depolama alanında SQL Server veritabanından verilerin kopyalandığı 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
    

İşlem hattı oluşturma

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şturma

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

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

İşlem hattı çalıştırması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ı, adftutorial blob kapsayıcısında fromonprem 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. Çıktı klasörünü görmek için, Azure portalındaki adftutorial kapsayıcı penceresinde Yenile’yi 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ı, verileri bir konumdan Azure Blob depolama alanındaki başka bir konuma kopyalar. Şunları öğrendiniz:

  • Veri fabrikası oluşturma.
  • Şirket içinde barındırılan tümleştirme çalışma zamanı oluşturma.
  • SQL Server ve Azure Depolama bağlı hizmetlerini oluşturma.
  • SQL Server ve Azure Blob veri kümeleri oluşturma.
  • Verileri taşımak için kopyalama etkinliği ile işlem hattı oluşturma.
  • Bir işlem hattı çalıştırması başlatma.
  • İşlem hattı çalıştırmasını izleme.

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: