Чоң маалыматтардагы файл форматтары: кыскача билим берүү программасы

Чоң маалыматтардагы файл форматтары: кыскача билим берүү программасы
Ремарин тарабынан Weather Deity

команда Mail.ru Cloud Solutions сунуштар макала котормосу Clairvoyant компаниясынан инженер Рахул Бхатиа чоң маалыматтарда кандай файл форматтары бар, Hadoop форматтарынын эң кеңири таралган өзгөчөлүктөрү кайсылар жана кайсы форматты колдонуу жакшыраак.

Эмне үчүн ар кандай файл форматтары керек?

MapReduce жана Spark сыяктуу HDFS иштетилген тиркемелерди иштетүү үчүн негизги кыйынчылык - бул маалыматтарды издөө, окуу жана жазууга кеткен убакыт. Бул көйгөйлөр чоң маалымат топтомун башкаруу кыйынчылыгы менен татаалдашат, эгерде бизде туруктуу эмес, өнүгүп жаткан схема бар болсо же сактагычта кандайдыр бир чектөөлөр бар болсо.

Чоң маалыматтарды иштетүү сактоо подсистемасынын жүгүн көбөйтөт - Hadoop катага сабырдуулукка жетүү үчүн маалыматтарды ашыкча сактайт. Дисктерден тышкары процессор, тармак, киргизүү/чыгаруу системасы ж.б. Маалыматтын көлөмү өскөн сайын аны иштетүүгө жана сактоого кеткен чыгым да өсөт.

Ар кандай файл форматтары Hadoop так ушул маселелерди чечүү үчүн ойлоп табылган. Тиешелүү файл форматын тандоо кээ бир маанилүү артыкчылыктарды бере алат:

  1. Тезирээк окуу убактысы.
  2. Тезирээк жаздыруу убактысы.
  3. Бөлүшүлгөн файлдар.
  4. Схема эволюциясын колдоо.
  5. Кеңейтилген кысуу колдоосу.

Кээ бир файл форматтары жалпы колдонуу үчүн, башкалары конкреттүү колдонуу үчүн, ал эми кээ бирлери белгилүү бир маалымат мүнөздөмөлөрүн канааттандыруу үчүн иштелип чыккан. Ошентип, тандоо чынында абдан чоң.

Avro файл форматы

үчүн маалыматтарды сериялаштыруу Avro кеңири колдонулат - бул сапка негизделген, башкача айтканда, Hadoop ичинде саптык маалыматтарды сактоо форматы. Ал схеманы JSON форматында сактайт, бул аны каалаган программа аркылуу окууну жана чечмелөөнү жеңилдетет. Маалыматтардын өзү экилик форматта, компакттуу жана эффективдүү.

Avro сериалдаштыруу системасы тил нейтралдуу болуп саналат. Файлдар учурда C, C++, C#, Java, Python жана Ruby сыяктуу ар кандай тилдерде иштетилиши мүмкүн.

Avroнун негизги өзгөчөлүгү - бул убакыттын өтүшү менен өзгөргөн, башкача айтканда, эволюцияланган маалымат схемаларын бекем колдоосу. Avro схемаларды өзгөртүүнү — талааларды жок кылууну, кошууну же өзгөртүүнү түшүнөт.

Avro ар кандай маалымат структураларын колдойт. Мисалы, сиз массивди, саналган типти жана субжазууну камтыган жазуу түзө аласыз.

Чоң маалыматтардагы файл форматтары: кыскача билим берүү программасы
Бул формат маалымат көлүнүн конуу (өтүү) зонасына жазуу үчүн идеалдуу.маалымат көлү, же маалымат көлү - түздөн-түз маалымат булактарынан тышкары ар кандай типтеги маалыматтарды сактоо үчүн инстанциялардын жыйындысы).

Ошентип, бул формат төмөнкү себептерден улам маалымат көлүнүн конуу зонасына жазуу үчүн эң ылайыктуу:

  1. Бул зонадан алынган маалыматтар, адатта, ылдыйкы системалар тарабынан андан ары иштетүү үчүн толугу менен окулат - бул учурда катарга негизделген формат натыйжалуураак.
  2. Төмөнкү системалар файлдардан схема таблицаларын оңой эле чыгарып алат — схемаларды тышкы мета сактагычта өзүнчө сактоонун кереги жок.
  3. Баштапкы схемага болгон ар кандай өзгөртүү оңой иштетилет (схема эволюциясы).

Паркет файл форматы

Паркет сактаган Hadoop үчүн ачык булак файл форматы жалпак мамычалык форматта уяланган маалымат структуралары.

