Кошерни прегради и кофи с пример

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

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

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

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

Например: -

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

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

  1. Създаване на Таблица всички състояния
create table all states(state string, District string,Enrolments string)

row format delimited

fields 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. Ще има 38 изхода на дялове в хранилището на HDFS с името на файла като име на състояние. Ще проверим това в тази стъпка. В тази стъпка виждаме изхода на 38 дяла в HDFS

Какво е Buckets?

Кофите в кошера се използват за разделяне на табличните данни на кошера в множество файлове или директории. използва се за ефективно запитване.

  • Данните, т.е. наличните в тези дялове, могат да бъдат разделени допълнително на кофи
  • Разделянето се извършва въз основа на хеша на определени колони, които сме избрали в таблицата.
  • Кофите използват някаква форма на алгоритъм за хеширане в задния край, за да прочетат всеки запис и да го поставят в кофи
  • В Hive трябва да активираме кофи с помощта на set.hive.enforce.bucketing=true;

Стъпка 1) Създаване на кофа, както е показано по-долу.

Кошерни кофи

От горната екранна снимка

  • Създаваме sample_bucket с имена на колони като first_name, job_id, отдел, заплата и държава
  • Създаваме 4 кофи тук.
  • След като данните се заредят автоматично, поставете данните в 4 кофи

Стъпка 2) Зареждане на данни в примерна кофа на таблица

Ако приемем, че „таблицата на служителите“ вече е създадена в системата Hive. В тази стъпка ще видим зареждането на таблицата с данни от служителите в групата за примерна таблица.

Преди да започнем да преместваме данните за служителите в кофи, уверете се, че те се състоят от имена на колони като first_name, job_id, отдел, заплата и държава.

Тук зареждаме данни в примерна кофа от таблицата на служителите.

Кошерни кофи

Стъпка 3)Показани са 4 кофи, създадени в Стъпка 1

Кошерни кофи

От горната екранна снимка можем да видим, че данните от таблицата на служителите се прехвърлят в 4 кофи, създадени в стъпка 1.