Compartilhar via


Gerenciar o Azure Data Lake Analytics usando o Azure PowerShell

Importante

O Azure Data Lake Analytics se aposentou em 29 de fevereiro de 2024. Saiba mais com este comunicado.

Para análise de dados, sua organização pode usar do Azure Synapse Analytics ou do 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 do 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: a 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 da 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: o local 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

Fazer logon usando a autenticação interativa do usuário

Faça logon usando uma ID de assinatura ou pelo 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 credenciais. Você pode evitar ser solicitado usando os seguintes cmdlets:

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

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

Faça login usando uma Identidade Principal do 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

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

Cada conta do Data Lake Analytics requer uma conta padrão do Data Lake Store que ela usa para armazenar logs. Você 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

Gerenciar fontes de dados

Atualmente, o Azure Data Lake Analytics dá suporte às seguintes fontes de dados:

Cada conta do Data Lake Analytics tem uma conta padrão do Data Lake Store. A conta padrão do Data Lake Store é usada para armazenar metadados de trabalho e logs de auditoria de trabalho.

Localizar a conta padrão do Data Lake Store

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

Você pode encontrar a conta padrão do Data Lake Store filtrando a lista de fontes de dados pela propriedade IsDefault:

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

Adicionar 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 tarefas U-SQL

Enviar uma cadeia de caracteres como um trabalho 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 trabalho 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 as principais N vagas

Por padrão, a lista de trabalhos é classificada no tempo de envio. Portanto, os trabalhos enviados mais recentemente aparecem primeiro. Por padrão, a conta do ADLA se lembra de trabalhos por 180 dias, mas o cmdlet Get-AdlJob retorna apenas os primeiros 500. Use -Top parâmetro para listar um número específico de trabalhos.

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

Listar trabalhos por estado do trabalho

Usando o parâmetro -State. Você pode 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

Use o parâmetro -Result para detectar se os trabalhos encerrados foram concluídos com êxito. Ele tem estes valores:

  • Cancelado
  • Com falha
  • Nenhum
  • Conseguiu
# 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 enviador de 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

Obtenha o status de um trabalho específico.

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

Cancelar um trabalho

Stop-AdlJob -Account $adla -JobID $jobID

Aguarde 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 término do trabalho.

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

Listar fluxos de trabalho e recorrências

Use o cmdlet Get-AdlJobPipeline para ver as informações de pipeline de trabalhos enviados anteriormente.

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

Use o cmdlet Get-AdlJobRecurrence para ver 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 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. Este exemplo define o máximo de AUs disponíveis para o usuário especificado como 50 e a prioridade mínima do trabalho 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

Carregue um arquivo.

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

Carregue uma pasta inteira recursivamente.

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

Baixe um arquivo.

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

Baixe uma pasta inteira recursivamente.

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

Observação

Se o processo de upload ou download for interrompido, você poderá tentar retomar o processo executando o cmdlet novamente com o sinalizador -Resume.

Gerenciar o catálogo U-SQL

O catálogo U-SQL é usado para estruturar dados e código para que possam ser compartilhados por scripts U-SQL. O catálogo permite o melhor desempenho possível com dados no Azure Data Lake. Para obter mais informações, consulte Use o 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 todos os assemblies 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

Em um banco de dados U-SQL, crie um objeto de credencial para um banco de dados hospedado no Azure. Atualmente, as credenciais 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

Gerenciar regras de 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

Trabalhando com o Azure

Obter detalhes do erro

Resolve-AzError -Last

Verifique se você está executando como Administrador em 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 ID do Inquilino

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 suas assinaturas e IDs de inquilino

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

Próximas etapas