Форматҳои файл дар маълумоти калон: барномаи мухтасари таълимӣ

Форматҳои файл дар маълумоти калон: барномаи мухтасари таълимӣ
Обу ҳаво аз ҷониби Ремарин

гурӯҳ Mail.ru ҳалли абрӣ пешниҳодҳо тарҷумаи мақола муҳандис Раҳул Бхатиа аз Clairvoyant дар бораи кадом форматҳои файл дар додаҳои калон мавҷуданд, хусусиятҳои маъмултарини форматҳои Hadoop кадомҳоянд ва кадом форматро истифода бурдан беҳтар аст.

Чаро форматҳои гуногуни файл лозиманд?

Монеаи асосии кор барои барномаҳои HDFS ба монанди MapReduce ва Spark вақти ҷустуҷӯ, хондан ва навиштани маълумот мебошад. Ин мушкилот бо мушкилии идоракунии маҷмӯи додаҳои калон, агар мо схемаи таҳаввулшаванда дошта бошем, на як схемаи собит, ё агар баъзе маҳдудиятҳои нигоҳдорӣ вуҷуд дошта бошанд.

Коркарди маълумоти калон сарбориро ба зерсистемаи нигаҳдорӣ зиёд мекунад - Hadoop барои ноил шудан ба таҳаммулпазирии хато маълумотро ба таври зиёдатӣ нигоҳ медорад. Ба гайр аз дискхо протсессор, шабака, системаи дохилкуни/баромад ва гайра бор карда мешаванд. Баробари афзудани хачми маълумот харочоти коркард ва нигох доштани он зиёд мешавад.

Форматҳои гуногуни файл дар Hadoop барои халли махз хамин масъалахо ихтироъ кардаанд. Интихоби формати мувофиқи файл метавонад баъзе бартариҳои назаррасро таъмин кунад:

  1. Вақти хондан зудтар.
  2. Вақти сабти тезтар.
  3. Файлҳои муштарак.
  4. Дастгирии эволютсияи схема.
  5. Дастгирии васеъшудаи фишурдасозӣ.

Баъзе форматҳои файл барои истифодаи умумӣ пешбинӣ шудаанд, дигарон барои истифодаи мушаххастар ва баъзеҳо барои қонеъ кардани хусусиятҳои мушаххаси додаҳо тарҳрезӣ шудаанд. Пас, интихоб дар ҳақиқат хеле калон аст.

Формати файли Avro

барои силсилаи маълумот Авро васеъ истифода мешавад - он сатр асос ёфтааст, яъне формати нигоҳдории маълумот дар Hadoop. Он схемаро дар формати JSON нигоҳ медорад, ки хондан ва тафсири ҳама гуна барномаҳоро осон мекунад. Худи маълумот дар формати дуӣ, паймон ва самаранок аст.

Системаи сериализатсияи Avro забони бетараф аст. Файлҳоро метавон бо забонҳои гуногун коркард кард, айни замон C, C++, C#, Java, Python ва Ruby.

Хусусияти асосии Avro ин дастгирии устувори схемаҳои додаҳост, ки бо мурури замон тағир меёбанд, яъне таҳаввул мешаванд. Авро тағироти схемаро мефаҳмад - нест кардан, илова кардан ё тағир додани майдонҳо.

Avro сохторҳои гуногуни маълумотро дастгирӣ мекунад. Масалан, шумо метавонед сабтеро эҷод кунед, ки дорои массив, навъи номбаршуда ва зерсабт мебошад.

Форматҳои файл дар маълумоти калон: барномаи мухтасари таълимӣ
Ин формат барои навиштан ба минтақаи фуруд (гузариш)-и кӯли додаҳо (кӯли маълумот, ё кӯли додаҳо - маҷмӯи мисолҳо барои нигоҳ доштани намудҳои гуногуни додаҳо ба ғайр аз манбаъҳои додаҳо мустақиман).

Ҳамин тавр, ин формат барои навиштан ба минтақаи фурудгоҳи кӯли маълумот бо сабабҳои зерин мувофиқ аст:

  1. Маълумот аз ин минтақа одатан барои коркарди минбаъда аз ҷониби системаҳои поёноб пурра хонда мешавад - ва формати сатр дар ин ҳолат самараноктар аст.
  2. Системаҳои поёноб метавонанд ҷадвалҳои схемаро аз файлҳо ба осонӣ дарёфт кунанд - лозим нест, ки схемаҳоро дар нигаҳдории мета беруна алоҳида нигоҳ доред.
  3. Ҳама гуна тағирот ба схемаи аслӣ ба осонӣ коркард карда мешавад (эволютсияи схема).

Формати файли паркет

Паркет формати файли кушодаасос барои Hadoop мебошад, ки нигоҳ медорад сохторҳои маълумот дар формати сутуни ҳамвор.

Дар муқоиса бо усули анъанавии қатор, Паркет аз ҷиҳати нигоҳдорӣ ва иҷроиш самараноктар аст.

