Gestion d'Azure Data Lake Analytics à l'aide d'Azure PowerShell
Important
Azure Data Lake Analytics mis hors service le 29 février 2024. Découvrez-en plus avec cette annonce.
Pour l’analytique des données, votre organization peut utiliser Azure Synapse Analytics ou Microsoft Fabric.
Cet article décrit comment gérer des comptes Azure Data Lake Analytics, des sources de données, des utilisateurs et des travaux à l’aide d’Azure PowerShell.
Prérequis
Notes
Nous vous recommandons d’utiliser le module Azure Az PowerShell pour interagir avec Azure. Pour commencer, consultez Installer Azure PowerShell. Pour savoir comment migrer vers le module Az PowerShell, consultez Migrer Azure PowerShell depuis AzureRM vers Az.
Pour utiliser PowerShell avec Data Lake Analytics, collectez les informations suivantes :
- ID d’abonnement : ID de l’abonnement Azure qui contient votre compte Data Lake Analytics.
- Groupe de ressources : nom du groupe de ressources Azure qui contient votre compte Data Lake Analytics.
- Nom du compte Data Lake Analytics : nom de votre compte Data Lake Analytics.
- Nom du compte Data Lake Store par défaut : chaque compte Data Lake Analytics possède un compte Data Lake Store par défaut.
- Emplacement : emplacement de votre compte Data Lake Analytics, comme « USA Est 2 » ou autres emplacements pris en charge.
Dans ce didacticiel, les extraits de code PowerShell utilisent ces variables pour stocker ces informations.
$subId = "<SubscriptionId>"
$rg = "<ResourceGroupName>"
$adla = "<DataLakeAnalyticsAccountName>"
$adls = "<DataLakeStoreAccountName>"
$location = "<Location>"
Connexion à Azure
Connexion à l’aide de l’authentification utilisateur interactif
Connexion à l’aide d’un ID d’abonnement ou par nom d’abonnement
# Using subscription id
Connect-AzAccount -SubscriptionId $subId
# Using subscription name
Connect-AzAccount -SubscriptionName $subname
Enregistrement du contexte d’authentification
La cmdlet Connect-AzAccount
demande toujours les informations d’identification. Vous pouvez éviter cela à l’aide des cmdlets suivantes :
# Save login session information
Save-AzAccounts -Path D:\profile.json
# Load login session information
Select-AzAccounts -Path D:\profile.json
Connexion à l’aide d’une identité de principal du service (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
Gérer les comptes
Énumérer les comptes
# 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
Créer un compte
Chaque compte Data Lake Analytics nécessite un compte Data Lake Store par défaut pour stocker les journaux d’activité. Vous pouvez réutiliser un compte ou en créer un.
# 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
Obtenir les informations de compte
Obtenez les détails relatifs à un compte.
Get-AdlAnalyticsAccount -Name $adla
Vérifier si un compte existe
Test-AdlAnalyticsAccount -Name $adla
Gérer les sources de données
Azure Data Lake Analytics prend actuellement en charge les sources de données suivantes :
Chaque compte Data Lake Analytics possède un compte Data Lake Store par défaut. Le compte Data Lake Store par défaut est utilisé pour stocker les métadonnées du travail et les journaux d’audit du travail.
Rechercher le compte Data Lake Store par défaut
$adla_acct = Get-AdlAnalyticsAccount -Name $adla
$dataLakeStoreName = $adla_acct.DefaultDataLakeAccount
Vous trouverez le compte Data Lake Store par défaut en filtrant la liste des sources de données par le IsDefault
propriété :
Get-AdlAnalyticsDataSource -Account $adla | ? { $_.IsDefault }
Ajouter une source de données
# 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
Lister les sources de données
# 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"
Envoyer des travaux U-SQL
Envoyer une chaîne en tant que travail 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"
Envoyer un fichier en tant que travail U-SQL
$scriptpath = "d:\test.usql"
$script | Out-File $scriptpath
Submit-AdlJob -AccountName $adla –ScriptPath $scriptpath -Name "Demo"
Répertorier les travaux
La sortie comprend les travaux en cours et ceux qui ont été terminés récemment.
Get-AdlJob -Account $adla
Répertorier les N premiers travaux
Par défaut, la liste des travaux est triée en fonction de l’heure d’envoi. Par conséquent, les travaux envoyés le plus récemment s’affichent en premier. Par défaut, le compte ADLA garde en mémoire les travaux pendant 180 jours, mais l’applet de commande AdlJob-Ge ne retourne par défaut que les 500 premiers travaux. Utilisez le paramètre -Top pour lister un nombre spécifique de travaux.
$jobs = Get-AdlJob -Account $adla -Top 10
Répertorier les travaux par état du travail
Utilisation du -State
paramètre. Vous pouvez combiner chacune de ces valeurs :
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
Répertorier les travaux par résultat du travail
Utilisez le -Result
paramètre pour détecter si les travaux terminés se sont achevés correctement. Il possède ces valeurs :
- Opération annulée
- Échec
- None
- Opération réussie
# List Successful jobs.
Get-AdlJob -Account $adla -State Ended -Result Succeeded
# List Failed jobs.
Get-AdlJob -Account $adla -State Ended -Result Failed
Répertorier les travaux par expéditeur du travail
Le -Submitter
paramètre vous permet d’identifier qui a envoyé une tâche.
Get-AdlJob -Account $adla -Submitter "joe@contoso.com"
Répertorier les travaux par heure d’envoi
Le paramètre -SubmittedAfter
est utile lorsque vous filtrez dans un intervalle de temps.
# 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
Obtenir l’état de la tâche
Affichez l’état d’un travail.
Get-AdlJob -AccountName $adla -JobId $job.JobId
Annulation d’une tâche
Stop-AdlJob -Account $adla -JobID $jobID
Attendre la fin d’une tâche
Au lieu de répéter Get-AdlAnalyticsJob
jusqu’à ce qu’un travail se termine, vous pouvez utiliser la cmdlet Wait-AdlJob
pour attendre la fin du travail.
Wait-AdlJob -Account $adla -JobId $job.JobId
Répertorier les pipelines et les récurrences des tâches
Utilisez l’ Get-AdlJobPipeline
applet de commande pour afficher les tâches déjà soumises sur les informations de pipeline.
$pipelines = Get-AdlJobPipeline -Account $adla
$pipeline = Get-AdlJobPipeline -Account $adla -PipelineId "<pipeline ID>"
Utilisez l’ Get-AdlJobRecurrence
applet de commande pour afficher les informations sur la périodicité des tâches déjà soumises.
$recurrences = Get-AdlJobRecurrence -Account $adla
$recurrence = Get-AdlJobRecurrence -Account $adla -RecurrenceId "<recurrence ID>"
Gérer les stratégies de calcul
Lister les stratégies de calcul existantes
L’ Get-AdlAnalyticsComputePolicy
applet de commande récupère des informations sur les stratégies de calcul pour un compte Data Lake Analytics.
$policies = Get-AdlAnalyticsComputePolicy -Account $adla
Créer une stratégie de calcul
L’ New-AdlAnalyticsComputePolicy
applet de commande crée une nouvelle stratégie de calcul pour un compte Data Lake Analytics. Cet exemple définit les AU maximales disponibles pour l’utilisateur spécifié à 50 et la priorité minimale de la tâche à 250.
$userObjectId = (Get-AzAdUser -SearchString "garymcdaniel@contoso.com").Id
New-AdlAnalyticsComputePolicy -Account $adla -Name "GaryMcDaniel" -ObjectId $objectId -ObjectType User -MaxDegreeOfParallelismPerJob 50 -MinPriorityPerJob 250
Gérer les fichiers
Vérifier l’existence d’un fichier
Test-AdlStoreItem -Account $adls -Path "/data.csv"
Chargement et téléchargement
Chargez un fichier.
Import-AdlStoreItem -AccountName $adls -Path "c:\data.tsv" -Destination "/data_copy.csv"
Chargez un dossier entier de manière récursive.
Import-AdlStoreItem -AccountName $adls -Path "c:\myData\" -Destination "/myData/" -Recurse
Téléchargez un fichier.
Export-AdlStoreItem -AccountName $adls -Path "/data.csv" -Destination "c:\data.csv"
Téléchargez un dossier entier de manière récursive.
Export-AdlStoreItem -AccountName $adls -Path "/" -Destination "c:\myData\" -Recurse
Notes
Si le processus de chargement ou de téléchargement est interrompu, vous pouvez tenter de reprendre le processus en exécutant à nouveau la cmdlet avec l’indicateur -Resume
.
Gérer le catalogue U-SQL
Le catalogue U-SQL est utilisé pour structurer les données et le code afin que les scripts U-SQL puissent les partager. Le catalogue permet les meilleures performances possibles avec les données comprises dans Azure Data Lake. Pour plus d'informations, consultez Utilisation du catalogue U-SQL.
Lister les éléments dans le catalogue 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"
Répertorier tous les assemblys du catalogue 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
}
}
Obtenir des détails sur un élément de catalogue
# 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"
Stocker les informations d’identification dans le catalogue
Dans une base de données U-SQL, créez un objet informations d’identification pour une base de données hébergée dans Azure. Actuellement, les informations d’identification U-SQL sont le seul type d’élément de catalogue que vous pouvez créer 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
Gérer les règles de pare-feu
Répertorier les règles de pare-feu
Get-AdlAnalyticsFirewallRule -Account $adla
Ajouter une règle de pare-feu
$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
Modifier une règle de pare-feu
Set-AdlAnalyticsFirewallRule -Account $adla -Name $ruleName -StartIpAddress $startIpAddress -EndIpAddress $endIpAddress
Supprimer une règle de pare-feu
Remove-AdlAnalyticsFirewallRule -Account $adla -Name $ruleName
Autoriser les adresses IP Azure
Set-AdlAnalyticsAccount -Name $adla -AllowAzureIpState Enabled
Set-AdlAnalyticsAccount -Name $adla -FirewallState Enabled
Set-AdlAnalyticsAccount -Name $adla -FirewallState Disabled
Utilisation d’Azure
Voir les détails de l’erreur
Resolve-AzError -Last
Vérifier que vous exécutez en tant qu’administrateur sur votre machine Windows
function Test-Administrator
{
$user = [Security.Principal.WindowsIdentity]::GetCurrent();
$p = New-Object Security.Principal.WindowsPrincipal $user
$p.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)
}
Trouver un TenantID
À partir du nom d’un abonnement :
function Get-TenantIdFromSubscriptionName( [string] $subname )
{
$sub = (Get-AzSubscription -SubscriptionName $subname)
$sub.TenantId
}
Get-TenantIdFromSubscriptionName "ADLTrainingMS"
À partir de l’ID d’un abonnement :
function Get-TenantIdFromSubscriptionId( [string] $subid )
{
$sub = (Get-AzSubscription -SubscriptionId $subid)
$sub.TenantId
}
$subid = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
Get-TenantIdFromSubscriptionId $subid
À partir d’une adresse de domaine, comme « 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
Répertorier tous vos abonnements et leurs ID locataire
$subs = Get-AzSubscription
foreach ($sub in $subs)
{
Write-Host $sub.Name "(" $sub.Id ")"
Write-Host "`tTenant Id" $sub.TenantId
}
Étapes suivantes
- Vue d'ensemble de Microsoft Azure Data Lake Analytics
- Bien démarrer avec Data Lake Analytics à l’aide du portail Azure | Azure PowerShell | Azure CLI
- Gérer Azure Data Lake Analytics à l’aide du portail Azure | Azure PowerShell | CLI