Scegliere una tecnologia di elaborazione batch in Azure

Le soluzioni Big Data spesso usano processi batch a esecuzione prolungata per filtrare, aggregare e preparare i dati per l'analisi. In genere, questi processi comportano la lettura dei file di origine dall'archiviazione scalabile (ad esempio HDFS, Azure Data Lake Store e Archiviazione di Azure), l'elaborazione e la scrittura dell'output in nuovi file nell'archiviazione scalabile.

Il requisito fondamentale di tali motori di elaborazione batch consiste nell'aumentare le istanze dei calcoli per gestire un volume elevato di dati. A differenza dell'elaborazione in tempo reale, è previsto che l'elaborazione batch abbia latenze (il tempo tra l'inserimento dei dati e il calcolo di un risultato) che misurano in minuti e ore.

Opzioni tecnologiche per l'elaborazione batch

Azure Synapse Analytics

Azure Synapse è un sistema distribuito progettato per eseguire analisi su dati di grandi dimensioni. Supporta l'elaborazione parallela su larga scala (MPP), che può essere usata per l'esecuzione di analisi ad alte prestazioni. Prendere in considerazione Azure Synapse quando si hanno grandi quantità di dati (più di 1 TB) ed è in esecuzione un carico di lavoro di analisi che può trarre vantaggio dal parallelismo.

Azure Data Lake Analytics.

Data Lake Analytics è un servizio per processi di analisi su richiesta. È ottimizzato per l'elaborazione distribuita di set di dati di grandi dimensioni archiviati in Azure Data Lake Store.

  • Linguaggi: U-SQL (con estensioni Python, R e C#).
  • Integrazione con Azure Data Lake Store, BLOB del servizio di archiviazione di Azure, database SQL di Azure e Azure Synapse.
  • Modello di determinazione prezzi per processo.

HDInsight

HDInsight è un servizio Hadoop gestito. Usarlo per distribuire e gestire cluster Hadoop in Azure. Per l'elaborazione batch, è possibile usare Spark, Hive, Hive LLAP e MapReduce.

  • Linguaggi: R, Python, Java, Scala e SQL
  • Autenticazione Kerberos con Active Directory, controllo degli accessi basato su Apache Ranger
  • Offre il controllo completo del cluster Hadoop

Azure Databricks

Azure Databricks è una piattaforma di analisi basata su Apache Spark. Si può considerare come una soluzione "Spark come servizio". Si tratta del modo più semplice per usare Spark nella piattaforma Azure.

  • Linguaggi: R, Python, Java, Scala e Spark SQL.
  • Tempi di avvio del cluster rapidi, terminazione e ridimensionamento automatici.
  • Gestione automatica del cluster Spark.
  • Integrazione predefinita con Archiviazione BLOB di Azure, Azure Data Lake Storage (ADLS), Azure Synapse e altri servizi. Vedere Data Sources (Origini dati).
  • Autenticazione utente con Microsoft Entra ID.
  • Notebook basati sul Web per la collaborazione e l'esplorazione dei dati.
  • Supporto di cluster abilitati per GPU.

Criteri di scelta principali

Per limitare le possibilità di scelta, rispondere prima di tutto a queste domande:

  • Si vuole usare un servizio gestito anziché gestire direttamente i propri server?

  • Si desidera creare la logica di elaborazione batch in modo dichiarativo o imperativo?

  • L'elaborazione batch verrà eseguita in burst? In caso affermativo, prendere in considerazione le opzioni che consentono la terminazione automatica del cluster o quelle con un modello di determinazione prezzi per processo batch.

  • È necessario eseguire query su archivi dati relazionali insieme all'elaborazione batch, ad esempio, per cercare i dati di riferimento? In caso affermativo, prendere in considerazione le opzioni che consentono l'esecuzione di query di archivi relazionali esterni.

Matrice delle funzionalità

Le tabelle seguenti contengono un riepilogo delle differenze principali in termini di funzionalità.

Funzionalità generali

Funzionalità Azure Data Lake Analytics. Azure Synapse HDInsight Azure Databricks
Servizio gestito 1
Archivio dati relazionale No
Modello di determinazione prezzi Per processo batch Per ora di cluster Per ora di cluster Unità Databricks2 + ora di cluster

[1] Con configurazione manuale.

[2] Un'unità Databricks è un'unità di capacità di elaborazione all'ora.

Funzionalità

Funzionalità Azure Data Lake Analytics. Azure Synapse HDInsight con Spark HDInsight con Hive HDInsight con Hive LLAP Azure Databricks
Scalabilità automatica No No
Granularità della scalabilità orizzontale Per processo Per cluster Per cluster Per cluster Per cluster Per cluster
Memorizzazione nella cache dei dati in memoria No No
Query da archivi relazionali esterni No No No
Autenticazione Microsoft Entra ID SQL/Microsoft Entra ID No Microsoft Entra ID1 Microsoft Entra ID1 Microsoft Entra ID
Controllo No 1 1
Sicurezza a livello di riga No 2 No 1 1
Supporto dei firewall 3 3
Maschera dati dinamica No No 1 1

[1] Richiede l'uso di un cluster HDInsight aggiunto al dominio.

[2] Solo predicati di filtro. Vedere Sicurezza a livello di riga

[3] Quando è usato all'interno di una rete virtuale di Azure.

Collaboratori

Questo articolo viene gestito da Microsoft. Originariamente è stato scritto dai seguenti contributori.

Autore principale:

Passaggi successivi