Салттуу катар ыкмасына салыштырмалуу, паркет сактоо жана аткаруу жагынан кыйла натыйжалуу.

Бул кенен (көп мамычалар) таблицадан белгилүү тилкелерди окуган сурамдар үчүн өзгөчө пайдалуу. Файл форматынын аркасында керектүү тилкелер гана окулат, ошондуктан киргизүү/чыгаруу минималдуу деңгээлде сакталат.

Кичинекей экскурсия жана түшүндүрмө: Hadoop'та Паркет файл форматын жакшыраак түшүнүү үчүн, мамычага негизделген формат деген эмне экенин карап көрөлү. Бул формат ар бир тилке үчүн окшош маанилерди чогуу сактайт.

Мисалы,, жазуу ID, Аты жана Бөлүм талааларын камтыйт. Бул учурда, ID тилкесинин бардык маанилери бирге сакталат, ошондой эле Аты тилкесинин маанилери жана башкалар. Таблица төмөнкүдөй болот:

ID
ысым
бөлүм

1
emp1
d1

2
emp2
d2

3
emp3
d3

Сап форматында маалыматтар төмөнкүдөй сакталат:

1
emp1
d1
2
emp2
d2
3
emp3
d3

Мамычалуу файл форматында ошол эле маалыматтар төмөнкүдөй сакталат:

1
2
3
emp1
emp2
emp3
d1
d2
d3

Мамычалык формат таблицадан бир нече тилкеге ​​суроо керек болгондо натыйжалуураак болот. Ал керектүү тилкелерди гана окуйт, анткени алар жанаша жайгашкан. Ошентип, киргизүү/чыгаруу операциялары минималдуу деңгээлде сакталат.

Мисалы, сизге NAME мамычасы гана керек. IN сап форматы Берилиштер топтомундагы ар бир жазуу жүктөлүшү керек, талаа боюнча талданышы керек, андан кийин NAME берилиштери чыгарылат. Мамыча форматы түздөн-түз Аты тилкеге ​​өтүүгө мүмкүндүк берет, анткени ал тилкенин бардык маанилери чогуу сакталат. Жазууну толугу менен сканерлөөнүн кереги жок.

Ошентип, мамычалык формат сурамдардын иштешин жакшыртат, анткени ал талап кылынган тилкелерге жетүү үчүн издөө убактысын азыраак талап кылат жана киргизүү/чыгаруу операцияларынын санын азайтат, анткени керектүү тилкелер гана окулат.

Уникалдуу өзгөчөлүктөрүнүн бири Колбасы бул форматта болот уяланган структуралар менен маалыматтарды сактоо. Бул Паркет файлында уя салынган талааларды да уя структурасындагы бардык талааларды окубастан, өзүнчө окуса болот дегенди билдирет. Паркет уя салынган структураларды сактоо үчүн майдалоо жана чогултуу алгоритмин колдонот.

Чоң маалыматтардагы файл форматтары: кыскача билим берүү программасы
Hadoop'та Паркет файлынын форматын түшүнүү үчүн төмөнкү шарттарды билишиңиз керек:

  1. Катар тобу (катар тобу): маалыматтарды саптарга логикалык горизонталдуу бөлүү. Катар тобу маалымат топтомундагы ар бир мамычанын фрагментинен турат.
  2. Мамыча фрагменти (мамыча бөлүгү): белгилүү бир мамычанын фрагменти. Бул мамычанын фрагменттери саптардын белгилүү бир тобунда жашайт жана файлда туташып турууга кепилдик берилет.
  3. бет (бет): Мамыча фрагменттери биринин артынан бири жазылган барактарга бөлүнөт. Барактардын жалпы аталышы бар, ошондуктан сиз окуп жатканда керексиздерди өткөрүп жиберсеңиз болот.

Чоң маалыматтардагы файл форматтары: кыскача билим берүү программасы
Бул жерде аталышы сыйкырдуу санды камтыйт PAR1 (4 байт) бул файлды Parket файлы катары аныктайт.

Төмөнкү колонтитулда мындай дейт:

  1. Ар бир тилкенин метадайындарынын баштапкы координаттарын камтыган файл метадайындары. Окуп жатканда, сиз кызыккан бардык тилке фрагменттерин табуу үчүн алгач файлдын метаберилиштерин окушуңуз керек. Андан кийин мамыча бөлүктөрү ырааттуу окулушу керек. Башка метадайындар формат версиясын, схеманы жана кошумча ачкыч-маани жуптарын камтыйт.
  2. Метаберилиштердин узундугу (4 байт).
  3. Сыйкырдуу сан PAR1 (4 байт).

