Pool di dati
I pool di flussi di dati possono essere utilizzati in molti batch di flussi di dati, flussi e carichi di lavoro di sessione da vari utenti contemporaneamente nello stesso tenant.
I pool offrono un meccanismo potente e flessibile per gestire in modo efficiente i carichi di lavoro batch, di streaming e di sessione basati su Spark tra più utenti all'interno dello stesso tenant. Progettati per supportare ambienti di produzione sensibili al tempo e scenari di sviluppo dinamici, i pool riducono i tempi di avvio delle applicazioni mantenendo un'infrastruttura di computazione preinizializzata.
Permettono l'isolamento dei carichi di lavoro di livello enterprise, garantendo che i lavori di produzione critici non siano influenzati dalle attività di sviluppo attraverso la segmentazione delle risorse dedicate. Il controllo dei costi è semplificato con criteri IAM capillari che limitano l'uso del pool agli utenti autorizzati o ad ambienti specifici. Allo stesso tempo, i meccanismi di accodamento intelligenti consentono l'invio di job a volumi elevati ottimizzando l'uso delle risorse.
I pool possono essere pianificati per l'avvio automatico entro finestre temporali definite e, infine, per l'arresto dopo un timeout sull'uso, allineando la disponibilità della computazione ai processi aziendali e riducendo al minimo i costi inattivi. Inoltre, l'automazione integrata gestisce perfettamente l'applicazione delle patch di sicurezza senza interrompere le applicazioni in esecuzione, rendendo i pool una scelta ideale per l'esecuzione sicura, scalabile e conveniente dei carichi di lavoro Spark.
I pool offrono una vasta gamma di funzionalità per vari casi d'uso, come ad esempio:
- Carichi di lavoro di produzione di grandi dimensioni sensibili al tempo con molti esecutori che richiedono tempi di avvio più rapidi in pochi secondi.
- I carichi di lavoro di produzione critici non vengono eseguiti dai carichi di lavoro di sviluppo dinamici perché le relative risorse possono essere separate in pool diversi.
- Controlla i costi e l'uso per lo sviluppo con il criterio IAM che ti consente di sottomettere le esecuzioni di Data Flow a pool specifici.
- È necessario elaborare un numero elevato di esecuzioni del flusso dati con un tempo di avvio inferiore.
- Il flusso di dati in coda viene eseguito in un pool per un uso efficiente delle risorse e un controllo dei costi.
- I carichi di lavoro vengono eseguiti solo in una finestra temporale specifica di un giorno che richiede l'avvio automatico di un pool in una pianificazione e l'arresto automatico in caso di inattività.
- Applicazione automatica di patch di sicurezza senza influire sulle esecuzioni o sulle risorse in un pool.
Un altro caso d'uso per il flusso di dati è la possibilità di preallocare (o riservare) i nodi con una configurazione speciale. Si tratta di risorse di dimensioni specifiche (o la relazione tra CPU e memoria) che sono rare nei data center che supportano la regione. I job che richiedono questa configurazione speciale in genere coinvolgono grandi volumi di dati e dimensioni di record che non possono essere facilmente distribuiti allocando più nodi all'esecuzione del job.
Per questi scenari, è pratico interrogare i data center nella regione per valutare la disponibilità di queste risorse. Gli esempi Oracle offrono un approccio semplice all'esame di tale capacità in vari contesti commerciali.
Configurazione di esecuzioni e applicazioni per l'utilizzo dei pool
Utilizzare i pool con applicazioni ed esecuzioni di Data Flow.
Sviluppo di applicazioni con un pool
Durante la sviluppo delle applicazioni, è possibile selezionare un pool con qualsiasi stato, ad eccezione di DELETED
, da aggiungere a un'applicazione. Selezionare solo le forme driver ed esecutore configurate nel pool Data Flow aggiunto all'applicazione.
Eseguire un'applicazione con un pool
Durante l'invio di un'esecuzione del flusso di dati, selezionare un pool in qualsiasi stato tranne DELETED
per aggiungere un'applicazione. Selezionare solo le forme driver ed esecutore configurate nel pool Data Flow aggiunto all'esecuzione.
Accodamento del flusso di dati con pool
È possibile sottomettere più esecuzioni alla coda del pool mentre le risorse di calcolo del pool vengono utilizzate da altre esecuzioni. Per impostazione predefinita, le esecuzioni vengono messe in coda per 20 minuti per attendere la disponibilità delle risorse nel pool. È possibile configurare il tempo di attesa nella coda impostando la configurazione Spark, spark.dataflow.acquireQuotaTimeout
, nelle opzioni avanzate Esecuzione flusso dati o Applicazione. Il valore di questa configurazione può essere formattato come 1h | 30m | 45min e così via.
Mentre un'esecuzione del flusso di dati è in attesa nella coda che le risorse detenute dalle esecuzioni attive nel pool siano disponibili, si verifica un avvio a freddo.
Avvio del pool di flussi dati dall'esecuzione
I pool di flussi di dati arrestati o accettati possono anche essere avviati sottomettendo un'esecuzione con un pool.
Esegue l'attesa che il pool diventi attivo per l'avvio. Si consiglia di utilizzare la funzione di accodamento del pool per evitare i timeout di esecuzione. L'annullamento e l'arresto dell'esecuzione non interrompono il pool.
Sostituzione dell'ID pool in un'esecuzione o in un'applicazione
-
Quando si aggiunge un pool in un'applicazione e in un'esecuzione, viene utilizzato il pool aggiunto all'esecuzione.
-
Quando si aggiunge un pool in un'applicazione, ma non in un'esecuzione, durante la sottomissione viene utilizzato il pool di esecuzione aggiunto all'applicazione.
-
Quando si aggiunge un pool in un'esecuzione, ma non in un'applicazione, quando si sottomette l'esecuzione viene utilizzato il pool aggiunto all'esecuzione.
-
Ciò consente di utilizzare più pool in esecuzioni diverse della stessa applicazione.
Limiti
- I limiti del flusso di dati a livello di tenant e le quote del compartimento sono ancora applicabili durante la creazione o l'avvio dei pool.
- Massimo 1000 nodi in totale di tutte le configurazioni in un pool.
- Non sono previsti limiti al numero di pool che è possibile creare e utilizzare. Un amministratore può scrivere un criterio di quota del compartimento per limitare un utente, un gruppo di utenti o un compartimento per controllare la forma e il numero di nodi configurati in un pool.