Bucketing

 

 

 

In Hive esiste una interessante caratteristica che consente di scomporre i dati su più files in HDFS. Questa viene chiamata Bucketing. In pratica HIVE è in grado di scomporre i dati in "contenitori" in maniera piuttosto randomica basandosi sui valori della colonna rispetto alla quale si imposta questa caratteristica. Viene calcolato un valore hash basato sui valori di colonna.Con il comando di creazione tabella che segue:

CREATE TABLE orders_bucketed (order_id INT, cust_id INT, order_date TIMESTAMP)  CLUSTERED BY (order_id) INTO 20 BUCKETS;

si stabilisce che i valori presenti nella colonna order_id vengono presi come riferimento per salvare i record di tabella in uno dei 20 buckets. Ciascun bucket conterrà quindi all'incirca il 5% dei record presenti nella tabella. Sfruttando questa impostazione si possono ottenere dei miglioramenti di performance nelle join se tutte le colonne delle tabelle vengono impostate a bucket.

 

 

Blogs network

Iscrizione alla newsletter

I agree with the Privacy e Termini di Utilizzo
Con l'iscrizione riceverai news sul mondo dell'IT e Big Data.
Back to Top