Ֆայլի ձևաչափերը մեծ տվյալների մեջ. համառոտ կրթական ծրագիր

Ֆայլի ձևաչափերը մեծ տվյալների մեջ. համառոտ կրթական ծրագիր
Եղանակի աստվածություն Ռեմարինի կողմից

Թիմ Mail.ru Cloud Solutions առաջարկություններ հոդվածի թարգմանություն ինժեներ Ռահուլ Բհաթիան Clairvoyant-ից այն մասին, թե ինչ ֆայլերի ձևաչափեր կան մեծ տվյալների մեջ, որոնք են Hadoop ձևաչափերի ամենատարածված հատկանիշները և որ ձևաչափն է ավելի լավ օգտագործել:

Ինչու են անհրաժեշտ տարբեր ֆայլերի ձևաչափեր:

HDFS-ով ապահովված հավելվածների համար, ինչպիսիք են MapReduce-ը և Spark-ը, կատարողականի հիմնական խոչընդոտը տվյալներ փնտրելու, կարդալու և գրելու համար պահանջվող ժամանակն է: Այս խնդիրներին բարդանում է տվյալների մեծ հավաքածուները կառավարելու դժվարությունը, եթե մենք ունենք զարգացող սխեման, այլ ոչ թե ֆիքսված, կամ եթե կան պահեստավորման որոշ սահմանափակումներ:

Մեծ տվյալների մշակումը մեծացնում է բեռնվածությունը պահեստավորման ենթահամակարգի վրա. Hadoop-ը ավելորդ կերպով պահպանում է տվյալները՝ սխալների հանդուրժողականության հասնելու համար: Բացի սկավառակներից, բեռնված են պրոցեսորը, ցանցը, մուտքային/ելքային համակարգը և այլն։ Տվյալների ծավալի աճին զուգահեռ ավելանում են դրանց մշակման և պահպանման ծախսերը:

Տարբեր ֆայլերի ձևաչափեր Hadoop հորինված է հենց այս խնդիրները լուծելու համար: Ֆայլի համապատասխան ձևաչափի ընտրությունը կարող է մի քանի նշանակալի առավելություններ տալ.

  1. Ավելի արագ ընթերցման ժամանակ:
  2. Ավելի արագ ձայնագրման ժամանակ:
  3. Համօգտագործվող ֆայլեր.
  4. Աջակցություն սխեմայի էվոլյուցիայի համար:
  5. Ընդլայնված սեղմման աջակցություն:

Որոշ ֆայլերի ձևաչափեր նախատեսված են ընդհանուր օգտագործման համար, մյուսները՝ ավելի հատուկ օգտագործման համար, իսկ որոշները նախատեսված են տվյալների հատուկ բնութագրերին համապատասխանելու համար: Այսպիսով, ընտրությունն իսկապես բավականին մեծ է:

Avro ֆայլի ձևաչափ

