Az Azure Data Lake Analytics kezelése az Azure PowerShell-lel

Fontos

Az Azure Data Lake Analytics 2024. február 29-én megszűnt. További információ ezzel a bejelentéssel.

Az adatelemzéshez a szervezet használhatja a Azure Synapse Analyticset vagy a Microsoft Fabricet.

Ez a cikk azt ismerteti, hogyan kezelheti az Azure-Data Lake Analytics-fiókokat, -adatforrásokat, -felhasználókat és -feladatokat Azure PowerShell használatával.

Előfeltételek

Megjegyzés

Javasoljuk, hogy az Azure-ral való interakcióhoz az Azure Az PowerShell-modult használja. Az első lépésekhez tekintse meg az Azure PowerShell telepítését ismertető szakaszt. Az Az PowerShell-modulra történő migrálás részleteiről lásd: Az Azure PowerShell migrálása az AzureRM modulból az Az modulba.

A PowerShell Data Lake Analytics való használatához gyűjtse össze a következő információkat:

  • Előfizetés azonosítója: A Data Lake Analytics-fiókját tartalmazó Azure-előfizetés azonosítója.
  • Erőforráscsoport: A Data Lake Analytics-fiókot tartalmazó Azure-erőforráscsoport neve.
  • Data Lake Analytics fiók neve: A Data Lake Analytics-fiók neve.
  • Alapértelmezett Data Lake Store-fiók neve: Minden Data Lake Analytics fiókhoz tartozik egy alapértelmezett Data Lake Store-fiók.
  • Hely: A Data Lake Analytics-fiók helye, például az "USA 2. keleti régiója" vagy más támogatott helyek.

A jelen oktatóanyagban szereplő PowerShell-kódrészletek ezeket a változókat használják adattárolásra

$subId = "<SubscriptionId>"
$rg = "<ResourceGroupName>"
$adla = "<DataLakeAnalyticsAccountName>"
$adls = "<DataLakeStoreAccountName>"
$location = "<Location>"

Jelentkezzen be az Azure-ba

Bejelentkezés interaktív felhasználói hitelesítéssel

Bejelentkezés előfizetés-azonosító vagy előfizetés neve alapján

# Using subscription id
Connect-AzAccount -SubscriptionId $subId

# Using subscription name
Connect-AzAccount -SubscriptionName $subname

Hitelesítési környezet mentése

A Connect-AzAccount parancsmag mindig hitelesítő adatokat kér. A következő parancsmagok használatával elkerülheti a kérést:

# Save login session information
Save-AzAccounts -Path D:\profile.json  

# Load login session information
Select-AzAccounts -Path D:\profile.json

