பெரிய தரவுகளில் கோப்பு வடிவங்கள்: ஒரு சுருக்கமான கல்வித் திட்டம்

பெரிய தரவுகளில் கோப்பு வடிவங்கள்: ஒரு சுருக்கமான கல்வித் திட்டம்
ரெமரின் மூலம் வானிலை தெய்வம்

அணி Mail.ru கிளவுட் தீர்வுகள் சலுகைகள் கட்டுரையின் மொழிபெயர்ப்பு பெரிய தரவுகளில் என்ன கோப்பு வடிவங்கள் உள்ளன, ஹடூப் வடிவங்களின் பொதுவான அம்சங்கள் என்ன, எந்த வடிவமைப்பைப் பயன்படுத்துவது சிறந்தது என்பதைப் பற்றி Clairvoyant இன் பொறியாளர் ராகுல் பாட்டியா கூறினார்.

ஏன் வெவ்வேறு கோப்பு வடிவங்கள் தேவை?

MapReduce மற்றும் Spark போன்ற HDFS-இயக்கப்பட்ட பயன்பாடுகளுக்கான முக்கிய செயல்திறன் இடையூறு, தரவைத் தேட, படிக்க மற்றும் எழுத எடுக்கும் நேரம். பெரிய தரவுத் தொகுப்புகளை நிர்வகிப்பதில் உள்ள சிரமத்தால், நிலையான ஒன்றைக் காட்டிலும் வளர்ச்சியடைந்து வரும் ஸ்கீமா அல்லது சில சேமிப்பகக் கட்டுப்பாடுகள் இருந்தால், இந்தப் பிரச்சனைகள் அதிகரிக்கின்றன.

பெரிய தரவைச் செயலாக்குவது சேமிப்பக துணை அமைப்பில் சுமையை அதிகரிக்கிறது - தவறு சகிப்புத்தன்மையை அடைய ஹடூப் தரவை தேவையில்லாமல் சேமிக்கிறது. வட்டுகளுக்கு கூடுதலாக, செயலி, நெட்வொர்க், உள்ளீடு/வெளியீட்டு அமைப்பு மற்றும் பல ஏற்றப்படுகின்றன. தரவுகளின் அளவு அதிகரிக்கும் போது, ​​அதைச் செயலாக்குவதற்கும் சேமிப்பதற்கும் ஆகும் செலவும் அதிகரிக்கிறது.

பல்வேறு கோப்பு வடிவங்களில் Hadoop இந்த சிக்கல்களை துல்லியமாக தீர்க்க கண்டுபிடிக்கப்பட்டது. பொருத்தமான கோப்பு வடிவமைப்பைத் தேர்ந்தெடுப்பது சில குறிப்பிடத்தக்க நன்மைகளை வழங்கலாம்:

  1. வேகமான வாசிப்பு நேரம்.
  2. வேகமான பதிவு நேரம்.
  3. பகிரப்பட்ட கோப்புகள்.
  4. திட்ட பரிணாம வளர்ச்சிக்கான ஆதரவு.
  5. விரிவாக்கப்பட்ட சுருக்க ஆதரவு.

சில கோப்பு வடிவங்கள் பொதுவான பயன்பாட்டிற்காகவும், மற்றவை மிகவும் குறிப்பிட்ட பயன்பாடுகளுக்காகவும், சில குறிப்பிட்ட தரவு பண்புகளை பூர்த்தி செய்யும் வகையில் வடிவமைக்கப்பட்டுள்ளன. எனவே தேர்வு மிகவும் பெரியது.

Avro கோப்பு வடிவம்

செய்ய தரவு வரிசைப்படுத்தல் அவ்ரோ பரவலாகப் பயன்படுத்தப்படுகிறது - அது சரம் சார்ந்த, அதாவது, ஹடூப்பில் ஒரு சரம் தரவு சேமிப்பு வடிவம். இது ஸ்கீமாவை JSON வடிவத்தில் சேமித்து, எந்த நிரலையும் எளிதாகப் படிக்கவும் விளக்கவும் செய்கிறது. தரவு பைனரி வடிவத்தில், கச்சிதமான மற்றும் திறமையானது.

அவ்ரோவின் சீரியல் அமைப்பு மொழி நடுநிலையானது. கோப்புகளை பல்வேறு மொழிகளில் செயலாக்க முடியும், தற்போது C, C++, C#, Java, Python மற்றும் Ruby.

