Administración de Análisis de Azure Data Lake mediante Azure PowerShellManage Azure Data Lake Analytics using Azure PowerShell
En este artículo se describe cómo administrar cuentas, orígenes de datos, usuarios y trabajos de Azure Data Lake Analytics mediante Azure PowerShell.This article describes how to manage Azure Data Lake Analytics accounts, data sources, users, and jobs by using Azure PowerShell.
PrerequisitesPrerequisites
Nota
Este artículo se ha actualizado para usar el nuevo módulo Az de Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Aún puede usar el módulo de AzureRM que continuará recibiendo correcciones de errores hasta diciembre de 2020 como mínimo.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Para más información acerca del nuevo módulo Az y la compatibilidad con AzureRM, consulte Introducing the new Azure PowerShell Az module (Presentación del nuevo módulo Az de Azure PowerShell).To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Para obtener instrucciones sobre la instalación del módulo Az, consulte Instalación de Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.
Para usar PowerShell con Data Lake Analytics, recopile la siguiente información:To use PowerShell with Data Lake Analytics, collect the following pieces of information:
- Identificador de suscripción : el identificador de la suscripción de Azure que contiene su cuenta de Data Lake Analytics.Subscription ID : The ID of the Azure subscription that contains your Data Lake Analytics account.
- Grupo de recursos : el nombre del grupo de recursos de Azure que contiene la cuenta de Data Lake Analytics.Resource group : The name of the Azure resource group that contains your Data Lake Analytics account.
- Nombre de la cuenta de Data Lake Analytics : el nombre de la cuenta de Data Lake Analytics.Data Lake Analytics account name : The name of your Data Lake Analytics account.
- Nombre de la cuenta predeterminada de Data Lake Store : cada cuenta de Data Lake Analytics tiene una cuenta de Data Lake Store predeterminada.Default Data Lake Store account name : Each Data Lake Analytics account has a default Data Lake Store account.
- Ubicación : la ubicación de la cuenta de Data Lake Analytics como "Este de EE. UU. 2" u otras ubicaciones admitidas.Location : The location of your Data Lake Analytics account, such as "East US 2" or other supported locations.
Los fragmentos de código de PowerShell de este tutorial usan estas variables para almacenar esta informaciónThe PowerShell snippets in this tutorial use these variables to store this information
$subId = "<SubscriptionId>"
$rg = "<ResourceGroupName>"
$adla = "<DataLakeAnalyticsAccountName>"
$adls = "<DataLakeStoreAccountName>"
$location = "<Location>"
Inicio de sesión en AzureLog in to Azure
Inicio de sesión mediante la autenticación interactiva del usuarioLog in using interactive user authentication
Inicie sesión con un identificador de suscripción o por nombre de la suscripciónLog in using a subscription ID or by subscription name
# Using subscription id
Connect-AzAccount -SubscriptionId $subId
# Using subscription name
Connect-AzAccount -SubscriptionName $subname
Guardar el contexto de autenticaciónSaving authentication context
El cmdlet Connect-AzAccount
siempre pide las credenciales.The Connect-AzAccount
cmdlet always prompts for credentials. Puede evitar que se le pidan mediante los cmdlets siguientes: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
Inicio de sesión con una identidad de entidad de servicio (SPI)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
Administrar cuentasManage accounts
Enumeración de cuentasList 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
Crear una cuentaCreate an account
Cada cuenta de Data Lake Analytics requiere una cuenta predeterminada de Data Lake Store que se usa para almacenar registros.Every Data Lake Analytics account requires a default Data Lake Store account that it uses for storing logs. Puede reutilizar una cuenta existente o crear una nueva.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
Obtención de información de la cuentaGet account information
Obtener detalles acerca de una cuenta.Get details about an account.
Get-AdlAnalyticsAccount -Name $adla
Comprobando de la existencia de una cuentaCheck if an account exists
Test-AdlAnalyticsAccount -Name $adla
Administración de orígenes de datosManage data sources
Actualmente, Azure Data Lake Analytics admite los siguientes orígenes de datos:Azure Data Lake Analytics currently supports the following data sources:
Cada cuenta de Data Lake Analytics tiene una cuenta de Data Lake Store predeterminada.Every Data Lake Analytics account has a default Data Lake Store account. La cuenta predeterminada de Almacén de Data Lake sirve para almacenar los registros de auditoría y de metadatos de trabajos.The default Data Lake Store account is used to store job metadata and job audit logs.
Búsqueda de la cuenta predeterminada de Almacén de Data LakeFind the default Data Lake Store account
$adla_acct = Get-AdlAnalyticsAccount -Name $adla
$dataLakeStoreName = $adla_acct.DefaultDataLakeAccount
Puede encontrar la cuenta predeterminada de Data Lake Store si filtra la lista de orígenes de datos por la propiedad 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 }
Agregar un origen de datosAdd 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
Enumerar orígenes de datosList 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"
Envío de trabajos de U-SQLSubmit U-SQL jobs
Envío de una cadena como un trabajo de 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"
Envío de un archivo como un trabajo de 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"
Enumeración de trabajosList jobs
El resultado incluye los trabajos actualmente en ejecución y aquellos que se han completado recientemente.The output includes the currently running jobs and those jobs that have recently completed.
Get-AdlJob -Account $adla
Enumere los principales trabajos de NList the top N jobs
De forma predeterminada, la lista de trabajos se ordena por hora de envío.By default the list of jobs is sorted on submit time. Así, los trabajos enviados más recientemente aparecen en primer lugar.So the most recently submitted jobs appear first. De forma predeterminada, la cuenta de ADLA recuerda los trabajos durante 180 días, pero el cmdlet Get-AdlJob devuelve solo los primeros 500.By default, The ADLA account remembers jobs for 180 days, but the Get-AdlJob cmdlet by default returns only the first 500. Use el parámetro -Top para mostrar un número específico de trabajos.Use -Top parameter to list a specific number of jobs.
$jobs = Get-AdlJob -Account $adla -Top 10
Enumeración de trabajos por estado de trabajoList jobs by job state
Mediante el parámetro -State
.Using the -State
parameter. Puede combinar cualquiera de estos 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
Enumeración de trabajos por resultado del trabajoList jobs by job result
Use el parámetro -Result
para detectar si los trabajos finalizados se han realizado correctamente.Use the -Result
parameter to detect whether ended jobs completed successfully. Tiene estos valores:It has these values:
- CanceladoCancelled
- Con errorFailed
- NoneNone
- CorrectoSucceeded
# List Successful jobs.
Get-AdlJob -Account $adla -State Ended -Result Succeeded
# List Failed jobs.
Get-AdlJob -Account $adla -State Ended -Result Failed
Enumeración de trabajos por remitente del trabajoList jobs by job submitter
El parámetro -Submitter
ayuda a identificar quién ha enviado un trabajo.The -Submitter
parameter helps you identify who submitted a job.
Get-AdlJob -Account $adla -Submitter "joe@contoso.com"
Enumeración de trabajos por hora de envíoList jobs by submission time
-SubmittedAfter
es útil al filtrar por un intervalo de tiempo.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
Obtención de estado del trabajoGet job status
Obtenga el estado de un trabajo específico.Get the status of a specific job.
Get-AdlJob -AccountName $adla -JobId $job.JobId
Cancelación de un trabajoCancel a job
Stop-AdlJob -Account $adla -JobID $jobID
Espera de fin de un trabajoWait for a job to finish
En lugar de repetir Get-AdlAnalyticsJob
hasta que finalice un trabajo, puede usar el cmdlet Wait-AdlJob
para esperar a que finalice el trabajo.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
Análisis del historial de trabajoAnalyzing job history
El uso de Azure PowerShell para analizar el historial de trabajos que se han ejecutado en Data Lake Analytics es una técnica eficaz.Using Azure PowerShell to analyze the history of jobs that have run in Data Lake analytics is a powerful technique. Puede usarla para obtener información sobre el uso y el costo.You can use it to gain insights into usage and cost. Puede obtener más información examinando el repositorio de ejemplo del análisis del historial de trabajoYou can learn more by looking at the Job History Analysis sample repo
Enumeración de canalizaciones y repeticiones de trabajosList job pipelines and recurrences
Use el cmdlet Get-AdlJobPipeline
para ver la información de canalización de trabajos enviados previamente.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>"
Use el cmdlet Get-AdlJobRecurrence
para ver la información de repetición de trabajos enviados previamente.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>"
Administración de nodos directivas de procesoManage compute policies
Lista de directivas de proceso existentesList existing compute policies
El cmdlet Get-AdlAnalyticsComputePolicy
recupera información sobre las directivas de proceso de una cuenta de Data Lake Analytics.The Get-AdlAnalyticsComputePolicy
cmdlet retrieves info about compute policies for a Data Lake Analytics account.
$policies = Get-AdlAnalyticsComputePolicy -Account $adla
Creación de una directiva de procesoCreate a compute policy
El cmdlet New-AdlAnalyticsComputePolicy
crea una nueva directiva de proceso para una cuenta de Data Lake Analytics.The New-AdlAnalyticsComputePolicy
cmdlet creates a new compute policy for a Data Lake Analytics account. En este ejemplo se establece el número máximo de unidades de asignación (AU) disponibles para el usuario especificado en 50 y la prioridad mínima del trabajo en 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
Administración de archivosManage files
Comprobación de la existencia de un archivoCheck for the existence of a file
Test-AdlStoreItem -Account $adls -Path "/data.csv"
Carga y descarga de archivosUploading and downloading
Cargar un archivo.Upload a file.
Import-AdlStoreItem -AccountName $adls -Path "c:\data.tsv" -Destination "/data_copy.csv"
Cargue una carpeta completa de forma recursiva.Upload an entire folder recursively.
Import-AdlStoreItem -AccountName $adls -Path "c:\myData\" -Destination "/myData/" -Recurse
Descargar un archivo.Download a file.
Export-AdlStoreItem -AccountName $adls -Path "/data.csv" -Destination "c:\data.csv"
Descargue una carpeta completa de forma recursiva.Download an entire folder recursively.
Export-AdlStoreItem -AccountName $adls -Path "/" -Destination "c:\myData\" -Recurse
Nota
Si se interrumpe el proceso de carga o descarga, puede intentar reanudar el proceso ejecutando el cmdlet de nuevo con la opción -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.
Administración del catálogo de U-SQLManage the U-SQL catalog
El catálogo de U-SQL se usa para estructurar datos y código, para que puedan compartirse mediante scripts de U-SQL.The U-SQL catalog is used to structure data and code so they can be shared by U-SQL scripts. El catálogo permite el mayor rendimiento posible con los datos en Azure Data Lake.The catalog enables the highest performance possible with data in Azure Data Lake. Para obtener más información, consulte Uso del catálogo de U-SQL.For more information, see Use U-SQL catalog.
Enumerar elementos en el catálogo de 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"
Enumeración de todos los conjuntos del catálogo de 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
}
}
Obtener detalles sobre un elemento 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"
Almacenamiento de credenciales en el catálogoStore credentials in the catalog
Dentro de una base de datos U-SQL, cree un objeto de credenciales para una base de datos hospedada en Azure.Within a U-SQL database, create a credential object for a database hosted in Azure. Actualmente, las credenciales U-SQL son el único tipo de elemento de catálogo que se puede crear a través de 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
Administración de las reglas del firewallManage firewall rules
Enumerar reglas de firewallList firewall rules
Get-AdlAnalyticsFirewallRule -Account $adla
Incorporación de una regla 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
Modificación de una regla de firewallModify a firewall rule
Set-AdlAnalyticsFirewallRule -Account $adla -Name $ruleName -StartIpAddress $startIpAddress -EndIpAddress $endIpAddress
Eliminación de una regla de firewallRemove a firewall rule
Remove-AdlAnalyticsFirewallRule -Account $adla -Name $ruleName
Permitir direcciones IP de AzureAllow Azure IP addresses
Set-AdlAnalyticsAccount -Name $adla -AllowAzureIpState Enabled
Set-AdlAnalyticsAccount -Name $adla -FirewallState Enabled
Set-AdlAnalyticsAccount -Name $adla -FirewallState Disabled
Trabajo con AzureWorking with Azure
Ver detalles del errorGet error details
Resolve-AzError -Last
Comprobación de si se ejecuta un administrador en el equipo 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)
}
Buscar un elemento TenantIDFind a TenantID
A partir de un nombre de suscripción:From a subscription name:
function Get-TenantIdFromSubscriptionName( [string] $subname )
{
$sub = (Get-AzSubscription -SubscriptionName $subname)
$sub.TenantId
}
Get-TenantIdFromSubscriptionName "ADLTrainingMS"
A partir de un identificador de suscripción: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
A partir de una dirección de dominio 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
Enumeración de todas las suscripciones e identificadores de inquilinoList 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
}
Creación de una cuenta de Data Lake Analytics mediante una plantillaCreate a Data Lake Analytics account using a template
También puede usar una plantilla de Grupo de recursos de Azure con el siguiente ejemplo: Creación de una cuenta de Data Lake Analytics mediante una plantillaYou can also use an Azure Resource Group template using the following sample: Create a Data Lake Analytics account using a template
Pasos siguientesNext steps
- Información general de Análisis de Microsoft Azure Data LakeOverview of Microsoft Azure Data Lake Analytics
- Introducción a Data Lake Analytics mediante Azure Portal | Azure PowerShell | CLI de AzureGet started with Data Lake Analytics using the Azure portal | Azure PowerShell | Azure CLI
- Administración de Azure Data Lake Analytics mediante Azure Portal | Azure PowerShell | CLIManage Azure Data Lake Analytics using Azure portal | Azure PowerShell | CLI