Bagikan melalui


Mengelola Azure Data Lake Analytics menggunakan Azure PowerShell

Penting

Azure Data Lake Analytics pensiun pada 29 Februari 2024. Pelajari lebih lanjut dengan pengumuman ini.

Untuk analitik data, organisasi Anda dapat menggunakan Azure Synapse Analytics atau Microsoft Fabric.

Artikel ini menjelaskan cara mengelola akun, sumber data, pengguna, dan pekerjaan Azure Data Lake Analytics dengan menggunakan Azure PowerShell.

Prasyarat

Nota

Kami menyarankan agar Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Lihat Menginstal Azure PowerShell untuk memulai. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.

Untuk menggunakan PowerShell dengan Data Lake Analytics, kumpulkan informasi berikut:

  • ID Langganan: ID langganan Azure yang berisi akun Data Lake Analytics Anda.
  • Grup sumber daya: Nama grup sumber daya Azure yang berisi akun Data Lake Analytics Anda.
  • nama akun Data Lake Analytics: Nama akun Data Lake Analytics Anda.
  • nama akun Default Data Lake Store: Setiap akun Data Lake Analytics memiliki akun Data Lake Store default.
  • Lokasi: Lokasi akun Data Lake Analytics Anda, seperti "US Timur 2" atau lokasi lain yang didukung.

Cuplikan PowerShell dalam tutorial ini menggunakan variabel ini untuk menyimpan informasi ini

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

Masuk ke Azure

Masuk menggunakan autentikasi pengguna interaktif

Masuk menggunakan ID langganan atau berdasarkan nama langganan

# Using subscription id
Connect-AzAccount -SubscriptionId $subId

# Using subscription name
Connect-AzAccount -SubscriptionName $subname

Menyimpan konteks autentikasi

Cmdlet Connect-AzAccount selalu meminta kredensial. Anda dapat menghindari diminta dengan menggunakan cmdlet berikut:

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

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