ORC файл форматы

Оптимизацияланган сап-мамыча файл форматы (Оптимизацияланган сап мамычасы, CRO) маалыматтарды сактоонун абдан эффективдүү жолун сунуштайт жана башка форматтардын чектөөлөрүн жеңүү үчүн иштелип чыккан. Чоң, татаал же кол менен сакталган индекстерди курууну талап кылбастан, керексиз деталдарды өткөрүп жиберүүгө мүмкүндүк берүүчү эң сонун компакт формада маалыматтарды сактайт.

ORC форматынын артыкчылыктары:

  1. Бир файл NameNode (аты түйүн) жүктөмүн азайтат, ар бир тапшырманын чыгаруу болуп саналат.
  2. DateTime, ондук жана татаал маалымат түрлөрүн камтыган Hive маалымат түрлөрүн колдоо (түзүм, тизме, карта жана биримдик).
  3. Ар кандай RecordReader процесстери менен бир эле файлды бир убакта окуу.
  4. Маркерлерди сканерлебестен файлдарды бөлүү мүмкүнчүлүгү.
  5. Файлдын төмөнкү колонтитулундагы маалыматтын негизинде окуу/жазуу процесстери үчүн максималдуу мүмкүн болгон үймөк эстутумун бөлүштүрүүнү баалоо.
  6. Метаберилиштер Protocol Buffers бинардык сериялаштыруу форматында сакталат, ал талааларды кошууга жана алып салууга мүмкүндүк берет.

Чоң маалыматтардагы файл форматтары: кыскача билим берүү программасы
ORC саптардын коллекцияларын бир файлда сактайт жана коллекциянын ичинде сап маалыматтары мамычалык форматта сакталат.

ORC файлы сызыктар деп аталган сызыктардын топторун жана файлдын төмөнкү колонтитулунда колдоочу маалыматты сактайт. Файлдын аягындагы Postscript кысуу параметрлерин жана кысылган колонтитулдун өлчөмүн камтыйт.

Демейки тилке өлчөмү 250 МБ. Мындай чоң тилкелерден улам HDFSден окуу натыйжалуураак аткарылат: чоң жанаша блоктордо.

Файлдын колонтитулунда файлдагы тилкелердин тизмесин, ар бир тилкедеги катарлардын санын жана ар бир тилкенин маалымат түрүн жазат. Ар бир тилке үчүн эсеп, мин, макс жана сумманын натыйжасы да ошол жерде жазылат.

Тилкенин төмөнкү колонтитулунда агым жайгашкан каталогдор бар.

Катар маалыматтары таблицаларды сканерлөөдө колдонулат.

Индекс маалыматтары ар бир тилке үчүн минималдуу жана максималдуу маанилерди жана ар бир тилкедеги саптардын ордун камтыйт. ORC индекстери суроолорго жооп берүү үчүн эмес, тилкелерди жана сап топторун тандоо үчүн гана колдонулат.

Ар кандай файл форматтарын салыштыруу

Avro паркет менен салыштырганда

  1. Avro - бул саптарды сактоо форматы, ал эми Паркет маалыматтарды мамычаларда сактайт.
  2. Паркет аналитикалык сурамдарга ылайыктуу, башкача айтканда, окуу операциялары жана маалыматтарды суроо жазууга караганда алда канча натыйжалуу.
  3. Авродо жазуу операциялары Паркетке караганда натыйжалуураак аткарылат.
  4. Avro контурдун эволюциясы менен көбүрөөк алектенет. Паркет схемаларды кошууну гана колдойт, ал эми Avro көп функциялуу эволюцияны, башкача айтканда, мамычаларды кошууну же өзгөртүүнү колдойт.
  5. Паркет көп тилкелүү таблицадагы тилкелердин бир бөлүгүн суроо үчүн идеалдуу. Avro биз бардык мамычаларды сураган ETL операциялары үчүн ылайыктуу.

ORC vs Parket

  1. Паркет уяланган маалыматтарды жакшыраак сактайт.
  2. ORC предикаттарды төмөндөтүү үчүн жакшыраак ылайыктуу.
  3. ORC ACID касиеттерин колдойт.
  4. ORC маалыматтарды жакшыраак кысып алат.

Тема боюнча дагы эмнени окуу керек:

  1. Булуттагы чоң маалыматтарды талдоо: компания кантип маалыматка багытталган боло алат.
  2. Берилиштер базасы схемаларына жөнөкөй колдонмо.
  3. Санариптик трансформация тууралуу биздин телеграм каналыбыз.

Source: www.habr.com

Комментарий кошуу