Hızlı başlangıç: PowerShell kullanarak Azure Data Factory oluşturma
AŞAĞıDAKILER IÇIN GEÇERLIDIR:
Azure Data Factory
Azure Synapse Analytics
Bu hızlı başlangıç, PowerShell kullanarak Azure Data Factory oluşturma işlemini açıklar. Bu veri fabrikasında oluşturduğunuz işlem hattı, verileri bir Azure Blob depolama alanındaki bir klasörden başka bir klasöre kopyalar . Azure Data Factory kullanarak verileri dönüştürme hakkında bir öğretici için bkz. Öğretici: Spark kullanarak verileri dönüştürme.
Not
Bu makale, Data Factory hizmetine ayrıntılı giriş bilgileri sağlamaz. Azure Data Factory hizmetine giriş bilgileri için bkz. Azure Data Factory'ye giriş.
Önkoşullar
Azure aboneliği
Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
Azure rolleri
Data Factory örnekleri oluşturmak için, Azure’da oturum açarken kullandığınız kullanıcı hesabı, katkıda bulunan, sahip veya yönetici rollerinin üyesi ya da bir Azure aboneliğinin yöneticisi olmalıdır. Abonelikte sahip olduğunuz izinleri görüntülemek için Azure Portalgidin, sağ üst köşedeki Kullanıcı adınızı seçin, daha fazla seçenek için "..." simgesini seçin ve sonra izinlerim' i seçin. Birden çok aboneliğe erişiminiz varsa uygun aboneliği seçin.
Data Factory için veri kümeleri, bağlı hizmetler, işlem hatları, tetikleyiciler ve tümleştirme çalışma zamanları gibi alt kaynaklar oluşturup yönetmek için aşağıdaki gereksinimlerin karşılanması gerekir:
- Azure portal alt kaynakları oluşturmak ve yönetmek için, kaynak grubu düzeyinde veya yukarıdaki Data Factory katkıda bulunan rolüne ait olmanız gerekir.
- PowerShell veya SDK ile alt öğe oluşturup yönetebilmek için kaynak düzeyinde katkıda bulunan rolü veya daha üst düzey bir rol yeterli olacaktır.
Kullanıcı rolü eklemeye ilişkin örnek yönergeler için Rol ekleme makalesine bakın.
Daha fazla bilgi için aşağıdaki makalelere bakın:
Azure Storage hesabı
Bu hızlı başlangıçta, genel amaçlı bir Azure Depolama hesabını (özel olarak BLOB depolama) hem kaynak hem de hedef veri deposu olarak kullanırsınız. Genel amaçlı bir Azure depolama hesabınız yoksa, bir depolama hesabı oluşturmak için bkz. hesap oluşturma.
Depolama hesabı adını al
Bu hızlı başlangıç için Azure depolama hesabınızın adına ihtiyacınız vardır. Aşağıdaki yordam, depolama hesabınızın adını almak için gereken adımları sağlar:
- Bir Web tarayıcısında Azure Portal gidin ve Azure Kullanıcı adınızı ve parolanızı kullanarak oturum açın.
- Azure Portal menüsünde tüm hizmetler' i ve ardından depolama > depolama hesapları' nı seçin. Ayrıca, herhangi bir sayfadan depolama hesaplarını arayabilir ve seçebilirsiniz.
- Depolama hesapları sayfasında, depolama hesabınız için filtre uygulayın (gerekirse) ve ardından depolama hesabınızı seçin.
Ayrıca, herhangi bir sayfadan depolama hesaplarını arayabilir ve seçebilirsiniz.
Blob kapsayıcısı oluşturma
Bu bölümde, Azure Blob depolama alanında adftutorial adlı bir blob kapsayıcısı oluşturursunuz.
Depolama hesabı sayfasında genel bakış > kapsayıcıları' nı seçin.
<Account name> - Kapsayıcılar sayfasının araç çubuğunda kapsayıcı' yı seçin.
Yeni kapsayıcı iletişim kutusunda ad olarak adftutorial girin ve ardından Tamam’ı seçin. <Account name> - Kapsayıcılar sayfası, kapsayıcılar listesinde adföğreticisi içerecek şekilde güncelleştirilir.
Blob kapsayıcısı için bir giriş klasörü ve dosyası ekleyin
Bu bölümde, oluşturduğunuz kapsayıcıda giriş adlı bir klasör oluşturur ve ardından giriş klasörüne örnek bir dosya yüklersiniz. Başlamadan önce, Not defteri gibi bir metin düzenleyicisini açın ve aşağıdaki içeriğe sahip emp.txt adlı bir dosya oluşturun:
John, Doe
Jane, Doe
Dosyayı C:\ADFv2QuickStartPSH klasörüne kaydedin. (Klasör zaten mevcut değilse, oluşturun.) Sonra Azure portal geri dönüp şu adımları izleyin:
Kaldığınız <Account name> - kapsayıcılar sayfasında, güncelleştirilmiş kapsayıcı listesinden adföğreticisi ' ni seçin.
- Pencereyi kapattıysanız veya başka bir sayfaya bir sorun yaşıyorsanız, Azure Portal yeniden oturum açın.
- Azure Portal menüsünde tüm hizmetler' i ve ardından depolama > depolama hesapları' nı seçin. Ayrıca, herhangi bir sayfadan depolama hesaplarını arayabilir ve seçebilirsiniz.
- Depolama hesabınızı seçin ve ardından kapsayıcılar > adföğreticisi' ni seçin.
Adföğreticisi kapsayıcı sayfasının araç çubuğunda karşıya yükle' yi seçin.
Blobu karşıya yükle sayfasında, dosyalar kutusunu seçin ve ardından emp.txt dosyasına gidin ve dosyayı seçin.
Gelişmiş başlık ' ı genişletin. Sayfa artık gösterildiği gibi görüntülenir:
Klasöre yükle kutusuna giriş' i girin.
Karşıya Yükle düğmesini seçin. Listede emp.txt dosyasını ve karşıya yükleme durumunu görmeniz gerekir.
BLOB yükle sayfasını kapatmak için Kapat simgesini (bir X) seçin.
Adföğreticisi kapsayıcı sayfasını açık tutun. Bu hızlı başlangıcın sonundaki çıktıyı doğrulamak için bu sayfayı kullanırsınız.
Azure PowerShell
Not
Bu makalede, Azure ile etkileşim kurmak için önerilen PowerShell modülü olan Azure Az PowerShell modülü kullanılır. Az PowerShell modülünü kullanmaya başlamak için Azure PowerShell’i yükleyin. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.
Azure PowerShell nasıl yükleneceği ve yapılandırılacağıkonusundaki yönergeleri izleyerek en son Azure PowerShell modüllerini yükler.
Uyarı
PowerShell ve Data Factory modülünün en son sürümlerini kullanmıyorsanız, komutları çalıştırırken seriyi kaldırma hatalarıyla karşılaşabilirsiniz.
PowerShell’de oturum açın
Makinenizde PowerShell'i başlatın. Bu hızlı başlangıcın sonuna kadar PowerShell’i 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 Azure Portal'da oturum açmak için kullandığınız aynı Azure kullanıcı adını ve parolasını girin:
Connect-AzAccountBu hesapla ilgili tüm abonelikleri görmek için aşağıdaki komutu çalıştırın:
Get-AzSubscriptionHesabınızla ilişkili birden çok 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 çift tırnak içinde bir ad belirtin ve ardından komutu çalıştırın. Örneğin:
"ADFQuickStartRG".$resourceGroupName = "ADFQuickStartRG";Kaynak grubu zaten varsa, üzerine yazılmasını istemeyebilirsiniz.
$ResourceGroupNamedeğişkenine farklı bir değer atayın ve komutu yeniden çalıştırınAzure kaynak grubunu oluşturmak için aşağıdaki komutu çalıştırın:
$ResGrp = New-AzResourceGroup $resourceGroupName -location 'East US'Kaynak grubu zaten varsa, üzerine yazılmasını istemeyebilirsiniz.
$ResourceGroupNamedeğişkenine farklı bir değer atayın ve komutu yeniden çalıştırın.Veri fabrikasının adı için bir değişken tanımlayın.
Önemli
Veri fabrikasının adını genel olarak benzersiz olacak şekilde güncelleştirin. Örneğin, ADFTutorialFactorySP1127.
$dataFactoryName = "ADFQuickStartFactory";Veri Fabrikası oluşturmak için, $ResGrp değişkeninden location ve ResourceGroupName özelliğini kullanarak aşağıdaki set-AzDataFactoryV2 cmdlet 'ini çalıştırın:
$DataFactory = Set-AzDataFactoryV2 -ResourceGroupName $ResGrp.ResourceGroupName ` -Location $ResGrp.Location -Name $dataFactoryName
Aşağıdaki noktalara dikkat edin:
Azure Data Factory adı küresel olarak benzersiz olmalıdır. Aşağıdaki hata iletisini alırsanız adı değiştirip yeniden deneyin.
The specified Data Factory name 'ADFv2QuickStartDataFactory' is already in use. Data Factory names must be globally unique.Data Factory örnekleri oluşturmak için, Azure'da oturum açarken kullandığınız kullanıcı hesabı katkıda bulunan veya sahip rollerinin üyesi ya da bir 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 verileri depoları (Azure Depolama, Azure SQL Veritabanı vb.) ve işlemler (HDInsight vb.) başka bölgelerde olabilir.
Bağlı hizmet 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 hızlı başlangıçta hem kaynak hem de havuz deposu olarak kullanılan bir Azure Depolama bağlı hizmeti oluşturursunuz. Bağlı hizmetler, Data Factory hizmetinin bunlara bağlanmak için çalışma zamanında kullandığı bağlantı bilgilerini içerir.
İpucu
Bu hızlı başlangıçta, hesap anahtarını veri deponuzu kimlik doğrulama türü olarak kullanacaksınız, ancak desteklenen diğer kimlik doğrulama yöntemlerini seçebilirsiniz: SAS URI 'Si,hizmet sorumlusu ve gerekirse yönetilen kimlik . Ayrıntılar için Bu makaledeki ilgili bölümlere bakın. Veri depolarının gizli dizilerini güvenli bir şekilde depolamak için bir Azure Key Vault kullanılması da önerilir. Ayrıntılı çizimler için Bu makaleye bakın.
C:\ADFv2QuickStartPSH klasöründe aşağıdaki içeriğe sahip AzureStorageLinkedService.json adlı bir JSON dosyası oluşturun: (Henüz yoksa ADFv2QuickStartPSH adlı bir klasör oluşturun.).
Önemli
Dosyayı kaydetmeden önce <accountName> ve <accountKey> değerlerini Azure depolama hesabınızın adı ve anahtarıyla değiştirin.
{ "name": "AzureStorageLinkedService", "properties": { "annotations": [], "type": "AzureBlobStorage", "typeProperties": { "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountName>;AccountKey=<accountKey>;EndpointSuffix=core.windows.net" } } }Not Defteri’ni kullanıyorsanız, Farklı kaydet iletişim kutusunda Farklı kaydetme türü için Tüm dosyalar’ı seçin. Aksi takdirde, dosyaya
.txtuzantısını ekleyebilir. Örneğin,AzureStorageLinkedService.json.txt. Dosyayı Not Defteri’nde açmadan önce Dosya Gezgini’nde oluşturduysanız, Bilinen dosya türleri için uzantıları gizle seçeneği varsayılan olarak ayarlandığı için.txtuzantısını görmeyebilirsiniz. Sonraki adıma geçmeden önce.txtuzantısını kaldırın.PowerShell’de ADFv2QuickStartPSH klasörüne geçin.
Set-Location 'C:\ADFv2QuickStartPSH'Bağlı hizmeti oluşturmak için set-AzDataFactoryV2LinkedService cmdlet 'ini çalıştırın: AzureStorageLinkedService.
Set-AzDataFactoryV2LinkedService -DataFactoryName $DataFactory.DataFactoryName ` -ResourceGroupName $ResGrp.ResourceGroupName -Name "AzureStorageLinkedService" ` -DefinitionFile ".\AzureStorageLinkedService.json"Örnek çıktı aşağıdaki gibidir:
LinkedServiceName : AzureStorageLinkedService ResourceGroupName : <resourceGroupName> DataFactoryName : <dataFactoryName> Properties : Microsoft.Azure.Management.DataFactory.Models.AzureBlobStorageLinkedService
Veri kümeleri oluşturma
Bu yordamda iki veri kümesi oluşturursunuz: InputDataset ve OutputDataset. Bu veri kümeleri binary türündedir. Bunlar, önceki bölümde oluşturduğunuz Azure Depolama bağlı hizmetine başvurur. Giriş veri kümesi, giriş klasöründeki kaynak verileri temsil eder. Giriş veri kümesi tanımında, kaynak verileri içeren blob kapsayıcısını (adftutorial), klasörü (input) ve dosyayı (emp.txt) belirtirsiniz. Çıkış veri kümesi hedefe kopyalanan verileri temsil eder. Çıkış veri kümesi tanımında, verilerin kopyalandığı blob kapsayıcısını (adftutorial), klasörü (output) ve dosyayı belirtirsiniz.
C:\ADFv2QuickStartPSH klasöründe aşağıdaki Içeriğe sahip ınputdataset. JSON adlı bir JSON dosyası oluşturun:
{ "name": "InputDataset", "properties": { "linkedServiceName": { "referenceName": "AzureStorageLinkedService", "type": "LinkedServiceReference" }, "annotations": [], "type": "Binary", "typeProperties": { "location": { "type": "AzureBlobStorageLocation", "fileName": "emp.txt", "folderPath": "input", "container": "adftutorial" } } } }Inputdataset veri kümesini oluşturmak için set-AzDataFactoryV2Dataset cmdlet 'ini çalıştırın.
Set-AzDataFactoryV2Dataset -DataFactoryName $DataFactory.DataFactoryName ` -ResourceGroupName $ResGrp.ResourceGroupName -Name "InputDataset" ` -DefinitionFile ".\InputDataset.json"Örnek çıktı aşağıdaki gibidir:
DatasetName : InputDataset ResourceGroupName : <resourceGroupname> DataFactoryName : <dataFactoryName> Structure : Properties : Microsoft.Azure.Management.DataFactory.Models.BinaryDatasetÇıkış veri kümesini oluşturmak için adımları yineleyin. C:\ADFv2QuickStartPSH klasöründe aşağıdaki Içeriğe sahip outputdataset. JSON adlı bir JSON dosyası oluşturun:
{ "name": "OutputDataset", "properties": { "linkedServiceName": { "referenceName": "AzureStorageLinkedService", "type": "LinkedServiceReference" }, "annotations": [], "type": "Binary", "typeProperties": { "location": { "type": "AzureBlobStorageLocation", "folderPath": "output", "container": "adftutorial" } } } }Outdataset'i oluşturmak için set-AzDataFactoryV2Dataset cmdlet 'ini çalıştırın.
Set-AzDataFactoryV2Dataset -DataFactoryName $DataFactory.DataFactoryName ` -ResourceGroupName $ResGrp.ResourceGroupName -Name "OutputDataset" ` -DefinitionFile ".\OutputDataset.json"Örnek çıktı aşağıdaki gibidir:
DatasetName : OutputDataset ResourceGroupName : <resourceGroupname> DataFactoryName : <dataFactoryName> Structure : Properties : Microsoft.Azure.Management.DataFactory.Models.BinaryDataset
İşlem hattı oluşturma
Bu yordamda, giriş ve çıkış veri kümelerini kullanan bir kopyalama etkinliğine sahip bir işlem hattı oluşturacaksınız. Kopyalama etkinliği, giriş veri kümesi ayarlarında belirttiğiniz dosyadaki verileri çıkış veri kümesi ayarlarında belirttiğiniz dosyaya kopyalar.
C:\ADFv2QuickStartPSH klasöründe aşağıdaki içeriğe sahip Adfv2QuickStartPipeline.json adlı bir JSON dosyası oluşturun:
{ "name": "Adfv2QuickStartPipeline", "properties": { "activities": [ { "name": "CopyFromBlobToBlob", "type": "Copy", "dependsOn": [], "policy": { "timeout": "7.00:00:00", "retry": 0, "retryIntervalInSeconds": 30, "secureOutput": false, "secureInput": false }, "userProperties": [], "typeProperties": { "source": { "type": "BinarySource", "storeSettings": { "type": "AzureBlobStorageReadSettings", "recursive": true } }, "sink": { "type": "BinarySink", "storeSettings": { "type": "AzureBlobStorageWriteSettings" } }, "enableStaging": false }, "inputs": [ { "referenceName": "InputDataset", "type": "DatasetReference" } ], "outputs": [ { "referenceName": "OutputDataset", "type": "DatasetReference" } ] } ], "annotations": [] } }İşlem hattını oluşturmak için: Adfv2QuickStartPipeline, set-AzDataFactoryV2Pipeline cmdlet 'ini çalıştırın.
$DFPipeLine = Set-AzDataFactoryV2Pipeline ` -DataFactoryName $DataFactory.DataFactoryName ` -ResourceGroupName $ResGrp.ResourceGroupName ` -Name "Adfv2QuickStartPipeline" ` -DefinitionFile ".\Adfv2QuickStartPipeline.json"
İşlem hattı çalıştırması oluşturma
Bu adımda bir işlem hattı çalıştırması oluşturursunuz.
Bir işlem hattı çalıştırması oluşturmak için Invoke-AzDataFactoryV2Pipeline cmdlet 'ini çalıştırın. Cmdlet, gelecekte izlemek üzere işlem hattı çalıştırma kimliğini döndürür.
$RunId = Invoke-AzDataFactoryV2Pipeline `
-DataFactoryName $DataFactory.DataFactoryName `
-ResourceGroupName $ResGrp.ResourceGroupName `
-PipelineName $DFPipeLine.Name
İşlem hattı çalıştırmasını izleme
İşlem hattı çalıştırma durumunu, verileri kopyalama işlemi tamamlanıncaya kadar sürekli olarak denetlemek için aşağıdaki PowerShell betiğini çalıştırın. Aşağıdaki betiği kopyalayıp PowerShell penceresine yapıştırın ve ENTER tuşuna basın.
while ($True) { $Run = Get-AzDataFactoryV2PipelineRun ` -ResourceGroupName $ResGrp.ResourceGroupName ` -DataFactoryName $DataFactory.DataFactoryName ` -PipelineRunId $RunId if ($Run) { if ( ($Run.Status -ne "InProgress") -and ($Run.Status -ne "Queued") ) { Write-Output ("Pipeline run finished. The status is: " + $Run.Status) $Run break } Write-Output ("Pipeline is running...status: " + $Run.Status) } Start-Sleep -Seconds 10 }İşlem hattı çalıştırmasının örnek çıktısı aşağıdaki gibidir:
Pipeline is running...status: InProgress Pipeline run finished. The status is: Succeeded ResourceGroupName : ADFQuickStartRG DataFactoryName : ADFQuickStartFactory RunId : 00000000-0000-0000-0000-0000000000000 PipelineName : Adfv2QuickStartPipeline LastUpdated : 8/27/2019 7:23:07 AM Parameters : {} RunStart : 8/27/2019 7:22:56 AM RunEnd : 8/27/2019 7:23:07 AM DurationInMs : 11324 Status : Succeeded Message :Kopyalama etkinliği çalıştırma ayrıntılarını (örneğin, okunan/yazılan verilerin boyutu) almak için aşağıdaki betiği çalıştırın.
Write-Output "Activity run details:" $Result = Get-AzDataFactoryV2ActivityRun -DataFactoryName $DataFactory.DataFactoryName -ResourceGroupName $ResGrp.ResourceGroupName -PipelineRunId $RunId -RunStartedAfter (Get-Date).AddMinutes(-30) -RunStartedBefore (Get-Date).AddMinutes(30) $Result Write-Output "Activity 'Output' section:" $Result.Output -join "`r`n" Write-Output "Activity 'Error' section:" $Result.Error -join "`r`n"Etkinlik çalıştırma sonucunun aşağıdaki örnek çıktısına benzer çıktıyı gördüğünüzü onaylayın:
ResourceGroupName : ADFQuickStartRG DataFactoryName : ADFQuickStartFactory ActivityRunId : 00000000-0000-0000-0000-000000000000 ActivityName : CopyFromBlobToBlob PipelineRunId : 00000000-0000-0000-0000-000000000000 PipelineName : Adfv2QuickStartPipeline Input : {source, sink, enableStaging} Output : {dataRead, dataWritten, filesRead, filesWritten...} LinkedServiceName : ActivityRunStart : 8/27/2019 7:22:58 AM ActivityRunEnd : 8/27/2019 7:23:05 AM DurationInMs : 6828 Status : Succeeded Error : {errorCode, message, failureType, target} Activity 'Output' section: "dataRead": 20 "dataWritten": 20 "filesRead": 1 "filesWritten": 1 "sourcePeakConnections": 1 "sinkPeakConnections": 1 "copyDuration": 4 "throughput": 0.01 "errors": [] "effectiveIntegrationRuntime": "DefaultIntegrationRuntime (Central US)" "usedDataIntegrationUnits": 4 "usedParallelCopies": 1 "executionDetails": [ { "source": { "type": "AzureBlobStorage" }, "sink": { "type": "AzureBlobStorage" }, "status": "Succeeded", "start": "2019-08-27T07:22:59.1045645Z", "duration": 4, "usedDataIntegrationUnits": 4, "usedParallelCopies": 1, "detailedDurations": { "queuingDuration": 3, "transferDuration": 1 } } ] Activity 'Error' section: "errorCode": "" "message": "" "failureType": "" "target": "CopyFromBlobToBlob"
Dağıtılan kaynakları gözden geçirme
İşlem hattı adftutorial blob kapsayıcısında çıktı klasörünü otomatik olarak oluşturur. Ardından, giriş klasöründeki emp.txt dosyasını çıktı klasörüne kopyalar.
Aşağıdaki Azure portal adftutorial kapsayıcı sayfasında Yenile'yi seçerek çıkış klasörünü görebilirsiniz.
Klasör listesinden çıktıyı seçin.
emp.txt dosyasının output klasörüne kopyalandığını onaylayın.
Kaynakları temizleme
Hızlı başlangıç bölümünde oluşturduğunuz kaynakları iki şekilde temizleyebilirsiniz. Kaynak grubundaki tüm kaynakları içeren Azure kaynak grubunu silebilirsiniz. Diğer kaynakları korumak istiyorsanız yalnızca bu öğreticide oluşturduğunuz veri kaynağını silin.
Bir kaynak grubunun silinmesi, içindeki veri fabrikaları dahil olmak üzere tüm kaynakları siler. Kaynak grubunun tamamını silmek için şu komutu çalıştırın:
Remove-AzResourceGroup -ResourceGroupName $resourcegroupname
Not
Kaynak grubunu bırakmak biraz zaman alır. Lütfen işlemin tamamlanmasını bekleyin
Tüm kaynak grubu yerine yalnızca veri fabrikasını silmek istiyorsanız aşağıdaki aşağıdaki komutu çalıştırın:
Remove-AzDataFactoryV2 -Name $dataFactoryName -ResourceGroupName $resourceGroupName
Sonraki adımlar
Bu örnekteki işlem hattı, verileri bir konumdan Azure blob depolama alanındaki başka bir konuma kopyalar. Daha fazla senaryoda Data Factory’yi kullanma hakkında bilgi almak için öğreticileri okuyun.