Вероватно најбоља алтернатива за ЦСВ складиште: подаци о паркету

Апацхе паркет пружа неколико предности за складиштење и преузимање података у поређењу са традиционалним методама као што је ЦСВ.

Формат паркета је дизајниран за бржу обраду података сложених типова. У овом чланку говоримо о томе како је формат Паркета погодан за данашње све веће потребе података.

Пре него што се удубимо у детаље о формату паркета, хајде да разумемо шта су ЦСВ подаци и изазове које они представљају за складиштење података.

Шта је ЦСВ складиште?

Сви смо чули много о ЦСВ (вредности одвојеним зарезима) – једном од најчешћих начина организовања и форматирања података. Складиштење ЦСВ података је засновано на редовима. ЦСВ датотеке се чувају са екстензијом .цсв. Можемо да складиштимо и отварамо ЦСВ податке користећи Екцел, Гоогле табеле или било који уређивач текста. Подаци су лако видљиви када се датотека отвори.

Па, то није добро – дефинитивно није за формат базе података.

Даље, како обим података расте, постаје тешко тражити, управљати и преузимати.

Ево примера података ускладиштених у .ЦСВ датотеци:

EmpId,First name,Last name, Division
2012011,Sam,Butcher,IT
2013031,Mike,Johnson,Human Resource
2010052,Bill,Matthew,Architect
2010079,Jose,Brian,IT
2012120,Adam,James,Solutions

Ако га погледамо у Екцелу, можемо видети структуру ред-колона као у наставку:

Изазови са ЦСВ складиштем

Складишта заснована на редовима, као што је ЦСВ, су погодна за операције креирања, ажурирања и брисања.

Шта је онда са Реад ин ЦРУД?

Замислите милион редова у горњој .цсв датотеци. Било би потребно разумно време да отворите датотеку и потражите податке које тражите. Није тако кул. Већина провајдера у облаку као што је АВС наплаћује компаније на основу количине скенираних или ускладиштених података – опет, ЦСВ датотеке заузимају много простора.

  Увек скувајте савршену шољицу чаја помоћу тајмера да бисте то урадили како треба

ЦСВ складиште нема ексклузивну опцију за складиштење метаподатака, што скенирање података чини досадним задатком.

Дакле, које је исплативо и оптимално решење за извођење свих ЦРУД операција? Хајде да истражимо.

Шта је складиштење података о паркету?

Паркет је формат отвореног кода за складиштење података. Широко се користи у Хадооп и Спарк екосистемима. Датотеке паркета се чувају као екстензија .паркует.

Паркет је високо структуриран формат. Такође се може користити за оптимизацију сложених необрађених података присутних у великим количинама у језерима података. Ово може значајно смањити време упита.

Паркет чини складиштење података ефикаснијим и бржим проналажењем због мешавине формата за складиштење на основу редова и колона (хибридних). У овом формату, подаци су подељени хоризонтално и вертикално. Формат паркета такође у великој мери елиминише рашчлањивање.

Формат ограничава укупан број И/О операција и, на крају, цену.

Паркет такође складишти метаподатке, који чувају информације о подацима као што су шема података, број вредности, локација колона, минимална вредност, максимална вредност број група редова, тип кодирања, итд. Метаподаци се чувају на различитим нивоима у датотеци , чинећи приступ подацима бржим.

У приступу заснованом на редовима као што је ЦСВ, за преузимање података је потребно време јер упит мора да се креће кроз сваки ред и добије одређене вредности колоне. Са складиштењем паркета, свим потребним стубовима се може приступити одједном.

Укратко,

  • Паркет је заснован на стубној структури за складиштење података
  • То је оптимизован формат података за складиштење сложених података на велико у системима за складиштење
  • Формат паркета укључује различите методе за компресију и кодирање података
  • Значајно смањује време скенирања података и време упита и заузима мање простора на диску у поређењу са другим форматима за складиштење као што је ЦСВ
  • Минимизира број ИО операција, смањујући трошкове складиштења и извршења упита
  • Укључује метаподатке који олакшавају проналажење података
  • Пружа подршку отвореног кода
  Како избрисати поруке у апликацији Реддит

Формат података о паркету

Пре него што пређемо на пример, хајде да детаљније разумемо како се подаци чувају у формату паркета:

Можемо имати више хоризонталних партиција познатих као групе редова у једној датотеци. Унутар сваке групе редова примењује се вертикална партиција. Колоне су подељене на неколико делова колоне. Подаци се чувају као странице унутар делова колона. Свака страница садржи вредности кодираних података и метаподатке. Као што смо раније споменули, метаподаци за целу датотеку се такође чувају у подножју датотеке на нивоу групе редова.

Како су подаци подељени у делове колона, додавање нових података кодирањем нових вредности у нови део и датотеку је такође лако. Метаподаци се затим ажурирају за погођене датотеке и групе редова. Дакле, можемо рећи да је паркет флексибилан формат.

Паркет изворно подржава компресију података користећи компресију страница и технике кодирања речника. Погледајмо једноставан пример компресије речника:

Имајте на уму да у горњем примеру видимо ИТ одељење 4 пута. Дакле, док се чува у речнику, формат кодира податке са другом вредношћу која се лако чува (0,1,2…) заједно са бројем пута који се непрекидно понавља – ИТ, ИТ се мења у 0,2 да би се сачувао више простора. Упит за компримоване податке траје мање времена.

Упоредно поређење

Сада када имамо фер представу о томе како ЦСВ и Паркет формати изгледају, време је да неке статистике упореде оба формата:

ЦСВ
Паркет
Формат складиштења заснован на редовима.
Хибрид формата складиштења заснованог на редовима и колонама.
Заузима много простора јер није доступна подразумевана опција компресије. На пример, датотека од 1ТБ ће заузети исти простор када се чува на Амазон С3 или било ком другом облаку.
Компримује податке током складиштења и тако троши мање простора. Датотека од 1 ТБ сачувана у формату Паркет заузима само 130 ГБ простора.
Време извођења упита је споро због претраге засноване на редовима. За сваку колону, сваки ред података се мора преузети.
Време упита је око 34 пута брже због складиштења заснованог на колонама и присуства метаподатака.
Више података мора да се скенира по упиту.
Око 99% мање података се скенира за извршење упита, чиме се оптимизује учинак.
Већина уређаја за складиштење наплаћује се на основу простора за складиштење, тако да ЦСВ формат значи високу цену складиштења.
Мањи трошкови складиштења јер се подаци чувају у компримованом, кодираном формату.
Шема датотеке мора бити или закључена (што води до грешака) или достављена (заморно).
Шема датотеке се чува у метаподацима.
Формат је погодан за једноставне типове података.
Паркет је погодан чак и за сложене типове као што су угнежђене шеме, низови, речници.

  Обрнута претрага Снимак екрана из анимеа да бисте видели из које је серије

Закључак 👩‍💻

Видели смо низ примера да је паркет ефикаснији од ЦСВ-а у смислу цене, флексибилности и перформанси. То је ефикасан механизам за складиштење и преузимање података, посебно када се цео свет креће ка складиштењу у облаку и оптимизацији простора. Све главне платформе као што су Азуре, АВС и БигКуери подржавају Паркет формат.