Gestire Azure Data Lake Analytics tramite Azure PowerShell
Importante
Azure Data Lake Analytics ritirato il 29 febbraio 2024. Per altre informazioni , vedere questo annuncio.
Per l'analisi dei dati, l'organizzazione può usare Azure Synapse Analytics o Microsoft Fabric.
Questo articolo descrive come gestire utenti, processi, origini dati e account Azure Data Lake Analytics tramite Azure PowerShell.
Prerequisiti
Nota
È consigliabile usare il modulo Azure Az PowerShell per interagire con Azure. Per iniziare, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.
Per usare PowerShell con Data Lake Analytics, raccogliere le informazioni seguenti:
- ID sottoscrizione: l'ID della sottoscrizione di Azure in cui è presente l'account Data Lake Analytics.
- Gruppo di risorse: il nome del gruppo di risorse di Azure che contiene l'account di Data Lake Analytics.
- Nome dell'account Data Lake Analytics: il nome dell'account Data Lake Analytics.
- Nome dell'account Data Lake Store predefinito: ogni account Data Lake Analytics ha un account Data Lake Store predefinito.
- Posizione: la posizione dell'account di Data Lake Analytics, ad esempio "Stati Uniti orientali 2" o altre posizioni supportate.
I frammenti di codice di PowerShell in questa esercitazione usano le variabili seguenti per archiviare queste informazioni
$subId = "<SubscriptionId>"
$rg = "<ResourceGroupName>"
$adla = "<DataLakeAnalyticsAccountName>"
$adls = "<DataLakeStoreAccountName>"
$location = "<Location>"
Accedere ad Azure
Accedere usando l'autenticazione utente interattiva
Accedere usando un ID o un nome di sottoscrizione
# Using subscription id
Connect-AzAccount -SubscriptionId $subId
# Using subscription name
Connect-AzAccount -SubscriptionName $subname
Salvataggio del contesto di autenticazione
Il cmdlet Connect-AzAccount
chiede sempre le credenziali. È possibile evitare tale richiesta usando i cmdlet seguenti:
# Save login session information
Save-AzAccounts -Path D:\profile.json
# Load login session information
Select-AzAccounts -Path D:\profile.json
Accedere usando un'identità dell'entità servizio
$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
Gestisci account
Elencare gli account
# 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
Creare un account
Per ogni account Data Lake Analytics deve essere configurato un account Data Lake Store che viene usato per l'archiviazione dei log. È possibile riusare un account esistente o creare un account.
# 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
Ottenere le informazioni sull'account
Ottenere dettagli su un account.
Get-AdlAnalyticsAccount -Name $adla
Verificare l'esistenza di un account
Test-AdlAnalyticsAccount -Name $adla
Gestire le origini dati
Azure Data Lake Analytics supporta attualmente le origini dati seguenti:
Ogni account Data Lake Analytics ha un account Data Lake Store predefinito. L'account di Data Lake Store predefinito viene usato per archiviare i metadati e i log di controllo dei processi.
Trovare l'account di Data Lake Store predefinito
$adla_acct = Get-AdlAnalyticsAccount -Name $adla
$dataLakeStoreName = $adla_acct.DefaultDataLakeAccount
È possibile trovare l'account Data Lake Store predefinito filtrando l'elenco di origine dati secondo il criterio di proprietà IsDefault
:
Get-AdlAnalyticsDataSource -Account $adla | ? { $_.IsDefault }
Aggiungere un'origine dati
# 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
Elencare le origini dati
# 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"
Inviare processi U-SQL
Inviare una stringa come processo 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"
Inviare un file come processo U-SQL
$scriptpath = "d:\test.usql"
$script | Out-File $scriptpath
Submit-AdlJob -AccountName $adla –ScriptPath $scriptpath -Name "Demo"
Elencare i processi
L'output include i processi attualmente in esecuzione e quelli completati di recente.
Get-AdlJob -Account $adla
Elencare i processi N principali
Per impostazione predefinita, l'elenco dei processi viene ordinato in base all'ora di invio. Pertanto, i processi inviati di recente vengono visualizzati per primi. Per impostazione predefinita, l'account di ADLA memorizza i processi per 180 giorni, ma il cmdlet Get-AdlJob restituisce solo i primi 500. Utilizzare i parametri superiori per elencare un numero specifico di processi.
$jobs = Get-AdlJob -Account $adla -Top 10
Elencare i processi in base allo stato
Uso del parametro -State
. È possibile combinare questi valori:
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
Elencare i processi in base al risultato
Usare il parametro -Result
per rilevare se i processi finiti sono stati completati correttamente. Dispone di questi valori:
- Cancellati
- Non riuscito
- Nessuno
- Completato
# List Successful jobs.
Get-AdlJob -Account $adla -State Ended -Result Succeeded
# List Failed jobs.
Get-AdlJob -Account $adla -State Ended -Result Failed
Elencare i processi in base alla persona che invia la richiesta
Il parametro -Submitter
consente di identificare chi ha inviato un processo.
Get-AdlJob -Account $adla -Submitter "joe@contoso.com"
Elencare i processi in base all'ora di invio
Il -SubmittedAfter
è utile per un filtraggio in base a un intervallo di tempo.
# 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
Ottenere lo stato di processo
Ottenere lo stato di un processo specifico.
Get-AdlJob -AccountName $adla -JobId $job.JobId
Annullare un processo
Stop-AdlJob -Account $adla -JobID $jobID
Attendere il completamento di un processo
Anziché ripetere Get-AdlAnalyticsJob
finché non termina un processo, è possibile usare il cmdlet Wait-AdlJob
per attendere la fine del processo.
Wait-AdlJob -Account $adla -JobId $job.JobId
Elencare pipeline e ricorrenze dei processi
Utilizzare il cmdlet Get-AdlJobPipeline
per visualizzare le informazioni di pipeline dei processi inviati in precedenza.
$pipelines = Get-AdlJobPipeline -Account $adla
$pipeline = Get-AdlJobPipeline -Account $adla -PipelineId "<pipeline ID>"
Utilizzare il cmdlet Get-AdlJobRecurrence
per visualizzare le informazioni relative all'intervallo di esecuzione dei processi inviati in precedenza.
$recurrences = Get-AdlJobRecurrence -Account $adla
$recurrence = Get-AdlJobRecurrence -Account $adla -RecurrenceId "<recurrence ID>"
Gestire i criteri di calcolo
Elenco di criteri di calcolo esistenti
Il cmdlet Get-AdlAnalyticsComputePolicy
recupera informazioni sui criteri di calcolo per un account Data Lake Analytics.
$policies = Get-AdlAnalyticsComputePolicy -Account $adla
Creare un criterio di calcolo
Il cmdlet New-AdlAnalyticsComputePolicy
crea un nuovo criterio di calcolo per un account Data Lake Analytics. Questo esempio imposta le unità di analisi massime disponibili per l'utente specificato su 50 e la priorità minima del processo su 250.
$userObjectId = (Get-AzAdUser -SearchString "garymcdaniel@contoso.com").Id
New-AdlAnalyticsComputePolicy -Account $adla -Name "GaryMcDaniel" -ObjectId $objectId -ObjectType User -MaxDegreeOfParallelismPerJob 50 -MinPriorityPerJob 250
Gestire i file
Verificare l'esistenza di un file
Test-AdlStoreItem -Account $adls -Path "/data.csv"
Caricamento e download
Caricare un file.
Import-AdlStoreItem -AccountName $adls -Path "c:\data.tsv" -Destination "/data_copy.csv"
Caricare in modo ricorsivo un'intera cartella.
Import-AdlStoreItem -AccountName $adls -Path "c:\myData\" -Destination "/myData/" -Recurse
Scaricare un file.
Export-AdlStoreItem -AccountName $adls -Path "/data.csv" -Destination "c:\data.csv"
Scaricare in modo ricorsivo un'intera cartella.
Export-AdlStoreItem -AccountName $adls -Path "/" -Destination "c:\myData\" -Recurse
Nota
Se il processo di caricamento o download viene interrotto, è possibile tentare di riprendere il processo eseguendo nuovamente il cmdlet con il flag -Resume
.
Gestire il catalogo U-SQL
Il catalogo di U-SQL viene usato per definire la struttura dei dati e del codice in modo da poterli condividere mediante U-SQL. Il catalogo consente di ottenere le migliori prestazioni possibili con i dati in Azure Data Lake. Per altre informazioni, vedere la pagina di Usare il catalogo di U-SQL.
Elencare elementi nel catalogo 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"
Elencare tutti gli assembly nel catalogo 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
}
}
Ottenere informazioni dettagliate su un elemento del catalogo
# 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"
Archiviare le credenziali nel catalogo
All'interno di un database U-SQL creare un oggetto credenziali per un database ospitato in Azure. Attualmente le credenziali di U-SQL sono l'unico tipo di elemento del catalogo che è possibile creare tramite 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
Gestire le regole del firewall
Elencare le regole del firewall
Get-AdlAnalyticsFirewallRule -Account $adla
Aggiungere una regola del 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
Modificare una regola del firewall
Set-AdlAnalyticsFirewallRule -Account $adla -Name $ruleName -StartIpAddress $startIpAddress -EndIpAddress $endIpAddress
Rimuovere una regola del firewall
Remove-AdlAnalyticsFirewallRule -Account $adla -Name $ruleName
Consentire gli indirizzi IP di Azure
Set-AdlAnalyticsAccount -Name $adla -AllowAzureIpState Enabled
Set-AdlAnalyticsAccount -Name $adla -FirewallState Enabled
Set-AdlAnalyticsAccount -Name $adla -FirewallState Disabled
Utilizzo di Azure
Ottenere i dettagli dell'errore
Resolve-AzError -Last
Verificare se si sta eseguendo un processo come amministratore nel computer Windows
function Test-Administrator
{
$user = [Security.Principal.WindowsIdentity]::GetCurrent();
$p = New-Object Security.Principal.WindowsPrincipal $user
$p.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)
}
Trovare un ID tenant
Da un nome di sottoscrizione:
function Get-TenantIdFromSubscriptionName( [string] $subname )
{
$sub = (Get-AzSubscription -SubscriptionName $subname)
$sub.TenantId
}
Get-TenantIdFromSubscriptionName "ADLTrainingMS"
Da un ID sottoscrizione:
function Get-TenantIdFromSubscriptionId( [string] $subid )
{
$sub = (Get-AzSubscription -SubscriptionId $subid)
$sub.TenantId
}
$subid = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
Get-TenantIdFromSubscriptionId $subid
Da un indirizzo di dominio, ad esempio "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
Elencare tutti gli ID di sottoscrizioni e tenant
$subs = Get-AzSubscription
foreach ($sub in $subs)
{
Write-Host $sub.Name "(" $sub.Id ")"
Write-Host "`tTenant Id" $sub.TenantId
}
Passaggi successivi
- Panoramica di Microsoft Azure Data Lake Analytics
- Introduzione alle Data Lake Analytics con l'interfaccia della riga di comando di Portale di Azure | Azure PowerShell | Azure
- Gestire Data Lake Analytics di Azure con portale di Azure | Azure PowerShell | CLI