Ин махсусан барои дархостҳое муфид аст, ки сутунҳои мушаххасро аз ҷадвали васеъ (сутунҳои зиёд) мехонанд. Ба шарофати формати файл, танҳо сутунҳои зарурӣ хонда мешаванд, бинобар ин, воридот ба ҳадди ақал нигоҳ дошта мешавад.

Тафсири хурд ва шарҳ: Барои беҳтар фаҳмидани формати файли Паркет дар Hadoop, биёед бубинем, ки формати сутунӣ, яъне сутунӣ чист. Ин формат арзишҳои шабеҳро барои ҳар як сутун якҷоя нигоҳ медорад.

Барои мисол, сабт майдонҳои ID, Ном ва Шӯъбаро дар бар мегирад. Дар ин ҳолат, ҳама арзишҳои сутуни ID, инчунин арзишҳои сутуни Ном ва ғайра якҷоя нигоҳ дошта мешаванд. Ҷадвал чунин хоҳад буд:

ID
ном
Департамент

1
эм1
d1

2
эм2
d2

3
эм3
d3

Дар формати сатр маълумот ба таври зерин захира карда мешавад:

1
эм1
d1
2
эм2
d2
3
эм3
d3

Дар формати файли сутунӣ, ҳамон маълумот чунин захира карда мешавад:

1
2
3
эм1
эм2
эм3
d1
d2
d3

Формати сутунӣ ҳангоми дархост кардани сутунҳои сершумор аз ҷадвал самараноктар аст. Он танҳо сутунҳои заруриро мехонад, зеро онҳо дар ҳамсоя ҳастанд. Бо ин роҳ, амалиёти воридотӣ ба ҳадди ақал нигоҳ дошта мешавад.

Масалан, ба шумо танҳо сутуни NAME лозим аст. ДАР формати сатр Ҳар як сабти маҷмӯи додаҳо бояд бор карда шавад, аз рӯи майдон таҳлил карда шавад ва сипас маълумоти NAME бароварда шавад. Формати сутун ба шумо имкон медиҳад, ки бевосита ба сутуни Ном парма кунед, зеро ҳамаи арзишҳои ин сутун якҷоя нигоҳ дошта мешаванд. Ба шумо лозим нест, ки тамоми сабтро скан кунед.

Ҳамин тариқ, формати сутунӣ иҷрои дархостҳоро беҳтар мекунад, зеро он барои расидан ба сутунҳои зарурӣ вақти камтари ҷустуҷӯро талаб мекунад ва шумораи амалиёти I/O-ро кам мекунад, зеро танҳо сутунҳои дилхоҳ хонда мешаванд.

Яке аз хусусиятҳои беназир Паркет ки дар ин формат он метавонад нигоҳ доштани маълумот бо сохторҳои лона. Ин маънои онро дорад, ки дар файли Паркет ҳатто майдонҳои лона гузошташударо бидуни хондани ҳамаи майдонҳои сохтори лона хондан мумкин аст. Паркет алгоритми резакунӣ ва васлкуниро барои нигоҳ доштани сохторҳои лона истифода мебарад.

Форматҳои файл дар маълумоти калон: барномаи мухтасари таълимӣ
Барои фаҳмидани формати файли Паркет дар Hadoop, шумо бояд шартҳои зеринро донед:

  1. Гурӯҳи сатрҳо (гурӯҳи сатр): тақсимоти мантиқии уфуқии маълумот ба сатрҳо. Гурӯҳи сатр аз порчаи ҳар як сутуни маҷмӯи додаҳо иборат аст.
  2. Фрагменти сутун (порчаи сутун): порчаи сутуни мушаххас. Ин порчаҳои сутун дар як гурӯҳи мушаххаси сатрҳо зиндагӣ мекунанд ва кафолат дода мешавад, ки дар файл ҳамҷоя бошанд.
  3. Саҳифа (саҳифа): Порчаҳои сутунҳо ба саҳифаҳое тақсим мешаванд, ки паси дигар навишта мешаванд. Саҳифаҳо сарлавҳаи умумӣ доранд, бинобар ин шумо метавонед ҳангоми хондан аз саҳифаҳои нодаркор гузаред.

Форматҳои файл дар маълумоти калон: барномаи мухтасари таълимӣ
Дар ин ҷо унвон танҳо рақами ҷодугарро дар бар мегирад PAR1 (4 байт), ки файлро ҳамчун файли Паркет муайян мекунад.

Дар поён гуфта мешавад:

  1. Метамаълумоти файл, ки координатҳои ибтидоии ҳар як сутунро дар бар мегирад. Ҳангоми хондан, шумо бояд аввал метамаълумоти файлро хонед, то ҳамаи порчаҳои сутуни мавриди таваҷҷӯҳро пайдо кунед. Сипас қисмҳои сутун бояд пайдарпай хонда шаванд. Дигар метамаълумотҳо версияи формат, схема ва ҳама ҷуфтҳои иловагии калид-арзишро дар бар мегиранд.
  2. Дарозии метамаълумот (4 байт).
  3. Рақами ҷодугарӣ PAR1 (4 байт).

Формати файли ORC

