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