Öğ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.
SQL Server Management Studio'yu başlatın. Makinenizde zaten yüklü değilse SQL Server Management Studio'yu indirme’ye gidin.
Kimlik bilgilerinizi kullanarak SQL Server örneğinize bağlanın.
Örnek bir veritabanı oluşturun. Ağaç görünümünde Veritabanları'na sağ tıklayın ve Yeni Veritabanı'nı seçin.
Yeni Veritabanı penceresinde, veritabanı için bir ad girin ve Tamam'ı seçin.
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:
Azure kullanıcı adı ve parolanızla Azure portalında oturum açın.
Sol bölmede, Depolama anahtar sözcüğünü kullanarak Diğer hizmetler filtresini ve ardından Depolama hesapları’nı seçin.
Depolama hesapları listesinde, depolama hesabınız için filtre uygulayın (gerekirse) ve ardından depolama hesabınızı seçin.
Depolama hesabı penceresinde Erişim anahtarları'nı seçin.
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.
Depolama hesabı penceresinde Genel Bakış’a geçin ve sonra Bloblar’ı seçin.
Blob hizmeti penceresinde Kapsayıcı’yı seçin.
Yeni kapsayıcı penceresinde, Ad kutusuna adftutorial girin ve ardından Tamam’ı seçin.
Kapsayıcılar listesinde adftutorial’ı seçin.
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
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.
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
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
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"
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.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"
Veri fabrikasının konumu için bir değişken tanımlayın:
$location = "East US"
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.
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"
Ş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>
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>
Ş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
Azure Data Factory Integration Runtime’ı yerel Windows makinesine indirin ve yüklemeyi çalıştırın.
Microsoft Integration Runtime Kurulum Sihirbazına Hoş Geldiniz sayfasında İleri'yi seçin.
Son Kullanıcı Lisans Sözleşmesi penceresinde koşulları ve lisans sözleşmesini kabul edin ve İleri'yi seçin.
Hedef Klasör penceresinde İleri’yi seçin.
Microsoft Integration Runtime yüklenmeye hazır penceresinde Yükle'yi seçin.
Microsoft Integration Runtime Kurulum Sihirbazı Tamamlandı sayfasında Son'u seçin.
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.
Yeni Integration Runtime (şirket içinde barındırılan) Düğümü penceresinde Son'u seçin.
Ş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:
Integration Runtime’ı (şirket içinde barındırılan) Kaydet penceresinde Configuration Manager'ı Başlat'ı seçin.
Düğüm bulut hizmetine bağlandığında şu ileti görüntülenir:
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ğ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.
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" } } }
PowerShell’de C:\ADFv2Tutorial klasörüne geçin.
Set-Location 'C:\ADFv2Tutorial'
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.
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.
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
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.
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" } } }
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.
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" }
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.
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":[ ] } }
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
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]...}
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.
Çıktı klasörünü görmek için, Azure portalındaki adftutorial kapsayıcı penceresinde Yenile’yi seçin.
Klasör listesinde
fromonprem
seçeneğini belirleyin.dbo.emp.txt
adlı bir dosya gördüğünüzü onaylayın.
İlgili içerik
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:
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin