Gennaio 2016

Volume 31 Numero 1

Il presente articolo è stato tradotto automaticamente.

Creazione di pipeline di Big Data con Azure Data Lake e Data factory di Azure

Da Gaurav Malhotra | Gennaio 2016

Quest'anno offerte Microsoft Azure Big Data vengono espansi quando il servizio di Azure Data Lake (ADL), oltre alla possibilità di creare end-to-end (E2E) Big Data pipeline utilizzando ADL e sono stati annunciati Azure Data Factory (ADF). In questo articolo, sarà evidenziare l'utilizzo di ADF per pianificare le attività ripetuta sia monouso per lo spostamento e l'analisi di Big Data.

ADL rende l'elaborazione di dati più semplice e più accessibili, fornendo numerose tecnologie chiave. Il linguaggio SQL U è una potente combinazione di SQL e c# che supporta l'esecuzione parallela. È possibile eseguire U-SQL nel cloud ADL analisi offerta, in cui centinaia o migliaia di contenitori può essere riservato, utilizzato e rilasciata nel corso della durata di un singolo processo. Impostazione di questo ambiente cloud con ADL è semplice. Tramite il portale di gestione di Azure, è possibile rapidamente e facilmente creare ADL account per di archiviazione e analisi e il provisioning di un file ADF. Entro pochi minuti, facendo clic su alcuni pulsanti, è possibile impostare tutti gli account necessari nella sottoscrizione di Azure.

Una volta completato il provisioning dell'account, è possibile creare le pipeline di dati end-to-end in ADF usando gli strumenti di portale di gestione di Azure, Windows PowerShell, il SDK di c# e Visual Studio. ADF è un servizio di integrazione di dati basato su cloud che permette di automatizzare lo spostamento e trasformazione dei dati. L'integrazione di ADF ADL consente di:

  • Spostare i dati da un'origine specificata all'archivio ADL.
  • Creare pipeline di Big Data ADF eseguito il servizio di analisi ADL U-SQL come un passaggio di elaborazione.

Esistono diversi scenari comuni di Big Data tale indirizzo ADL e ADF, tra cui l'elaborazione attuariale, consigli sui prodotti personalizzati e l'analisi della varianza cliente. Che è interessante per molti clienti di Azure l'analisi dei log applicazioni o servizi Web. In questo articolo, vi mostrerò come creare le pipeline di data factory per analizzare i log Web, innanzitutto spostando i log Web per ADL e quindi eseguire gli script SQL U per elaborarli.

Lo Scenario di analisi di Log Web

Uno scenario comune di analisi business è l'analisi dei log Web per comprendere il modello delle richieste degli utenti in base alle impostazioni locali in tutto il mondo o di aree di origine e il volume. Questo tipo di analisi migliora la comprensione di roadmap dei prodotti, tra cui i piani di localizzazione e campagne di marketing del cliente. I log vengono generati da applicazioni Web, i dispositivi di rete, sistemi operativi e qualsiasi tipo di dispositivi intelligenti o programmabili. Flussi di dati, ad esempio log degli errori, clickstream strumentazione e log del server Web, possono accumularsi facilmente con la frequenza di gigabyte o terabyte alla settimana. I log Web possono accumularsi in qualsiasi formato di archiviazione, tra cui SQL Azure, archiviazione Blob di Azure, il servizio di archiviazione semplice Amazon (S3) e in locale e i database Oracle. L'analisi di questi log in modo rapido ed efficiente per individuare tendenze e problemi di sistema consente alle società comprendere l'utilizzo al cliente una migliore e, infine, l'unità di coinvolgere i clienti e la soddisfazione.

