Azure Data Lake Analytics beheren met Azure PowerShell

Belangrijk

Azure Data Lake Analytics op 29 februari 2024 buiten gebruik gesteld. Meer informatie over deze aankondiging.

Voor gegevensanalyse kan uw organisatie gebruikmaken van Azure Synapse Analytics of Microsoft Fabric.

In dit artikel wordt beschreven hoe u Azure Data Lake Analytics-accounts, gegevensbronnen, gebruikers en taken beheert met behulp van Azure PowerShell.

Vereisten

Notitie

Het wordt aanbevolen de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.

Als u PowerShell wilt gebruiken met Data Lake Analytics, verzamelt u de volgende gegevens:

  • Abonnements-id: de id van het Azure-abonnement dat uw Data Lake Analytics-account bevat.
  • Resourcegroep: de naam van de Azure-resourcegroep die uw Data Lake Analytics-account bevat.
  • Data Lake Analytics accountnaam: de naam van uw Data Lake Analytics-account.
  • Standaardnaam data lake store-account: elk Data Lake Analytics-account heeft een standaard Data Lake Store-account.
  • Locatie: De locatie van uw Data Lake Analytics-account, zoals VS - oost 2 of andere ondersteunde locaties.

De PowerShell-fragmenten in deze zelfstudie gebruiken deze variabelen om deze informatie op te slaan

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

Meld u aan bij Azure.

Aanmelden met behulp van interactieve gebruikersverificatie

Meld u aan met een abonnements-id of op abonnementsnaam

# Using subscription id
Connect-AzAccount -SubscriptionId $subId

# Using subscription name
Connect-AzAccount -SubscriptionName $subname

Verificatiecontext opslaan

De Connect-AzAccount cmdlet vraagt altijd om referenties. U kunt voorkomen dat u wordt gevraagd met behulp van de volgende cmdlets:

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

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