Masuklah menggunakan Identitas Perwakilan Layanan (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

Mengelola akun

Daftar akun

# 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

Buat akun

Setiap akun Data Lake Analytics memerlukan akun Data Lake Store default yang digunakannya untuk menyimpan log. Anda dapat menggunakan kembali akun yang sudah ada atau membuat akun.

# 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

Mendapatkan informasi akun

Dapatkan detail tentang akun.

Get-AdlAnalyticsAccount -Name $adla

Periksa apakah ada akun

Test-AdlAnalyticsAccount -Name $adla

Mengelola sumber data

Azure Data Lake Analytics saat ini mendukung sumber data berikut:

Setiap akun Data Lake Analytics memiliki akun Data Lake Store default. Akun Data Lake Store default digunakan untuk menyimpan metadata pekerjaan dan log audit pekerjaan.

Menemukan akun Data Lake Store default

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

Anda dapat menemukan akun Data Lake Store default dengan memfilter daftar sumber data menurut properti IsDefault:

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

Menambahkan sumber data


# 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

Mencantumkan sumber data

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

Kirim tugas U-SQL

Kirim string sebagai tugas 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"

Kirim file sebagai pekerjaan U-SQL

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

Mencantumkan pekerjaan

Output mencakup pekerjaan yang sedang berjalan dan pekerjaan yang baru saja selesai.

Get-AdlJob -Account $adla

Daftar pekerjaan terbaik N

Secara default daftar pekerjaan diurutkan pada waktu pengiriman. Jadi pekerjaan yang terakhir dikirimkan muncul terlebih dahulu. Secara default, akun ADLA mengingat pekerjaan selama 180 hari, tetapi cmdlet Get-AdlJob secara default hanya mengembalikan 500 pertama. Gunakan parameter -Top untuk mencantumkan jumlah pekerjaan tertentu.

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

Mencantumkan pekerjaan menurut status pekerjaan

Menggunakan parameter -State. Anda dapat menggabungkan salah satu nilai ini:

  • 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

Mencantumkan pekerjaan menurut hasil pekerjaan

Gunakan parameter -Result untuk mendeteksi apakah pekerjaan yang berakhir berhasil diselesaikan. Ini memiliki nilai-nilai ini:

  • Dibatalkan
  • Gagal
  • Tidak
  • Berhasil
# List Successful jobs.
Get-AdlJob -Account $adla -State Ended -Result Succeeded

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

Mencantumkan pekerjaan menurut pengirim pekerjaan

Parameter -Submitter membantu Anda mengidentifikasi siapa yang mengirimkan pekerjaan.

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

Mencantumkan pekerjaan menurut waktu pengiriman

-SubmittedAfter berguna untuk memfilter rentang waktu.

# 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

Dapatkan status pekerjaan

Dapatkan status tugas tertentu.

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

Batalkan pekerjaan

Stop-AdlJob -Account $adla -JobID $jobID

Tunggu hingga pekerjaan selesai

Alih-alih mengulangi Get-AdlAnalyticsJob hingga pekerjaan selesai, Anda dapat menggunakan cmdlet Wait-AdlJob untuk menunggu pekerjaan berakhir.

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

Mencantumkan alur pekerjaan dan pengulangan

Gunakan cmdlet Get-AdlJobPipeline untuk melihat informasi alur pekerjaan yang dikirimkan sebelumnya.

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

Gunakan cmdlet Get-AdlJobRecurrence untuk melihat informasi pengulangan untuk pekerjaan yang dikirimkan sebelumnya.

$recurrences = Get-AdlJobRecurrence -Account $adla

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

Mengelola kebijakan komputasi

Mencantumkan kebijakan komputasi yang ada

Cmdlet Get-AdlAnalyticsComputePolicy mengambil info tentang kebijakan komputasi untuk akun Data Lake Analytics.

$policies = Get-AdlAnalyticsComputePolicy -Account $adla

Membuat kebijakan komputasi

Cmdlet New-AdlAnalyticsComputePolicy membuat kebijakan komputasi baru untuk akun Data Lake Analytics. Contoh ini menetapkan AU maksimum yang tersedia untuk pengguna yang ditentukan menjadi 50, dan prioritas pekerjaan minimum menjadi 250.

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

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

Mengelola file

Periksa keberadaan file

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

Mengunggah dan mengunduh

Unggah file.

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

Unggah seluruh folder secara rekursif.

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

Unduh sebuah file.

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

Unduh seluruh folder secara rekursif.

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

Nota

Jika proses unggah atau unduh terganggu, Anda dapat mencoba melanjutkan proses dengan menjalankan cmdlet lagi dengan bendera -Resume.

Mengelola katalog U-SQL

Katalog U-SQL digunakan untuk menyusun data dan kode sehingga dapat dibagikan oleh skrip U-SQL. Katalog memaksimalkan penggunaan performa dengan data di Azure Data Lake. Untuk informasi selengkapnya, lihat Menggunakan katalog U-SQL.

Mencantumkan item dalam katalog 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"

Daftarkan semua assembly dalam katalog 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
    }
}

Mendapatkan detail tentang item katalog

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

Menyimpan kredensial dalam katalog

Dalam database U-SQL, buat objek kredensial untuk database yang dihosting di Azure. Saat ini, kredensial U-SQL adalah satu-satunya jenis item katalog yang dapat Anda buat melalui 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

Mengelola aturan firewall

Membuat daftar aturan firewall

Get-AdlAnalyticsFirewallRule -Account $adla

Menambahkan aturan 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

Mengubah aturan firewall

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

Menghapus aturan firewall

Remove-AdlAnalyticsFirewallRule -Account $adla -Name $ruleName

Perbolehkan alamat IP Azure

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

Bekerja dengan Azure

Dapatkan detail kesalahan

Resolve-AzError -Last

Verifikasi apakah Anda menjalankan sebagai Administrator di komputer Windows Anda

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

Menemukan TenantID

Berdasarkan nama langganan:

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

Get-TenantIdFromSubscriptionName "ADLTrainingMS"

Berdasarkan ID langganan:

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

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

Dari alamat domain seperti "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

Mencantumkan semua langganan dan ID penyewa Anda

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

Langkah berikutnya