È facile memorizzare questi registri Web nell'archivio di ADL, è possibile aumentare o ridurre per archiviare petabyte di dati. Durante il provisioning di un account di archiviazione ADL, nessun parametro di ridimensionamento è necessari, ovvero l'account cresce semplicemente in base alla dimensione dei file caricati. Poiché si paga solo per ciò che viene effettivamente archiviato, il servizio è conveniente e la mancanza di correggere i limiti su account o dimensioni del file, oltre a funzionalità di velocità effettiva di grandi dimensioni, lo rendono ideale per l'esecuzione di analisi di Big Data. Inoltre, non è necessario riscrivere il codice o spostare i dati in una piattaforma di archiviazione diversi, come le dimensioni dei dati archiviati aumentano o diminuiscono.

L'analisi e aggregazione dei log Web in base a determinate partizioni, ad esempio area sono attività che consentono un elevato grado di parallelismo. La soluzione ideale è dispongono di subset di record affidato ai singoli server che può analizzare, trasformare e riepilogare i record. Quindi, questi risultati parziali vengono uniti in più fasi parallele finché non viene creato il set di dati aggregati finale. Gestire manualmente questo processo è molto complessa e soggetta a esecuzione ottimale in base a informazioni incomplete sul sistema e la forma di modifica dei dati dal giorno per giorno. Tuttavia, questo è esattamente ADL analisi e il linguaggio SQL U operazioni automaticamente. U-SQL consente di esprimere le aggregazioni di destinazione in una sintassi dichiarativa simile a SQL query che non è necessario specificare le direttive di parallelismo. Il compilatore e quindi Utilità di pianificazione di scoprire il grado di parallelismo inerente il processo e allocare risorse in base alle parallelismo e gli eventuali limiti specificati per l'utilizzo delle risorse massimo. Utilizzando ADF, è possibile creare facilmente backup di una pipeline specificando tali attività U-SQL; connetterle con altre serie di attività. aggiungere le attività per spostare i dati dai server Web per ADL nell'archivio dati. creare una pianificazione regolare elaborazione dei dati. La semplicità di creazione di pipeline e componenti è possibile che concentrarsi sulla logica di business anziché su come ottimizzare l'elaborazione e archiviazione di grandi set di dati.

Guida alla configurazione

È necessario innanzitutto creare gli account ADL archivio e analisi e il provisioning di una data factory. Questa operazione viene eseguita tramite il portale di gestione di Azure. Un account di analisi ADL è l'entità che consentono di raggruppare e gestire le query e i programmi eseguiti per eseguire analisi di Big Data. È possibile gestire la fatturazione associando l'account con sottoscrizioni diverse e scegliere i livelli di prezzo. Sono disponibili opzioni per l'account con le altre risorse per motivi di rilevamento di raggruppamento. È anche possibile scegliere l'area del Data Center in cui risiede l'account, che può essere utile per la gestione di prossimità ai dati locali.

Il servizio Archivio ADL è un servizio per l'archiviazione dei dati che è possibile accedere da sistemi conformi a HDFS, tra cui applicazioni business intelligence (BI) in locale e strumenti. Il programma di installazione è molto semplice e non è necessario specificare i limiti in fase di installazione. Come con il servizio di analisi, un'opzione importante è l'area geografica in cui si desidera i dati contenuti. Nel caso di archiviazione dei dati, può essere molto importante in quanto potrebbe essere presenti i requisiti relativi alle persone la conformità delle aziende per la memorizzazione dei dati sui cittadini dell'area. Account ADL archivio può essere creato separatamente e utilizzato con altri servizi, ma il caso più comune consiste nel creare un account in base alle analisi ADL. Figura 1 viene visualizzata la schermata per la creazione di un account ADL. Fornire un nome per l'account e scegliere la sottoscrizione, gruppo di risorse e area. L'opzione Crea nuovo archivio Lake dati consente di creare un nuovo archivio nello stesso momento e con le stesse opzioni dell'account di analisi.

Creazione di account ADL nel portale di gestione di Azure
Figura 1 la creazione di account ADL nel portale di gestione di Azure

In questo esempio, i dati di log Web vengono archiviati in archiviazione di Azure, che consente di archiviare dati blob in Azure. È inoltre possibile creare l'archiviazione di Azure tramite il portale. Se si utilizza un'applicazione Web di Azure o un sito Web ospitato altrove, il recupero dei dati in archiviazione di Azure è semplice e pertanto che avrà durabilità e disponibilità elevata. I dati di log Web di esempio utilizzati nell'esempio sono reperibile in bit.ly/1ONi8c5.

