Administración de Azure Data Lake Analytics mediante Azure PowerShell
Importante
Azure Data Lake Analytics se retirará el 29 de febrero de 2024. Obtenga más información con 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.
Prerrequisitos
Nota:
Se recomienda usar el módulo de PowerShell de Azure Az 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 los siguientes fragmentos de información:
- Identificador de suscripción: el identificador de la suscripción de Azure que contiene la 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: nombre de la cuenta de Data Lake Analytics.
- Nombre de cuenta predeterminado de Data Lake Store: cada cuenta de Data Lake Analytics tiene una cuenta predeterminada de Data Lake Store.
- 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 con autenticación de usuario interactiva
Inicie sesión con un identificador de suscripción o por nombre de suscripción.
# Using subscription id
Connect-AzAccount -SubscriptionId $subId
# Using subscription name
Connect-AzAccount -SubscriptionName $subname
Guardar contexto de autenticación
El Connect-AzAccount
cmdlet siempre solicita credenciales. Puede evitar que se le solicite mediante los siguientes cmdlets:
# Save login session information
Save-AzAccounts -Path D:\profile.json
# Load login session information
Select-AzAccounts -Path D:\profile.json
Iniciar sesión usando 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
Listar 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 usa para almacenar registros. Puede reutilizar una cuenta existente o crear una cuenta.
# 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
Obtenga detalles sobre una cuenta.
Get-AdlAnalyticsAccount -Name $adla
Comprobar si existe una cuenta
Test-AdlAnalyticsAccount -Name $adla
Administrar orígenes de datos
Azure Data Lake Analytics admite actualmente los siguientes orígenes de datos:
Cada cuenta de Data Lake Analytics tiene una cuenta predeterminada de Data Lake Store. La cuenta predeterminada de Data Lake Store se usa para almacenar los metadatos del trabajo y los registros de auditoría 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 filtrando la lista de orígenes de datos por la IsDefault
propiedad :
Get-AdlAnalyticsDataSource -Account $adla | ? { $_.IsDefault }
Adición de 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
Enviar una cadena como 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
La salida incluye los trabajos actualmente en ejecución y los trabajos que se han completado recientemente.
Get-AdlJob -Account $adla
Enumeración de los N principales trabajos
De forma predeterminada, la lista de trabajos se ordena en tiempo de envío. Por lo tanto, los trabajos enviados más recientemente aparecen primero. De forma predeterminada, la cuenta de ADLA recuerda trabajos durante 180 días, pero el cmdlet Get-AdlJob de forma predeterminada devuelve solo los primeros 500. Use -Top parámetro para enumerar un número específico de trabajos.
$jobs = Get-AdlJob -Account $adla -Top 10
Enumeración de trabajos por estado de trabajo
Uso del -State
parámetro . 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 de trabajo
Use el -Result
parámetro para detectar si los trabajos finalizados se completaron correctamente. Tiene estos valores:
- Cancelado
- Fracasado
- Ninguno
- Tuvo éxito
# 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 de trabajos
El -Submitter
parámetro le ayuda a identificar quién envió un trabajo.
Get-AdlJob -Account $adla -Submitter "joe@contoso.com"
Enumeración de trabajos por tiempo de envío
El -SubmittedAfter
es útil para 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 del estado del trabajo
Obtenga el estado de un trabajo específico.
Get-AdlJob -AccountName $adla -JobId $job.JobId
Cancelar un trabajo
Stop-AdlJob -Account $adla -JobID $jobID
Espere a que finalice un trabajo
En lugar de repetir Get-AdlAnalyticsJob
hasta que finalice un trabajo, puede usar el Wait-AdlJob
cmdlet para esperar a que finalice el trabajo.
Wait-AdlJob -Account $adla -JobId $job.JobId
Enumerar flujos de trabajo y repeticiones
Utilice el Get-AdlJobPipeline
cmdlet para ver la información del pipeline de los trabajos enviados previamente.
$pipelines = Get-AdlJobPipeline -Account $adla
$pipeline = Get-AdlJobPipeline -Account $adla -PipelineId "<pipeline ID>"
Use el Get-AdlJobRecurrence
cmdlet para ver la información de periodicidad de los trabajos enviados anteriormente.
$recurrences = Get-AdlJobRecurrence -Account $adla
$recurrence = Get-AdlJobRecurrence -Account $adla -RecurrenceId "<recurrence ID>"
Administración de directivas de cómputo
Listar políticas de cómputo existentes
El Get-AdlAnalyticsComputePolicy
cmdlet recupera información sobre las directivas de proceso de una cuenta de Data Lake Analytics.
$policies = Get-AdlAnalyticsComputePolicy -Account $adla
Crear una política de cómputo
El New-AdlAnalyticsComputePolicy
cmdlet crea una nueva directiva de proceso para una cuenta de Data Lake Analytics. En este ejemplo se establece el número máximo de RU 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
Administrar archivos
Comprobación de la existencia de un archivo
Test-AdlStoreItem -Account $adls -Path "/data.csv"
Carga y descarga
Cargue 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
Descargue 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 -Resume
marca .
Administración del catálogo de U-SQL
El catálogo de U-SQL se usa para estructurar datos y código para que los scripts de U-SQL puedan compartirlos. El catálogo habilita el máximo 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 ensamblados 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
En una base de datos U-SQL, cree un objeto de credencial para una base de datos hospedada en Azure. Actualmente, las credenciales de U-SQL son el único tipo de elemento de catálogo que 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
Adició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
Obtención de detalles del error
Resolve-AzError -Last
Compruebe si está usando una cuenta de administrador en su máquina Windows
function Test-Administrator
{
$user = [Security.Principal.WindowsIdentity]::GetCurrent();
$p = New-Object Security.Principal.WindowsPrincipal $user
$p.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)
}
Buscar un TenantID
A partir de un nombre de suscripción:
function Get-TenantIdFromSubscriptionName( [string] $subname )
{
$sub = (Get-AzSubscription -SubscriptionName $subname)
$sub.TenantId
}
Get-TenantIdFromSubscriptionName "ADLTrainingMS"
Desde 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
Desde 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
Enumera todas tus suscripciones e identificadores de arrendatario.
$subs = Get-AzSubscription
foreach ($sub in $subs)
{
Write-Host $sub.Name "(" $sub.Id ")"
Write-Host "`tTenant Id" $sub.TenantId
}
Pasos siguientes
- Panorama general de Microsoft Azure Data Lake Analytics
- Introducción a Data Lake Analytics utilizando el portal de Azure, Azure PowerShell y Azure CLI
- Administrar Azure Data Lake Analytics mediante el portal de Azure | , Azure PowerShell | y CLI