إدارة Azure Data Lake Analytics باستخدام Azure PowerShell

هام

تم إيقاف Azure Data Lake Analytics في 29 فبراير 2024. تعرف على المزيد من خلال هذا الإعلان.

بالنسبة لتحليلات البيانات، يمكن لمؤسستك استخدام Azure Synapse Analytics أو Microsoft Fabric.

توضح هذه المقالة كيفية إدارة حسابات Azure Data Lake Analytics ومصادر البيانات والمستخدمين والمهام باستخدام Azure PowerShell.

المتطلبات الأساسية

ملاحظة

نوصي باستخدام وحدة Azure Az PowerShell للتفاعل مع Azure. راجع تثبيت Azure PowerShell للبدء. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.

لاستخدام PowerShell مع Data Lake Analytics، اجمع الأجزاء التالية من المعلومات:

  • معرف الاشتراك: معرف اشتراك Azure الذي يحتوي على حساب Data Lake Analytics الخاص بك.
  • مجموعة الموارد: اسم مجموعة موارد Azure التي تحتوي على حساب Data Lake Analytics الخاص بك.
  • اسم حساب Data Lake Analytics: اسم حساب Data Lake Analytics الخاص بك.
  • اسم حساب Data Lake Store الافتراضي: يحتوي كل حساب Data Lake Analytics على حساب Data Lake Store افتراضي.
  • الموقع: موقع حساب Data Lake Analytics، مثل "شرق الولايات المتحدة 2" أو مواقع أخرى مدعومة.

تستخدم قصاصات PowerShell في هذا البرنامج التعليمي هذه المتغيرات لتخزين هذه المعلومات

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

تسجيل الدخول إلى Azure

تسجيل الدخول باستخدام مصادقة المستخدم التفاعلية

تسجيل الدخول باستخدام معرف اشتراك أو حسب اسم الاشتراك

# Using subscription id
Connect-AzAccount -SubscriptionId $subId

# Using subscription name
Connect-AzAccount -SubscriptionName $subname

حفظ سياق المصادقة

Connect-AzAccount يطالب cmdlet دائما ببيانات الاعتماد. يمكنك تجنب المطالبة باستخدام أوامر cmdlets التالية:

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

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