அவ்ரோவின் முக்கிய அம்சம், காலப்போக்கில் மாறும், அதாவது பரிணாம வளர்ச்சிக்கான தரவுத் திட்டங்களுக்கான வலுவான ஆதரவாகும். அவ்ரோ ஸ்கீமா மாற்றங்களைப் புரிந்துகொள்கிறார்-அழித்தல், சேர்ப்பது அல்லது புலங்களை மாற்றுவது.

அவ்ரோ பல்வேறு தரவு கட்டமைப்புகளை ஆதரிக்கிறது. எடுத்துக்காட்டாக, நீங்கள் ஒரு வரிசை, கணக்கிடப்பட்ட வகை மற்றும் துணைப் பதிவு ஆகியவற்றைக் கொண்ட பதிவை உருவாக்கலாம்.

பெரிய தரவுகளில் கோப்பு வடிவங்கள்: ஒரு சுருக்கமான கல்வித் திட்டம்
தரவு ஏரியின் தரையிறங்கும் (மாற்றம்) மண்டலத்திற்கு எழுதுவதற்கு இந்த வடிவம் சிறந்தது (தரவு ஏரி, அல்லது தரவு ஏரி - தரவு மூலங்களுடன் நேரடியாக பல்வேறு வகையான தரவுகளை சேமிப்பதற்கான நிகழ்வுகளின் தொகுப்பு).

எனவே, பின்வரும் காரணங்களுக்காக தரவு ஏரியின் தரையிறங்கும் மண்டலத்திற்கு எழுதுவதற்கு இந்த வடிவம் மிகவும் பொருத்தமானது:

  1. கீழ்நிலை அமைப்புகளால் மேலும் செயலாக்கம் செய்வதற்காக இந்த மண்டலத்தின் தரவு பொதுவாக முழுமையாகப் படிக்கப்படுகிறது - மேலும் இந்த விஷயத்தில் வரிசை அடிப்படையிலான வடிவமைப்பு மிகவும் திறமையானது.
  2. கீழ்நிலை அமைப்புகள் கோப்புகளிலிருந்து ஸ்கீமா அட்டவணைகளை எளிதாக மீட்டெடுக்க முடியும் - வெளிப்புற மெட்டா சேமிப்பகத்தில் ஸ்கீமாக்களை தனித்தனியாகச் சேமிக்க வேண்டிய அவசியமில்லை.
  3. அசல் திட்டத்தில் எந்த மாற்றமும் எளிதில் செயலாக்கப்படும் (ஸ்கீமா பரிணாமம்).

பார்க்வெட் கோப்பு வடிவம்

பார்க்வெட் என்பது ஹடூப்பிற்கான திறந்த மூல கோப்பு வடிவமாகும் தட்டையான நெடுவரிசை வடிவத்தில் உள்ளமை தரவு கட்டமைப்புகள்.

பாரம்பரிய வரிசை அணுகுமுறையுடன் ஒப்பிடும்போது, ​​சேமிப்பு மற்றும் செயல்திறன் அடிப்படையில் பார்க்வெட் மிகவும் திறமையானது.

பரந்த (பல நெடுவரிசைகள்) அட்டவணையில் இருந்து குறிப்பிட்ட நெடுவரிசைகளைப் படிக்கும் வினவல்களுக்கு இது மிகவும் பயனுள்ளதாக இருக்கும். கோப்பு வடிவத்திற்கு நன்றி, தேவையான நெடுவரிசைகள் மட்டுமே படிக்கப்படுகின்றன, எனவே I/O குறைந்தபட்சமாக வைக்கப்படுகிறது.

ஒரு சிறிய விலகல் மற்றும் விளக்கம்: ஹடூப்பில் பார்க்வெட் கோப்பு வடிவத்தை நன்கு புரிந்து கொள்ள, நெடுவரிசை அடிப்படையிலான - அதாவது நெடுவரிசை - வடிவம் என்ன என்பதைப் பார்ப்போம். இந்த வடிவம் ஒவ்வொரு நெடுவரிசைக்கும் ஒரே மாதிரியான மதிப்புகளை ஒன்றாகச் சேமிக்கிறது.

உதாரணமாக, பதிவில் ஐடி, பெயர் மற்றும் துறை புலங்கள் உள்ளன. இந்த வழக்கில், அனைத்து ஐடி நெடுவரிசை மதிப்புகளும் ஒன்றாகச் சேமிக்கப்படும், பெயர் நெடுவரிசை மதிப்புகள் மற்றும் பல. அட்டவணை இப்படி இருக்கும்:

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