Bejelentkezés szolgáltatásnév-identitással (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

Fiókok kezelése

Fiókok listája

# 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

Fiók létrehozása

A naplók tárolásához minden Data Lake Analytics-fiók esetében szükség van egy alapértelmezett Data Lake Store-fiókra. Újra felhasználhat egy meglévő fiókot, vagy létrehozhat egy fiókot.

# 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

Fiókadatok lekérése

Fiók adatainak lekérése.

Get-AdlAnalyticsAccount -Name $adla

Ellenőrizze, hogy létezik-e fiók

Test-AdlAnalyticsAccount -Name $adla

Adatforrások kezelése

Az Azure Data Lake Analytics jelenleg a következő adatforrásokat támogatja:

Minden Data Lake Analytics fiókhoz tartozik egy alapértelmezett Data Lake Store-fiók. Az alapértelmezett Data Lake Store-fiók a feladat metaadatainak és a feladatnaplóknak a tárolására szolgál.

Az alapértelmezett Data Lake Store-fiók megkeresése

$adla_acct = Get-AdlAnalyticsAccount -Name $adla
$dataLakeStoreName = $adla_acct.DefaultDataLakeAccount

Az alapértelmezett Data Lake Store-fiók megkereséséhez szűrje az adatforrások listáját a IsDefault tulajdonság alapján:

Get-AdlAnalyticsDataSource -Account $adla  | ? { $_.IsDefault }

Adatforrás hozzáadása


# 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

Adatforrások listázása

# 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"

U-SQL-feladatok küldése

Sztring elküldése U-SQL-feladatként

$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"

Fájl elküldése U-SQL-feladatként

$scriptpath = "d:\test.usql"
$script | Out-File $scriptpath
Submit-AdlJob -AccountName $adla –ScriptPath $scriptpath -Name "Demo"

Feladatok listázása

A kimenet tartalmazza az aktuálisan futó és a nemrégiben befejezett feladatokat is.

Get-AdlJob -Account $adla

A leggyakoribb N-feladatok listázása

Alapértelmezés szerint a feladatok listája a küldési időpont szerint van rendezve. Így a legutóbb beküldött feladatok jelennek meg először. Alapértelmezés szerint az ADLA-fiók 180 napig megjegyzi a feladatokat, de a Get-AdlJob parancsmag alapértelmezés szerint csak az első 500-et adja vissza. A -Top paraméterrel listázhat egy adott számú feladatot.

$jobs = Get-AdlJob -Account $adla -Top 10

Feladatok listázása feladatállapot szerint

-State A paraméter használatával. Az alábbi értékek bármelyikét kombinálhatja:

  • 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

Feladatok listázása feladateredmények szerint

A paraméterrel állapítsa meg, hogy a -Result befejezett feladatok sikeresen befejeződtek-e. A következő értékekkel rendelkezik:

  • Megszakítva
  • Sikertelen
  • None
  • Sikeres
# List Successful jobs.
Get-AdlJob -Account $adla -State Ended -Result Succeeded

# List Failed jobs.
Get-AdlJob -Account $adla -State Ended -Result Failed

Feladatok listázása feladat beküldője szerint

A -Submitter paraméter segítségével azonosíthatja, hogy ki küldött be feladatot.

Get-AdlJob -Account $adla -Submitter "joe@contoso.com"

Feladatok listázása beküldési idő szerint

A -SubmittedAfter hasznos az időtartományra való szűréshez.

# 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

Feladat állapotának lekérése

Kérje le egy adott feladat állapotát.

Get-AdlJob -AccountName $adla -JobId $job.JobId

Feladat megszakítása

Stop-AdlJob -Account $adla -JobID $jobID

Várjon, amíg egy feladat befejeződik

Ahelyett, hogy a feladat befejeződéséig ismételne Get-AdlAnalyticsJob , a Wait-AdlJob parancsmaggal megvárhatja, amíg a feladat befejeződik.

Wait-AdlJob -Account $adla -JobId $job.JobId

Feladatfolyamatok és ismétlődések listázása

Get-AdlJobPipeline A parancsmaggal megtekintheti a korábban elküldött folyamatinformációkat.

$pipelines = Get-AdlJobPipeline -Account $adla
$pipeline = Get-AdlJobPipeline -Account $adla -PipelineId "<pipeline ID>"

Get-AdlJobRecurrence A parancsmaggal megtekintheti a korábban elküldött feladatok ismétlődési adatait.

$recurrences = Get-AdlJobRecurrence -Account $adla

$recurrence = Get-AdlJobRecurrence -Account $adla -RecurrenceId "<recurrence ID>"

Számítási szabályzatok kezelése

Meglévő számítási szabályzatok listázása

A Get-AdlAnalyticsComputePolicy parancsmag lekéri az Data Lake Analytics-fiók számítási szabályzataival kapcsolatos információkat.

$policies = Get-AdlAnalyticsComputePolicy -Account $adla

Számítási szabályzat létrehozása

A New-AdlAnalyticsComputePolicy parancsmag létrehoz egy új számítási szabályzatot egy Data Lake Analytics-fiókhoz. Ez a példa a megadott felhasználó számára elérhető maximális AU-t 50-re, a minimális feladatprioritást pedig 250-re állítja.

$userObjectId = (Get-AzAdUser -SearchString "garymcdaniel@contoso.com").Id

New-AdlAnalyticsComputePolicy -Account $adla -Name "GaryMcDaniel" -ObjectId $objectId -ObjectType User -MaxDegreeOfParallelismPerJob 50 -MinPriorityPerJob 250

Fájlok kezelése

Fájl meglétének ellenőrzése

Test-AdlStoreItem -Account $adls -Path "/data.csv"

Feltöltés és letöltés

Töltsön fel egy fájlt.

Import-AdlStoreItem -AccountName $adls -Path "c:\data.tsv" -Destination "/data_copy.csv"

Teljes mappa rekurzív feltöltése.

Import-AdlStoreItem -AccountName $adls -Path "c:\myData\" -Destination "/myData/" -Recurse

Töltsön le egy fájlt.

Export-AdlStoreItem -AccountName $adls -Path "/data.csv" -Destination "c:\data.csv"

Töltsön le egy teljes mappát rekurzív módon.

Export-AdlStoreItem -AccountName $adls -Path "/" -Destination "c:\myData\" -Recurse

Megjegyzés

Ha a feltöltési vagy letöltési folyamat megszakad, megpróbálhatja folytatni a folyamatot a parancsmag ismételt futtatásával a -Resume jelzővel.

Az U-SQL-katalógus kezelése

Az U-SQL-katalógus az adatok és a kód strukturálására szolgál, hogy azokat U-SQL-szkriptek oszthassák meg. A katalógus a lehető legnagyobb teljesítményt teszi lehetővé az Azure Data Lake-ben tárolt adatokkal. További információk: Use U-SQL catalog (U-SQL-katalógus használata).

Az U-SQL-katalógus elemeinek listázása

# 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"

Az U-SQL-katalógus összes szerelvényének listázása

$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
    }
}