Figura 2 viene illustrato come è possibile eseguire il provisioning data factory di Azure. Come si può notare, il processo di installazione di questi servizi basati su cloud è molto semplice. Non è necessario utilizzare la stessa area geografica come i servizi ADL, della data factory in grado di funzionare con servizi in qualsiasi area.

Provisioning di una Data Factory di Azure
Figura 2 Provisioning Data Factory di Azure

Data factory sono una combinazione di archivi dati, i servizi collegati e pipeline. Archivi dati e i servizi collegati sono definizioni di entità esterne che in genere esiste di fuori di ADF. Le pipeline sono un raggruppamento logico di attività nel file ADF. Vengono utilizzati per raggruppare le attività in un'unità che insieme eseguono un'operazione. Questo verrà illustrato più dettagliatamente quando verranno esaminate le impostazione della data factory per l'analisi dei blog.

È possibile creare queste entità utilizzando il portale di gestione o Visual Studio. Nel portale, sotto la visualizzazione di Data Factory, consente di selezionare i singoli componenti di una data factory dal tipo di un'opzione di creare e distribuire e fornisce i frammenti di codice JSON che può essere modificati direttamente e pubblicati (vedere Figura 3). In alternativa, è possibile sfruttare gli strumenti ADF per Visual Studio e utilizzare un formato di progetto per identificare e definire ognuno dei componenti della data factory (Figura 4). Può quindi essere pubblicato anche il progetto per creare queste entità della data factory in Azure.

Creare e distribuire una Data Factory mediante l'Editor Web
Figura 3 creare e distribuire una Data Factory mediante l'Editor Web

Creare e distribuire una Data Factory mediante il plug-in di Visual Studio
Figura 4 creare e distribuire una Data Factory mediante il plug-in di Visual Studio

Lo spostamento dei dati di Azure Data Lake Store

Il primo passaggio nello scenario di analisi di log Web consiste nello spostamento dei dati all'archivio ADL. È possibile spostare dati all'archivio ADL utilizzando l'attività di copia in una pipeline di ADF. Per eseguire l'operazione di copia, è necessario creare servizi collegati ADF, set di dati e pipeline. I servizi collegati in ADF definiscono le informazioni necessarie per connettersi a risorse esterne. I servizi collegati vengono utilizzati per due scopi in Data Factory. Il primo è per rappresentare un archivio dati, incluso, ma non è limitato a un Server SQL locale, Oracle database, condivisione file o account di archiviazione blob di Azure. La seconda è per rappresentare una risorsa di elaborazione che può ospitare l'esecuzione di un'attività. Ad esempio, l'attività HDInsight Hive viene eseguita in un cluster Hadoop di HDInsight. In questo caso, è necessario creare due servizi collegati, uno corrispondente all'account di archiviazione di Azure e il secondo che rappresenta l'archivio ADL.

È inoltre necessario creare due set di dati ADF. Set di dati sono riferimenti logici per i dati in un account di archiviazione di Azure o ADL. Nessun utente vengono memorizzati in ADF stesso, quindi le definizioni di set di dati sono necessari per ADF identificare la struttura dei dati negli archivi dati esterni, tra cui tabelle, file, cartelle e documenti. Perché ADF non conosce la struttura dei dati, è necessario definirlo qui affinché il sistema sappia quali colonne e tipi aspettarsi. In questo caso, è necessario creare un set di dati corrispondente alla posizione dell'account di archiviazione di Azure che contiene i dati di log Web (origine) e un secondo set di dati corrispondente all'archivio ADL in cui si desidera spostare i registri Web (sink).

