Gerenciar a Análise Azure Data Lake usando o Azure PowerShell
Importante
O Azure Data Lake Analytics desativado em 29 de fevereiro de 2024. Saiba mais nesse comunicado.
Para análise de dados, sua organização pode usar o Azure Synapse Analytics ou o Microsoft Fabric.
Este artigo descreve como gerenciar contas, fontes de dados, usuários e trabalhos do Azure Data Lake Analytics usando o Azure PowerShell.
Pré-requisitos
Observação
Recomendamos que você use o módulo Az PowerShell do Azure para interagir com o Azure. Confira Instalar o Azure PowerShell para começar. Para saber como migrar para o módulo Az PowerShell, confira Migrar o Azure PowerShell do AzureRM para o Az.
Para usar o PowerShell com o Data Lake Analytics, colete as seguintes informações:
- ID da assinatura: ID da assinatura do Azure que contém sua conta do Data Lake Analytics.
- Grupo de recursos: o nome do grupo de recursos do Azure que contém sua conta do Data Lake Analytics.
- Nome de conta do Data Lake Analytics: o nome da sua conta do Data Lake Analytics.
- Nome da conta padrão do Data Lake Store: cada conta do Data Lake Analytics tem uma conta padrão do Data Lake Store.
- Local: a localização da sua conta do Data Lake Analytics, como "Leste dos EUA 2" ou outros locais com suporte.
Os snippets do PowerShell neste tutorial usam essas variáveis para armazenar essas informações
$subId = "<SubscriptionId>"
$rg = "<ResourceGroupName>"
$adla = "<DataLakeAnalyticsAccountName>"
$adls = "<DataLakeStoreAccountName>"
$location = "<Location>"
Fazer logon no Azure
Entrar usando autenticação de usuário interativo
Entrar usando uma ID de assinatura ou o nome da assinatura
# Using subscription id
Connect-AzAccount -SubscriptionId $subId
# Using subscription name
Connect-AzAccount -SubscriptionName $subname
Salvando o contexto de autenticação
O cmdlet Connect-AzAccount
sempre solicita as credenciais. Você pode evitar o recebimento de avisos usando os cmdlets a seguir:
# Save login session information
Save-AzAccounts -Path D:\profile.json
# Load login session information
Select-AzAccounts -Path D:\profile.json
Fazer logon usando uma SPI (Identidade de Entidade de Serviço)
$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
Gerenciar Contas
Listar contas
# 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
Criar uma conta
Toda conta do Data Lake Analytics requer uma conta padrão do Data Lake Store usada para o armazenamento de logs. Você pode reutilizar uma conta existente ou criar uma.
# 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
Obter Informações da conta
Obtenha detalhes sobre uma conta.
Get-AdlAnalyticsAccount -Name $adla
Verificar se a conta existe
Test-AdlAnalyticsAccount -Name $adla
Gerenciar fontes de dados
No momento, o Azure Data Lake Analytics dá suporte às seguintes fontes de dados:
Toda conta do Data Lake Analytics requer uma conta padrão do Data Lake Store. A conta padrão do Repositório Data Lake é usada para armazenar metadados de trabalho e logs de auditoria de trabalho.
Encontrar a conta padrão do Repositório Data Lake
$adla_acct = Get-AdlAnalyticsAccount -Name $adla
$dataLakeStoreName = $adla_acct.DefaultDataLakeAccount
É possível localizar a conta Data Lake Store padrão filtrando a lista de fontes de dados pela propriedade IsDefault
:
Get-AdlAnalyticsDataSource -Account $adla | ? { $_.IsDefault }
Adicionar uma fonte de dados
# 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
Listar fontes de dados
# 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"
Enviar trabalhos de U-SQL
Enviar uma cadeia de caracteres como um script 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"
Enviar um arquivo como um script U-SQL
$scriptpath = "d:\test.usql"
$script | Out-File $scriptpath
Submit-AdlJob -AccountName $adla –ScriptPath $scriptpath -Name "Demo"
Listar trabalhos
A saída inclui os trabalhos em execução no momento e os trabalhos que foram concluídos recentemente.
Get-AdlJob -Account $adla
Listar os melhores trabalhos N
Por padrão, a lista de trabalhos é classificada na hora do envio. Portanto, os trabalhos enviados mais recentemente aparecem primeiro. Por padrão, a conta do ADLA recorda trabalhos por 180 dias, mas o cmdlet Get-AdlJob por padrão retorna apenas os 500 primeiros. Use o parâmetro -Top para listar um número específico de trabalhos.
$jobs = Get-AdlJob -Account $adla -Top 10
Listar trabalhos pelo estado do trabalho
Utilizar o parâmetro -State
. É possível combinar qualquer um desses valores:
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
Listar trabalhos por resultado do trabalho
Utilize o parâmetro -Result
para detectar se os trabalhos finalizados foram concluídos com êxito. O parâmetro possui esses valores:
- Canceled
- Com falha
- Nenhum
- Com sucesso
# List Successful jobs.
Get-AdlJob -Account $adla -State Ended -Result Succeeded
# List Failed jobs.
Get-AdlJob -Account $adla -State Ended -Result Failed
Listar trabalhos por emissor do trabalho
O parâmetro -Submitter
ajuda a identificar quem enviou um trabalho.
Get-AdlJob -Account $adla -Submitter "joe@contoso.com"
Listar trabalhos por hora de envio
O -SubmittedAfter
é útil na filtragem para um intervalo de tempo.
# 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
Obter status do trabalho
Obter o status de um trabalho específico.
Get-AdlJob -AccountName $adla -JobId $job.JobId
Cancelar um trabalho
Stop-AdlJob -Account $adla -JobID $jobID
Aguardar até que um trabalho seja concluído
Em vez de repetir Get-AdlAnalyticsJob
até que um trabalho seja concluído, você pode usar o cmdlet Wait-AdlJob
para aguardar o trabalho ser encerrado.
Wait-AdlJob -Account $adla -JobId $job.JobId
Listar pipelines e recorrências do trabalho
Utilize o cmdlet Get-AdlJobPipeline
para consultar as informações de pipeline para trabalhos enviados anteriormente.
$pipelines = Get-AdlJobPipeline -Account $adla
$pipeline = Get-AdlJobPipeline -Account $adla -PipelineId "<pipeline ID>"
Utilize o cmdlet Get-AdlJobRecurrence
para consultar as informações de recorrência para trabalhos enviados anteriormente.
$recurrences = Get-AdlJobRecurrence -Account $adla
$recurrence = Get-AdlJobRecurrence -Account $adla -RecurrenceId "<recurrence ID>"
Gerenciar políticas de computação
Listar as políticas de computação existentes
O cmdlet Get-AdlAnalyticsComputePolicy
recupera informações sobre políticas de computação para uma conta do Data Lake Analytics.
$policies = Get-AdlAnalyticsComputePolicy -Account $adla
Criar uma política de computação
O cmdlet New-AdlAnalyticsComputePolicy
cria uma nova política de computação para uma conta do Data Lake Analytics. Esse exemplo define como 50 as AUs máximas disponíveis ao usuário especificado e a prioridade de trabalho mínima como 250.
$userObjectId = (Get-AzAdUser -SearchString "garymcdaniel@contoso.com").Id
New-AdlAnalyticsComputePolicy -Account $adla -Name "GaryMcDaniel" -ObjectId $objectId -ObjectType User -MaxDegreeOfParallelismPerJob 50 -MinPriorityPerJob 250
Gerenciar arquivos
Verificar a existência de um arquivo
Test-AdlStoreItem -Account $adls -Path "/data.csv"
Carregando e baixando arquivos
Carregar um arquivo.
Import-AdlStoreItem -AccountName $adls -Path "c:\data.tsv" -Destination "/data_copy.csv"
Carregar uma pasta inteira de forma recursiva.
Import-AdlStoreItem -AccountName $adls -Path "c:\myData\" -Destination "/myData/" -Recurse
Baixar um arquivo.
Export-AdlStoreItem -AccountName $adls -Path "/data.csv" -Destination "c:\data.csv"
Baixar uma pasta inteira de forma recursiva.
Export-AdlStoreItem -AccountName $adls -Path "/" -Destination "c:\myData\" -Recurse
Observação
Se o processo de upload ou de download for interrompido, você poderá tentar retomá-lo executando o cmdlet novamente com o sinalizador -Resume
.
Gerenciar o catálogo do U-SQL
O catálogo do U-SQL é usado para estruturar dados e código para que eles possam ser compartilhados por scripts U-SQL. O catálogo possibilita o melhor desempenho possível com dados no Azure Data Lake. Para saber mais, consulte Usar o Catálogo do U-SQL.
Itens de lista no catálogo do 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"
Lista todos os assemblies no catálogo do 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
}
}
Obter detalhes sobre um item de catálogo
# 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"
Armazenar credenciais no catálogo
Em um banco de dados U-SQL, crie um objeto de credencial para um banco de dados hospedado no Azure. Atualmente, as credenciais do U-SQL são o único tipo de item de catálogo que você pode criar por meio do 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
Verificar regras de firewall
Listar regras de firewall
Get-AdlAnalyticsFirewallRule -Account $adla
Adicione uma regra de 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
Modificar uma regra de firewall
Set-AdlAnalyticsFirewallRule -Account $adla -Name $ruleName -StartIpAddress $startIpAddress -EndIpAddress $endIpAddress
Remova uma regra de firewall
Remove-AdlAnalyticsFirewallRule -Account $adla -Name $ruleName
Permitir endereços IP do Azure
Set-AdlAnalyticsAccount -Name $adla -AllowAzureIpState Enabled
Set-AdlAnalyticsAccount -Name $adla -FirewallState Enabled
Set-AdlAnalyticsAccount -Name $adla -FirewallState Disabled
Trabalhando com o Azure
Obter detalhes do erro
Resolve-AzError -Last
Verifique se você está executando como um administrador no seu computador com Windows
function Test-Administrator
{
$user = [Security.Principal.WindowsIdentity]::GetCurrent();
$p = New-Object Security.Principal.WindowsPrincipal $user
$p.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)
}
Localizar um TenantID
De um nome de assinatura:
function Get-TenantIdFromSubscriptionName( [string] $subname )
{
$sub = (Get-AzSubscription -SubscriptionName $subname)
$sub.TenantId
}
Get-TenantIdFromSubscriptionName "ADLTrainingMS"
De uma ID de assinatura:
function Get-TenantIdFromSubscriptionId( [string] $subid )
{
$sub = (Get-AzSubscription -SubscriptionId $subid)
$sub.TenantId
}
$subid = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
Get-TenantIdFromSubscriptionId $subid
De um endereço de domínio, como "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
Listar todas as IDs de assinaturas e de locatário
$subs = Get-AzSubscription
foreach ($sub in $subs)
{
Write-Host $sub.Name "(" $sub.Id ")"
Write-Host "`tTenant Id" $sub.TenantId
}
Próximas etapas
- Visão geral da Análise Microsoft Azure Data Lake
- Introdução ao Data Lake Analytics usando o Portal do Azure | o Azure PowerShell | a CLI do Azure
- Gerenciar o Azure Data Lake Analytics usando o Portal do Azure | Azure PowerShell | CLI