Katalóguselem részleteinek lekérése

# 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"

Hitelesítő adatok tárolása a katalógusban

Egy U-SQL-adatbázisban hozzon létre egy hitelesítőadat-objektumot az Azure-ban üzemeltetett adatbázishoz. Jelenleg az U-SQL hitelesítő adatok az egyetlen olyan katalóguselem-típus, amelyet a PowerShell használatával hozhat létre.

$dbName = "master"
$credentialName = "ContosoDbCreds"
$dbUri = "https://contoso.database.windows.net:8080"

New-AdlCatalogCredential -AccountName $adla `
          -DatabaseName $db `
          -CredentialName $credentialName `
          -Credential (Get-Credential) `
          -Uri $dbUri

Tűzfalszabályok kezelése

Tűzfalszabályok listázása

Get-AdlAnalyticsFirewallRule -Account $adla

Tűzfalszabály hozzáadása

$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

Tűzfalszabály módosítása

Set-AdlAnalyticsFirewallRule -Account $adla -Name $ruleName -StartIpAddress $startIpAddress -EndIpAddress $endIpAddress

Tűzfalszabály eltávolítása

Remove-AdlAnalyticsFirewallRule -Account $adla -Name $ruleName

Azure IP-címek engedélyezése

Set-AdlAnalyticsAccount -Name $adla -AllowAzureIpState Enabled
Set-AdlAnalyticsAccount -Name $adla -FirewallState Enabled
Set-AdlAnalyticsAccount -Name $adla -FirewallState Disabled

Az Azure használata

Hiba részleteinek lekérése

Resolve-AzError -Last

Ellenőrizze, hogy rendszergazdaként fut-e a Windows-gépen

function Test-Administrator  
{  
    $user = [Security.Principal.WindowsIdentity]::GetCurrent();
    $p = New-Object Security.Principal.WindowsPrincipal $user
    $p.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)  
}

Bérlőazonosító keresése

Előfizetés nevéből:

function Get-TenantIdFromSubscriptionName( [string] $subname )
{
    $sub = (Get-AzSubscription -SubscriptionName $subname)
    $sub.TenantId
}

Get-TenantIdFromSubscriptionName "ADLTrainingMS"

Előfizetés-azonosítóból:

function Get-TenantIdFromSubscriptionId( [string] $subid )
{
    $sub = (Get-AzSubscription -SubscriptionId $subid)
    $sub.TenantId
}

$subid = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
Get-TenantIdFromSubscriptionId $subid

Tartománycímből, például "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

Az összes előfizetés és bérlőazonosító listázása

$subs = Get-AzSubscription
foreach ($sub in $subs)
{
    Write-Host $sub.Name "("  $sub.Id ")"
    Write-Host "`tTenant Id" $sub.TenantId
}

Következő lépések