Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
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
всегда запрашивает учетные данные. Чтобы избежать появления запроса, используйте следующие командлеты:
# 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 по умолчанию возвращает только первые 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. В этом примере максимальное число единиц AUS, доступных указанному пользователю, имеет значение 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 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
Разрешить 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)
}
Поиск идентификатора арендатора
От имени подписки:
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 portal | Azure PowerShell | CLI