Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Importante
Azure Data Lake Analytics è stato 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 account, origini dati, utenti e processi di Azure Data Lake Analytics usando Azure PowerShell.
Prerequisiti
Annotazioni
È 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: ID della sottoscrizione di Azure che contiene l'account Data Lake Analytics.
- Gruppo di risorse: nome del gruppo di risorse di Azure che contiene l'account Data Lake Analytics.
- Nome dell'account di Data Lake Analytics: nome dell'account Data Lake Analytics.
- Nome account Data Lake Store predefinito: Ogni account Data Lake Analytics ha un account Data Lake Store predefinito.
- Località: posizione dell'account Data Lake Analytics, ad esempio "Stati Uniti orientali 2" o altre località supportate.
I frammenti di codice di PowerShell in questa esercitazione usano queste variabili per archiviare queste informazioni
$subId = "<SubscriptionId>"
$rg = "<ResourceGroupName>"
$adla = "<DataLakeAnalyticsAccountName>"
$adls = "<DataLakeStoreAccountName>"
$location = "<Location>"
Accedere ad Azure
Accedere con l'autenticazione utente interattiva
Accedere con un ID sottoscrizione o in base al nome della sottoscrizione
# Using subscription id
Connect-AzAccount -SubscriptionId $subId
# Using subscription name
Connect-AzAccount -SubscriptionName $subname
Salvataggio del contesto di autenticazione
Il Connect-AzAccount
cmdlet richiede sempre le credenziali. È possibile evitare che venga richiesto 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à principale del servizio (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
Gestire gli account
Elenco di 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
Crea un account
Ogni account Data Lake Analytics richiede un account Data Lake Store predefinito usato per l'archiviazione dei log. È possibile riutilizzare 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 informazioni dettagliate su un account.
Get-AdlAnalyticsAccount -Name $adla
Controllare se esiste un account
Test-AdlAnalyticsAccount -Name $adla
Gestisci 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 Data Lake Store predefinito viene usato per archiviare i metadati del processo e i log di controllo del processo.
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 delle origini dati in base alla IsDefault
proprietà :
Get-AdlAnalyticsDataSource -Account $adla | ? { $_.IsDefault }
Aggiungi 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 attività U-SQL
Inviare una stringa come attività 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"
Invia un file come attività U-SQL
$scriptpath = "d:\test.usql"
$script | Out-File $scriptpath
Submit-AdlJob -AccountName $adla –ScriptPath $scriptpath -Name "Demo"
Elencare i lavori
L'output include i processi attualmente in esecuzione e i processi completati di recente.
Get-AdlJob -Account $adla
Elenca i primi N lavori
Per impostazione predefinita, l'elenco dei processi viene ordinato in base all'ora di invio. I lavori inviati più di recente appaiono per primi. Per impostazione predefinita, l'account ADLA memorizza i processi per 180 giorni, ma il cmdlet Get-AdlJob per impostazione predefinita restituisce solo i primi 500. Utilizzare il parametro -Top per elencare un numero specifico di lavori.
$jobs = Get-AdlJob -Account $adla -Top 10
Elencare i lavori per stato del lavoro
Uso del -State
parametro . È possibile combinare uno di 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 lavori in base al risultato del lavoro
Usare il -Result
parametro per rilevare se i processi terminati sono stati completati correttamente. Ha questi valori:
- Annullato
- Non riuscito
- Nessuno
- Riuscito
# List Successful jobs.
Get-AdlJob -Account $adla -State Ended -Result Succeeded
# List Failed jobs.
Get-AdlJob -Account $adla -State Ended -Result Failed
Elenca i lavori in base al mittente del lavoro
Il parametro -Submitter
consente di identificare chi ha inviato un lavoro.
Get-AdlJob -Account $adla -Submitter "[email protected]"
Elenca i lavori in base all'ora di invio
-SubmittedAfter
è utile per filtrare 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 del lavoro
Visualizzare lo stato di un processo specifico.
Get-AdlJob -AccountName $adla -JobId $job.JobId
Annullare un'attività
Stop-AdlJob -Account $adla -JobID $jobID
Attendere il completamento di un'attività
Anziché ripetere Get-AdlAnalyticsJob
fino al termine di un processo, è possibile usare il Wait-AdlJob
cmdlet per attendere la fine del processo.
Wait-AdlJob -Account $adla -JobId $job.JobId
Elencare le pipeline di lavoro e le ricorrenze
Usare il Get-AdlJobPipeline
cmdlet per visualizzare le informazioni sulla pipeline dei lavori inviati in precedenza.
$pipelines = Get-AdlJobPipeline -Account $adla
$pipeline = Get-AdlJobPipeline -Account $adla -PipelineId "<pipeline ID>"
Usare il Get-AdlJobRecurrence
cmdlet per visualizzare le informazioni sulla ricorrenza per i processi inviati in precedenza.
$recurrences = Get-AdlJobRecurrence -Account $adla
$recurrence = Get-AdlJobRecurrence -Account $adla -RecurrenceId "<recurrence ID>"
Gestire i criteri di calcolo
Elencare i criteri di calcolo esistenti
Il Get-AdlAnalyticsComputePolicy
cmdlet recupera informazioni sui criteri di calcolo per un account Data Lake Analytics.
$policies = Get-AdlAnalyticsComputePolicy -Account $adla
Creare una politica di calcolo
Il New-AdlAnalyticsComputePolicy
cmdlet crea un nuovo criterio di calcolo per un account Data Lake Analytics. Questo esempio imposta il numero massimo di UR disponibili per l'utente specificato su 50 e la priorità minima del processo su 250.
$userObjectId = (Get-AzAdUser -SearchString "[email protected]").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 un'intera cartella in modo ricorsivo.
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 un'intera cartella in modo ricorsivo.
Export-AdlStoreItem -AccountName $adls -Path "/" -Destination "c:\myData\" -Recurse
Annotazioni
Se il processo di caricamento o download viene interrotto, è possibile tentare di riprendere il processo eseguendo di nuovo il cmdlet con il -Resume
flag .
Gestire il catalogo U-SQL
Il catalogo U-SQL viene usato per strutturare i dati e il codice in modo che possano essere condivisi dagli script U-SQL. Il catalogo consente le prestazioni più elevate possibili con i dati in Azure Data Lake. Per altre informazioni, vedere Usare il catalogo U-SQL.
Elencare gli 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 del 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 credenziale per un database ospitato in Azure. Attualmente, le credenziali 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
Consenti indirizzi IP di Azure
Set-AdlAnalyticsAccount -Name $adla -AllowAzureIpState Enabled
Set-AdlAnalyticsAccount -Name $adla -FirewallState Enabled
Set-AdlAnalyticsAccount -Name $adla -FirewallState Disabled
Uso di Azure
Ottenere i dettagli dell'errore
Resolve-AzError -Last
Controlla se stai eseguendo come amministratore sulla tua macchina 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 tutte le sottoscrizioni e gli ID 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 a Data Lake Analytics utilizzando il portale di Azure | , Azure PowerShell | e Azure CLI
- Gestire Azure Data Lake Analytics utilizzando il portale di Azure, Azure PowerShell e CLI.