Tabulky, oddíly a segmenty jsou součástí datového modelování Úlu.
Co jsou oddíly?
Hive Partitions je způsob, jak uspořádat tabulky do oddílů rozdělením tabulek do různých částí na základě klíčů oddílů.
Oddíl je užitečný, když má tabulka jeden nebo více klíčů oddílu. Klávesy oddílů jsou základními prvky určujícími, jak jsou data uložena v tabulce.
Například : -
„Klient, který má některá data elektronického obchodu, která patří do indických operací, ve kterých jsou operace každého státu (38 států) zmíněny jako celek. Pokud vezmeme sloupec stavu jako klíč oddílu a provedeme oddíly na těchto indických datech jako celku, můžeme získat počet oddílů (38 oddílů), který se rovná počtu států (38) přítomných v Indii. Takový, že údaje o každém stavu lze zobrazit samostatně v tabulkách oddílů.
Ukázkový fragment kódu pro oddíly
- Vytvoření tabulky všech stavů
create table all states(state string, District string,Enrolments string)row format delimitedfields terminated by ',';
- Načítání dat do vytvořené tabulky všechny stavy
Load data local inpath '/home/hduser/Desktop/AllStates.csv' into table allstates;
- Vytvoření tabulky oddílů
create table state_part(District string,Enrolments string) PARTITIONED BY(state string);
-
U oddílu musíme tuto vlastnost nastavit
set hive.exec.dynamic.partition.mode=nonstrict
- Načítání dat do tabulky oddílů
INSERT OVERWRITE TABLE state_part PARTITION(state)SELECT district,enrolments,state from allstates;
- Skutečné zpracování a tvorba tabulek oddílů na základě stavu jako klíče oddílu
- V úložišti HDFS bude 38 výstupů oddílů s názvem souboru jako názvem stavu. Zkontrolujeme to v tomto kroku
Následující snímky obrazovky ukážou provedení výše uvedeného kódu
Z výše uvedeného kódu děláme následující věci
- Vytvoření tabulky všech stavů se 3 názvy sloupců, jako je stát, okres a zápis
- Načítání dat do tabulky všech stavů
- Vytvoření tabulky oddílů se stavem jako klíčem oddílu
- V tomto kroku Nastavení režimu oddílu jako nestriktního (Tento režim aktivuje režim dynamického oddílu)
- Načítání dat do oddílu tablestate_part
- Skutečné zpracování a tvorba tabulek oddílů na základě stavu jako klíče oddílu
- V úložišti HDFS bude 38 výstupů oddílů s názvem souboru jako názvem stavu. Zkontrolujeme to v tomto kroku. V tomto kroku vidíme 38 výstupů oddílu v HDFS
Co jsou kbelíky?
Buckets in hive is used in segregating of hive table-data into multiple files or directories. používá se pro efektivní dotazování.
- Data, tj. Přítomná v těchto oddílech, lze dále rozdělit na segmenty
- Rozdělení se provádí na základě hash jednotlivých sloupců, které jsme vybrali v tabulce.
- Kbelíky používají nějakou formu hashovacího algoritmu na konci ke čtení každého záznamu a jeho umístění do kbelíků
- V Hive musíme povolit segmenty pomocí set.hive.enforce.bucketing = true;
Krok 1) Vytvoření segmentu, jak je znázorněno níže.
Z výše uvedeného snímku obrazovky
- Vytváříme sample_bucket s názvy sloupců jako first_name, job_id, department, plate and country
- Vytváříme 4 kbelíky tam.
- Jakmile se data automaticky načtou, vložte data do 4 kbelíků
Krok 2) Načítání dat do kbelíku se vzorky tabulky
Za předpokladu, že "Tabulka zaměstnanců" již byla vytvořena v systému Úlu. V tomto kroku uvidíme načtení tabulky Data od zaměstnanců do ukázkové tabulky.
Než začneme přesouvat data zaměstnanců do segmentů, ujistěte se, že se skládají z názvů sloupců, jako je křestní jméno, job_id, oddělení, plat a země.
Zde načítáme data do ukázkového kbelíku z tabulky zaměstnanců.
Krok 3) Zobrazení 4 segmentů, které byly vytvořeny v kroku 1
Z výše uvedeného snímku obrazovky vidíme, že data z tabulky zaměstnanců jsou přenesena do 4 segmentů vytvořených v kroku 1.