Формати файли сатр-сутуни оптимизатсияшуда (Сутуни сатри оптимизатсияшуда, CRO) роҳи хеле самараноки нигоҳдории маълумотро пешниҳод мекунад ва барои бартараф кардани маҳдудиятҳои форматҳои дигар тарҳрезӣ шудааст. Маълумотро дар шакли комилан паймон нигоҳ медорад, ки ба шумо имкон медиҳад, ки тафсилоти нолозимро гузаред - бе талаб кардани сохтани индексҳои калон, мураккаб ё дастӣ нигоҳдорӣ кунед.

Афзалиятҳои формати ORC:

  1. Як файл баромади ҳар як вазифа аст, ки сарбориро дар NameNode (гиреҳи ном) кам мекунад.
  2. Дастгирии намудҳои додаҳои Hive, аз ҷумла DateTime, намудҳои даҳӣ ва мураккаби додаҳо (сохтор, рӯйхат, харита ва иттифоқ).
  3. Хониши ҳамзамон як файл аз ҷониби равандҳои гуногуни RecordReader.
  4. Имконияти тақсим кардани файлҳо бе скан кардани нишонаҳо.
  5. Арзёбии ҳадди имкон тақсимоти хотираи теппа барои равандҳои хондан/навиштан дар асоси маълумот дар поёни файл.
  6. Метамаълумот дар формати сериализатсияи дуии Protocol Buffers нигоҳ дошта мешавад, ки имкон медиҳад майдонҳо илова ва хориҷ карда шаванд.

Форматҳои файл дар маълумоти калон: барномаи мухтасари таълимӣ
ORC маҷмӯаҳои сатрҳоро дар як файл нигоҳ медорад ва дар дохили коллексия маълумоти сатр дар формати сутунӣ нигоҳ дошта мешавад.

Файли ORC гурӯҳҳои сатрҳоро, ки рахҳо ном доранд ва иттилооти дастгирӣро дар поёни файл нигоҳ медорад. Postscript дар охири файл параметрҳои фишурдашавӣ ва андозаи поёни фишурдашударо дар бар мегирад.

Андозаи рахи пешфарз 250 МБ аст. Ба шарофати чунин рахҳои калон, хондан аз HDFS самараноктар иҷро карда мешавад: дар блокҳои калони ҳамҷоя.

Поёни файл рӯйхати хатҳоро дар файл, шумораи сатрҳо дар як сатр ва навъи маълумоти ҳар як сутунро сабт мекунад. Дар он ҷо арзиши натиҷавии ҳисоб, мин, макс ва маблағи ҳар як сутун низ навишта мешавад.

Поёнтар аз сатр феҳристи маконҳои ҷараёнро дар бар мегирад.

Ҳангоми сканкунии ҷадвалҳо маълумотҳои сатр истифода мешаванд.

Маълумоти индекс арзишҳои ҳадди ақал ва ҳадди аксарро барои ҳар як сутун ва мавқеи сатрҳо дар ҳар як сутун дар бар мегирад. Индексҳои ORC танҳо барои интихоби сатрҳо ва гурӯҳҳои сатр истифода мешаванд, на барои посух додан ба дархостҳо.

Муқоисаи форматҳои гуногуни файл

Авро нисбат ба Паркет

  1. Avro формати нигоҳдории сатр аст, дар ҳоле ки Паркет маълумотро дар сутунҳо нигоҳ медорад.
  2. Паркет барои дархостҳои таҳлилӣ беҳтар мувофиқ аст, яъне амалиёти хониш ва дархости маълумот нисбат ба навиштан хеле самараноктар аст.
  3. Амалиётҳои навиштан дар Авро нисбат ба Паркет самараноктар иҷро карда мешаванд.
  4. Авро бо эволютсияи схемаҳо баркамолтар сарукор дорад. Паркет танҳо илова кардани схемаро дастгирӣ мекунад, дар ҳоле ки Avro таҳаввулоти бисёрфунксионалӣ, яъне илова кардан ё тағир додани сутунҳоро дастгирӣ мекунад.
  5. Паркет барои пурсиши зермаҷмӯи сутунҳо дар ҷадвали бисёрсутунӣ беҳтарин аст. Avro барои амалиёти ETL мувофиқ аст, ки мо ҳама сутунҳоро дархост мекунем.

ORC против Паркет

  1. Паркет маълумоти лонаро беҳтар нигоҳ медорад.
  2. ORC барои пешгӯии фишор беҳтар мувофиқ аст.
  3. ORC хосиятҳои ACID-ро дастгирӣ мекунад.
  4. ORC маълумотро беҳтар фишурда мекунад.

Дар ин мавзӯъ боз чӣ хондан лозим аст:

  1. Таҳлили маълумоти калон дар абр: чӣ гуна ширкат метавонад ба маълумот нигаронида шавад.
  2. Дастури фурӯтан барои схемаҳои пойгоҳи додаҳо.
  3. Канали телеграми мо дар бораи трансформатсияи рақамӣ.

Манбаъ: will.com

Илова Эзоҳ