Condividi tramite


Metodologia di successo dell'implementazione di Synapse: valutare la progettazione del pool di Spark

Nota

Questo articolo fa parte della serie di articoli relativi al Successo dell'implementazione di Azure Synapse in base alla progettazione. Per una panoramica della serie vedere Successo dell'implementazione di Azure Synapse in base alla progettazione.

Si consiglia di valutare la progettazione del pool di Apache Spark per identificare i problemi e verificare che soddisfi le linee guida e i requisiti. Valutando la progettazione prima dell'inizio dello sviluppo di soluzioni, è possibile evitare blocchi e modifiche di progettazione impreviste. In questo modo si protegge la sequenza temporale e il budget del progetto.

Apache Spark in Synapse porta l'elaborazione parallela dei dati Apache Spark ad Azure Synapse Analytics. Questa valutazione fornisce indicazioni per comprendere se Apache Spark in Azure Synapse è la soluzione ottimale o meno per il carico di lavoro. Descrive i punti da considerare quando si valutano gli elementi di progettazione della soluzione che incorporano pool di Spark.

Analisi corrispondenza-scarto

Se si prevede di implementare i pool di Spark con Azure Synapse, assicurarsi innanzitutto che siano la soluzione ottimale per il carico di lavoro.

Considerare i punti seguenti.

  • Il carico di lavoro richiede ingegneria/preparazione dei dati?
    • Apache Spark funziona meglio per i carichi di lavoro che richiedono:
      • Pulizia dei dati.
      • Trasformare dati semistrutturati, ad esempio XML, in dati relazionali.
      • Trasformazione complessa di testo libero, ad esempio corrispondenza fuzzy o elaborazione del linguaggio naturale (NLP).
      • Preparazione dei dati per apprendimento automatico (ML).
  • Il carico di lavoro per ingegneria/preparazione dei dati comporta trasformazioni complesse o semplici? E si richiede un approccio con poco codice o nessun codice?
    • Per trasformazioni semplici, ad esempio la rimozione di colonne, la modifica dei tipi di dati della colonna o l’unione dei set di dati, si consiglia di creare una pipeline di Azure Synapse usando un'attività del flusso di dati.
    • Le attività del flusso di dati offrono un approccio con poco codice/nessun codice per preparare i dati.
  • Il carico di lavoro richiede ML sui Big Data?
    • Apache Spark funziona bene per set di dati di grandi dimensioni che verranno usati per ML. Se si usano set di dati di piccole dimensioni, si consiglia di usare Azure Machine Learning come servizio di calcolo.
  • Si prevede di eseguire l'esplorazione dei dati o l'analisi di query ad hoc sui Big Data?
    • Apache Spark in Azure Synapse fornisce l’esplorazione dei dati basata su Python/Scala/SQL/.NET. Tuttavia, se è necessaria un'esperienza Transact-SQL (T-SQL) completa, considerare di usare un pool SQL serverless.
  • Si ha un carico di lavoro Spark/Hadoop corrente ed è necessaria una piattaforma di Big Data unificata?
    • Azure Synapse offre una piattaforma analitica unificata per l'uso di Big Data. Sono disponibili pool di Spark e SQL serverless per query ad hoc e il pool SQL dedicato per la creazione di report e la gestione dei dati.
    • Il passaggio da un carico di lavoro Spark/Hadoop dall’infrastruttura locale (o da un altro ambiente cloud) può rendere necessario un refactoring.
    • Se si vuole trasferire in modalità lift-and-shift l'ambiente Apache Big Data dall'ambiente locale al cloud ed è necessario soddisfare un contratto di servizio (SLA) di ingegneria dei dati restrittivo, si consiglia di usare Azure HDInsight.

Considerazioni sull'architettura

Per garantire che il pool di Apache Spark soddisfi i requisiti di eccellenza operativa, prestazioni, affidabilità e sicurezza, ci sono delle aree chiave da convalidare nell'architettura.

Eccellenza operativa

Per l'eccellenza operativa valutare i punti seguenti.

Efficienza prestazionale

Per migliorare l'efficienza delle prestazioni valutare i punti seguenti.

  • Dimensioni e tipo di file: le dimensioni del file e il numero di file hanno un impatto sulle prestazioni. Progettare l'architettura per assicurarsi che i tipi di file siano riconducibili all'inserimento dati nativo con Apache Spark. Inoltre, preferire un minor numero di file di grandi dimensioni invece di molti file di piccole dimensioni.
  • Partizionamento: identifica se il partizionamento a livello di cartella e/o di file verrà implementato per il carico di lavoro. Le Partizioni di cartelle limitano la quantità di dati di ricerca e di lettura. Le Partizioni di file riducono la quantità di dati da ricercare all'interno del file, ma si applicano solo a formati di file specifici che devono essere considerati nell'architettura iniziale.

Affidabilità

Per l'affidabilità valutare i punti seguenti.

  • Disponibilità: i pool di Spark hanno un tempo di avvio da tre a quattro minuti. L'installazione di molte librerie potrebbe richiedere più tempo. Se si progettano carichi di lavoro di batch e di streaming, identificare il contratto di servizio per l'esecuzione del processo dalle informazioni di valutazione e determinare l'architettura più adatta alle proprie esigenze. Inoltre, tenere in considerazione che ogni esecuzione del processo crea un nuovo cluster del pool di Spark.
  • Checkpoint: il flusso dei dati Apache Spark ha un meccanismo di checkpoint predefinito. Il checkpoint consente al flusso di eseguire il ripristino dell'ultima voce elaborata in caso di errore in un nodo del pool.

Sicurezza

Per la sicurezza valutare i punti seguenti.

  • Accesso ai dati:si deve considerare l'accesso ai dati per l'account di Azure Data Lake Storage (ADLS) collegato all'area di lavoro di Synapse. Inoltre, determinare i livelli di sicurezza necessari per accedere ai dati che non si trovano nell'ambiente di Azure Synapse. Fare riferimento alle informazioni raccolte durante la fase di valutazione.
  • Rete: esaminare le informazioni di rete e i requisiti raccolti durante la valutazione. Se la progettazione prevede una rete virtuale gestita con Azure Synapse, considerare le implicazioni che questo requisito avrà su Apache Spark in Azure Synapse. Un'implicazione è l'impossibilità di usare Spark SQL durante l'accesso ai dati.

Passaggi successivi

Nell' articolo successivo nella serie “Success by design” di Azure Synapse viene descritto come valutare un piano di progetto del data warehouse moderno, prima di avviare il progetto.

Per altre informazioni sulle procedure consigliate vedere Materiale sussidiario su Apache Spark per Azure Synapse.