Verwalten von Azure Data Lake Analytics mithilfe von Azure PowerShell
Wichtig
Azure Data Lake Analytics am 29. Februar 2024 eingestellt. In dieser Ankündigung erhalten Sie weitere Informationen.
Für Datenanalysen kann Ihr organization Azure Synapse Analytics oder Microsoft Fabric verwenden.
In diesem Artikel wird beschrieben, wie Sie Azure Data Lake Analytics-Konten, -Datenquellen, -Benutzer und -Aufträge mit Azure PowerShell verwalten.
Voraussetzungen
Hinweis
Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Installieren des Azure Az PowerShell-Moduls. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.
Sammeln Sie die folgenden Informationen, um PowerShell mit Data Lake Analytics zu verwenden:
- Abonnement-ID: ID des Azure-Abonnements, das Ihr Data Lake Analytics-Konto enthält.
- Ressourcengruppe: der Name der Azure-Ressourcengruppe, die Ihr Data Lake Analytics-Konto enthält
- Name des Data Lake Analytics-Kontos: Name Ihres Data Lake Analytics-Kontos.
- Name des Data Lake Store-Standardkontos: Jedes Data Lake Analytics-Konto verfügt über ein Data Lake Store-Standardkonto.
- Standort: der Standort des Data Lake Analytics-Kontos, z.B. „USA, Osten 2“ oder andere unterstützte Standorte.
In den PowerShell-Codeausschnitten dieses Tutorials werden die folgenden Variablen zum Speichern dieser Informationen verwendet:
$subId = "<SubscriptionId>"
$rg = "<ResourceGroupName>"
$adla = "<DataLakeAnalyticsAccountName>"
$adls = "<DataLakeStoreAccountName>"
$location = "<Location>"
Anmelden an Azure
Anmelden per interaktiver Benutzerauthentifizierung
Anmelden per Abonnement-ID oder Abonnementname
# Using subscription id
Connect-AzAccount -SubscriptionId $subId
# Using subscription name
Connect-AzAccount -SubscriptionName $subname
Speichern des Authentifizierungskontexts
Das Cmdlet Connect-AzAccount
fordert immer zur Eingabe von Anmeldeinformationen auf. Damit diese Aufforderung nicht erfolgt, können Sie die folgenden Cmdlets verwenden:
# Save login session information
Save-AzAccounts -Path D:\profile.json
# Load login session information
Select-AzAccounts -Path D:\profile.json
Anmelden per 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
Konten verwalten
Auflisten von Konten
# 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
Erstellen eines Kontos
Für jedes Data Lake Analytics-Konto ist ein Data Lake Store-Standardkonto erforderlich, das zum Speichern von Protokollen verwendet wird. Sie können ein vorhandenes Konto wiederverwenden oder ein Konto erstellen.
# 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
Abrufen von Kontoinformationen
Rufen Sie Details zu einem Konto ab.
Get-AdlAnalyticsAccount -Name $adla
Überprüfen, ob ein Konto vorhanden ist
Test-AdlAnalyticsAccount -Name $adla
Datenquellen verwalten
Azure Data Lake Analytics unterstützt derzeit die folgenden Datenquellen:
Für jedes Data Lake Analytics-Konto ist ein Data Lake Store-Standardkonto vorhanden. Das Data Lake Store-Standardkonto dient zum Speichern von Auftragsmetadaten und -überwachungsprotokollen.
Ermitteln des Data Lake-Standardspeicherkontos
$adla_acct = Get-AdlAnalyticsAccount -Name $adla
$dataLakeStoreName = $adla_acct.DefaultDataLakeAccount
Sie können das Standardkonto für den Data Lake-Speicher finden, indem Sie die Liste der Datenquellen nach der IsDefault
-Eigenschaft filtern:
Get-AdlAnalyticsDataSource -Account $adla | ? { $_.IsDefault }
Hinzufügen einer Datenquelle
# 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
Auflisten von Datenquellen
# 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"
Übermitteln von U-SQL-Aufträgen
Übermitteln einer Zeichenfolge als U-SQL-Auftrag
$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"
Übermitteln einer Datei als U-SQL-Auftrag
$scriptpath = "d:\test.usql"
$script | Out-File $scriptpath
Submit-AdlJob -AccountName $adla –ScriptPath $scriptpath -Name "Demo"
Auflisten von Aufträgen
Die Ausgabe enthält die derzeit ausgeführten Aufträge sowie die Aufträge, die vor Kurzem abgeschlossen wurden.
Get-AdlJob -Account $adla
Auflisten der Top N Aufträge
Die Liste der Aufträge wird standardmäßig nach der Übermittlungszeit sortiert. Die zuletzt gesendeten Aufträge werden somit zuerst angezeigt. Im ADLA-Konto werden Aufträge standardmäßig 180 Tage lang beibehalten, mit dem Cmdlet „Get-AdlJob“ werden jedoch nur die ersten 500 Aufträge zurückgegeben. Verwenden Sie den Parameter „-Top“, um eine bestimmte Anzahl von Aufträgen aufzulisten.
$jobs = Get-AdlJob -Account $adla -Top 10
Auflisten von Aufträgen nach Auftragsstatus
Mithilfe des Parameters -State
. Sie können jeden der folgenden Werte kombinieren:
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
Auflisten von Aufträgen nach Auftragsergebnis
Verwenden Sie den Parameter -Result
, um zu erkennen, ob die beendeten Aufträge erfolgreich abgeschlossen wurden. Er enthält folgende Werte:
- Canceled
- Fehler
- Keine
- Erfolgreich
# List Successful jobs.
Get-AdlJob -Account $adla -State Ended -Result Succeeded
# List Failed jobs.
Get-AdlJob -Account $adla -State Ended -Result Failed
Auflisten von Aufträgen nach dem Übermittler des Auftrags
Mithilfe des Parameters -Submitter
können Sie erkennen, wer einen Auftrag übermittelt hat.
Get-AdlJob -Account $adla -Submitter "joe@contoso.com"
Auflisten von Aufträgen nach der Übermittlungszeit
Der Parameter -SubmittedAfter
ist nützlich, um nach einem Zeitbereich zu filtern.
# 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
Abrufen des Auftragsstatus
Rufen Sie den Status eines bestimmten Auftrags ab.
Get-AdlJob -AccountName $adla -JobId $job.JobId
Abbrechen eines Auftrags
Stop-AdlJob -Account $adla -JobID $jobID
Warten auf den Abschluss eines Auftrags
Anstatt Get-AdlAnalyticsJob
zu wiederholen, bis ein Auftrag abgeschlossen ist, können Sie das Cmdlet Wait-AdlJob
verwenden, um zu warten, bis der Auftrag beendet wurde.
Wait-AdlJob -Account $adla -JobId $job.JobId
Auflisten von Auftragspipelines und -wiederholungen
Verwenden Sie das Cmdlet Get-AdlJobPipeline
, um die Pipelineinformationen für zuvor übermittelte Aufträge anzuzeigen.
$pipelines = Get-AdlJobPipeline -Account $adla
$pipeline = Get-AdlJobPipeline -Account $adla -PipelineId "<pipeline ID>"
Verwenden Sie das Cmdlet Get-AdlJobRecurrence
, um die Wiederholungsinformationen für zuvor übermittelte Aufträge anzuzeigen.
$recurrences = Get-AdlJobRecurrence -Account $adla
$recurrence = Get-AdlJobRecurrence -Account $adla -RecurrenceId "<recurrence ID>"
Verwalten von Computerichtlinien
Auflisten vorhandener Computerichtlinien
Durch das Cmdlet Get-AdlAnalyticsComputePolicy
werden Informationen über Computerichtlinien für ein Data Lake Analytics-Konto abgerufen.
$policies = Get-AdlAnalyticsComputePolicy -Account $adla
Erstellen einer Computerichtlinie
Durch das Cmdlet New-AdlAnalyticsComputePolicy
werden Informationen über Computerichtlinien für ein Data Lake Analytics-Konto abgerufen. In diesem Beispiel werden die maximalen AUs, die für den angegebenen Benutzer verfügbar sind, auf 50 und die minimale Auftragspriorität auf 250 festgelegt.
$userObjectId = (Get-AzAdUser -SearchString "garymcdaniel@contoso.com").Id
New-AdlAnalyticsComputePolicy -Account $adla -Name "GaryMcDaniel" -ObjectId $objectId -ObjectType User -MaxDegreeOfParallelismPerJob 50 -MinPriorityPerJob 250
Verwalten von Dateien
Überprüfen des Vorhandenseins einer Datei
Test-AdlStoreItem -Account $adls -Path "/data.csv"
Hoch- und Herunterladen
Laden Sie eine Datei hoch.
Import-AdlStoreItem -AccountName $adls -Path "c:\data.tsv" -Destination "/data_copy.csv"
Laden Sie einen gesamten Ordner rekursiv hoch.
Import-AdlStoreItem -AccountName $adls -Path "c:\myData\" -Destination "/myData/" -Recurse
Laden Sie eine Datei herunter.
Export-AdlStoreItem -AccountName $adls -Path "/data.csv" -Destination "c:\data.csv"
Laden Sie einen gesamten Ordner rekursiv herunter.
Export-AdlStoreItem -AccountName $adls -Path "/" -Destination "c:\myData\" -Recurse
Hinweis
Wenn der Upload- oder Downloadvorgang unterbrochen wird, können Sie versuchen, den Vorgang fortzusetzen, indem Sie das Cmdlet mit dem Flag -Resume
erneut ausführen.
Verwalten des U-SQL-Katalogs
Der U-SQL-Katalog wird zum Strukturieren von Daten und Code verwendet, damit diese von U-SQL-Skripts gemeinsam genutzt werden können. Der Katalog ermöglicht die höchstmögliche Leistung mit Daten in Azure Data Lake. Weitere Informationen finden Sie unter Verwenden des U-SQL-Katalogs.
Auflisten von Elementen im U-SQL-Katalog
# 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"
Auflisten aller Assemblys des U-SQL-Katalogs
$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
}
}
Abrufen von Details zu einem Katalogelement
# 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"
Speichern von Anmeldeinformationen im Katalog
Erstellen Sie innerhalb einer U-SQL-Datenbank ein credential-Objekt für eine in Azure gehostete Datenbank. Derzeit können über PowerShell lediglich U-SQL-Anmeldeinformationen als Katalogelement erstellt werden.
$dbName = "master"
$credentialName = "ContosoDbCreds"
$dbUri = "https://contoso.database.windows.net:8080"
New-AdlCatalogCredential -AccountName $adla `
-DatabaseName $db `
-CredentialName $credentialName `
-Credential (Get-Credential) `
-Uri $dbUri
Verwalten von Firewallregeln
Auflisten von Firewallregeln
Get-AdlAnalyticsFirewallRule -Account $adla
Hinzufügen einer Firewallregel
$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
Ändern einer Firewallregel
Set-AdlAnalyticsFirewallRule -Account $adla -Name $ruleName -StartIpAddress $startIpAddress -EndIpAddress $endIpAddress
Entfernen einer Firewallregel
Remove-AdlAnalyticsFirewallRule -Account $adla -Name $ruleName
Zulassen von Azure-IP-Adressen
Set-AdlAnalyticsAccount -Name $adla -AllowAzureIpState Enabled
Set-AdlAnalyticsAccount -Name $adla -FirewallState Enabled
Set-AdlAnalyticsAccount -Name $adla -FirewallState Disabled
Arbeiten mit Azure
Abrufen von Fehlerdetails
Resolve-AzError -Last
Überprüfen, ob die Ausführung auf Ihrem Windows-Computer als Administrator erfolgt
function Test-Administrator
{
$user = [Security.Principal.WindowsIdentity]::GetCurrent();
$p = New-Object Security.Principal.WindowsPrincipal $user
$p.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)
}
Suchen einer TenantID
Über einen Abonnementnamen:
function Get-TenantIdFromSubscriptionName( [string] $subname )
{
$sub = (Get-AzSubscription -SubscriptionName $subname)
$sub.TenantId
}
Get-TenantIdFromSubscriptionName "ADLTrainingMS"
Über eine Abonnement-ID:
function Get-TenantIdFromSubscriptionId( [string] $subid )
{
$sub = (Get-AzSubscription -SubscriptionId $subid)
$sub.TenantId
}
$subid = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
Get-TenantIdFromSubscriptionId $subid
Über eine Domänenadresse wie z.B. „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
Auflisten Ihrer gesamten Abonnements und Mandanten-IDs
$subs = Get-AzSubscription
foreach ($sub in $subs)
{
Write-Host $sub.Name "(" $sub.Id ")"
Write-Host "`tTenant Id" $sub.TenantId
}
Nächste Schritte
- Übersicht über Microsoft Azure Data Lake Analytics
- Erste Schritte mit Data Lake Analytics mithilfe des Azure-Portals | von Azure PowerShell | der Azure CLI
- Verwalten von Azure Data Lake Analytics mithilfe des Azure-Portals | von Azure PowerShell | der Befehlszeilenschnittstelle