Infine, per la copia dei dati si verifica, è necessario creare una pipeline ADF che contiene un'attività di copia. Una pipeline ADF è un raggruppamento logico di attività, quali copia, che è possibile eseguire a intervalli diversi, dei dati e attività di script Hive, Pig o U-SQL che è possibile eseguire con regolarità, ovvero ogni 15 minuti, oraria, giornaliera, oppure ogni mese. L'attività di copia file ADF è molto potente e consente di copiare dati tra locale o cloud origini e sink che può avere schemi diversi. È possibile specificare alcuni parametri o accettare le impostazioni predefinite, per iniziare. Si dispone di un grande controllo e possono ottimizzare per elementi quali la pianificazione e i criteri per la gestione delle condizioni di errore.

Sebbene una pipeline è possibile eseguire una pianificazione ripetuta, nell'esempio corrente viene eseguita una sola volta per spostare i dati nell'archivio ADL. Il frammento JSON in Figura 5 viene illustrata una definizione per una pipeline denominata EgressBlobToDataLakePipeline. Questa pipeline contiene un'attività di copia per spostare i dati dall'archiviazione Blob di Azure per Azure Data Lake Store. È pianificato per essere 08/08/2015 e verrà eseguita solo una volta (la proprietà "start" e "end" per il periodo attivo della pipeline sono le stesse).

Figura 5 esempio EgressBlobToDataLakePipeline Pipeline definizione

{
  "name": "EgressBlobToDataLakePipeline",
  "properties": {
    "description": "Egress data from blob to azure data lake",
    "activities": [
      {
        "type": "Copy",
        "typeProperties": {
          "source": {
            "type": "BlobSource",
            "treatEmptyAsNull": true
          },
          "sink": {
            "type": "AzureDataLakeStoreSink",
            "writeBatchSize": 10000,
            "writeBatchTimeout": "00:10:00"
          }
        },
        "inputs": [
          {
            "name": "RawBlobDemoTable"
          }
        ],
        "outputs": [
          {
            "name": "DataLakeTable"
          }
        ],
        "policy": {
          "timeout": "10:00:00",
          "concurrency": 1,
          "executionPriorityOrder": "NewestFirst",
          "retry": 1
        },
        "scheduler": {
          "frequency": "Day",
          "interval": 1
        },
        "name": "EgressDataLake",
        "description": "Move data from blob to azure data lake"
      }
    ],
    "start": "2015-08-08T00:00:00Z",
    "end": "2015-08-08T01:00:00Z",
    "isPaused": false
  }
}

Quando l'attività di copia nella pipeline ADF viene completata correttamente, i log Web sono stati spostati dall'archiviazione Blob di Azure per Azure Data Lake Store. Ulteriori informazioni sulle attività di spostamento dei dati di Data Factory di Azure in bit.ly/1MNbIqZ, e ulteriori informazioni sull'utilizzo AzureDataLakeStore connettore file ADF in bit.ly/1MRwvVZ. È ora pronto per elaborare e analizzare i log Web.

Creazione di una Pipeline con attività U-SQL

Con i dati nell'archivio ADL, è ora possibile eseguire script t-SQL U nel servizio di analisi ADL per elaborare e analizzare i log Web. È possibile creare pipeline che verranno utilizzati i dati dall'archivio ADL, eseguire gli script SQL U nel servizio di analisi ADL come un passaggio di elaborazione e produrre l'output nell'archivio ADL. Le applicazioni a valle possono quindi utilizzare l'output elaborato direttamente dall'archivio ADL o è possibile scegliere di copiare i dati dall'archivio ADL Azure SQL Data warehouse se le applicazioni di Business Intelligence utilizza un warehouse di SQL come archivio di back-end.

Per elaborare i log Web, è necessario creare nuovamente servizi ADF collegati, set di dati e pipeline. È possibile riutilizzare il servizio Archivio ADL collegato creato nel passaggio precedente, se si desidera creare una sequenza di pipeline che non lo spostamento dei dati prima e quindi eseguire l'analisi dei dati eseguendo script U-SQL in un singolo file ADF. In alternativa, è possibile creare una nuova data factory che esegua l'analisi dei dati. La pipeline ADF in questo caso contiene un'attività di analisi dei dati di Azure U-SQL e viene eseguito uno script di U-SQL per determinare tutti gli eventi per le impostazioni locali di Gran Bretagna ("en-gb") e una data minore di "02/2012/19." Figura 6 contiene la definizione JSON per ComputeEventsByEnGbRegionPipeline, che definisce questa pipeline con un'attività di U-SQL per l'elaborazione di log Web.