Համար տվյալների սերիականացում Ավրո-ն լայնորեն կիրառվում է` այն լարային հիմքով, այսինքն՝ լարային տվյալների պահպանման ձևաչափ Hadoop-ում։ Այն պահպանում է սխեման JSON ձևաչափով, ինչը հեշտացնում է այն կարդալը և մեկնաբանելը ցանկացած ծրագրի կողմից: Տվյալներն ինքնին երկուական ձևաչափով են, կոմպակտ և արդյունավետ:

Avro-ի սերիականացման համակարգը լեզվական չեզոք է: Ֆայլերը կարող են մշակվել տարբեր լեզուներով՝ ներկայումս C, C++, C#, Java, Python և Ruby:

Avro-ի հիմնական առանձնահատկությունը տվյալների սխեմաների կայուն աջակցությունն է, որոնք ժամանակի ընթացքում փոխվում են, այսինքն՝ զարգանում: Avro-ն հասկանում է սխեմայի փոփոխությունները՝ դաշտերի ջնջում, ավելացում կամ փոփոխություն:

Avro-ն աջակցում է տվյալների մի շարք կառուցվածքների: Օրինակ, կարող եք ստեղծել ձայնագրություն, որը պարունակում է զանգված, թվարկված տեսակ և ենթագրառումներ:

Ֆայլի ձևաչափերը մեծ տվյալների մեջ. համառոտ կրթական ծրագիր
Այս ձևաչափը իդեալական է տվյալների լճի վայրէջքի (անցումային) գոտում գրելու համար (տվյալների լիճ, կամ տվյալների լիճ - օրինակների հավաքածու՝ ի լրումն տվյալների աղբյուրների ուղղակիորեն տարբեր տեսակի տվյալների պահպանման):

Այսպիսով, այս ձևաչափը լավագույնս հարմար է տվյալների լճի վայրէջքի գոտում գրելու համար հետևյալ պատճառներով.

  1. Այս գոտու տվյալները սովորաբար ամբողջությամբ կարդում են՝ ներքևի համակարգերի կողմից հետագա մշակման համար, և տողերի վրա հիմնված ձևաչափն այս դեպքում ավելի արդյունավետ է:
  2. Ներքևի համակարգերը կարող են հեշտությամբ առբերել սխեմաների աղյուսակները ֆայլերից. կարիք չկա սխեմաները առանձին պահել արտաքին մետա պահեստում:
  3. Բնօրինակ սխեմայի ցանկացած փոփոխություն հեշտությամբ մշակվում է (սխեմայի էվոլյուցիա):

Մանրահատակի ֆայլի ձևաչափ

Մանրահատակը բաց կոդով ֆայլի ձևաչափ է Hadoop-ի համար, որը պահում է ներդիր տվյալների կառուցվածքները հարթ սյունաձև ձևաչափով.

Ավանդական շարքի մոտեցման համեմատ՝ Մանրահատակն ավելի արդյունավետ է պահեստավորման և կատարողականության առումով:

Սա հատկապես օգտակար է այն հարցումների համար, որոնք կարդում են որոշակի սյունակներ լայն (շատ սյունակներ) աղյուսակից: Ֆայլի ձևաչափի շնորհիվ ընթերցվում են միայն անհրաժեշտ սյունակները, ուստի I/O-ն նվազագույնի է հասցվում:

Մի փոքր շեղում և բացատրությունHadoop-ում Parquet ֆայլի ձևաչափը ավելի լավ հասկանալու համար տեսնենք, թե ինչ է սյունակի վրա հիմնված, այսինքն՝ սյունակային ձևաչափը: Այս ձևաչափը պահպանում է նմանատիպ արժեքներ յուրաքանչյուր սյունակի համար միասին:

Օրինակ, գրառումը ներառում է 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

Սյունակային ձևաչափն ավելի արդյունավետ է, երբ անհրաժեշտ է աղյուսակից մի քանի սյունակներ հարցումներ կատարել: Այն կկարդա միայն պահանջվող սյունակները, քանի որ դրանք հարակից են: Այս կերպ I/O գործառնությունները նվազագույնի են հասցվում:

Օրինակ, ձեզ անհրաժեշտ է միայն NAME սյունակը: IN լարային ձևաչափ Տվյալների հավաքածուի յուրաքանչյուր գրառում պետք է բեռնվի, վերլուծվի ըստ դաշտի, այնուհետև հանվի NAME տվյալները: Սյունակի ձևաչափը թույլ է տալիս անմիջապես անցնել Անուն սյունակին, քանի որ այդ սյունակի բոլոր արժեքները պահվում են միասին: Պետք չէ ամբողջ ձայնագրությունը սկանավորել:

Այսպիսով, սյունակային ձևաչափը բարելավում է հարցումների կատարումը, քանի որ այն պահանջում է ավելի քիչ փնտրման ժամանակ պահանջվող սյունակներին հասնելու համար և նվազեցնում է I/O գործողությունների քանակը, քանի որ ընթերցվում են միայն ցանկալի սյունակները:

Յուրահատուկ հատկանիշներից մեկը Մանրատախտակ այն է, որ այս ձևաչափով կարող է տվյալների պահպանում ներդիր կառուցվածքներով. Սա նշանակում է, որ Parquet ֆայլում նույնիսկ ներկառուցված դաշտերը կարելի է առանձին-առանձին կարդալ՝ առանց ներկառուցված կառուցվածքի բոլոր դաշտերը կարդալու: Մանրահատակը օգտագործում է մանրացման և հավաքման ալգորիթմ՝ ներդիր կառուցվածքները պահելու համար:

Ֆայլի ձևաչափերը մեծ տվյալների մեջ. համառոտ կրթական ծրագիր
Hadoop-ում Parquet ֆայլի ձևաչափը հասկանալու համար դուք պետք է իմանաք հետևյալ տերմինները.

  1. Տողերի խումբ (տողերի խումբ). Տվյալների տրամաբանական հորիզոնական բաժանումը տողերի: Տողերի խումբը բաղկացած է տվյալների հավաքածուի յուրաքանչյուր սյունակի հատվածից:
  2. Սյունակի հատված (սյունակի կտոր). Հատուկ սյունակի հատված: Այս սյունակի հատվածները ապրում են տողերի որոշակի խմբում և երաշխավորված են ֆայլում հարակից լինելու համար:
  3. Page (էջ). Սյունակի հատվածները բաժանվում են մեկը մյուսի հետևից գրված էջերի: Էջերն ունեն ընդհանուր վերնագիր, ուստի կարդալիս կարող եք բաց թողնել ավելորդները:

Ֆայլի ձևաչափերը մեծ տվյալների մեջ. համառոտ կրթական ծրագիր
Այստեղ վերնագիրը պարզապես պարունակում է կախարդական թիվը 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-ից ընթերցումը կատարվում է ավելի արդյունավետ՝ մեծ հարակից բլոկներում:

Ֆայլի էջատակը գրանցում է ֆայլի գծերի ցանկը, տողերի քանակը յուրաքանչյուր տողում և յուրաքանչյուր սյունակի տվյալների տեսակը: Այնտեղ գրված է նաև յուրաքանչյուր սյունակի համար ստացված count, min, max և sum:

Շերտի ստորոտը պարունակում է հոսքի վայրերի գրացուցակ:

Տողերի տվյալները օգտագործվում են աղյուսակները սկանավորելիս:

Ինդեքսային տվյալները ներառում են յուրաքանչյուր սյունակի նվազագույն և առավելագույն արժեքները և յուրաքանչյուր սյունակի տողերի դիրքը: ORC ինդեքսներն օգտագործվում են միայն շերտեր և տող խմբեր ընտրելու համար, այլ ոչ թե հարցումներին պատասխանելու համար:

Տարբեր ֆայլերի ձևաչափերի համեմատություն

Ավրո՝ համեմատած Մանրահատակի հետ

  1. Avro-ն տողերի պահպանման ձևաչափ է, մինչդեռ մանրահատակը տվյալները պահում է սյունակներում:
  2. Մանրահատակը ավելի հարմար է վերլուծական հարցումների համար, ինչը նշանակում է, որ ընթերցման գործողությունները և հարցումների տվյալները շատ ավելի արդյունավետ են, քան գրելը:
  3. Avro-ում գրելու գործողություններն ավելի արդյունավետ են կատարվում, քան մանրահատակում:
  4. Avro-ն ավելի հասուն է զբաղվում շրջանային էվոլյուցիայի հետ: Մանրահատակը աջակցում է միայն սխեմաների ավելացմանը, մինչդեռ Avro-ն աջակցում է բազմաֆունկցիոնալ էվոլյուցիայի, այսինքն՝ սյունակների ավելացման կամ փոփոխման:
  5. Մանրահատակը իդեալական է բազմասյուն աղյուսակում սյունակների ենթաբազմություն հարցումների համար: Avro-ն հարմար է ETL գործառնությունների համար, որտեղ մենք հարցում ենք անում բոլոր սյունակներին:

ORC ընդդեմ մանրահատակի

  1. Մանրահատակի խանութներն ավելի լավ են դնում ներկառուցված տվյալները:
  2. ORC-ն ավելի հարմար է պրեդիկատային pushdown-ի համար:
  3. ORC-ն աջակցում է ACID հատկություններին:
  4. ORC-ն ավելի լավ է սեղմում տվյալները:

Էլ ինչ կարդալ թեմայի շուրջ:

  1. Մեծ տվյալների վերլուծություն ամպի մեջ. ինչպես կարող է ընկերությունը դառնալ տվյալների վրա հիմնված.
  2. Տվյալների բազայի սխեմաների համեստ ուղեցույց.
  3. Մեր հեռագրային ալիքը թվային փոխակերպման մասին.

Source: www.habr.com

Добавить комментарий