Таблици, дялове и групи са частите от моделирането на данни на Hive.
Какво е дялове?
Hive Partitions е начин за организиране на таблици в дялове чрез разделяне на таблици на различни части въз основа на дяловите ключове.
Разделянето е полезно, когато таблицата има един или повече дялове. Разделителните ключове са основни елементи за определяне как данните се съхраняват в таблицата.
Например : -
„Клиент с някои данни за електронна търговия, които принадлежат към операции в Индия, при които всяка държава (38 държави) работи като цяло. Ако вземем колона за състояние като ключ за дял и извършим дялове на тези данни от Индия като цяло, можем за да получите Брой дялове (38 дяла), който е равен на броя на състоянията (38), присъстващи в Индия, така че данните за всяко състояние могат да се разглеждат отделно в таблиците на дяловете.
Примерен кодов фрагмент за дялове
- Създаване на таблица за всички състояния
create table all states(state string, District string,Enrolments string)row format delimitedfields terminated by ',';
- Зареждане на данни в създадената таблица във всички състояния
Load data local inpath '/home/hduser/Desktop/AllStates.csv' into table allstates;
- Създаване на таблица на дяловете
create table state_part(District string,Enrolments string) PARTITIONED BY(state string);
-
За дял трябва да зададем това свойство
set hive.exec.dynamic.partition.mode=nonstrict
- Зареждане на данни в таблица на дяловете
INSERT OVERWRITE TABLE state_part PARTITION(state)SELECT district,enrolments,state from allstates;
- Действителна обработка и формиране на таблици на дялове на базата на състояние като дялов ключ
- Ще има 38 изхода на дялове в HDFS съхранение с име на файла като име на държавата. Ще проверим това в тази стъпка
Следващите екранни снимки ще покажат изпълнението на гореспоменатия код
От горния код правим следните неща
- Създаване на таблица за всички държави с имена от 3 колони, като щат, област и записване
- Зареждане на данни в таблицата всички състояния
- Създаване на таблица на дялове със състояние като дял ключ
- В тази стъпка Задаване на режим на разделяне като не-строг (Този режим ще активира режим на динамично разделяне)
- Зареждане на данни в дял tablestate_part
- Действителна обработка и формиране на таблици на дялове на базата на състояние като дялов ключ
- В хранилището на HDFS ще има 38 изхода за дял с име на файл като име на състояние. Ще проверим това в тази стъпка. В тази стъпка виждаме 38-те изхода на дялове в HDFS
Какво е кофите?
Кофите в кошера се използват при разделяне на данните от таблицата на кошера в множество файлове или директории. той се използва за ефективно запитване.
- Данните, т.е. налични в тези дялове, могат да бъдат разделени допълнително на групи
- Разделянето се извършва въз основа на хеш на определени колони, които сме избрали в таблицата.
- Кофите използват някаква форма на алгоритъм за хеширане отзад, за да прочетат всеки запис и да го поставят в групи
- В Hive трябва да активираме групи с помощта на set.hive.enforce.bucketing = true;
Стъпка 1) Създаване на кофа, както е показано по-долу.
От горния екран
- Създаваме sample_bucket с имена на колони като first_name, job_id, отдел, заплата и държава
- Създаваме 4 кофи тук.
- След като данните се заредят автоматично, поставете данните в 4 групи
Стъпка 2) Зареждане на данни в таблица с примерни таблици
Ако приемем, че „таблицата на служителите“ вече е създадена в системата на кошера. В тази стъпка ще видим зареждането на данните от таблицата на служителите в таблицата с проби от таблица.
Преди да започнем да преместваме данните за служителите в групи, уверете се, че те се състоят от имена на колони като first_name, job_id, отдел, заплата и държава.
Тук зареждаме данни в примерна група от таблицата на служителите.
Стъпка 3) Показване на 4 кофи, създадени в Стъпка 1
От горната екранна снимка виждаме, че данните от таблицата на служителите се прехвърлят в 4 групи, създадени в стъпка 1.