Gérer Azure Data Lake Analytics à l’aide d’Azure PowerShell
Important
Azure Data Lake Analytics a pris sa retraite le 29 février 2024. Découvrez-en plus sur grâce à cette annonce.
Pour l’analytique des données, votre organisation peut utiliser Azure Synapse Analytics ou Microsoft Fabric.
Cet article explique comment gérer des comptes Azure Data Lake Analytics, des sources de données, des utilisateurs et des travaux à l’aide d’Azure PowerShell.
Conditions préalables
Remarque
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 de compte Data Lake Store par défaut: chaque compte Data Lake Analytics a un compte Data Lake Store par défaut.
- Emplacement: emplacement de votre compte Data Lake Analytics, tel que « USA Est 2 » ou d’autres emplacements pris en charge.
Les extraits de code PowerShell de ce didacticiel utilisent ces variables pour stocker ces informations
$subId = "<SubscriptionId>"
$rg = "<ResourceGroupName>"
$adla = "<DataLakeAnalyticsAccountName>"
$adls = "<DataLakeStoreAccountName>"
$location = "<Location>"
Connexion à Azure
Se connecter à l’aide de l’authentification utilisateur interactive
Connectez-vous à 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
L’applet de commande Connect-AzAccount
invite toujours les informations d’identification. Vous pouvez éviter de recevoir des invites en utilisant les applets de commande suivantes :
# Save login session information
Save-AzAccounts -Path D:\profile.json
# Load login session information
Select-AzAccounts -Path D:\profile.json
Se connecter à l’aide d’une identité de principal de 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
Répertorier 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 utilisé pour le stockage des journaux de suivi. Vous pouvez réutiliser un compte existant ou créer un compte.
# 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 des détails sur 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 a 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 des travaux.
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 la propriété IsDefault
:
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
Répertorier 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 tâche 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"
Liste des emplois
La sortie inclut les tâches en cours d'exécution et celles qui ont récemment été terminées.
Get-AdlJob -Account $adla
Répertorier les N meilleurs emplois
Par défaut, la liste des travaux est triée au moment de l’envoi. Les travaux les plus récemment envoyés apparaissent donc en premier. Par défaut, le compte ADLA mémorise les travaux pendant 180 jours, mais l’applet de commande Get-AdlJob par défaut retourne uniquement les 500 premiers. Utilisez -Top paramètre pour répertorier un nombre spécifique de travaux.
$jobs = Get-AdlJob -Account $adla -Top 10
Répertorier les travaux par état de travail
Utilisation du paramètre -State
. Vous pouvez combiner l’une 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 paramètre -Result
pour détecter si les travaux terminés ont été complétés avec succès. Il a ces valeurs :
- Annulé
- Échec
- Aucun
- Réussi
# List Successful jobs.
Get-AdlJob -Account $adla -State Ended -Result Succeeded
# List Failed jobs.
Get-AdlJob -Account $adla -State Ended -Result Failed
Lister les travaux par auteur
Le paramètre -Submitter
vous aide à identifier les personnes qui ont soumis un travail.
Get-AdlJob -Account $adla -Submitter "joe@contoso.com"
Répertorier les travaux par heure de soumission
La -SubmittedAfter
est utile pour filtrer sur 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 le statut de la tâche
Obtenez l’état d’un travail spécifique.
Get-AdlJob -AccountName $adla -JobId $job.JobId
Annuler un travail
Stop-AdlJob -Account $adla -JobID $jobID
Attendre la fin d’un travail
Au lieu de répéter Get-AdlAnalyticsJob
jusqu’à la fin d’un travail, vous pouvez utiliser l’applet de commande Wait-AdlJob
pour attendre la fin du travail.
Wait-AdlJob -Account $adla -JobId $job.JobId
Répertorier les pipelines de tâches et les récurrences
Utilisez l’applet de commande Get-AdlJobPipeline
pour voir les informations sur le pipeline des tâches précédemment soumises.
$pipelines = Get-AdlJobPipeline -Account $adla
$pipeline = Get-AdlJobPipeline -Account $adla -PipelineId "<pipeline ID>"
Utilisez l’applet de commande Get-AdlJobRecurrence
pour afficher les informations de périodicité des travaux précédemment envoyés.
$recurrences = Get-AdlJobRecurrence -Account $adla
$recurrence = Get-AdlJobRecurrence -Account $adla -RecurrenceId "<recurrence ID>"
Gérer les stratégies de calcul
Répertorier les stratégies de calcul existantes
L’applet de commande Get-AdlAnalyticsComputePolicy
récupère des informations sur les stratégies de calcul d’un compte Data Lake Analytics.
$policies = Get-AdlAnalyticsComputePolicy -Account $adla
Créer une stratégie de calcul
L’applet de commande New-AdlAnalyticsComputePolicy
crée une stratégie de calcul pour un compte Data Lake Analytics. Cet exemple définit le nombre maximal d'AUs disponibles pour l'utilisateur spécifié sur 50, et la priorité minimale de tâche sur 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
Rechercher 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
Remarque
Si le processus de chargement ou de téléchargement est interrompu, vous pouvez tenter de reprendre le processus en exécutant à nouveau l’applet de commande avec l’indicateur de -Resume
.
Gérer le catalogue U-SQL
Le catalogue U-SQL est utilisé pour structurer des données et du code afin qu’ils puissent être partagés par des scripts U-SQL. Le catalogue offre les performances les plus élevées possibles avec les données dans Azure Data Lake. Pour plus d’informations, consultez Utiliser le catalogue U-SQL.
Répertorier 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 d’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
Obtenir les détails de l’erreur
Resolve-AzError -Last
Vérifiez si vous exécutez en tant qu’administrateur sur votre ordinateur Windows
function Test-Administrator
{
$user = [Security.Principal.WindowsIdentity]::GetCurrent();
$p = New-Object Security.Principal.WindowsPrincipal $user
$p.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)
}
Rechercher un TenantID
À partir d’un nom d’abonnement :
function Get-TenantIdFromSubscriptionName( [string] $subname )
{
$sub = (Get-AzSubscription -SubscriptionName $subname)
$sub.TenantId
}
Get-TenantIdFromSubscriptionName "ADLTrainingMS"
À partir d’un ID d’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 telle que « 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 ID de 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
- Prise en main de Data Lake Analytics à l’aide du portail Azure | Azure PowerShell | Azure CLI
- Gérer Azure Data Lake Analytics à l’aide de portail Azure | Azure PowerShell | CLI