Správa Azure Data Lake Analytics pomocí Azure PowerShell

Tento článek popisuje, jak spravovat účty, zdroje dat, uživatele a úlohy Azure Data Lake Analytics pomocí Azure PowerShell.

Požadavky

Poznámka

K interakci s Azure doporučujeme použít modul Azure Az PowerShell. Začněte tím, že si projdete téma Instalace Azure PowerShell. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

Pokud chcete s Data Lake Analytics používat PowerShell, shromážděte následující informace:

  • ID předplatného: ID předplatného Azure, které obsahuje váš účet Data Lake Analytics.
  • Skupina prostředků: Název skupiny prostředků Azure, která obsahuje váš účet Data Lake Analytics.
  • Data Lake Analytics název účtu: Název účtu Data Lake Analytics.
  • Výchozí název účtu Data Lake Store: Každý účet Data Lake Analytics má výchozí účet Data Lake Store.
  • Umístění: Umístění vašeho účtu Data Lake Analytics, například USA – východ 2 nebo jiná podporovaná umístění.

Fragment kódu PowerShellu v tomto kurzu používá následující proměnné k ukládání příslušných informací:

$subId = "<SubscriptionId>"
$rg = "<ResourceGroupName>"
$adla = "<DataLakeAnalyticsAccountName>"
$adls = "<DataLakeStoreAccountName>"
$location = "<Location>"

Přihlaste se k Azure.

Přihlášení pomocí interaktivního ověřování uživatelů

Přihlaste se pomocí ID předplatného nebo podle názvu předplatného.

# Using subscription id
Connect-AzAccount -SubscriptionId $subId

# Using subscription name
Connect-AzAccount -SubscriptionName $subname

Ukládá se kontext ověřování.

Rutina Connect-AzAccount vždy vyzve k zadání přihlašovacích údajů. Zobrazení výzvy se můžete vyhnout pomocí následujících rutin:

# Save login session information
Save-AzAccounts -Path D:\profile.json  

# Load login session information
Select-AzAccounts -Path D:\profile.json

Přihlášení pomocí identity instančního objektu (SPI)

$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

Správa účtů

Výpis účtů

# 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

Vytvoření účtu

Každý účet Data Lake Analytics vyžaduje výchozí účet Data Lake Store, který slouží k ukládání protokolů. Můžete znovu použít existující účet nebo vytvořit účet.

# 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

Získání informací o účtu

Získejte podrobnosti o účtu.

Get-AdlAnalyticsAccount -Name $adla

Kontrola, jestli existuje účet

Test-AdlAnalyticsAccount -Name $adla

Správa zdrojů dat

Azure Data Lake Analytics v současné době podporuje následující zdroje dat:

Každý účet Data Lake Analytics má výchozí účet Data Lake Store. Výchozí účet Data Lake Store slouží k ukládání metadat úloh a protokolů auditu úloh.

Vyhledání výchozího účtu Data Lake Store

$adla_acct = Get-AdlAnalyticsAccount -Name $adla
$dataLakeStoreName = $adla_acct.DefaultDataLakeAccount

Výchozí účet Data Lake Store najdete filtrováním seznamu zdrojů dat podle IsDefault vlastnosti:

Get-AdlAnalyticsDataSource -Account $adla  | ? { $_.IsDefault }

Přidání zdroje dat


# 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

Výpis zdrojů dat

# 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"

Odesílání úloh U-SQL

Odeslání řetězce jako úlohy U-SQL

$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"

Odeslání souboru jako úlohy U-SQL

$scriptpath = "d:\test.usql"
$script | Out-File $scriptpath
Submit-AdlJob -AccountName $adla –ScriptPath $scriptpath -Name "Demo"

Výpis úloh

Výstup zahrnuje aktuálně spuštěné úlohy a nedávno dokončené úlohy.

Get-AdlJob -Account $adla

Výpis hlavních N úloh

Ve výchozím nastavení je seznam úloh seřazený podle času odeslání. Proto se jako první zobrazí naposledy odeslané úlohy. Ve výchozím nastavení si účet ADLA pamatuje úlohy po dobu 180 dnů, ale rutina Get-AdlJob ve výchozím nastavení vrátí jenom prvních 500. K výpisu určitého počtu úloh použijte parametr -Top.

$jobs = Get-AdlJob -Account $adla -Top 10

Výpis úloh podle stavu úlohy

Pomocí parametru -State . Můžete zkombinovat libovolnou z těchto hodnot:

  • 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

Výpis úloh podle výsledku úlohy

Pomocí parametru -Result zjistěte, jestli se ukončené úlohy úspěšně dokončily. Má tyto hodnoty:

  • Cancelled
  • Neúspěšný
  • Žádné
  • Úspěšný
# List Successful jobs.
Get-AdlJob -Account $adla -State Ended -Result Succeeded

# List Failed jobs.
Get-AdlJob -Account $adla -State Ended -Result Failed

Výpis úloh podle odesílejte

Parametr -Submitter vám pomůže identifikovat, kdo odeslal úlohu.

Get-AdlJob -Account $adla -Submitter "joe@contoso.com"

Výpis úloh podle času odeslání

Funkce je -SubmittedAfter užitečná při filtrování podle časového rozsahu.

# 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

Získání stavu úlohy

Získejte stav konkrétní úlohy.

Get-AdlJob -AccountName $adla -JobId $job.JobId

Zrušení úlohy

Stop-AdlJob -Account $adla -JobID $jobID

Čekání na dokončení úlohy

Místo opakování Get-AdlAnalyticsJob , dokud se úloha nedokončí, můžete pomocí rutiny Wait-AdlJob počkat, až úloha skončí.

Wait-AdlJob -Account $adla -JobId $job.JobId

Výpis kanálů úloh a opakování