ஒரு அட்டவணையில் இருந்து பல நெடுவரிசைகளை நீங்கள் வினவ வேண்டியிருக்கும் போது நெடுவரிசை வடிவம் மிகவும் பயனுள்ளதாக இருக்கும். இது தேவையான நெடுவரிசைகளை மட்டுமே படிக்கும், ஏனெனில் அவை அருகில் உள்ளன. இந்த வழியில், I/O செயல்பாடுகள் குறைந்தபட்சமாக வைக்கப்படுகின்றன.

எடுத்துக்காட்டாக, உங்களுக்கு NAME நெடுவரிசை மட்டுமே தேவை. IN சரம் வடிவம் தரவுத்தொகுப்பில் உள்ள ஒவ்வொரு பதிவையும் ஏற்ற வேண்டும், புலம் மூலம் பாகுபடுத்தி, பின்னர் NAME தரவைப் பிரித்தெடுக்க வேண்டும். நெடுவரிசை வடிவம் உங்களை நேரடியாக பெயர் நெடுவரிசையில் துளையிட அனுமதிக்கிறது, ஏனெனில் அந்த நெடுவரிசைக்கான அனைத்து மதிப்புகளும் ஒன்றாக சேமிக்கப்படும். நீங்கள் முழு பதிவையும் ஸ்கேன் செய்ய வேண்டியதில்லை.

எனவே, நெடுவரிசை வடிவம் வினவல் செயல்திறனை மேம்படுத்துகிறது, ஏனெனில் இது தேவையான நெடுவரிசைகளைப் பெறுவதற்கு குறைவான தேடல் நேரம் தேவைப்படுகிறது மற்றும் I/O செயல்பாடுகளின் எண்ணிக்கையைக் குறைக்கிறது, ஏனெனில் விரும்பிய நெடுவரிசைகள் மட்டுமே படிக்கப்படுகின்றன.

தனித்துவமான அம்சங்களில் ஒன்று அழகு வேலைப்பாடு அமைந்த தரை கட்டு இந்த வடிவத்தில் அது முடியும் உள்ளமை கட்டமைப்புகளுடன் தரவைச் சேமிக்கவும். இதன் பொருள், பார்க்வெட் கோப்பில், உள்ளமை கட்டமைப்பில் உள்ள அனைத்து புலங்களையும் படிக்காமல், உள்ளமைக்கப்பட்ட புலங்களை கூட தனித்தனியாக படிக்க முடியும். பார்க்வெட் உள்ளமை கட்டமைப்புகளை சேமிக்க ஒரு துண்டாக்கும் மற்றும் சட்டசபை வழிமுறையைப் பயன்படுத்துகிறது.

பெரிய தரவுகளில் கோப்பு வடிவங்கள்: ஒரு சுருக்கமான கல்வித் திட்டம்
ஹடூப்பில் பார்க்வெட் கோப்பு வடிவமைப்பைப் புரிந்து கொள்ள, நீங்கள் பின்வரும் விதிமுறைகளை அறிந்து கொள்ள வேண்டும்:

  1. வரிசை குழு (வரிசை குழு): தரவின் தருக்க கிடைமட்டப் பிரிவு வரிசைகளாக. ஒரு வரிசை குழு தரவு தொகுப்பில் உள்ள ஒவ்வொரு நெடுவரிசையின் ஒரு பகுதியையும் கொண்டுள்ளது.
  2. நெடுவரிசை துண்டு (நெடுவரிசை துண்டு): ஒரு குறிப்பிட்ட நெடுவரிசையின் துண்டு. இந்த நெடுவரிசை துண்டுகள் ஒரு குறிப்பிட்ட வரிசைகளின் குழுவில் வாழ்கின்றன, மேலும் அவை கோப்பில் தொடர்ச்சியாக இருக்கும்.
  3. பக்கம் (பக்கம்): நெடுவரிசை துண்டுகள் ஒன்றன் பின் ஒன்றாக எழுதப்பட்ட பக்கங்களாக பிரிக்கப்படுகின்றன. பக்கங்களுக்கு பொதுவான தலைப்பு உள்ளது, எனவே படிக்கும்போது தேவையற்றவற்றைத் தவிர்க்கலாம்.

பெரிய தரவுகளில் கோப்பு வடிவங்கள்: ஒரு சுருக்கமான கல்வித் திட்டம்
இங்கே தலைப்பில் மேஜிக் எண் மட்டுமே உள்ளது PAR1 (4 பைட்டுகள்) இது கோப்பை பார்க்வெட் கோப்பாக அடையாளப்படுத்துகிறது.

