Gerenciar a Análise Azure Data Lake usando o Azure PowerShellManage Azure Data Lake Analytics using Azure PowerShell

Este artigo descreve como gerenciar contas, fontes de dados, usuários e trabalhos do Azure Data Lake Analytics usando o Azure PowerShell.This article describes how to manage Azure Data Lake Analytics accounts, data sources, users, and jobs by using Azure PowerShell.

Pré-requisitosPrerequisites

Observação

Este artigo foi atualizado para usar o novo módulo Az do Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Você ainda pode usar o módulo AzureRM, que continuará a receber as correções de bugs até pelo menos dezembro de 2020.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Para saber mais sobre o novo módulo Az e a compatibilidade com o AzureRM, confira Apresentação do novo módulo Az do Azure PowerShell.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Para obter instruções de instalação do módulo Az, confira Instalar o Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

Para usar o PowerShell com o Data Lake Analytics, colete as seguintes informações:To use PowerShell with Data Lake Analytics, collect the following pieces of information:

  • ID da assinatura: ID da assinatura do Azure que contém sua conta do Data Lake Analytics.Subscription ID: The ID of the Azure subscription that contains your Data Lake Analytics account.
  • Grupo de recursos: o nome do grupo de recursos do Azure que contém sua conta do Data Lake Analytics.Resource group: The name of the Azure resource group that contains your Data Lake Analytics account.
  • Nome da conta do Data Lake Analytics: O nome da conta do Data Lake Analytics.Data Lake Analytics account name: The name of your Data Lake Analytics account.
  • Nome da conta padrão do Data Lake Store: Cada conta do Data Lake Analytics requer uma conta padrão do Data Lake Store.Default Data Lake Store account name: Each Data Lake Analytics account has a default Data Lake Store account.
  • Localização: a localização sua conta do Data Lake Analytics, como "Leste dos EUA 2" ou outros locais com suporte.Location: The location of your Data Lake Analytics account, such as "East US 2" or other supported locations.

Os snippets do PowerShell neste tutorial usam essas variáveis para armazenar essas informaçõesThe PowerShell snippets in this tutorial use these variables to store this information

$subId = "<SubscriptionId>"
$rg = "<ResourceGroupName>"
$adla = "<DataLakeAnalyticsAccountName>"
$adls = "<DataLakeStoreAccountName>"
$location = "<Location>"

Fazer logon no AzureLog in to Azure

Entrar usando autenticação de usuário interativoLog in using interactive user authentication

Entrar usando uma ID de assinatura ou o nome da assinaturaLog in using a subscription ID or by subscription name

# Using subscription id
Connect-AzAccount -SubscriptionId $subId

# Using subscription name
Connect-AzAccount -SubscriptionName $subname 

Salvando o contexto de autenticaçãoSaving authentication context

O cmdlet Connect-AzAccount sempre solicita as credenciais.The Connect-AzAccount cmdlet always prompts for credentials. Você pode evitar o recebimento de avisos usando os cmdlets a seguir:You can avoid being prompted by using the following cmdlets:

# 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)Log in using a Service Principal Identity (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 ContasManage accounts

Listar contasList accounts

# 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 contaCreate an account

Toda conta do Data Lake Analytics requer uma conta padrão do Data Lake Store usada para o armazenamento de logs.Every Data Lake Analytics account requires a default Data Lake Store account that it uses for storing logs. Você pode reutilizar uma conta existente ou criar uma.You can reuse an existing account or create an account.

# 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 contaGet account information

Obtenha detalhes sobre uma conta.Get details about an account.

Get-AdlAnalyticsAccount -Name $adla

Verificar se a conta existeCheck if an account exists

Test-AdlAnalyticsAccount -Name $adla

Gerenciar as fontes de dadosManage data sources

No momento, o Azure Data Lake Analytics dá suporte às seguintes fontes de dados:Azure Data Lake Analytics currently supports the following data sources:

Toda conta do Data Lake Analytics requer uma conta padrão do Data Lake Store.Every Data Lake Analytics account has a default Data Lake Store account. A conta padrão do Repositório Data Lake é usada para armazenar metadados de trabalho e logs de auditoria de trabalho.The default Data Lake Store account is used to store job metadata and job audit logs.

Encontrar a conta padrão do Repositório Data LakeFind the default Data Lake Store account

$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:You can find the default Data Lake Store account by filtering the list of datasources by the IsDefault property:

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

