Administración de Análisis de Azure Data Lake mediante Azure PowerShell
Importante
Azure Data Lake Analytics retiró el 29 de febrero de 2024. Más información sobre este anuncio.
Para el análisis de datos, su organización puede usar Azure Synapse Analytics o Microsoft Fabric.
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.
Requisitos previos
Nota:
Se recomienda usar el módulo Azure Az de PowerShell para interactuar con Azure. Consulte Instalación de Azure PowerShell para empezar. Para más información sobre cómo migrar al módulo Az de PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.
Para usar PowerShell con Data Lake Analytics, recopile la siguiente información:
- Identificador de suscripción: el identificador de la suscripción de Azure que contiene su cuenta de Data Lake Analytics.
- Grupo de recursos: el nombre del grupo de recursos de Azure que contiene la cuenta de Data Lake Analytics.
- Nombre de la cuenta de Data Lake Analytics: el nombre de la cuenta de Data Lake Analytics.
- Nombre de la cuenta predeterminada de Data Lake Store: cada cuenta de Data Lake Analytics tiene una cuenta de Data Lake Store predeterminada.
- Ubicación: la ubicación de la cuenta de Data Lake Analytics como "Este de EE. UU. 2" u otras ubicaciones admitidas.
Los fragmentos de código de PowerShell de este tutorial usan estas variables para almacenar esta información
$subId = "<SubscriptionId>"
$rg = "<ResourceGroupName>"
$adla = "<DataLakeAnalyticsAccountName>"
$adls = "<DataLakeStoreAccountName>"
$location = "<Location>"
Inicio de sesión en Azure
Inicio de sesión mediante la autenticación interactiva del usuario
Inicie sesión con un identificador de suscripción o por nombre de la suscripción
# Using subscription id
Connect-AzAccount -SubscriptionId $subId
# Using subscription name
Connect-AzAccount -SubscriptionName $subname
Guardar el contexto de autenticación
El cmdlet Connect-AzAccount
siempre pide las credenciales. Puede evitar que se le pidan mediante los cmdlets siguientes:
# 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)
$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 cuentas
Enumeración de cuentas
# 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 cuenta
Cada cuenta de Data Lake Analytics requiere una cuenta predeterminada de Data Lake Store que se usa para almacenar registros. Puede reutilizar una cuenta existente o crear una nueva.
# 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 cuenta
Obtener detalles acerca de una cuenta.
Get-AdlAnalyticsAccount -Name $adla
Comprobando de la existencia de una cuenta
Test-AdlAnalyticsAccount -Name $adla
Administración de orígenes de datos
Actualmente, Azure Data Lake Analytics admite los siguientes orígenes de datos:
Cada cuenta de Data Lake Analytics tiene una cuenta de Data Lake Store predeterminada. La cuenta predeterminada de Almacén de Data Lake sirve para almacenar los registros de auditoría y de metadatos de trabajos.
Búsqueda de la cuenta predeterminada de Almacén de Data Lake
$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
:
Get-AdlAnalyticsDataSource -Account $adla | ? { $_.IsDefault }
Agregar un origen de datos
# 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 datos
# 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-SQL
Envío de una cadena como un trabajo de 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"
Envío de un archivo como un trabajo de U-SQL
$scriptpath = "d:\test.usql"
$script | Out-File $scriptpath
Submit-AdlJob -AccountName $adla –ScriptPath $scriptpath -Name "Demo"
Enumeración de trabajos
El resultado incluye los trabajos actualmente en ejecución y aquellos que se han completado recientemente.
Get-AdlJob -Account $adla
Enumere los principales trabajos de N
De forma predeterminada, la lista de trabajos se ordena por hora de envío. Así, los trabajos enviados más recientemente aparecen en primer lugar. De forma predeterminada, la cuenta de ADLA recuerda los trabajos durante 180 días, pero el cmdlet Get-AdlJob devuelve solo los primeros 500. Use el parámetro -Top para mostrar un número específico de trabajos.
$jobs = Get-AdlJob -Account $adla -Top 10
Enumeración de trabajos por estado de trabajo
Mediante el parámetro -State
. Puede combinar cualquiera de estos 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
Enumeración de trabajos por resultado del trabajo
Use el parámetro -Result
para detectar si los trabajos finalizados se han realizado correctamente. Tiene estos valores:
- Canceled
- Con error
- None
- Correcto
# 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 trabajo
El parámetro -Submitter
ayuda a identificar quién ha enviado un trabajo.
Get-AdlJob -Account $adla -Submitter "joe@contoso.com"
Enumeración de trabajos por hora de envío
-SubmittedAfter
es útil al filtrar por un intervalo de tiempo.
# 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 trabajo
Obtenga el estado de un trabajo específico.
Get-AdlJob -AccountName $adla -JobId $job.JobId
Cancelación de un trabajo
Stop-AdlJob -Account $adla -JobID $jobID
Espera de fin de un trabajo
En lugar de repetir Get-AdlAnalyticsJob
hasta que finalice un trabajo, puede usar el cmdlet Wait-AdlJob
para esperar a que finalice el trabajo.
Wait-AdlJob -Account $adla -JobId $job.JobId
Enumeración de canalizaciones y repeticiones de trabajos
Use el cmdlet Get-AdlJobPipeline
para ver la información de canalización de trabajos enviados previamente.
$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.
$recurrences = Get-AdlJobRecurrence -Account $adla
$recurrence = Get-AdlJobRecurrence -Account $adla -RecurrenceId "<recurrence ID>"
Administración de nodos directivas de proceso
Lista de directivas de proceso existentes
El cmdlet Get-AdlAnalyticsComputePolicy
recupera información sobre las directivas de proceso de una cuenta de Data Lake Analytics.
$policies = Get-AdlAnalyticsComputePolicy -Account $adla
Creación de una directiva de proceso
El cmdlet New-AdlAnalyticsComputePolicy
crea una nueva directiva de proceso para una cuenta de Data Lake Analytics. 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.
$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 archivos
Comprobación de la existencia de un archivo
Test-AdlStoreItem -Account $adls -Path "/data.csv"
Carga y descarga de archivos
Cargar un archivo.
Import-AdlStoreItem -AccountName $adls -Path "c:\data.tsv" -Destination "/data_copy.csv"
Cargue una carpeta completa de forma recursiva.
Import-AdlStoreItem -AccountName $adls -Path "c:\myData\" -Destination "/myData/" -Recurse
Descargar un archivo.
Export-AdlStoreItem -AccountName $adls -Path "/data.csv" -Destination "c:\data.csv"
Descargue una carpeta completa de forma recursiva.
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
.
Administración del catálogo de U-SQL
El catálogo de U-SQL se usa para estructurar datos y código, para que puedan compartirse mediante scripts de U-SQL. El catálogo permite el mayor rendimiento posible con los datos en Azure Data Lake. Para obtener más información, consulte Uso del catálogo de U-SQL.
Enumerar elementos en el catálogo de 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"
Enumeración de todos los conjuntos del catálogo de 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
}
}
Obtener detalles sobre un elemento 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"
Almacenamiento de credenciales en el catálogo
Dentro de una base de datos U-SQL, cree un objeto de credenciales para una base de datos hospedada en Azure. Actualmente, las credenciales U-SQL son el único tipo de elemento de catálogo que se puede crear a través de 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 firewall
Enumerar reglas de firewall
Get-AdlAnalyticsFirewallRule -Account $adla
Incorporación de una regla 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
Modificación de una regla de firewall
Set-AdlAnalyticsFirewallRule -Account $adla -Name $ruleName -StartIpAddress $startIpAddress -EndIpAddress $endIpAddress
Eliminación de una regla de firewall
Remove-AdlAnalyticsFirewallRule -Account $adla -Name $ruleName
Permitir direcciones IP de Azure
Set-AdlAnalyticsAccount -Name $adla -AllowAzureIpState Enabled
Set-AdlAnalyticsAccount -Name $adla -FirewallState Enabled
Set-AdlAnalyticsAccount -Name $adla -FirewallState Disabled
Trabajo con Azure
Ver detalles del error
Resolve-AzError -Last
Comprobación de si se ejecuta un administrador en el equipo Windows
function Test-Administrator
{
$user = [Security.Principal.WindowsIdentity]::GetCurrent();
$p = New-Object Security.Principal.WindowsPrincipal $user
$p.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)
}
Buscar un elemento TenantID
A partir de un nombre de suscripción:
function Get-TenantIdFromSubscriptionName( [string] $subname )
{
$sub = (Get-AzSubscription -SubscriptionName $subname)
$sub.TenantId
}
Get-TenantIdFromSubscriptionName "ADLTrainingMS"
A partir de un identificador de suscripción:
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"
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 inquilino
$subs = Get-AzSubscription
foreach ($sub in $subs)
{
Write-Host $sub.Name "(" $sub.Id ")"
Write-Host "`tTenant Id" $sub.TenantId
}
Pasos siguientes
- Información general de Análisis de Microsoft Azure Data Lake
- Introducción a Data Lake Analytics mediante Azure Portal | Azure PowerShell | CLI de Azure
- Administración de Azure Data Lake Analytics mediante Azure Portal | Azure PowerShell | CLI