Hantera Azure Data Lake Analytics med hjälp av Azure PowerShell

Viktigt

Azure Data Lake Analytics drog sig tillbaka den 29 februari 2024. Läs mer med det här meddelandet.

För dataanalys kan din organisation använda Azure Synapse Analytics eller Microsoft Fabric.

Den här artikeln beskriver hur du hanterar Azure Data Lake Analytics-konton, datakällor, användare och jobb med hjälp av Azure PowerShell.

Förutsättningar

Anteckning

Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Se Installera Azure PowerShell för att komma igång. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.

Om du vill använda PowerShell med Data Lake Analytics samlar du in följande information:

  • Prenumerations-ID: ID:t för Den Azure-prenumeration som innehåller ditt Data Lake Analytics konto.
  • Resursgrupp: Namnet på den Azure-resursgrupp som innehåller ditt Data Lake Analytics konto.
  • Data Lake Analytics kontonamn: Namnet på ditt Data Lake Analytics konto.
  • Standardnamn för Data Lake Store-konto: Varje Data Lake Analytics konto har ett Data Lake Store-standardkonto.
  • Plats: Platsen för ditt Data Lake Analytics konto, till exempel "USA, östra 2" eller andra platser som stöds.

PowerShell-kodfragmenten i den här självstudien använder dessa variabler för att lagra informationen

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

Logga in på Azure

Logga in med interaktiv användarautentisering

Logga in med ett prenumerations-ID eller efter prenumerationsnamn

# Using subscription id
Connect-AzAccount -SubscriptionId $subId

# Using subscription name
Connect-AzAccount -SubscriptionName $subname

Spara autentiseringskontext

Cmdleten Connect-AzAccount frågar alltid efter autentiseringsuppgifter. Du kan undvika att bli tillfrågad med hjälp av följande cmdletar:

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

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

Logga in med en tjänsthuvudnamnsidentitet (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

Hantera konton

Lista över konton

# 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

Skapa ett konto

Alla Data Lake Analytics-konton kräver ett Data Lake Store-standardkonto som används för att lagra loggar. Du kan återanvända ett befintligt konto eller skapa ett konto.

# 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

Hämta kontoinformation

Få information om ett konto.

Get-AdlAnalyticsAccount -Name $adla

Kontrollera om det finns ett konto

Test-AdlAnalyticsAccount -Name $adla

Hantera datakällor

Azure Data Lake Analytics stöder för närvarande följande datakällor:

Varje Data Lake Analytics konto har ett standardkonto för Data Lake Store. Data Lake Store-standardkontot används för att lagra jobbmetadata och jobbgranskningsloggar.

Hitta standardkontot för Data Lake Store

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

Du hittar standardkontot för Data Lake Store genom att filtrera listan över datakällor efter IsDefault egenskapen:

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

Lägga till en datakälla


# 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

Lista datakällor

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

Skicka U-SQL-jobb

Skicka en sträng som ett U-SQL-jobb

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

Skicka en fil som ett U-SQL-jobb

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

Lista jobb

Resultatet innehåller de jobb som körs för närvarande och de jobb som nyss blev klara.

Get-AdlJob -Account $adla

Lista de översta N jobben

Som standard sorteras listan över jobb efter sändningstid. Så de senast skickade jobben visas först. Som standard kommer ADLA-kontot ihåg jobb i 180 dagar, men den Get-AdlJob cmdleten returnerar som standard endast de första 500. Använd -Top-parametern för att lista ett visst antal jobb.

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

Lista jobb efter jobbtillstånd

Använda parametern -State . Du kan kombinera något av följande värden:

  • 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

Lista jobb efter jobbresultat

Använd parametern -Result för att identifiera om avslutade jobb har slutförts. Den har följande värden:

  • Avbrutna
  • Misslyckad
  • Ingen
  • Lyckades
# List Successful jobs.
Get-AdlJob -Account $adla -State Ended -Result Succeeded

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

Lista jobb efter jobbslämnare

Parametern -Submitter hjälper dig att identifiera vem som skickade ett jobb.

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

Lista jobb efter sändningstid

-SubmittedAfter Är användbart vid filtrering till ett tidsintervall.

# 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

Hämta jobbstatus

Hämta status för ett specifikt jobb.

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

Avbryta ett jobb

Stop-AdlJob -Account $adla -JobID $jobID

Vänta tills ett jobb har slutförts

I stället för att upprepa Get-AdlAnalyticsJob tills ett jobb har slutförts kan du använda cmdleten Wait-AdlJob för att vänta tills jobbet har avslutats.

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

Lista jobbpipelines och upprepningar

Använd cmdleten Get-AdlJobPipeline för att se pipelineinformationen som tidigare skickats jobb.

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

Använd cmdleten Get-AdlJobRecurrence för att se upprepningsinformationen för tidigare skickade jobb.

$recurrences = Get-AdlJobRecurrence -Account $adla

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

Hantera beräkningsprinciper

Visa en lista över befintliga beräkningsprinciper

Cmdleten Get-AdlAnalyticsComputePolicy hämtar information om beräkningsprinciper för ett Data Lake Analytics konto.

$policies = Get-AdlAnalyticsComputePolicy -Account $adla

Skapa en beräkningsprincip

Cmdleten New-AdlAnalyticsComputePolicy skapar en ny beräkningsprincip för ett Data Lake Analytics konto. I det här exemplet anges det maximala antalet AUS:er som är tillgängliga för den angivna användaren till 50 och den lägsta jobbprioriteten till 250.

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

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

Hantera filer

Kontrollera om det finns en fil

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

Ladda upp och ladda ned

Ladda upp en fil.

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

Ladda upp en hel mapp rekursivt.

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

Ladda ned en fil.

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

Ladda ned en hel mapp rekursivt.

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

Anteckning

Om uppladdningen eller nedladdningen avbryts kan du försöka återuppta processen genom att köra cmdleten igen med -Resume flaggan .

Hantera U-SQL-katalogen

U-SQL-katalogen används för att strukturera data och kod så att de kan delas av U-SQL-skript. Katalogen ger högsta möjliga prestanda med data i Azure Data Lake. Mer information finns i Använd U-SQL-katalogen.

Lista objekt i U-SQL-katalogen

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

Visa en lista över alla sammansättningar i U-SQL-katalogen

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

Få information om ett katalogobjekt

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

Lagra autentiseringsuppgifter i katalogen

Skapa ett autentiseringsobjekt för en databas som finns i Azure i en U-SQL-databas. För närvarande är U-SQL-autentiseringsuppgifter den enda typen av katalogobjekt som du kan skapa via PowerShell.

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

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

Hantera brandväggsregler

Lista brandväggsregler

Get-AdlAnalyticsFirewallRule -Account $adla

Lägga till en brandväggsregel

$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

Ändra en brandväggsregel

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

Ta bort en brandväggsregel

Remove-AdlAnalyticsFirewallRule -Account $adla -Name $ruleName

Tillåt Azure IP-adresser

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

Arbeta med Azure

Hämta felinformation

Resolve-AzError -Last

Kontrollera om du kör som administratör på Windows-datorn

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

Hitta ett TenantID

Från ett prenumerationsnamn:

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

Get-TenantIdFromSubscriptionName "ADLTrainingMS"

Från ett prenumerations-ID:

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

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

Från en domänadress som "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

Visa en lista över alla dina prenumerationer och klientorganisations-ID:t

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

Nästa steg