Adicionar uma fonte de dadosAdd a data source


# 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 dadosList data sources

# 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-SQLSubmit U-SQL jobs

Enviar uma cadeia de caracteres como um script U-SQLSubmit a string as a U-SQL job

$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-SQLSubmit a file as a U-SQL job

$scriptpath = "d:\test.usql"
$script | Out-File $scriptpath 
Submit-AdlJob -AccountName $adla –ScriptPath $scriptpath -Name "Demo"

Listar trabalhosList jobs

A saída inclui os trabalhos em execução no momento e os trabalhos que foram concluídos recentemente.The output includes the currently running jobs and those jobs that have recently completed.

Get-AdlJob -Account $adla

Listar os melhores trabalhos NList the top N jobs

Por padrão, a lista de trabalhos é classificada na hora do envio.By default the list of jobs is sorted on submit time. Portanto, os trabalhos enviados mais recentemente aparecem primeiro.So the most recently submitted jobs appear first. 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.By default, The ADLA account remembers jobs for 180 days, but the Get-AdlJob cmdlet by default returns only the first 500. Use o parâmetro -Top para listar um número específico de trabalhos.Use -Top parameter to list a specific number of jobs.

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

Listar trabalhos pelo estado do trabalhoList jobs by job state

Utilizar o parâmetro -State.Using the -State parameter. É possível combinar qualquer um desses valores:You can combine any of these values:

  • 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 trabalhoList jobs by job result

Utilize o parâmetro -Result para detectar se os trabalhos finalizados foram concluídos com êxito.Use the -Result parameter to detect whether ended jobs completed successfully. O parâmetro possui esses valores:It has these values:

  • CanceladoCancelled
  • Com falhaFailed
  • NenhumNone
  • Bem-sucedidaSucceeded
# 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 trabalhoList jobs by job submitter

O parâmetro -Submitter ajuda a identificar quem enviou um trabalho.The -Submitter parameter helps you identify who submitted a job.

Get-AdlJob -Account $adla -Submitter "joe@contoso.com"

Listar trabalhos por hora de envioList jobs by submission time

O -SubmittedAfter é útil na filtragem para um intervalo de tempo.The -SubmittedAfter is useful in filtering to a time range.

# 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 trabalhoGet job status

Obter o status de um trabalho específico.Get the status of a specific job.

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

Cancelar um trabalhoCancel a job

Stop-AdlJob -Account $adla -JobID $jobID

Aguardar até que um trabalho seja concluídoWait for a job to finish

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.Instead of repeating Get-AdlAnalyticsJob until a job finishes, you can use the Wait-AdlJob cmdlet to wait for the job to end.

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

Analisar o histórico do trabalhoAnalyzing job history

Usar o Azure PowerShell para analisar o histórico de trabalhos que foram executados no Data Lake Analytics é uma técnica poderosa.Using Azure PowerShell to analyze the history of jobs that have run in Data Lake analytics is a powerful technique. Você pode usá-lo para obter informações sobre o uso e o custo.You can use it to gain insights into usage and cost. Você pode saber mais examinando o repositório de exemplo de análise do histórico do trabalhoYou can learn more by looking at the Job History Analysis sample repo

Listar pipelines e recorrências do trabalhoList job pipelines and recurrences

Utilize o cmdlet Get-AdlJobPipeline para consultar as informações de pipeline para trabalhos enviados anteriormente.Use the Get-AdlJobPipeline cmdlet to see the pipeline information previously submitted jobs.

$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.Use the Get-AdlJobRecurrence cmdlet to see the recurrence information for previously submitted jobs.

$recurrences = Get-AdlJobRecurrence -Account $adla

$recurrence = Get-AdlJobRecurrence -Account $adla -RecurrenceId "<recurrence ID>"

Gerenciar políticas de computaçãoManage compute policies

Listar as políticas de computação existentesList existing compute policies

O cmdlet Get-AdlAnalyticsComputePolicy recupera informações sobre políticas de computação para uma conta do Data Lake Analytics.The Get-AdlAnalyticsComputePolicy cmdlet retrieves info about compute policies for a Data Lake Analytics account.

$policies = Get-AdlAnalyticsComputePolicy -Account $adla

Criar uma política de computaçãoCreate a compute policy