Aanmelden met een Service Principal Identity (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

Accounts beheren

Lijst van accounts

# 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

Een account maken

Elke Data Lake Analytics-account vereist een Data Lake Store-standaardaccount dat wordt gebruikt voor het opslaan van logboeken. U kunt een bestaand account opnieuw gebruiken of een account maken.

# 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

Accountgegevens ophalen

Details over een account ophalen.

Get-AdlAnalyticsAccount -Name $adla

Controleren of er een account bestaat

Test-AdlAnalyticsAccount -Name $adla

Gegevensbronnen beheren

Azure Data Lake Analytics ondersteunt momenteel de volgende gegevensbronnen:

Elk Data Lake Analytics-account heeft een data lake store-standaardaccount. Het data lake store-standaardaccount wordt gebruikt voor het opslaan van taakmetagegevens en taakcontrolelogboeken.

Het standaard Data Lake Store-account zoeken

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

U kunt het standaard Data Lake Store-account vinden door de lijst met gegevensbronnen te filteren op de IsDefault eigenschap:

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

Een gegevensbron toevoegen


# 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

Gegevensbronnen weergeven

# 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-taken verzenden

Een tekenreeks verzenden als een U-SQL-taak

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

Een bestand verzenden als een U-SQL-taak

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

Taken weergeven

De uitvoer bevat de taken die momenteel worden uitgevoerd en de taken die onlangs zijn voltooid.

Get-AdlJob -Account $adla

De belangrijkste N-taken weergeven

De lijst met taken wordt standaard gesorteerd op de verzendtijd. De laatst ingediende taken worden dus als eerste weergegeven. Het ADLA-account onthoudt standaard taken gedurende 180 dagen, maar de cmdlet Get-AdlJob retourneert standaard alleen de eerste 500. Gebruik de parameter -Top om een specifiek aantal taken weer te geven.

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

Taken weergeven op taakstatus

Met behulp van de -State parameter . U kunt een van deze waarden combineren:

  • 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

Taken weergeven op taakresultaat

Gebruik de -Result parameter om te detecteren of voltooide taken zijn voltooid. Het heeft deze waarden:

  • Geannuleerd
  • Mislukt
  • Geen
  • Geslaagd
# List Successful jobs.
Get-AdlJob -Account $adla -State Ended -Result Succeeded

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

Taken weergeven op inzender van taken

Met de -Submitter parameter kunt u identificeren wie een taak heeft ingediend.

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

Taken weergeven op inzendtijd

De -SubmittedAfter is handig bij het filteren op een tijdsbereik.

# 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

Taakstatus ophalen

Haal de status van een bepaalde taak op.

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

Een taak annuleren

Stop-AdlJob -Account $adla -JobID $jobID

Wachten tot een taak is voltooid

In plaats van te Get-AdlAnalyticsJob herhalen totdat een taak is voltooid, kunt u de Wait-AdlJob cmdlet gebruiken om te wachten tot de taak is beëindigd.

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

Taakpijplijnen en terugkeerpatronen weergeven

Gebruik de Get-AdlJobPipeline cmdlet om de pijplijngegevens te bekijken die eerder zijn verzonden.

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

Gebruik de Get-AdlJobRecurrence cmdlet om de terugkeergegevens voor eerder ingediende taken te bekijken.

$recurrences = Get-AdlJobRecurrence -Account $adla

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

Rekenbeleid beheren

Bestaand rekenbeleid weergeven

De Get-AdlAnalyticsComputePolicy cmdlet haalt informatie op over rekenbeleid voor een Data Lake Analytics-account.

$policies = Get-AdlAnalyticsComputePolicy -Account $adla

Een rekenbeleid maken

De New-AdlAnalyticsComputePolicy cmdlet maakt een nieuw rekenbeleid voor een Data Lake Analytics-account. In dit voorbeeld wordt het maximum aantal VOOR GEBRUIKERS dat beschikbaar is voor de opgegeven gebruiker ingesteld op 50 en de minimale taakprioriteit op 250.

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

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

Bestanden beheren

Controleren op de aanwezigheid van een bestand

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

Uploaden en downloaden

Upload een bestand.

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

Upload een hele map recursief.

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

Download een bestand.

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

Een hele map recursief downloaden.

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

Notitie

Als het upload- of downloadproces wordt onderbroken, kunt u proberen het proces te hervatten door de cmdlet opnieuw uit te voeren met de -Resume vlag.

De U-SQL-catalogus beheren

De U-SQL-catalogus wordt gebruikt om gegevens en code te structuren, zodat ze kunnen worden gedeeld door U-SQL-scripts. De catalogus biedt de hoogst mogelijke prestaties met gegevens in Azure Data Lake. Zie U-SQL-catalogus gebruiken voor meer informatie.

Items weergeven in de U-SQL-catalogus

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

Alle assembly's van de U-SQL-catalogus weergeven

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

Details over een catalogusitem ophalen

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

Referenties opslaan in de catalogus

Maak in een U-SQL-database een referentieobject voor een database die wordt gehost in Azure. Momenteel zijn U-SQL-referenties het enige type catalogusitem dat u kunt maken 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

Firewallregels beheren

Firewallregels weergeven

Get-AdlAnalyticsFirewallRule -Account $adla

Een firewallregel toevoegen

$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

Een firewallregel wijzigen

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

Een firewallregel verwijderen

Remove-AdlAnalyticsFirewallRule -Account $adla -Name $ruleName

Ip-adressen van Azure toestaan

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

Werken met Azure

Foutdetails ophalen

Resolve-AzError -Last

Controleer of u als beheerder op uw Windows-computer werkt

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

Een TenantID zoeken

Van een abonnementsnaam:

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

Get-TenantIdFromSubscriptionName "ADLTrainingMS"

Van een abonnements-id:

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

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

Van een domeinadres zoals '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

Al uw abonnementen en tenant-id's weergeven

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

Volgende stappen