Figura 6 esempio ComputeEventsByEnGbRegionPipeline Pipeline definizione

{
  "name": "ComputeEventsByEnGbRegionPipeline",
  "properties": {
    "description": "This is a pipeline to compute events for en-gb locale
      and date less than 2012/02/19.",
    "activities": [
      {
        "type": "DataLakeAnalyticsU-SQL",
        "typeProperties": {
          "scriptPath": "scripts\\usql\\SearchLogProcessing.txt",
          "scriptLinkedService": "StorageLinkedService",
          "degreeOfParallelism": 3,
          "priority": 100,
          "parameters": {
            "in": "/datalake/input/SearchLog.tsv",
            "out": "/datalake/output/Result.tsv"
          }
        },
        "inputs": [
          {
            "name": "DataLakeTable"
          }
        ],
        "outputs": [
          {
            "name": "EventsByEnGbRegionTable"
          }
        ],
        "policy": {
          "timeout": "06:00:00",
          "concurrency": 1,
          "executionPriorityOrder": "NewestFirst",
          "retry": 1
        },
        "scheduler": {
          "frequency": "Day",
          "interval": 1
        },
        "name": "EventsByRegion",
        "linkedServiceName": "AzureDataLakeAnalyticsLinkedService"
      }
    ],
    "start": "2015-08-08T00:00:00Z",
     "end": "2015-08-08T01:00:00Z",
    "isPaused": false
  }
}

Lo script SQL U in Figura 7 viene eseguita la pipeline si trova nella cartella di script/usql (scriptPathproperty nel JSON della pipeline in Figura 5) nell'archiviazione Blob di Azure account corrispondente a StorageLinkedService distribuito. I valori per @in e i parametri @out nello script vengono passati in modo dinamico da ADF utilizzando la sezione parametri nel JSON della pipeline (vedere la sezione "Parametri" in Figura 6). È inoltre possibile specificare altre proprietà, ad esempio degreeOfParallelism o priorità nella definizione di pipeline per i processi che eseguono il servizio di analisi ADL. Questo script SQL U elabora i log Web e restituisce tutti gli eventi per le impostazioni locali "en-gb" Data e minore di "2012/02/19."

Figura 7 SearchLogProcessing.txt di Script SQL U

@searchlog =
  EXTRACT UserId          int,
          Start           DateTime,
          Region          string,
          Query           string,
          Duration        int?,
          Urls            string,
          ClickedUrls     string
  FROM @in
  USING Extractors.Tsv(nullEscape:"#NULL#");
@rs1 =
   SELECT Start, Region, Duration
   FROM @searchlog
WHERE Region == "en-gb";
@rs1 =
  SELECT Start, Region, Duration
  FROM @rs1
  WHERE Start <= DateTime.Parse("2012/02/19");
OUTPUT @rs1  
  TO @out
    USING Outputters.Tsv(quoting:false, dateTimeFormat:null);

Pipeline di dati di monitoraggio

Il servizio Data Factory offre una vista affidabile e completa dei servizi di spostamento dei dati, di elaborazione e archiviazione. Consente di valutare l'integrità della pipeline di dati end-to-end, individuare i problemi rapidamente azioni correttive, se necessario. È possibile anche visivamente traccia della derivazione operativa e le relazioni tra di essi in qualsiasi origine e visualizzare una presentazione cronologica completa dell'esecuzione del processo, l'integrità di sistema e dipendenze da un singolo dashboard di monitoraggio. La vista diagramma ADF (vedere Figura 8) in Gestione portale Mostra la derivazione operativa di data factory. È possibile visualizzare due pipeline e i set di dati corrispondenti: EgressBlobToDataLakePipeline (copiare i dati dall'archiviazione Blob di Azure per Azure Data Lake Store) e ComputeEventsByEnGbRegionPipeline (tutti gli eventi per le impostazioni locali "en-gb" Data e minore di "19/02/2012").