تسجيل الدخول باستخدام الهوية الأساسية للخدمة (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

إدارة الحساب

سرد الحسابات

# 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

إنشاء حساب

يتطلب كل حساب Data Lake Analytics حساب Data Lake Store افتراضيا يستخدمه لتخزين السجلات. يمكنك إعادة استخدام حساب موجود أو إنشاء حساب.

# 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

الحصول على معلومات الحساب

احصل على تفاصيل حول حساب.

Get-AdlAnalyticsAccount -Name $adla

التحقق مما إذا كان الحساب موجودا

Test-AdlAnalyticsAccount -Name $adla

إدارة مصادر البيانات

يدعم Azure Data Lake Analytics حاليا مصادر البيانات التالية:

يحتوي كل حساب Data Lake Analytics على حساب Data Lake Store افتراضي. يتم استخدام حساب Data Lake Store الافتراضي لتخزين بيانات تعريف الوظيفة وسجلات تدقيق الوظيفة.

البحث عن حساب Data Lake Store الافتراضي

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

يمكنك العثور على حساب Data Lake Store الافتراضي عن طريق تصفية قائمة مصادر البيانات حسب الخاصية IsDefault :

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

إضافة مصدر بيانات


# 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

سرد مصادر البيانات

# 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

إرسال سلسلة كوظيفة 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"

إرسال ملف كوظيفة U-SQL

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

قائمة المهام

يتضمن الإخراج الوظائف قيد التشغيل حاليا وتلك الوظائف التي اكتملت مؤخرا.

Get-AdlJob -Account $adla

سرد أهم مهام N

بشكل افتراضي، يتم فرز قائمة المهام في وقت الإرسال. لذلك تظهر أحدث المهام المرسلة أولا. بشكل افتراضي، يتذكر حساب ADLA الوظائف لمدة 180 يوما، ولكن Get-AdlJob cmdlet بشكل افتراضي ترجع أول 500. استخدم المعلمة -Top لسرد عدد معين من الوظائف.

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

سرد المهام حسب حالة الوظيفة

استخدام المعلمة -State . يمكنك دمج أي من هذه القيم:

  • 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

سرد المهام حسب نتيجة المهمة

استخدم المعلمة -Result للكشف عما إذا كانت المهام المنتهية قد اكتملت بنجاح. يحتوي على هذه القيم:

  • تم الإلغاء
  • فشل
  • بلا
  • نجح
# List Successful jobs.
Get-AdlJob -Account $adla -State Ended -Result Succeeded

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

سرد المهام حسب مقدم الوظيفة

-Submitter تساعدك المعلمة على تحديد من قام بإرسال وظيفة.

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

سرد المهام حسب وقت الإرسال

مفيد -SubmittedAfter في التصفية إلى نطاق زمني.

# 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

قم بالحصول على حالة الوظيفة

احصل على حالة وظيفة معينة.

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

إلغاء وظيفة

Stop-AdlJob -Account $adla -JobID $jobID

انتظر حتى تنتهي المهمة

بدلا من التكرار Get-AdlAnalyticsJob حتى تنتهي المهمة، يمكنك استخدام Wait-AdlJob cmdlet لانتظار انتهاء المهمة.

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

سرد مسارات المهام والتكرارات

Get-AdlJobPipeline استخدم cmdlet لمشاهدة معلومات البنية الأساسية لبرنامج ربط العمليات التجارية التي تم إرسالها مسبقا.

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

Get-AdlJobRecurrence استخدم cmdlet لمشاهدة معلومات التكرار للوظائف المرسلة مسبقا.

$recurrences = Get-AdlJobRecurrence -Account $adla

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

إدارة نهج الحساب

سرد نهج الحوسبة الموجودة

يسترد Get-AdlAnalyticsComputePolicy cmdlet معلومات حول نهج الحوسبة لحساب Data Lake Analytics.

$policies = Get-AdlAnalyticsComputePolicy -Account $adla

إنشاء نهج حساب

New-AdlAnalyticsComputePolicy ينشئ cmdlet نهج حساب جديد لحساب Data Lake Analytics. يعين هذا المثال الحد الأقصى لوحدات AUs المتوفرة للمستخدم المحدد إلى 50، والحد الأدنى لأولوية الوظيفة إلى 250.

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

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

إدارة الملفات

التحقق من وجود ملف

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

التحميل والتنزيل

تحميل ملف.

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

تحميل مجلد بأكمله بشكل متكرر.

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

قم بتنزيل ملف.

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

قم بتنزيل مجلد بأكمله بشكل متكرر.

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

ملاحظة

إذا تمت مقاطعة عملية التحميل أو التنزيل، يمكنك محاولة استئناف العملية عن طريق تشغيل cmdlet مرة أخرى مع العلامة -Resume .

إدارة كتالوج U-SQL

يتم استخدام كتالوج U-SQL لهيكلة البيانات والرمز بحيث يمكن مشاركتها بواسطة البرامج النصية U-SQL. يتيح الكتالوج أعلى أداء ممكن مع البيانات في Azure Data Lake. لمزيد من المعلومات، راجع استخدام كتالوج U-SQL.

سرد العناصر في كتالوج 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"

سرد جميع التجميعات كتالوج 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
    }
}

الحصول على تفاصيل حول عنصر كتالوج

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

تخزين بيانات الاعتماد في الكتالوج

داخل قاعدة بيانات U-SQL، قم بإنشاء عنصر بيانات اعتماد لقاعدة بيانات مستضافة في Azure. حاليا، بيانات اعتماد U-SQL هي النوع الوحيد من عناصر الكتالوج التي يمكنك إنشاؤها من خلال 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

إدارة قواعد جدار الحماية

سرد قواعد جدار الحماية

Get-AdlAnalyticsFirewallRule -Account $adla

إضافة قاعدة جدار حماية

$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

تعديل قاعدة جدار الحماية

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

إزالة قاعدة جدار الحماية

Remove-AdlAnalyticsFirewallRule -Account $adla -Name $ruleName

السماح بعناوين Azure IP

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

العمل مع Azure

الحصول على تفاصيل الخطأ

Resolve-AzError -Last

تحقق مما إذا كنت تعمل كمسؤول على جهاز Windows الخاص بك

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

البحث عن TenantID

من اسم اشتراك:

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

Get-TenantIdFromSubscriptionName "ADLTrainingMS"

من معرف الاشتراك:

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

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

من عنوان مجال مثل "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

سرد جميع الاشتراكات ومعرفات المستأجر

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

الخطوات التالية