அடிக்குறிப்பு பின்வருமாறு கூறுகிறது:

  1. ஒவ்வொரு நெடுவரிசையின் மெட்டாடேட்டாவின் தொடக்க ஆயத்தொலைவுகளைக் கொண்ட கோப்பு மெட்டாடேட்டா. படிக்கும் போது, ​​ஆர்வமுள்ள அனைத்து நெடுவரிசை துண்டுகளையும் கண்டுபிடிக்க, கோப்பின் மெட்டாடேட்டாவை முதலில் படிக்க வேண்டும். பின்னர் நெடுவரிசை பகுதிகளை வரிசையாக படிக்க வேண்டும். மற்ற மெட்டாடேட்டாவில் வடிவமைப்பு பதிப்பு, ஸ்கீமா மற்றும் கூடுதல் விசை மதிப்பு ஜோடிகளும் அடங்கும்.
  2. மெட்டாடேட்டா நீளம் (4 பைட்டுகள்).
  3. மந்திர எண் PAR1 (4 பைட்டுகள்).

ORC கோப்பு வடிவம்

உகந்த வரிசை-நெடுவரிசை கோப்பு வடிவம் (உகந்த வரிசை நெடுவரிசை, CRO) தரவைச் சேமிப்பதற்கான மிகவும் திறமையான வழியை வழங்குகிறது மற்றும் பிற வடிவங்களின் வரம்புகளை சமாளிக்க வடிவமைக்கப்பட்டுள்ளது. பெரிய, சிக்கலான அல்லது கைமுறையாகப் பராமரிக்கப்படும் குறியீடுகளை உருவாக்கத் தேவையில்லாமல் - தேவையற்ற விவரங்களைத் தவிர்க்க உங்களை அனுமதிக்கும், ஒரு முழுமையான கச்சிதமான வடிவத்தில் தரவைச் சேமிக்கிறது.

ORC வடிவமைப்பின் நன்மைகள்:

  1. ஒரு கோப்பு என்பது ஒவ்வொரு பணியின் வெளியீடு ஆகும், இது NameNode (பெயர் முனை) மீது சுமையை குறைக்கிறது.
  2. DateTime, தசம மற்றும் சிக்கலான தரவு வகைகள் (struct, list, map மற்றும் Union) உள்ளிட்ட Hive தரவு வகைகளுக்கான ஆதரவு.
  3. வெவ்வேறு RecordReader செயல்முறைகள் மூலம் ஒரே கோப்பை ஒரே நேரத்தில் படித்தல்.
  4. குறிப்பான்களை ஸ்கேன் செய்யாமல் கோப்புகளைப் பிரிக்கும் திறன்.
  5. கோப்பு அடிக்குறிப்பில் உள்ள தகவலின் அடிப்படையில் படிக்க/எழுத செயல்முறைகளுக்கான அதிகபட்ச சாத்தியமான குவிய நினைவக ஒதுக்கீட்டின் மதிப்பீடு.
  6. மெட்டாடேட்டா ப்ரோட்டோகால் பஃபர்ஸ் பைனரி வரிசைப்படுத்தல் வடிவத்தில் சேமிக்கப்படுகிறது, இது புலங்களைச் சேர்க்க மற்றும் அகற்ற அனுமதிக்கிறது.

பெரிய தரவுகளில் கோப்பு வடிவங்கள்: ஒரு சுருக்கமான கல்வித் திட்டம்
ORC சரங்களின் சேகரிப்புகளை ஒரு கோப்பில் சேமிக்கிறது, மேலும் சேகரிப்புக்குள், சரம் தரவு நெடுவரிசை வடிவத்தில் சேமிக்கப்படுகிறது.

ஒரு ORC கோப்பு கோப்பின் அடிக்குறிப்பில் கோடுகள் மற்றும் துணைத் தகவல்களை எனப்படும் வரிகளின் குழுக்களை சேமிக்கிறது. கோப்பின் முடிவில் உள்ள போஸ்ட்ஸ்கிரிப்ட் சுருக்க அளவுருக்கள் மற்றும் சுருக்கப்பட்ட அடிக்குறிப்பின் அளவு ஆகியவற்றைக் கொண்டுள்ளது.