O cmdlet New-AdlAnalyticsComputePolicy cria uma nova política de computação para uma conta do Data Lake Analytics.The New-AdlAnalyticsComputePolicy cmdlet creates a new compute policy for a Data Lake Analytics account. Esse exemplo define como 50 as AUs máximas disponíveis ao usuário especificado e a prioridade de trabalho mínima como 250.This example sets the maximum AUs available to the specified user to 50, and the minimum job priority to 250.

$userObjectId = (Get-AzAdUser -SearchString "garymcdaniel@contoso.com").Id

New-AdlAnalyticsComputePolicy -Account $adla -Name "GaryMcDaniel" -ObjectId $objectId -ObjectType User -MaxDegreeOfParallelismPerJob 50 -MinPriorityPerJob 250

Gerenciar arquivosManage files

Verificar a existência de um arquivo.Check for the existence of a file.

Test-AdlStoreItem -Account $adls -Path "/data.csv"

Carregando e baixando arquivosUploading and downloading

Carregar um arquivo.Upload a file.

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

Carregar uma pasta inteira de forma recursiva.Upload an entire folder recursively.

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

Baixar um arquivo.Download a file.

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

Baixar uma pasta inteira de forma recursiva.Download an entire folder recursively.

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.If the upload or download process is interrupted, you can attempt to resume the process by running the cmdlet again with the -Resume flag.

Gerenciar o catálogo do U-SQLManage the U-SQL catalog

O catálogo do U-SQL é usado para estruturar dados e código para que eles possam ser compartilhados por scripts U-SQL.The U-SQL catalog is used to structure data and code so they can be shared by U-SQL scripts. O catálogo possibilita o melhor desempenho possível com dados no Azure Data Lake.The catalog enables the highest performance possible with data in Azure Data Lake. Para saber mais, consulte Usar o Catálogo do U-SQL.For more information, see Use U-SQL catalog.

Itens de lista no catálogo do U-SQLList items in the U-SQL catalog

# 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-SQLList all the assemblies the U-SQL catalog

$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álogoGet details about a catalog item

# 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álogoStore credentials in the catalog

Em um banco de dados U-SQL, crie um objeto de credencial para um banco de dados hospedado no Azure.Within a U-SQL database, create a credential object for a database hosted in 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.Currently, U-SQL credentials are the only type of catalog item that you can create through 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 firewallManage firewall rules

Listar regras de firewallList firewall rules

Get-AdlAnalyticsFirewallRule -Account $adla

Adicione uma regra de firewallAdd a firewall rule

$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 firewallModify a firewall rule

Set-AdlAnalyticsFirewallRule -Account $adla -Name $ruleName -StartIpAddress $startIpAddress -EndIpAddress $endIpAddress

Remova uma regra de firewallRemove a firewall rule

Remove-AdlAnalyticsFirewallRule -Account $adla -Name $ruleName

Permitir endereços IP do AzureAllow Azure IP addresses

Set-AdlAnalyticsAccount -Name $adla -AllowAzureIpState Enabled
Set-AdlAnalyticsAccount -Name $adla -FirewallState Enabled
Set-AdlAnalyticsAccount -Name $adla -FirewallState Disabled

Trabalhando com o AzureWorking with Azure

Obter detalhes do erroGet error details

Resolve-AzError -Last

Verifique se você está executando como um administrador no seu computador com WindowsVerify if you are running as an Administrator on your Windows machine

function Test-Administrator  
{  
    $user = [Security.Principal.WindowsIdentity]::GetCurrent();
    $p = New-Object Security.Principal.WindowsPrincipal $user
    $p.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)  
}

Localizar um TenantIDFind a TenantID

De um nome de assinatura:From a subscription name:

function Get-TenantIdFromSubscriptionName( [string] $subname )
{
    $sub = (Get-AzSubscription -SubscriptionName $subname)
    $sub.TenantId
}

Get-TenantIdFromSubscriptionName "ADLTrainingMS"

De uma ID de assinatura:From a subscription ID:

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"From a domain address such as "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árioList all your subscriptions and tenant IDs

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

Criar uma conta do Data Lake Analytics usando um modeloCreate a Data Lake Analytics account using a template

Você também pode utilizar um modelo do grupo de recursos do Azure usando o seguinte exemplo: Criar uma conta do Data Lake Analytics usando um modeloYou can also use an Azure Resource Group template using the following sample: Create a Data Lake Analytics account using a template

Próximas etapasNext steps