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
- Overzicht van Microsoft Azure Data Lake Analytics
- Aan de slag met Data Lake Analytics met behulp van de Azure Portal | Azure PowerShell | Azure CLI
- Azure Data Lake Analytics beheren met Azure Portal | Azure PowerShell | CLI