Управление аналитикой озера данных Azure с помощью 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. Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.
Чтобы использовать PowerShell с Data Lake Analytics, получите следующие сведения:
- Идентификатор подписки — идентификатор подписки Azure, в которую входит ваша учетная запись Data Lake Analytics.
- Группа ресурсов — имя группы ресурсов Azure, содержащей учетную запись 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
всегда запрашиваются учетные данные. Избежать появления запроса можно с помощью следующих командлетов:
# 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 по умолчанию. Учетная запись хранения озера данных по умолчанию используется для хранения метаданных задания и журналов аудита задания.
Поиск учетной записи хранения озера данных по умолчанию
$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 дней, но командлет Ge-AdlJob по умолчанию возвращает только первые 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 "[email protected]"
Получение списка заданий по времени отправки
Параметр -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
, чтобы дождаться завершения задания.
Wait-AdlJob -Account $adla -JobId $job.JobId
Получение списка конвейеров и повторений заданий
Используйте командлет Get-AdlJobPipeline
, чтобы получить сведения о конвейерах для ранее отправленных заданий.
$pipelines = Get-AdlJobPipeline -Account $adla
$pipeline = Get-AdlJobPipeline -Account $adla -PipelineId "<pipeline ID>"
Используйте командлет Get-AdlJobRecurrence
, чтобы получить сведения о повторениях для ранее отправленных заданий.
$recurrences = Get-AdlJobRecurrence -Account $adla
$recurrence = Get-AdlJobRecurrence -Account $adla -RecurrenceId "<recurrence ID>"
Управление политиками вычислений
Список существующих политик вычислений
Командлет Get-AdlAnalyticsComputePolicy
извлекает информацию о политиках вычислений для учетной записи Data Lake Analytics.
$policies = Get-AdlAnalyticsComputePolicy -Account $adla
Создание политики вычислений
Командлет New-AdlAnalyticsComputePolicy
создает новую политику вычислений для учетной записи Data Lake Analytics. В этом примере для указанного пользователя устанавливается максимальное число единиц использования аналитики (50) и минимальный приоритет задания (250).
$userObjectId = (Get-AzAdUser -SearchString "[email protected]").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
Примечание
Если процесс отправки или скачивания прервался, вы можете попытаться возобновить его, выполнив командлет еще раз с флагом -Resume
.
Управление каталогом U-SQL
Каталог U-SQL используется для структурирования данных и кода, чтобы их могли совместно использовать сценарии U-SQL. Каталог обеспечивает максимальную производительность, возможную с данными в озере данных Azure. Дополнительные сведения см. в разделе Использование каталога 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
Разрешение IP-адресов Azure
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
}
Дальнейшие действия
- Обзор аналитики озера данных Microsoft Azure
- Начало работы с Data Lake Analytics с помощью портала Azure | Azure PowerShell | Azure CLI
- Управление Azure Data Lake Analytics с помощью портала Azure | Azure PowerShell | CLI