Gerir a Análise do Azure Data Lake com o Azure PowerShell
Importante
O Azure Data Lake Analytics descontinuado a 29 de fevereiro de 2024. Saiba mais com este anúncio.
Para análise de dados, a sua organização pode utilizar o Azure Synapse Analytics ou o Microsoft Fabric.
Este artigo descreve como gerir contas, origens de dados, utilizadores e tarefas do Azure Data Lake Analytics com Azure PowerShell.
Pré-requisitos
Nota
Recomendamos que utilize o módulo do Azure Az PowerShell para interagir com o Azure. Veja Instalar o Azure PowerShell para começar. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.
Para utilizar o PowerShell com Data Lake Analytics, recolha as seguintes informações:
- ID da Subscrição: o ID da subscrição do Azure que contém a sua conta Data Lake Analytics.
- Grupo de recursos: o nome do grupo de recursos do Azure que contém a sua conta Data Lake Analytics.
- Data Lake Analytics nome da conta: o nome da sua conta de Data Lake Analytics.
- Nome predefinido da conta do Data Lake Store: cada conta Data Lake Analytics tem uma conta predefinida do Data Lake Store.
- Localização: a localização da sua conta Data Lake Analytics, como "E.U.A. Leste 2" ou outras localizações suportadas.
Os fragmentos de PowerShell neste tutorial utilizam estas variáveis para armazenar estas informações
$subId = "<SubscriptionId>"
$rg = "<ResourceGroupName>"
$adla = "<DataLakeAnalyticsAccountName>"
$adls = "<DataLakeStoreAccountName>"
$location = "<Location>"
Iniciar sessão no Azure
Iniciar sessão com a autenticação interativa do utilizador
Iniciar sessão com um ID de subscrição ou pelo nome da subscrição
# Using subscription id
Connect-AzAccount -SubscriptionId $subId
# Using subscription name
Connect-AzAccount -SubscriptionName $subname
A guardar o contexto de autenticação
O Connect-AzAccount
cmdlet pede sempre credenciais. Pode evitar ser solicitado através dos seguintes cmdlets:
# Save login session information
Save-AzAccounts -Path D:\profile.json
# Load login session information
Select-AzAccounts -Path D:\profile.json
Iniciar sessão com uma Identidade do Principal de Serviço (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
Gerir contas
Contas de lista
# 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
Cada conta de Data Lake Analytics requer uma conta de Data Lake Store predefinida que utiliza para armazenar registos. Pode reutilizar uma conta existente ou criar uma conta.
# 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 existe uma conta
Test-AdlAnalyticsAccount -Name $adla
Gerir origens de dados
Atualmente, o Azure Data Lake Analytics suporta as seguintes origens de dados:
Cada conta Data Lake Analytics tem uma conta predefinida do Data Lake Store. A conta predefinida do Data Lake Store é utilizada para armazenar metadados de tarefas e registos de auditoria de tarefas.
Localizar a conta predefinida do Data Lake Store
$adla_acct = Get-AdlAnalyticsAccount -Name $adla
$dataLakeStoreName = $adla_acct.DefaultDataLakeAccount
Pode encontrar a conta predefinida do Data Lake Store ao filtrar a lista de origens de dados pela IsDefault
propriedade :
Get-AdlAnalyticsDataSource -Account $adla | ? { $_.IsDefault }
Adicionar uma origem 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 origens 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"
Submeter tarefas U-SQL
Submeter uma cadeia como uma tarefa 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"
Submeter um ficheiro como uma tarefa U-SQL
$scriptpath = "d:\test.usql"
$script | Out-File $scriptpath
Submit-AdlJob -AccountName $adla –ScriptPath $scriptpath -Name "Demo"
Listar tarefas
A saída inclui as tarefas atualmente em execução e as tarefas que foram concluídas recentemente.
Get-AdlJob -Account $adla
Listar as principais tarefas N
Por predefinição, a lista de tarefas está ordenada no tempo de submissão. Assim, as tarefas submetidas mais recentemente aparecem primeiro. Por predefinição, a conta do ADLA memoriza as tarefas durante 180 dias, mas o cmdlet Get-AdlJob por predefinição devolve apenas os primeiros 500. Utilize o parâmetro -Top para listar um número específico de tarefas.
$jobs = Get-AdlJob -Account $adla -Top 10
Listar tarefas por estado da tarefa
Utilizar o -State
parâmetro . Pode combinar qualquer um destes 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 tarefas por resultado da tarefa
Utilize o -Result
parâmetro para detetar se as tarefas terminadas foram concluídas com êxito. Tem estes valores:
- Cancelado
- Com falhas
- Nenhuma
- Com êxito
# List Successful jobs.
Get-AdlJob -Account $adla -State Ended -Result Succeeded
# List Failed jobs.
Get-AdlJob -Account $adla -State Ended -Result Failed
Listar tarefas por submissão de tarefas
O -Submitter
parâmetro ajuda-o a identificar quem submeteu uma tarefa.
Get-AdlJob -Account $adla -Submitter "joe@contoso.com"
Listar tarefas por hora de submissão
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 o estado da tarefa
Obtenha o estado de uma tarefa específica.
Get-AdlJob -AccountName $adla -JobId $job.JobId
Cancelar uma tarefa
Stop-AdlJob -Account $adla -JobID $jobID
Aguarde pela conclusão de um trabalho
Em vez de repetir Get-AdlAnalyticsJob
até que uma tarefa termine, pode utilizar o Wait-AdlJob
cmdlet para aguardar que a tarefa termine.
Wait-AdlJob -Account $adla -JobId $job.JobId
Listar pipelines e periodicidades de tarefas
Utilize o Get-AdlJobPipeline
cmdlet para ver as informações do pipeline que foram submetidas anteriormente.
$pipelines = Get-AdlJobPipeline -Account $adla
$pipeline = Get-AdlJobPipeline -Account $adla -PipelineId "<pipeline ID>"
Utilize o Get-AdlJobRecurrence
cmdlet para ver as informações de periodicidade das tarefas submetidas anteriormente.
$recurrences = Get-AdlJobRecurrence -Account $adla
$recurrence = Get-AdlJobRecurrence -Account $adla -RecurrenceId "<recurrence ID>"
Gerir políticas de computação
Listar políticas de computação existentes
O Get-AdlAnalyticsComputePolicy
cmdlet obtém informações sobre as políticas de computação de uma conta Data Lake Analytics.
$policies = Get-AdlAnalyticsComputePolicy -Account $adla
Criar uma política de computação
O New-AdlAnalyticsComputePolicy
cmdlet cria uma nova política de computação para uma conta Data Lake Analytics. Este exemplo define o máximo de AUs disponíveis para o utilizador especificado para 50 e a prioridade mínima da tarefa para 250.
$userObjectId = (Get-AzAdUser -SearchString "garymcdaniel@contoso.com").Id
New-AdlAnalyticsComputePolicy -Account $adla -Name "GaryMcDaniel" -ObjectId $objectId -ObjectType User -MaxDegreeOfParallelismPerJob 50 -MinPriorityPerJob 250
Gerir ficheiros
Verificar a existência de um ficheiro
Test-AdlStoreItem -Account $adls -Path "/data.csv"
Carregar e transferir
Carregar um ficheiro.
Import-AdlStoreItem -AccountName $adls -Path "c:\data.tsv" -Destination "/data_copy.csv"
Carregar uma pasta inteira recursivamente.
Import-AdlStoreItem -AccountName $adls -Path "c:\myData\" -Destination "/myData/" -Recurse
Transfira um ficheiro.
Export-AdlStoreItem -AccountName $adls -Path "/data.csv" -Destination "c:\data.csv"
Transfira uma pasta inteira de forma recursiva.
Export-AdlStoreItem -AccountName $adls -Path "/" -Destination "c:\myData\" -Recurse
Nota
Se o processo de carregamento ou transferência for interrompido, pode tentar retomar o processo ao executar o cmdlet novamente com o -Resume
sinalizador .
Gerir o catálogo U-SQL
O catálogo U-SQL é utilizado para estruturar dados e código para que possam ser partilhados por scripts U-SQL. O catálogo permite o maior desempenho possível com dados no Azure Data Lake. Para obter mais informações, veja Utilizar catálogo U-SQL.
Listar itens no catálogo 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"
Listar todas as assemblagens do catálogo 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
Numa base de dados U-SQL, crie um objeto de credencial para uma base de dados alojada no Azure. Atualmente, as credenciais U-SQL são o único tipo de item de catálogo que pode criar através 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
Gerir regras da firewall
Listar regras de firewall
Get-AdlAnalyticsFirewallRule -Account $adla
Adicionar 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
Remover 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
Trabalhar com o Azure
Obter detalhes do erro
Resolve-AzError -Last
Verifique se está a ser executado como Administrador no seu computador 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
A partir de um nome de subscrição:
function Get-TenantIdFromSubscriptionName( [string] $subname )
{
$sub = (Get-AzSubscription -SubscriptionName $subname)
$sub.TenantId
}
Get-TenantIdFromSubscriptionName "ADLTrainingMS"
A partir de um ID de subscrição:
function Get-TenantIdFromSubscriptionId( [string] $subid )
{
$sub = (Get-AzSubscription -SubscriptionId $subid)
$sub.TenantId
}
$subid = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
Get-TenantIdFromSubscriptionId $subid
A partir 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 suas subscrições e IDs de inquilino
$subs = Get-AzSubscription
foreach ($sub in $subs)
{
Write-Host $sub.Name "(" $sub.Id ")"
Write-Host "`tTenant Id" $sub.TenantId
}
Passos seguintes
- Descrição geral do Microsoft Azure Data Lake Analytics
- Introdução ao Data Lake Analytics com a CLI do portal do Azure | Azure PowerShell | Azure
- Gerir Data Lake Analytics do Azure com portal do Azure | Azure PowerShell | CLI