Pomocí rutiny Get-AdlJobPipeline můžete zobrazit informace o kanálu, které byly dříve odeslány.

$pipelines = Get-AdlJobPipeline -Account $adla
$pipeline = Get-AdlJobPipeline -Account $adla -PipelineId "<pipeline ID>"

Pomocí rutiny Get-AdlJobRecurrence můžete zobrazit informace o opakování dříve odeslaných úloh.

$recurrences = Get-AdlJobRecurrence -Account $adla

$recurrence = Get-AdlJobRecurrence -Account $adla -RecurrenceId "<recurrence ID>"

Správa zásad výpočetních prostředků

Výpis existujících zásad výpočetních prostředků

Rutina Get-AdlAnalyticsComputePolicy načte informace o zásadách výpočetních prostředků pro účet Data Lake Analytics.

$policies = Get-AdlAnalyticsComputePolicy -Account $adla

Vytvoření zásad výpočetních prostředků

Rutina New-AdlAnalyticsComputePolicy vytvoří novou zásadu výpočetních prostředků pro účet Data Lake Analytics. Tento příklad nastaví maximální počet jednotek AU dostupných pro zadaného uživatele na 50 a minimální prioritu úlohy na 250.

$userObjectId = (Get-AzAdUser -SearchString "garymcdaniel@contoso.com").Id

New-AdlAnalyticsComputePolicy -Account $adla -Name "GaryMcDaniel" -ObjectId $objectId -ObjectType User -MaxDegreeOfParallelismPerJob 50 -MinPriorityPerJob 250

Správa souborů

Kontrola existence souboru

Test-AdlStoreItem -Account $adls -Path "/data.csv"

Nahrávání a stahování

Nahrajte soubor.

Import-AdlStoreItem -AccountName $adls -Path "c:\data.tsv" -Destination "/data_copy.csv"

Nahrajte rekurzivně celou složku.

Import-AdlStoreItem -AccountName $adls -Path "c:\myData\" -Destination "/myData/" -Recurse

Stáhněte si soubor.

Export-AdlStoreItem -AccountName $adls -Path "/data.csv" -Destination "c:\data.csv"

Rekurzivně stáhněte celou složku.

Export-AdlStoreItem -AccountName $adls -Path "/" -Destination "c:\myData\" -Recurse

Poznámka

Pokud dojde k přerušení procesu nahrávání nebo stahování, můžete se pokusit proces obnovit opětovným spuštěním rutiny s příznakem -Resume .

Správa katalogu U-SQL

Katalog U-SQL slouží ke strukturování dat a kódu tak, aby je mohly sdílet skripty U-SQL. Katalog umožňuje nejvyšší možný výkon dat v Azure Data Lake. Další informace najdete v tématu Použití katalogu U-SQL.

Výpis položek v katalogu U-SQL

# 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"

Výpis všech sestavení katalogu U-SQL

$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
    }
}

Získání podrobností o položce katalogu

# 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"

Uložení přihlašovacích údajů v katalogu

V databázi U-SQL vytvořte objekt přihlašovacích údajů pro databázi hostované v Azure. V současné době jsou přihlašovací údaje U-SQL jediným typem položky katalogu, kterou můžete vytvořit prostřednictvím PowerShellu.

$dbName = "master"
$credentialName = "ContosoDbCreds"
$dbUri = "https://contoso.database.windows.net:8080"

New-AdlCatalogCredential -AccountName $adla `
          -DatabaseName $db `
          -CredentialName $credentialName `
          -Credential (Get-Credential) `
          -Uri $dbUri

Správa pravidel firewallu

Výpis pravidel brány firewall

Get-AdlAnalyticsFirewallRule -Account $adla

Přidání pravidla brány firewall

$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

Úprava pravidla brány firewall

Set-AdlAnalyticsFirewallRule -Account $adla -Name $ruleName -StartIpAddress $startIpAddress -EndIpAddress $endIpAddress

Odebrání pravidla brány firewall

Remove-AdlAnalyticsFirewallRule -Account $adla -Name $ruleName

Povolit IP adresy Azure

Set-AdlAnalyticsAccount -Name $adla -AllowAzureIpState Enabled
Set-AdlAnalyticsAccount -Name $adla -FirewallState Enabled
Set-AdlAnalyticsAccount -Name $adla -FirewallState Disabled

Práce s Azure

Získání podrobností o chybě

Resolve-AzError -Last

Ověřte, jestli na počítači s Windows používáte funkci správce.

function Test-Administrator  
{  
    $user = [Security.Principal.WindowsIdentity]::GetCurrent();
    $p = New-Object Security.Principal.WindowsPrincipal $user
    $p.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)  
}

Vyhledání ID tenanta

Z názvu předplatného:

function Get-TenantIdFromSubscriptionName( [string] $subname )
{
    $sub = (Get-AzSubscription -SubscriptionName $subname)
    $sub.TenantId
}

Get-TenantIdFromSubscriptionName "ADLTrainingMS"

Z ID předplatného:

function Get-TenantIdFromSubscriptionId( [string] $subid )
{
    $sub = (Get-AzSubscription -SubscriptionId $subid)
    $sub.TenantId
}

$subid = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
Get-TenantIdFromSubscriptionId $subid

Z adresy domény, například "contoso.com".

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

Výpis všech předplatných a ID tenantů

$subs = Get-AzSubscription
foreach ($sub in $subs)
{
    Write-Host $sub.Name "("  $sub.Id ")"
    Write-Host "`tTenant Id" $sub.TenantId
}

Vytvoření účtu Data Lake Analytics pomocí šablony

Šablonu skupiny prostředků Azure můžete použít také pomocí následující ukázky: Vytvoření účtu Data Lake Analytics pomocí šablony

Další kroky