இயல்புநிலை பட்டை அளவு 250 எம்பி. இத்தகைய பெரிய கோடுகள் காரணமாக, HDFS இலிருந்து வாசிப்பு மிகவும் திறமையாக செய்யப்படுகிறது: பெரிய தொடர்ச்சியான தொகுதிகளில்.

கோப்பு அடிக்குறிப்பு கோப்பில் உள்ள பாதைகளின் பட்டியல், ஒரு பாதைக்கு உள்ள வரிசைகளின் எண்ணிக்கை மற்றும் ஒவ்வொரு நெடுவரிசையின் தரவு வகையையும் பதிவு செய்கிறது. ஒவ்வொரு நெடுவரிசைக்கும் கிடைக்கும் எண்ணிக்கை, நிமிடம், அதிகபட்சம் மற்றும் கூட்டுத்தொகையின் மதிப்பும் அங்கு எழுதப்பட்டுள்ளது.

ஸ்ட்ரிப்பின் அடிக்குறிப்பில் ஸ்ட்ரீம் இருப்பிடங்களின் கோப்பகம் உள்ளது.

அட்டவணைகளை ஸ்கேன் செய்யும் போது வரிசை தரவு பயன்படுத்தப்படுகிறது.

குறியீட்டுத் தரவு ஒவ்வொரு நெடுவரிசையின் குறைந்தபட்ச மற்றும் அதிகபட்ச மதிப்புகள் மற்றும் ஒவ்வொரு நெடுவரிசையிலும் உள்ள வரிசைகளின் நிலை ஆகியவற்றை உள்ளடக்கியது. ORC குறியீடுகள் கோடுகள் மற்றும் வரிசை குழுக்களைத் தேர்ந்தெடுப்பதற்கு மட்டுமே பயன்படுத்தப்படுகின்றன, கேள்விகளுக்குப் பதிலளிப்பதற்காக அல்ல.

வெவ்வேறு கோப்பு வடிவங்களின் ஒப்பீடு

பார்கெட்டுடன் ஒப்பிடும்போது அவ்ரோ

  1. அவ்ரோ ஒரு வரிசை சேமிப்பக வடிவமாகும், அதே நேரத்தில் பார்க்வெட் தரவை நெடுவரிசைகளில் சேமிக்கிறது.
  2. பகுப்பாய்வு வினவல்களுக்கு பார்க்வெட் மிகவும் பொருத்தமானது, அதாவது வாசிப்பு செயல்பாடுகள் மற்றும் வினவல் தரவு எழுதுவதை விட மிகவும் திறமையானவை.
  3. பார்கெட்டை விட அவ்ரோவில் எழுதும் செயல்பாடுகள் மிகவும் திறமையாக செய்யப்படுகின்றன.
  4. அவ்ரோ சுற்று பரிணாமத்தை மிகவும் முதிர்ச்சியுடன் கையாள்கிறது. பார்கெட் ஸ்கீமா கூட்டலை மட்டுமே ஆதரிக்கிறது, அதே நேரத்தில் அவ்ரோ மல்டிஃபங்க்ஸ்னல் பரிணாமத்தை ஆதரிக்கிறது, அதாவது நெடுவரிசைகளைச் சேர்ப்பது அல்லது மாற்றுவது.
  5. பல நெடுவரிசை அட்டவணையில் உள்ள நெடுவரிசைகளின் துணைக்குழுவை வினவுவதற்கு பார்க்வெட் சிறந்தது. அனைத்து நெடுவரிசைகளையும் வினவுகின்ற ETL செயல்பாடுகளுக்கு Avro பொருத்தமானது.

ORC vs பார்கெட்

  1. பார்கெட் உள்ளமை தரவை சிறப்பாக சேமிக்கிறது.
  2. புஷ்டவுனைக் கணிக்க ORC மிகவும் பொருத்தமானது.
  3. ORC ACID பண்புகளை ஆதரிக்கிறது.
  4. ORC தரவை சிறப்பாகச் சுருக்குகிறது.

தலைப்பில் வேறு என்ன படிக்க வேண்டும்:

  1. கிளவுட்டில் பெரிய தரவு பகுப்பாய்வு: ஒரு நிறுவனம் எப்படி தரவு சார்ந்ததாக மாறலாம்.
  2. தரவுத்தள திட்டங்களுக்கு ஒரு தாழ்மையான வழிகாட்டி.
  3. டிஜிட்டல் மாற்றம் பற்றிய எங்கள் டெலிகிராம் சேனல்.

ஆதாரம்: www.habr.com

கருத்தைச் சேர்