Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Důležité
Služba Azure Data Lake Analytics byla vyřazena 29. února 2024. Získejte více informací prostřednictvím tohoto oznámení.
Pro analýzu dat může vaše organizace používat Azure Synapse Analytics nebo Microsoft Fabric.
Tento článek popisuje, jak spravovat účty, zdroje dat, uživatele a úlohy Azure Data Lake Analytics pomocí aplikace napsané pomocí sady Azure .NET SDK.
Požadavky
- Visual Studio 2015, Visual Studio 2013 update 4 nebo Visual Studio 2012 s nainstalovanou aplikací Visual C++.
- Microsoft Azure SDK pro .NET verze 2.5 nebo novější Nainstalujte ho pomocí instalačního programu webové platformy.
- Požadované balíčky NuGet
Instalace balíčků NuGet
Balíček | Version |
---|---|
Microsoft.Rest.ClientRuntime.Azure.Authentication | 2.3.1 |
Microsoft.Azure.Management.DataLake.Analytics | 3.0.0 |
Microsoft.Azure.Management.DataLake.Store | 2.2.0 |
Microsoft.Azure.Management.ResourceManager | 1.6.0-preview |
Microsoft.Azure.Graph.RBAC | 3.4.0-preview |
Tyto balíčky můžete nainstalovat prostřednictvím příkazového řádku NuGet pomocí následujících příkazů:
Install-Package -Id Microsoft.Rest.ClientRuntime.Azure.Authentication -Version 2.3.1
Install-Package -Id Microsoft.Azure.Management.DataLake.Analytics -Version 3.0.0
Install-Package -Id Microsoft.Azure.Management.DataLake.Store -Version 2.2.0
Install-Package -Id Microsoft.Azure.Management.ResourceManager -Version 1.6.0-preview
Install-Package -Id Microsoft.Azure.Graph.RBAC -Version 3.4.0-preview
Běžné proměnné
string subid = "<Subscription ID>"; // Subscription ID (a GUID)
string tenantid = "<Tenant ID>"; // AAD tenant ID or domain. For example, "contoso.onmicrosoft.com"
string rg == "<value>"; // Resource group name
string clientid = "abcdef01-2345-6789-0abc-def012345678"; // Sample client ID
Autentizace
Máte několik možností pro přihlášení ke službě Azure Data Lake Analytics. Následující fragment kódu ukazuje příklad ověřování s interaktivním ověřováním uživatelů pomocí automaticky otevíraného okna.
Pro klientské ID můžete použít buď ID uživatele, nebo ID aplikace (klienta) služebního účtu.
using System;
using System.IO;
using System.Threading;
using System.Security.Cryptography.X509Certificates;
using Microsoft.Rest;
using Microsoft.Rest.Azure.Authentication;
using Microsoft.Azure.Management.DataLake.Analytics;
using Microsoft.Azure.Management.DataLake.Analytics.Models;
using Microsoft.Azure.Management.DataLake.Store;
using Microsoft.Azure.Management.DataLake.Store.Models;
using Microsoft.IdentityModel.Clients.ActiveDirectory;
using Microsoft.Azure.Graph.RBAC;
public static Program
{
public static string TENANT = "microsoft.onmicrosoft.com";
public static string CLIENTID = "abcdef01-2345-6789-0abc-def012345678";
public static System.Uri ARM_TOKEN_AUDIENCE = new System.Uri( @"https://management.core.windows.net/");
public static System.Uri ADL_TOKEN_AUDIENCE = new System.Uri( @"https://datalake.azure.net/" );
public static System.Uri GRAPH_TOKEN_AUDIENCE = new System.Uri( @"https://graph.windows.net/" );
static void Main(string[] args)
{
string MY_DOCUMENTS= System.Environment.GetFolderPath( System.Environment.SpecialFolder.MyDocuments);
string TOKEN_CACHE_PATH = System.IO.Path.Combine(MY_DOCUMENTS, "my.tokencache");
var tokenCache = GetTokenCache(TOKEN_CACHE_PATH);
var armCreds = GetCreds_User_Popup(TENANT, ARM_TOKEN_AUDIENCE, CLIENTID, tokenCache);
var adlCreds = GetCreds_User_Popup(TENANT, ADL_TOKEN_AUDIENCE, CLIENTID, tokenCache);
var graphCreds = GetCreds_User_Popup(TENANT, GRAPH_TOKEN_AUDIENCE, CLIENTID, tokenCache);
}
}
Zdrojový kód pro GetCreds_User_Popup a kód pro další možnosti ověřování jsou popsané v možnostech ověřování Data Lake Analytics .NET.
Vytvoření objektů správy klientů
var resourceManagementClient = new ResourceManagementClient(armCreds) { SubscriptionId = subid };
var adlaAccountClient = new DataLakeAnalyticsAccountManagementClient(armCreds);
adlaAccountClient.SubscriptionId = subid;
var adlsAccountClient = new DataLakeStoreAccountManagementClient(armCreds);
adlsAccountClient.SubscriptionId = subid;
var adlaCatalogClient = new DataLakeAnalyticsCatalogManagementClient(adlCreds);
var adlaJobClient = new DataLakeAnalyticsJobManagementClient(adlCreds);
var adlsFileSystemClient = new DataLakeStoreFileSystemManagementClient(adlCreds);
var graphClient = new GraphRbacManagementClient(graphCreds);
graphClient.TenantID = domain;
Správa účtů
Vytvořte skupinu prostředků Azure
Pokud jste ho ještě nevytvořili, musíte mít skupinu prostředků Azure, abyste vytvořili komponenty Data Lake Analytics. Potřebujete přihlašovací údaje pro ověření, ID předplatného a umístění. Následující kód ukazuje, jak vytvořit skupinu prostředků:
var resourceGroup = new ResourceGroup { Location = location };
resourceManagementClient.ResourceGroups.CreateOrUpdate(groupName, rg);
Další informace najdete v tématu Skupiny prostředků Azure a Data Lake Analytics.
Vytvoření účtu Data Lake Store
Účet ADLA někdy vyžaduje účet ADLS. Pokud ho ještě nemáte, můžete ho vytvořit pomocí následujícího kódu:
var new_adls_params = new DataLakeStoreAccount(location: _location);
adlsAccountClient.Account.Create(rg, adls, new_adls_params);
Vytvoření účtu Data Lake Analytics
Následující kód vytvoří účet ADLS.
var new_adla_params = new DataLakeAnalyticsAccount()
{
DefaultDataLakeStoreAccount = adls,
Location = location
};
adlaClient.Account.Create(rg, adla, new_adla_params);
Výpis účtů Data Lake Store
var adlsAccounts = adlsAccountClient.Account.List().ToList();
foreach (var adls in adlsAccounts)
{
Console.WriteLine($"ADLS: {0}", adls.Name);
}
Výpis účtů Data Lake Analytics
var adlaAccounts = adlaClient.Account.List().ToList();
for (var adla in AdlaAccounts)
{
Console.WriteLine($"ADLA: {0}, adla.Name");
}
Kontrola, jestli účet existuje
bool exists = adlaClient.Account.Exists(rg, adla));
Získání informací o účtu
bool exists = adlaClient.Account.Exists(rg, adla));
if (exists)
{
var adla_accnt = adlaClient.Account.Get(rg, adla);
}
Odstranění účtu
if (adlaClient.Account.Exists(rg, adla))
{
adlaClient.Account.Delete(rg, adla);
}
Získání výchozího účtu Data Lake Store
Každý účet Data Lake Analytics vyžaduje výchozí účet Data Lake Store. Tento kód použijte k určení výchozího účtu Storu pro účet Analytics.
if (adlaClient.Account.Exists(rg, adla))
{
var adla_accnt = adlaClient.Account.Get(rg, adla);
string def_adls_account = adla_accnt.DefaultDataLakeStoreAccount;
}
Správa zdrojů dat
Data Lake Analytics aktuálně podporuje následující zdroje dat:
Propojení s účtem Azure Storage
Můžete vytvořit odkazy na účty Azure Storage.
string storage_key = "xxxxxxxxxxxxxxxxxxxx";
string storage_account = "mystorageaccount";
var addParams = new AddStorageAccountParameters(storage_key);
adlaClient.StorageAccounts.Add(rg, adla, storage_account, addParams);
Výpis zdrojů dat Azure Storage
var stg_accounts = adlaAccountClient.StorageAccounts.ListByAccount(rg, adla);
if (stg_accounts != null)
{
foreach (var stg_account in stg_accounts)
{
Console.WriteLine($"Storage account: {0}", stg_account.Name);
}
}
Výpis zdrojů dat Data Lake Store
var adls_accounts = adlsClient.Account.List();
if (adls_accounts != null)
{
foreach (var adls_accnt in adls_accounts)
{
Console.WriteLine($"ADLS account: {0}", adls_accnt.Name);
}
}
Nahrávání a stahování složek a souborů
Objekt správy klienta systému souborů Data Lake Store můžete použít k nahrání a stažení jednotlivých souborů nebo složek z Azure do místního počítače pomocí následujících metod:
- Složka pro nahrávání
- UploadFile
- Složka ke stažení
- StáhnoutSoubor
Prvním parametrem těchto metod je název účtu Data Lake Store následovaný parametry pro zdrojovou cestu a cílovou cestu.
Následující příklad ukazuje, jak stáhnout složku ve službě Data Lake Store.
adlsFileSystemClient.FileSystem.DownloadFolder(adls, sourcePath, destinationPath);
Vytvoření souboru v účtu Data Lake Store
using (var memstream = new MemoryStream())
{
using (var sw = new StreamWriter(memstream, UTF8Encoding.UTF8))
{
sw.WriteLine("Hello World");
sw.Flush();
memstream.Position = 0;
adlsFileSystemClient.FileSystem.Create(adls, "/Samples/Output/randombytes.csv", memstream);
}
}
Ověření cest k účtu Azure Storage
Následující kód zkontroluje, jestli účet Azure Storage (storageAccntName) existuje v účtu Data Lake Analytics (analyticsAccountName) a jestli v účtu Azure Storage existuje kontejner (containerName).
string storage_account = "mystorageaccount";
string storage_container = "mycontainer";
bool accountExists = adlaClient.Account.StorageAccountExists(rg, adla, storage_account));
bool containerExists = adlaClient.Account.StorageContainerExists(rg, adla, storage_account, storage_container));
Správa katalogu a úloh
Objekt DataLakeAnalyticsCatalogManagementClient poskytuje metody pro správu databáze SQL poskytované pro každý účet Azure Data Lake Analytics. DataLakeAnalyticsJobManagementClient poskytuje metody pro odesílání a správu úloh spuštěných v databázi pomocí skriptů U-SQL.
Výpis databází a schémat
Mezi několik věcí, které můžete uvést, nejběžnější jsou databáze a jejich schéma. Následující kód získá kolekci databází a pak vytvoří výčet schématu pro každou databázi.
var databases = adlaCatalogClient.Catalog.ListDatabases(adla);
foreach (var db in databases)
{
Console.WriteLine($"Database: {db.Name}");
Console.WriteLine(" - Schemas:");
var schemas = adlaCatalogClient.Catalog.ListSchemas(adla, db.Name);
foreach (var schm in schemas)
{
Console.WriteLine($"\t{schm.Name}");
}
}
Sloupce tabulky seznamu
Následující kód ukazuje, jak získat přístup k databázi pomocí klienta pro správu katalogu Data Lake Analytics a zobrazit seznam sloupců v zadané tabulce.
var tbl = adlaCatalogClient.Catalog.GetTable(adla, "master", "dbo", "MyTableName");
IEnumerable<USqlTableColumn> columns = tbl.ColumnList;
foreach (USqlTableColumn utc in columns)
{
Console.WriteLine($"\t{utc.Name}");
}
Odeslání úlohy U-SQL
Následující kód ukazuje, jak pomocí klienta správy úloh Data Lake Analytics odeslat úlohu.
string scriptPath = "/Samples/Scripts/SearchResults_Wikipedia_Script.txt";
Stream scriptStrm = adlsFileSystemClient.FileSystem.Open(_adlsAccountName, scriptPath);
string scriptTxt = string.Empty;
using (StreamReader sr = new StreamReader(scriptStrm))
{
scriptTxt = sr.ReadToEnd();
}
var jobName = "SR_Wikipedia";
var jobId = Guid.NewGuid();
var properties = new USqlJobProperties(scriptTxt);
var parameters = new JobInformation(jobName, JobType.USql, properties, priority: 1, degreeOfParallelism: 1, jobId: jobId);
var jobInfo = adlaJobClient.Job.Create(adla, jobId, parameters);
Console.WriteLine($"Job {jobName} submitted.");
Výpis neúspěšných úloh
Následující kód obsahuje informace o úlohách, které selhaly.
var odq = new ODataQuery<JobInformation> { Filter = "result eq 'Failed'" };
var jobs = adlaJobClient.Job.List(adla, odq);
foreach (var j in jobs)
{
Console.WriteLine($"{j.Name}\t{j.JobId}\t{j.Type}\t{j.StartTime}\t{j.EndTime}");
}
Výpis potrubí
Následující kód obsahuje informace o každém kanálu úloh odeslaných do účtu.
var pipelines = adlaJobClient.Pipeline.List(adla);
foreach (var p in pipelines)
{
Console.WriteLine($"Pipeline: {p.Name}\t{p.PipelineId}\t{p.LastSubmitTime}");
}
Seznam opakování
Následující kód obsahuje informace o každém opakování úloh odeslaných do účtu.
var recurrences = adlaJobClient.Recurrence.List(adla);
foreach (var r in recurrences)
{
Console.WriteLine($"Recurrence: {r.Name}\t{r.RecurrenceId}\t{r.LastSubmitTime}");
}
Běžné scénáře grafů
Vyhledání uživatele v adresáři Microsoft Entra ID
var userinfo = graphClient.Users.Get( "bill@contoso.com" );
Získání ID objektu uživatele v adresáři Microsoft Entra ID
var userinfo = graphClient.Users.Get( "bill@contoso.com" );
Console.WriteLine( userinfo.ObjectId )
Správa výpočetních zásad
Objekt DataLakeAnalyticsAccountManagementClient poskytuje metody pro správu zásad výpočetních prostředků pro účet Data Lake Analytics.
Seznam výpočetních zásad
Následující kód načte seznam výpočetních zásad pro Data Lake Analytics účet.
var policies = adlaAccountClient.ComputePolicies.ListByAccount(rg, adla);
foreach (var p in policies)
{
Console.WriteLine($"Name: {p.Name}\tType: {p.ObjectType}\tMax AUs / job: {p.MaxDegreeOfParallelismPerJob}\tMin priority / job: {p.MinPriorityPerJob}");
}
Vytvořte novou výpočetní politiku
Následující kód vytvoří novou zásadu výpočetních prostředků pro účet Data Lake Analytics, nastaví maximální počet jednotek AU dostupných pro zadaného uživatele na 50 a minimální prioritu úlohy na 250.
var userAadObjectId = "3b097601-4912-4d41-b9d2-78672fc2acde";
var newPolicyParams = new ComputePolicyCreateOrUpdateParameters(userAadObjectId, "User", 50, 250);
adlaAccountClient.ComputePolicies.CreateOrUpdate(rg, adla, "GaryMcDaniel", newPolicyParams);