Vista diagramma Factory di dati di Azure
Vista diagramma Factory di dati di Azure figura 8

La pipeline copia ADF in Figura 8 eseguita 08/08/2015, come i set di dati hanno una frequenza giornaliera e l'inizio e fine parametri nella definizione della pipeline sono entrambe impostate su 08/08/2015. Di conseguenza, le pipeline verranno eseguito solo per tale giorno ed eseguire lo script SQL U una sola volta. Ulteriori informazioni sulla pianificazione della pipeline ADF bit.ly/1lEVjuM. Fare clic su EventsByEnGbRegionTable nella vista diagramma per visualizzare l'esecuzione dell'attività corrispondente e il relativo stato (vedere Figura 9).

Visualizzazione attività di Azure Data Factory
Visualizzazione attività Factory di dati di Azure figura 9

È possibile vedere che l'attività di U-SQL in ComputeEventsByEnGbRegionPipeline ADF è stata eseguita correttamente e creato un file Result.tsv (/ datalake/output/Result.tsv) nell'account di AzureDataLakeStore. Il Result.tsv contiene tutti gli eventi di log Web per le impostazioni locali "en-gb" e una data minore di 19/02/2012. È inoltre possibile accedere al portale di gestione e utilizzare Esplora dati di Azure Data Lake per visualizzare il file Result.tsv generato (tornare a Figura 4) come parte dell'elaborazione del passaggio nell'archivio ADL.

È possibile trovare informazioni dettagliate sull'attività AzureDataLakeAnalyticsU SQL Azure Data factory a bit.ly/1WWtxuy.

Avvolgendo

Seguendo i passaggi descritti, è possibile creare una pipeline di dati end-to-end con Azure Data Factory che consente di spostare i dati di Azure Data Lake Store. Quindi, è possibile utilizzare uno script SQL U sul servizio Azure Data Lake Analytics per l'elaborazione di log Web. Il sistema risultante può aumentare in modo dinamico in base alle esigenze e può essere estesa per l'esecuzione su base periodica. È possibile un anche ulteriormente l'elaborazione a valle nell'output dei log Web e spostarlo in un altro archivio back-end in modo che i risultati possono essere utilizzati da Power BI o qualsiasi altra applicazione di Business Intelligence nell'organizzazione. Inoltre, se si preferisce, è possibile utilizzare i cmdlet PowerShell ADF, il SDK di c# e il plug-in di Visual Studio per compilare queste pipeline E2E Big Data mediante ADL. Azure Data Lake, insieme a Data Factory di Azure, prende le complessità associate normalmente Big Data nel cloud, assicurarsi che l'azienda attuali e futuro deve possono essere soddisfatti. In quest'area per ulteriori informazioni sulla risoluzione dei problemi di Big Data mediante servizi di Azure.


Gaurav Malhotraè un program manager del team Data Factory di Azure. Vive e lavora a Redmond, Washington. Contattarlo all'indirizzo gamal@microsoft.com.

Grazie ai seguenti esperti tecnici Microsoft per la revisione di questo articolo: Identificatore OMID Afnan, Kumar Andrea e Sachin Sheth
OMID Afnan è principal program manager del team di Azure Big Data lavorando implementazioni di sistemi di calcolo distribuito e correlati per gli sviluppatori delle catene dello strumento. Vive e lavora in Cina. Contattarlo all'indirizzo omafnan@microsoft.com.

Harish Kumar Agarwal è un program manager nel team Data Factory di Azure. È possibile contattarlo al hariag@microsoft.com.

Sachin Sheth è un program manager del team di Azure Data Lake. È possibile contattarlo all'indirizzo sachins@microsoft.com.