NetflixNews

Netflix e l’ottimizzazione dell’archiviazione del data warehouse

Netflix e l'ottimizzazione dell'archiviazione del data warehouse

In Netflix, il data warehouse contiene centinaia di petabyte di dati archiviati in AWS S3 e ogni giorno importiamo e creiamo petabyte aggiuntivi. 

Su questa scala, si possono ottenere una quantità significativa di prestazioni e vantaggi in termini di costi ottimizzando il layout di archiviazione (record, oggetti, partizioni) man mano che i dati arrivano nel nostro magazzino.

Ci sono diversi vantaggi di tali ottimizzazioni come risparmio di spazio di archiviazione, tempi di query più rapidi, elaborazione a valle più economica e aumento della produttività degli sviluppatori rimuovendo ETL aggiuntivi scritti solo per migliorare le prestazioni delle query. 

D’altra parte, queste stesse ottimizzazioni devono essere sufficientemente economiche da giustificare i propri costi di elaborazione rispetto ai guadagni che portano.

Immagine per post

Abbiamo creato AutoOptimize per ottimizzare in modo efficiente e trasparente il layout di archiviazione dei dati e dei metadati, massimizzandone i vantaggi in termini di costi e prestazioni.

Casi d’uso

Ci sono diversi casi d’uso in cui un sistema come AutoOptimize può apportare tonnellate di valore. 

Alcune delle ottimizzazioni sono prerequisiti per un data warehouse ad alte prestazioni. 

A volte i Data Engineer scrivono ETL a valle sui dati ingeriti per ottimizzare i layout di dati / metadati per rendere altri processi ETL più economici e veloci. 

L’obiettivo di AutoOptimize è centralizzare tali ottimizzazioni che rimuoveranno il lavoro duplicato e lo faranno in modo più efficiente rispetto agli ETL vanilla.

Unisci

Quando i dati arrivano nel data warehouse tramite sistemi di acquisizione dati in tempo reale, sono disponibili in diverse dimensioni. Ciò si traduce in un numero sempre crescente di piccoli file nelle partizioni. L’unione di questi numerosi file più piccoli in una manciata di file più grandi può rendere più veloce l’elaborazione delle query e ridurre lo spazio di archiviazione.

Ordinare

I record e i file preordinati nelle partizioni rendono le query più veloci e risparmiano una notevole quantità di spazio di archiviazione poiché consente un livello di compressione più elevato. Avevamo già alcune tabelle esistenti con fasi di ordinamento per ridurre l’archiviazione delle tabelle e migliorare le prestazioni delle query a valle.

Compattazione

I moderni data warehouse consentono l’aggiornamento e l’eliminazione di record preesistenti. 

Iceberg prevede di abilitarlo sotto forma di file delta. Nel tempo, il numero di file delta cresce e compattarli nei file di origine può rendere le operazioni di lettura più ottimali.

Ottimizzazione dei metadati in Netflix data warehouse

Il partizionamento fisico è separato dal partizionamento logico mantenendo una mappa delle posizioni dei file nei metadati. 

Questo ci consente di aggiungere ulteriori indici nei metadati per rendere le query di punti più ottimali. Possiamo anche riorganizzare i metadati per rendere la scansione dei file molto più veloce.

Principi di progettazione

Affinché AutoOptimize ottimizzi in modo efficiente il layout dei dati, abbiamo effettuato le seguenti scelte:

  1. Ottimizzazione just in time vs. ottimizzazione periodica Ottimizza
    un dato set di dati solo quando richiesto (in base a ciò che è cambiato) invece di esecuzioni periodiche cieche.
  2. Ottimizzazione essenziale rispetto a quella completa
    Consenti agli utenti di ottimizzare al punto di diminuire i rendimenti invece di un’impostazione binaria. Ad esempio, consentiamo a una partizione di avere alcuni piccoli file invece di unire sempre file di dimensioni perfette.
  3. Sostituzione minima e sovrascrittura completa
    Sostituisci solo la quantità minima richiesta di file invece di una sovrascrittura completa.

Questi principi riducono l’utilizzo delle risorse essendo più efficienti ed efficaci riducendo la latenza end-to-end nell’elaborazione dei dati.

Oltre a questi principi, ci sono alcune altre considerazioni di progettazione da supportare e abilitare:

  • Multi-tenancy con priorità di database e tabelle.
  • Ottimizzazione sia automatica (basata sugli eventi) che manuale (ad hoc).
  • Trasparenza per gli utenti finali.

Design di alto livello in Netflix data warehouse

Immagine per post
Ottimizzazione automatica del design di alto livello

AutoOptimize è suddiviso in 2 sottosistemi (servizio e attori) per separare le decisioni dalle azioni ad alto livello. Questo disaccoppiamento delle responsabilità ci aiuta a progettare, gestire, utilizzare e scalare i sottosistemi in modo indipendente.

Servizio di ottimizzazione automatica

Il servizio decide. Decide cosa fare e quando farlo in risposta a un evento in arrivo. 

È responsabile dell’ascolto degli eventi e delle richieste in arrivo e dell’assegnazione delle priorità a diverse tabelle e azioni per utilizzare al meglio le risorse disponibili.

Il lavoro svolto nel servizio può essere ulteriormente suddiviso nei seguenti 3 passaggi:

Osserva: ascolta i cambiamenti nel magazzino quasi in tempo reale. Inoltre, rispondi alle richieste ad hoc create manualmente dagli utenti finali.

Orienta: raccoglie i parametri di ottimizzazione per una particolare tabella modificata. Inoltre, regola l’allocazione delle risorse per la tabella o il numero di attori a seconda del backlog.

Decidere: determinare l’azione con il valore più alto con i parametri corretti per questa particolare modifica e quando agire a seconda di come l’azione rientra nella priorità globale in tutte le tabelle e le azioni.

In AutoOptimize, il servizio è un cluster di applicazioni Java (Spring Boot) che utilizzano Redis per mantenere gli stati organizzati in Netflix data warehouse.

Playblog.it

Netflix        News        Serie TV        Film        Amine        

Apple        Android        Tecnologia        Prime Video        Offerte

Seguici su Facebook      Twitter      Pinterest
Seguici su TelegramNetflixOfferte Amazon PrimePrime Video

Scarica la nostra App

app per iphone ios App Netflix news app per android

POST CORRELATI

Dead to me – Le novità per la stagione 2

Hit & Run: il finale spiegato con il cliffhanger della prima stagione

Alessio PlayBlog.it

Criminal: Regno Unito arriva oggi la seconda stagione su Netflix

Lascia un commento