Introduzione ad Azure Data Lake Store con Azure SDK per Node.js

Nota

Per caricare e scaricare grandi quantità di dati (file di grandi dimensioni, un gran numero di file o entrambi), è consigliabile usare Python SDK, .NET SDK, l'interfaccia della riga di comando di Azure 2.0 o Azure PowerShell. Queste opzioni offrono prestazioni migliori, perché usano più thread per parallelizzare lo spostamento dei dati.

Informazioni su come usare Azure SDK per Node.js per creare un account Azure Data Lake Store ed eseguire operazioni di base, ad esempio creare cartelle, caricare e scaricare i file di dati, eliminare l'account e così via. Per altre informazioni su Data Lake Store, vedere Panoramica di Data Lake Store. L'SDK attualmente supporta:

  • Versione di Node.js: 0.10.0 o successiva
  • Versione dell'API REST per l'account: 2015-10-01-preview
  • Versione dell'API REST per FileSystem: 2015-10-01-anteprima

Prerequisiti

Per eseguire le procedure descritte nell'articolo è necessario:

Come eseguire l'installazione

npm install azure-arm-datalake-store

Eseguire l'autenticazione con Azure Active Directory

I frammenti seguenti illustrano due modi diversi per eseguire l'autenticazione con Data Lake Store usando Azure AD. Per una spiegazione dettagliata dei diversi metodi da usare per eseguire l'autenticazione con Data Lake Store, vedere Eseguire l'autenticazione con Data Lake Store usando Azure Active Directory.

Il frammento seguente richiede anche input come il nome di dominio di Azure AD, l'ID client per un'app Azure AD e così via. Tutti questi dettagli possono essere recuperati da un'applicazione Azure AD che è necessario creare. Per informazioni dettagliate, fare clic sul collegamento precedente.

var msrestAzure = require('ms-rest-azure');
//user authentication
var credentials = new msRestAzure.UserTokenCredentials('your-client-id', 'your-domain', 'your-username', 'your-password', 'your-redirect-uri');
//service principal authentication
var credentials = new msRestAzure.ApplicationTokenCredentials('your-client-id', 'your-domain', 'your-secret');

Creare i client Data Lake Store

var adlsManagement = require("azure-arm-datalake-store");
var acccountClient = new adlsManagement.DataLakeStoreAccountClient(credentials, "your-subscription-id");
var filesystemClient = new adlsManagement.DataLakeStoreFileSystemClient(credentials);

Creare un account Archivio Data Lake

var util = require('util');
var resourceGroupName = 'testrg';
var accountName = 'testadlsacct';
var location = 'eastus2';

// account object to create
var accountToCreate = {
  tags: {
    testtag1: 'testvalue1',
    testtag2: 'testvalue2'
  },
  name: accountName,
  location: location
};

client.account.create(resourceGroupName, accountName, accountToCreate, function (err, result, request, response) {
  if (err) {
    console.log(err);
    /*err has reference to the actual request and response, so you can see what was sent and received on the wire.
      The structure of err looks like this:
      err: {
        code: 'Error Code',
        message: 'Error Message',
        body: 'The response body if any',
        request: reference to a stripped version of http request
        response: reference to a stripped version of the response
      }
    */
  } else {
    console.log('result is: ' + util.inspect(result, {depth: null}));
  }
});

Creare un file con contenuto

var util = require('util');
var accountName = 'testadlsacct';
var fileToCreate = '/myfolder/myfile.txt';
var options = {
  streamContents: new Buffer('some string content')
}

filesystemClient.fileSystem.listFileStatus(accountName, fileToCreate, options, function (err, result, request, response) {
  if (err) {
    console.log(err);
  } else {
    // no result is returned, only a 201 response for success.
    console.log('response is: ' + util.inspect(response, {depth: null}));
  }
});

Ottenere un elenco di file e cartelle

var util = require('util');
var accountName = 'testadlsacct';
var pathToEnumerate = '/myfolder';
filesystemClient.fileSystem.listFileStatus(accountName, pathToEnumerate, function (err, result, request, response) {
  if (err) {
    console.log(err);
  } else {
    console.log('result is: ' + util.inspect(result, {depth: null}));
  }
});

Vedere anche