Mengelola Azure Data Lake Analytics menggunakan Python
Penting
Azure Data Lake Analytics pensiun pada 29 Februari 2024. Pelajari lebih lanjut dengan pengumuman ini.
Untuk analitik data, organisasi Anda dapat menggunakan Azure Synapse Analytics atau Microsoft Fabric.
Artikel ini menjelaskan cara mengelola akun, sumber data, pengguna, dan pekerjaan Azure Data Lake Analytics menggunakan Python.
Versi Python yang didukung
- Gunakan Python versi 64-bit.
- Anda dapat menggunakan distribusi Python standar yang ditemukan di unduhan Python.org .
- Banyak pengembang merasa nyaman untuk menggunakan distribusi Anaconda Python .
- Artikel ini ditulis menggunakan Python versi 3.6 dari distribusi Python standar
Menginstal Azure Python SDK
Instal modul berikut:
- Modul azure-mgmt-resource mencakup modul Azure lainnya untuk Direktori Aktif, dll.
- Modul azure-datalake-storage mencakup operasi sistem file Azure Data Lake Store.
- Modul azure-mgmt-datalake-store mencakup operasi manajemen akun Azure Data Lake Store.
- Modul azure-mgmt-datalake-analytics mencakup operasi Azure Data Lake Analytics.
Pertama, pastikan Anda memiliki pip
terbaru dengan menjalankan perintah berikut:
python -m pip install --upgrade pip
Dokumen ini ditulis menggunakan pip version 9.0.1
.
Gunakan perintah pip
berikut untuk menginstal modul dari baris perintah:
pip install azure-identity
pip install azure-mgmt-resource
pip install azure-datalake-store
pip install azure-mgmt-datalake-store
pip install azure-mgmt-datalake-analytics
Membuat skrip Python baru
Tempelkan kode berikut ke dalam skrip:
# Use this only for Azure AD service-to-service authentication
#from azure.common.credentials import ServicePrincipalCredentials
# Use this only for Azure AD end-user authentication
#from azure.common.credentials import UserPassCredentials
# Required for Azure Identity
from azure.identity import DefaultAzureCredential
# Required for Azure Resource Manager
from azure.mgmt.resource.resources import ResourceManagementClient
from azure.mgmt.resource.resources.models import ResourceGroup
# Required for Azure Data Lake Store account management
from azure.mgmt.datalake.store import DataLakeStoreAccountManagementClient
from azure.mgmt.datalake.store.models import DataLakeStoreAccount
# Required for Azure Data Lake Store filesystem management
from azure.datalake.store import core, lib, multithread
# Required for Azure Data Lake Analytics account management
from azure.mgmt.datalake.analytics.account import DataLakeAnalyticsAccountManagementClient
from azure.mgmt.datalake.analytics.account.models import DataLakeAnalyticsAccount, DataLakeStoreAccountInformation
# Required for Azure Data Lake Analytics job management
from azure.mgmt.datalake.analytics.job import DataLakeAnalyticsJobManagementClient
from azure.mgmt.datalake.analytics.job.models import JobInformation, JobState, USqlJobProperties
# Required for Azure Data Lake Analytics catalog management
from azure.mgmt.datalake.analytics.catalog import DataLakeAnalyticsCatalogManagementClient
# Required for Azure Data Lake Analytics Model
from azure.mgmt.datalake.analytics.account.models import CreateOrUpdateComputePolicyParameters
# Use these as needed for your application
import logging
import getpass
import pprint
import uuid
import time
Jalankan skrip ini untuk memverifikasi bahwa modul dapat diimpor.
Autentikasi
Autentikasi pengguna interaktif dengan pop-up
Metode ini tidak didukung.
Autentikasi pengguna interaktif dengan kode perangkat
user = input(
'Enter the user to authenticate with that has permission to subscription: ')
password = getpass.getpass()
credentials = UserPassCredentials(user, password)
Autentikasi noninteraktif dengan SPI dan rahasia
# Acquire a credential object for the app identity. When running in the cloud,
# DefaultAzureCredential uses the app's managed identity (MSI) or user-assigned service principal.
# When run locally, DefaultAzureCredential relies on environment variables named
# AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, and AZURE_TENANT_ID.
credentials = DefaultAzureCredential()
Autentikasi noninteraktif dengan API dan sertifikat
Metode ini tidak didukung.
Variabel skrip umum
Variabel ini digunakan dalam sampel.
subid = '<Azure Subscription ID>'
rg = '<Azure Resource Group Name>'
location = '<Location>' # i.e. 'eastus2'
adls = '<Azure Data Lake Store Account Name>'
adla = '<Azure Data Lake Analytics Account Name>'
Membuat klien
resourceClient = ResourceManagementClient(credentials, subid)
adlaAcctClient = DataLakeAnalyticsAccountManagementClient(credentials, subid)
adlaJobClient = DataLakeAnalyticsJobManagementClient(
credentials, 'azuredatalakeanalytics.net')
Membuat Grup Sumber Daya Azure
armGroupResult = resourceClient.resource_groups.create_or_update(
rg, ResourceGroup(location=location))
Membuat akun Data Lake Analytics
Pertama, buat akun penyimpanan.
adlsAcctResult = adlsAcctClient.account.begin_create(
rg,
adls,
DataLakeStoreAccount(
location=location)
)
).wait()
Kemudian buat akun Data Lake Analytics yang menggunakan penyimpanan tersebut.
adlaAcctResult = adlaAcctClient.account.create(
rg,
adla,
DataLakeAnalyticsAccount(
location=location,
default_data_lake_store_account=adls,
data_lake_store_accounts=[DataLakeStoreAccountInformation(name=adls)]
)
).wait()
Mengirim pekerjaan
script = """
@a =
SELECT * FROM
(VALUES
("Contoso", 1500.0),
("Woodgrove", 2700.0)
) AS
D( customer, amount );
OUTPUT @a
TO "/data.csv"
USING Outputters.Csv();
"""
jobId = str(uuid.uuid4())
jobResult = adlaJobClient.job.create(
adla,
jobId,
JobInformation(
name='Sample Job',
type='USql',
properties=USqlJobProperties(script=script)
)
)
Tunggu hingga pekerjaan berakhir
jobResult = adlaJobClient.job.get(adla, jobId)
while(jobResult.state != JobState.ended):
print('Job is not yet done, waiting for 3 seconds. Current state: ' +
jobResult.state.value)
time.sleep(3)
jobResult = adlaJobClient.job.get(adla, jobId)
print('Job finished with result: ' + jobResult.result.value)
Mencantumkan alur dan pengulangan
Bergantung pada apakah pekerjaan Anda memiliki metadata pengulangan atau alur yang terpasang, Anda dapat mencantumkan alur dan pengulangan.
pipelines = adlaJobClient.pipeline.list(adla)
for p in pipelines:
print('Pipeline: ' + p.name + ' ' + p.pipelineId)
recurrences = adlaJobClient.recurrence.list(adla)
for r in recurrences:
print('Recurrence: ' + r.name + ' ' + r.recurrenceId)
Mengelola kebijakan komputasi
Objek DataLakeAnalyticsAccountManagementClient menyediakan metode untuk mengelola kebijakan komputasi untuk akun Data Lake Analytics.
Mencantumkan kebijakan komputasi
Kode berikut mengambil daftar kebijakan komputasi untuk akun Data Lake Analytics.
policies = adlaAcctClient.compute_policies.list_by_account(rg, adla)
for p in policies:
print('Name: ' + p.name + 'Type: ' + p.object_type + 'Max AUs / job: ' +
p.max_degree_of_parallelism_per_job + 'Min priority / job: ' + p.min_priority_per_job)
Membuat kebijakan komputasi baru
Kode berikut membuat kebijakan komputasi baru untuk akun Data Lake Analytics, menetapkan AU maksimum yang tersedia untuk pengguna yang ditentukan menjadi 50, dan prioritas pekerjaan minimum ke 250.
userAadObjectId = "3b097601-4912-4d41-b9d2-78672fc2acde"
newPolicyParams = CreateOrUpdateComputePolicyParameters(
userAadObjectId, "User", 50, 250)
adlaAcctClient.compute_policies.create_or_update(
rg, adla, "GaryMcDaniel", newPolicyParams)
Langkah berikutnya
- Untuk melihat tutorial yang sama menggunakan alat lain, pilih pemilih tab di bagian atas halaman.
- Untuk mempelajari U-SQL, lihat Mulai menggunakan bahasa U-SQL Azure Data Lake Analytics.
- Untuk tugas manajemen, lihat Mengelola Azure Data Lake Analytics menggunakan portal Microsoft Azure.