Hive Partitions & Кофи с пример

Съдържание:

Anonim

Таблици, дялове и групи са частите от моделирането на данни на Hive.

Какво е дялове?

Hive Partitions е начин за организиране на таблици в дялове чрез разделяне на таблици на различни части въз основа на дяловите ключове.

Разделянето е полезно, когато таблицата има един или повече дялове. Разделителните ключове са основни елементи за определяне как данните се съхраняват в таблицата.

Например : -

„Клиент с някои данни за електронна търговия, които принадлежат към операции в Индия, при които всяка държава (38 държави) работи като цяло. Ако вземем колона за състояние като ключ за дял и извършим дялове на тези данни от Индия като цяло, можем за да получите Брой дялове (38 дяла), който е равен на броя на състоянията (38), присъстващи в Индия, така че данните за всяко състояние могат да се разглеждат отделно в таблиците на дяловете.

Примерен кодов фрагмент за дялове

  1. Създаване на таблица за всички състояния
create table all states(state string, District string,Enrolments string)row format delimitedfields terminated by ',';
  1. Зареждане на данни в създадената таблица във всички състояния
Load data local inpath '/home/hduser/Desktop/AllStates.csv' into table allstates;
  1. Създаване на таблица на дяловете
create table state_part(District string,Enrolments string) PARTITIONED BY(state string);
  1. За дял трябва да зададем това свойство

    set hive.exec.dynamic.partition.mode=nonstrict
  2. Зареждане на данни в таблица на дяловете
INSERT OVERWRITE TABLE state_part PARTITION(state)SELECT district,enrolments,state from allstates;
  1. Действителна обработка и формиране на таблици на дялове на базата на състояние като дялов ключ
  2. Ще има 38 изхода на дялове в HDFS съхранение с име на файла като име на държавата. Ще проверим това в тази стъпка

Следващите екранни снимки ще покажат изпълнението на гореспоменатия код

От горния код правим следните неща

  1. Създаване на таблица за всички държави с имена от 3 колони, като щат, област и записване
  2. Зареждане на данни в таблицата всички състояния
  3. Създаване на таблица на дялове със състояние като дял ключ
  4. В тази стъпка Задаване на режим на разделяне като не-строг (Този режим ще активира режим на динамично разделяне)
  5. Зареждане на данни в дял tablestate_part
  6. Действителна обработка и формиране на таблици на дялове на базата на състояние като дялов ключ
  7. В хранилището на 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.