Azure Data Lake Analytics'i Azure PowerShell'i kullanarak yönetme
Önemli
Azure Data Lake Analytics 29 Şubat 2024'te kullanımdan kaldırıldı. Bu duyuru ile daha fazla bilgi edinin.
Veri analizi için kuruluşunuz Azure Synapse Analytics veya Microsoft Fabric kullanabilir.
Bu makalede azure Data Lake Analytics hesaplarının, veri kaynaklarının, kullanıcıların ve işlerin Azure PowerShell kullanılarak nasıl yönetileceğini açıklanmaktadır.
Önkoşullar
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.
PowerShell'i Data Lake Analytics kullanmak için aşağıdaki bilgi parçalarını toplayın:
- Abonelik Kimliği: Data Lake Analytics hesabınızı içeren Azure aboneliğinin kimliği.
- Kaynak grubu: Data Lake Analytics hesabınızı içeren Azure kaynak grubunun adı.
- Data Lake Analytics hesap adı: Data Lake Analytics hesabınızın adı.
- Varsayılan Data Lake Store hesap adı: Her Data Lake Analytics hesabının varsayılan bir Data Lake Store hesabı vardır.
- Konum: "Doğu ABD 2" gibi Data Lake Analytics hesabınızın konumu veya desteklenen diğer konumlar.
Bu öğreticideki PowerShell kod parçacıkları, bu bilgileri depolamak için bu değişkenleri kullanır
$subId = "<SubscriptionId>"
$rg = "<ResourceGroupName>"
$adla = "<DataLakeAnalyticsAccountName>"
$adls = "<DataLakeStoreAccountName>"
$location = "<Location>"
Azure'da oturum açma
Etkileşimli kullanıcı kimlik doğrulaması kullanarak oturum açma
Abonelik kimliği kullanarak veya abonelik adına göre oturum açma
# Using subscription id
Connect-AzAccount -SubscriptionId $subId
# Using subscription name
Connect-AzAccount -SubscriptionName $subname
Kimlik doğrulama bağlamı kaydediliyor
Connect-AzAccount
Cmdlet her zaman kimlik bilgilerini ister. Aşağıdaki cmdlet'leri kullanarak sorulmasını önleyebilirsiniz:
# Save login session information
Save-AzAccounts -Path D:\profile.json
# Load login session information
Select-AzAccounts -Path D:\profile.json
Hizmet Sorumlusu Kimliği (SPI) kullanarak oturum açma
$tenantid = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
$spi_appname = "appname"
$spi_appid = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
$spi_secret = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
$pscredential = New-Object System.Management.Automation.PSCredential ($spi_appid, (ConvertTo-SecureString $spi_secret -AsPlainText -Force))
Login-AzAccount -ServicePrincipal -TenantId $tenantid -Credential $pscredential -Subscription $subid
Hesapları yönetme
Hesapları listele
# List Data Lake Analytics accounts within the current subscription.
Get-AdlAnalyticsAccount
# List Data Lake Analytics accounts within a specific resource group.
Get-AdlAnalyticsAccount -ResourceGroupName $rg
Hesap oluşturma
Her Data Lake Analytics hesabı, günlükleri depolamak için kullandığı varsayılan bir Data Lake Store hesabı gerektirir. Mevcut bir hesabı yeniden kullanabilir veya hesap oluşturabilirsiniz.
# Create a data lake store if needed, or you can re-use an existing one
New-AdlStore -ResourceGroupName $rg -Name $adls -Location $location
New-AdlAnalyticsAccount -ResourceGroupName $rg -Name $adla -Location $location -DefaultDataLake $adls
Hesap bilgilerini alma
Bir hesap hakkındaki ayrıntıları alın.
Get-AdlAnalyticsAccount -Name $adla
Bir hesabın mevcut olup olmadığını denetleme
Test-AdlAnalyticsAccount -Name $adla
Veri kaynaklarını yönetme
Azure Data Lake Analytics şu anda aşağıdaki veri kaynaklarını desteklemektedir:
Her Data Lake Analytics hesabının varsayılan bir Data Lake Store hesabı vardır. Varsayılan Data Lake Store hesabı, iş meta verilerini ve iş denetim günlüklerini depolamak için kullanılır.
Varsayılan Data Lake Store hesabını bulma
$adla_acct = Get-AdlAnalyticsAccount -Name $adla
$dataLakeStoreName = $adla_acct.DefaultDataLakeAccount
Veri kaynakları IsDefault
listesini özelliğine göre filtreleyerek varsayılan Data Lake Store hesabını bulabilirsiniz:
Get-AdlAnalyticsDataSource -Account $adla | ? { $_.IsDefault }
Veri kaynağı ekleme
# Add an additional Storage (Blob) account.
$AzureStorageAccountName = "<AzureStorageAccountName>"
$AzureStorageAccountKey = "<AzureStorageAccountKey>"
Add-AdlAnalyticsDataSource -Account $adla -Blob $AzureStorageAccountName -AccessKey $AzureStorageAccountKey
# Add an additional Data Lake Store account.
$AzureDataLakeStoreName = "<AzureDataLakeStoreAccountName"
Add-AdlAnalyticsDataSource -Account $adla -DataLakeStore $AzureDataLakeStoreName
Veri kaynaklarını listeleme
# List all the data sources
Get-AdlAnalyticsDataSource -Account $adla
# List attached Data Lake Store accounts
Get-AdlAnalyticsDataSource -Account $adla | where -Property Type -EQ "DataLakeStore"
# List attached Storage accounts
Get-AdlAnalyticsDataSource -Account $adla | where -Property Type -EQ "Blob"
U-SQL işlerini gönderme
Dizeyi U-SQL işi olarak gönderme
$script = @"
@a =
SELECT * FROM
(VALUES
("Contoso", 1500.0),
("Woodgrove", 2700.0)
) AS D( customer, amount );
OUTPUT @a
TO "/data.csv"
USING Outputters.Csv();
"@
$scriptpath = "d:\test.usql"
$script | Out-File $scriptpath
Submit-AdlJob -AccountName $adla -Script $script -Name "Demo"
Dosyayı U-SQL işi olarak gönderme
$scriptpath = "d:\test.usql"
$script | Out-File $scriptpath
Submit-AdlJob -AccountName $adla –ScriptPath $scriptpath -Name "Demo"
İşleri listeleme
Çıktı o anda çalışan işleri ve yakın zamanda tamamlanan işleri içerir.
Get-AdlJob -Account $adla
En çok kullanılan N işi listeleme
Varsayılan olarak, iş listesi gönderme zamanında sıralanır. Bu nedenle, en son gönderilen işler önce görünür. Varsayılan olarak, ADLA hesabı 180 günlük işleri hatırlar, ancak varsayılan olarak Get-AdlJob cmdlet'i yalnızca ilk 500'leri döndürür. Belirli sayıda işi listelemek için -Top parametresini kullanın.
$jobs = Get-AdlJob -Account $adla -Top 10
İşleri iş durumuna göre listeleme
parametresini -State
kullanma. Şu değerlerden herhangi birini birleştirebilirsiniz:
Accepted
Compiling
Ended
New
Paused
Queued
Running
Scheduling
Start
# List the running jobs
Get-AdlJob -Account $adla -State Running
# List the jobs that have completed
Get-AdlJob -Account $adla -State Ended
# List the jobs that have not started yet
Get-AdlJob -Account $adla -State Accepted,Compiling,New,Paused,Scheduling,Start
İşleri iş sonucuna göre listeleme
-Result
Sona eren işlerin başarıyla tamamlanıp tamamlanmadığını algılamak için parametresini kullanın. Şu değerlere sahiptir:
- İptal edildi
- Başarısız
- Hiçbiri
- Başarılı
# List Successful jobs.
Get-AdlJob -Account $adla -State Ended -Result Succeeded
# List Failed jobs.
Get-AdlJob -Account $adla -State Ended -Result Failed
İşleri iş göndericiye göre listeleme
-Submitter
parametresi, kimin iş gönderdiğini belirlemenize yardımcı olur.
Get-AdlJob -Account $adla -Submitter "joe@contoso.com"
İşleri gönderme zamanına göre listeleme
-SubmittedAfter
, bir zaman aralığına filtrelemede yararlıdır.
# List jobs submitted in the last day.
$d = [DateTime]::Now.AddDays(-1)
Get-AdlJob -Account $adla -SubmittedAfter $d
# List jobs submitted in the last seven day.
$d = [DateTime]::Now.AddDays(-7)
Get-AdlJob -Account $adla -SubmittedAfter $d
İş durumunu alma
Belirli bir işin durumunu alın.
Get-AdlJob -AccountName $adla -JobId $job.JobId
Bir işi iptal etme
Stop-AdlJob -Account $adla -JobID $jobID
bir işin bitmesini bekleyin
Bir iş bitene kadar yinelemek Get-AdlAnalyticsJob
yerine cmdlet'ini Wait-AdlJob
kullanarak işin bitmesini bekleyebilirsiniz.
Wait-AdlJob -Account $adla -JobId $job.JobId
İş işlem hatlarını ve yinelenmeleri listeleme
Get-AdlJobPipeline
Daha önce gönderilen işleri işlem hattı bilgilerini görmek için cmdlet'ini kullanın.
$pipelines = Get-AdlJobPipeline -Account $adla
$pipeline = Get-AdlJobPipeline -Account $adla -PipelineId "<pipeline ID>"
Get-AdlJobRecurrence
Daha önce gönderilen işlerin yinelenme bilgilerini görmek için cmdlet'ini kullanın.
$recurrences = Get-AdlJobRecurrence -Account $adla
$recurrence = Get-AdlJobRecurrence -Account $adla -RecurrenceId "<recurrence ID>"
İşlem ilkelerini yönetme
Mevcut işlem ilkelerini listeleme
Cmdlet, Get-AdlAnalyticsComputePolicy
bir Data Lake Analytics hesabı için işlem ilkeleri hakkındaki bilgileri alır.
$policies = Get-AdlAnalyticsComputePolicy -Account $adla
İşlem ilkesi oluşturma
Cmdlet, New-AdlAnalyticsComputePolicy
bir Data Lake Analytics hesabı için yeni bir işlem ilkesi oluşturur. Bu örnek, belirtilen kullanıcının kullanabilecekleri en yüksek AU sayısını 50, en düşük iş önceliğini ise 250 olarak ayarlar.
$userObjectId = (Get-AzAdUser -SearchString "garymcdaniel@contoso.com").Id
New-AdlAnalyticsComputePolicy -Account $adla -Name "GaryMcDaniel" -ObjectId $objectId -ObjectType User -MaxDegreeOfParallelismPerJob 50 -MinPriorityPerJob 250
Dosyaları yönetme
Dosyanın varlığını denetleme
Test-AdlStoreItem -Account $adls -Path "/data.csv"
Karşıya yükleme ve indirme
Bir dosyayı karşıya yükleyin.
Import-AdlStoreItem -AccountName $adls -Path "c:\data.tsv" -Destination "/data_copy.csv"
Klasörün tamamını özyinelemeli olarak karşıya yükleyin.
Import-AdlStoreItem -AccountName $adls -Path "c:\myData\" -Destination "/myData/" -Recurse
Bir dosya indirin.
Export-AdlStoreItem -AccountName $adls -Path "/data.csv" -Destination "c:\data.csv"
Klasörün tamamını özyinelemeli olarak indirin.
Export-AdlStoreItem -AccountName $adls -Path "/" -Destination "c:\myData\" -Recurse
Not
Karşıya yükleme veya indirme işlemi kesintiye uğrarsa, cmdlet'ini bayrağıyla yeniden çalıştırarak işlemi sürdürmeyi -Resume
deneyin.
U-SQL kataloğunu yönetme
U-SQL kataloğu, U-SQL betikleri tarafından paylaşılabilmeleri için verileri ve kodları yapılandırmak için kullanılır. Katalog, Azure Data Lake'teki verilerle mümkün olan en yüksek performansı sağlar. Daha fazla bilgi için bkz. U-SQL kataloğunu kullanma.
U-SQL kataloğundaki öğeleri listeleme
# List U-SQL databases
Get-AdlCatalogItem -Account $adla -ItemType Database
# List tables within a database
Get-AdlCatalogItem -Account $adla -ItemType Table -Path "database"
# List tables within a schema.
Get-AdlCatalogItem -Account $adla -ItemType Table -Path "database.schema"
U-SQL kataloğunun tüm derlemelerini listeleme
$dbs = Get-AdlCatalogItem -Account $adla -ItemType Database
foreach ($db in $dbs)
{
$asms = Get-AdlCatalogItem -Account $adla -ItemType Assembly -Path $db.Name
foreach ($asm in $asms)
{
$asmname = "[" + $db.Name + "].[" + $asm.Name + "]"
Write-Host $asmname
}
}
Katalog öğesiyle ilgili ayrıntıları alma
# Get details of a table
Get-AdlCatalogItem -Account $adla -ItemType Table -Path "master.dbo.mytable"
# Test existence of a U-SQL database.
Test-AdlCatalogItem -Account $adla -ItemType Database -Path "master"
Kimlik bilgilerini katalogda depolama
U-SQL veritabanında, Azure'da barındırılan bir veritabanı için kimlik bilgisi nesnesi oluşturun. Şu anda, PowerShell aracılığıyla oluşturabileceğiniz tek katalog öğesi türü U-SQL kimlik bilgileridir.
$dbName = "master"
$credentialName = "ContosoDbCreds"
$dbUri = "https://contoso.database.windows.net:8080"
New-AdlCatalogCredential -AccountName $adla `
-DatabaseName $db `
-CredentialName $credentialName `
-Credential (Get-Credential) `
-Uri $dbUri
Güvenlik duvarı kurallarını yönetme
Güvenlik duvarı kurallarını listeleme
Get-AdlAnalyticsFirewallRule -Account $adla
Güvenlik duvarı kuralı ekleme
$ruleName = "Allow access from on-prem server"
$startIpAddress = "<start IP address>"
$endIpAddress = "<end IP address>"
Add-AdlAnalyticsFirewallRule -Account $adla -Name $ruleName -StartIpAddress $startIpAddress -EndIpAddress $endIpAddress
Güvenlik duvarı kuralını değiştirme
Set-AdlAnalyticsFirewallRule -Account $adla -Name $ruleName -StartIpAddress $startIpAddress -EndIpAddress $endIpAddress
Güvenlik duvarı kuralını kaldırma
Remove-AdlAnalyticsFirewallRule -Account $adla -Name $ruleName
Azure IP adreslerine izin ver
Set-AdlAnalyticsAccount -Name $adla -AllowAzureIpState Enabled
Set-AdlAnalyticsAccount -Name $adla -FirewallState Enabled
Set-AdlAnalyticsAccount -Name $adla -FirewallState Disabled
Azure ile çalışma
Hata ayrıntılarını alma
Resolve-AzError -Last
Windows makinenizde Yönetici olarak çalışıp çalışmadığını doğrulayın
function Test-Administrator
{
$user = [Security.Principal.WindowsIdentity]::GetCurrent();
$p = New-Object Security.Principal.WindowsPrincipal $user
$p.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)
}
Kiracı Kimliği Bulma
Abonelik adından:
function Get-TenantIdFromSubscriptionName( [string] $subname )
{
$sub = (Get-AzSubscription -SubscriptionName $subname)
$sub.TenantId
}
Get-TenantIdFromSubscriptionName "ADLTrainingMS"
Abonelik kimliğinden:
function Get-TenantIdFromSubscriptionId( [string] $subid )
{
$sub = (Get-AzSubscription -SubscriptionId $subid)
$sub.TenantId
}
$subid = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
Get-TenantIdFromSubscriptionId $subid
"contoso.com" gibi bir etki alanı adresinden
function Get-TenantIdFromDomain( $domain )
{
$url = "https://login.windows.net/" + $domain + "/.well-known/openid-configuration"
return (Invoke-WebRequest $url|ConvertFrom-Json).token_endpoint.Split('/')[3]
}
$domain = "contoso.com"
Get-TenantIdFromDomain $domain
Tüm aboneliklerinizi ve kiracı kimliklerinizi listeleme
$subs = Get-AzSubscription
foreach ($sub in $subs)
{
Write-Host $sub.Name "(" $sub.Id ")"
Write-Host "`tTenant Id" $sub.TenantId
}
Sonraki adımlar
- Microsoft Azure Data Lake Analytics'e genel bakış
- Azure portal Azure PowerShell Azure CLI kullanarak Data Lake Analytics | | kullanmaya başlama
- Azure portal Azure PowerShell | CLI kullanarak Azure Data Lake Analytics | yönetme