மிகவும் திறமையான மற்றும் மலிவான டேட்டாலேக்கை நாங்கள் எப்படி ஏற்பாடு செய்தோம், அது ஏன்

நீங்கள் பல ஆயத்த திறந்த மூலக் கருவிகளை விரைவாகவும் எளிதாகவும் இணைத்து, "பல எழுத்துக்களை" ஆராயாமல், ஸ்டாக்ஓவர்ஃப்ளோவின் ஆலோசனையின்படி, உங்கள் "உணர்வை அணைத்து" அவற்றை அமைத்து, தொடங்கும் அற்புதமான காலத்தில் நாங்கள் வாழ்கிறோம். அவர்கள் வணிக நடவடிக்கைக்கு. நீங்கள் புதுப்பிக்க/விரிவாக்க அல்லது யாராவது தற்செயலாக இரண்டு இயந்திரங்களை மறுதொடக்கம் செய்யும்போது - ஒருவித வெறித்தனமான கெட்ட கனவு தொடங்கியிருப்பதை நீங்கள் உணர்கிறீர்கள், அடையாளம் காண முடியாத அளவுக்கு எல்லாம் வியத்தகு முறையில் சிக்கலாகிவிட்டன, பின்வாங்க முடியாது, எதிர்காலம் தெளிவற்ற மற்றும் பாதுகாப்பானது, நிரலாக்கத்திற்கு பதிலாக, தேனீக்களை இனப்பெருக்கம் செய்து சீஸ் செய்யுங்கள்.

அதிக அனுபவம் வாய்ந்த சகாக்கள், தங்கள் தலையில் பிழைகள் நிறைந்து, ஏற்கனவே சாம்பல் நிறத்தில், "நாகரீகமான மொழிகளில்" உள்ளமைக்கப்பட்ட ஆதரவுடன் டஜன் கணக்கான சர்வர்களில் "க்யூப்ஸ்" இல் "கன்டெய்னர்கள்" பேக்குகளை நம்பமுடியாத அளவிற்கு வேகமாகப் பயன்படுத்துவதைப் பற்றி சிந்திக்கிறார்கள். ஒத்திசைவற்ற தடையற்ற I/O, அடக்கமாக புன்னகை . அவர்கள் அமைதியாக “man ps” ஐ மீண்டும் படிக்கவும், அவர்களின் கண்களில் இரத்தம் வரும் வரை “nginx” மூலக் குறியீட்டை ஆராய்ந்து, அலகு சோதனைகளை எழுதவும், எழுதவும், எழுதவும் தொடர்கின்றனர். புத்தாண்டு தினத்தன்று ஒரு நாள் "இவை அனைத்தும்" இரவில் பங்குபெறும் போது மிகவும் சுவாரஸ்யமான விஷயம் வரும் என்பதை சக ஊழியர்கள் அறிவார்கள். மேலும் unix இன் தன்மை, மனப்பாடம் செய்யப்பட்ட TCP/IP நிலை அட்டவணை மற்றும் அடிப்படை வரிசையாக்க-தேடல் வழிமுறைகள் பற்றிய ஆழமான புரிதல் மட்டுமே அவர்களுக்கு உதவும். சிம்ஸ் அடிக்கும்போது சிஸ்டத்தை உயிர்ப்பிக்க.

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

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

Bitrix24 இல் அடிப்படை தொழில்நுட்ப பகுப்பாய்வு

பல ஆண்டுகளுக்கு முன்பு, Bitrix24 சேவையை அறிமுகப்படுத்திய அதே நேரத்தில், உள்கட்டமைப்பில் உள்ள சிக்கல்களை விரைவாகக் கண்டறிந்து அடுத்த கட்டத்தைத் திட்டமிட உதவும் எளிய மற்றும் நம்பகமான பகுப்பாய்வு தளத்தை உருவாக்குவதில் நேரத்தையும் வளங்களையும் தீவிரமாக முதலீடு செய்தோம். நிச்சயமாக, முடிந்தவரை எளிமையான மற்றும் புரிந்துகொள்ளக்கூடிய ஆயத்த கருவிகளை எடுத்துக்கொள்வது நல்லது. இதன் விளைவாக, நாகியோஸ் கண்காணிப்புக்காகவும், முனின் பகுப்பாய்வு மற்றும் காட்சிப்படுத்துதலுக்காகவும் தேர்ந்தெடுக்கப்பட்டனர். இப்போது நாகியோக்களில் ஆயிரக்கணக்கான காசோலைகள் உள்ளன, முனினில் நூற்றுக்கணக்கான விளக்கப்படங்கள் உள்ளன, மேலும் எங்கள் சக ஊழியர்கள் ஒவ்வொரு நாளும் அவற்றை வெற்றிகரமாகப் பயன்படுத்துகின்றனர். அளவீடுகள் தெளிவாக உள்ளன, வரைபடங்கள் தெளிவாக உள்ளன, கணினி பல ஆண்டுகளாக நம்பகத்தன்மையுடன் செயல்படுகிறது மற்றும் புதிய சோதனைகள் மற்றும் வரைபடங்கள் தொடர்ந்து அதில் சேர்க்கப்படுகின்றன: நாங்கள் ஒரு புதிய சேவையை செயல்படுத்தும்போது, ​​​​பல சோதனைகள் மற்றும் வரைபடங்களைச் சேர்க்கிறோம். நல்ல அதிர்ஷ்டம்.

துடிப்பில் விரல் - மேம்பட்ட தொழில்நுட்ப பகுப்பாய்வு

"முடிந்தவரை விரைவாக" சிக்கல்களைப் பற்றிய தகவல்களைப் பெறுவதற்கான விருப்பம், எளிமையான மற்றும் புரிந்துகொள்ளக்கூடிய கருவிகள் - பின்பா மற்றும் xhprof உடன் செயலில் உள்ள சோதனைகளுக்கு எங்களை இட்டுச் சென்றது.

PHP இல் உள்ள இணையப் பக்கங்களின் செயல்பாட்டின் வேகம் பற்றிய புள்ளிவிவரங்களை UDP பாக்கெட்டுகளில் பின்பா எங்களுக்கு அனுப்பியது, மேலும் MySQL சேமிப்பகத்தில் ஆன்லைனில் பார்க்கலாம் (விரைவான நிகழ்வு பகுப்பாய்வுக்காக Pinba அதன் சொந்த MySQL இன்ஜினுடன் வருகிறது) சிக்கல்களின் சிறிய பட்டியலைப் பார்க்கலாம். அவர்களுக்கு. xhprof தானாகவே வாடிக்கையாளர்களிடமிருந்து மெதுவான PHP பக்கங்களைச் செயல்படுத்துவதற்கான வரைபடங்களைச் சேகரிக்கவும், இதற்கு என்ன வழிவகுக்கும் என்பதை பகுப்பாய்வு செய்யவும் - அமைதியாக, தேநீர் அல்லது வலுவான ஒன்றை ஊற்றவும்.

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

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

  • பிட்ரிக்ஸ் 24 கிளையண்ட் கடந்த ஒரு மணி நேரத்தில் p1 போர்ட்டலில் எத்தனை PHP பிழைகள் மற்றும் எவை? புரிந்து கொள்ளவும், மன்னிக்கவும், விரைவில் திருத்தவும்.
  • கடந்த 24 மணிநேரத்தில் ஜெர்மனியில் உள்ள போர்ட்டல்களில் எத்தனை வீடியோ அழைப்புகள் செய்யப்பட்டுள்ளன, எந்தத் தரத்துடன் சேனல்/நெட்வொர்க்கில் ஏதேனும் சிக்கல்கள் இருந்தன?
  • சமீபத்திய சேவைப் புதுப்பித்தலில் மூலத்திலிருந்து தொகுக்கப்பட்டு வாடிக்கையாளர்களுக்கு வழங்கப்பட்டுள்ள சிஸ்டம் செயல்பாடு (PHPக்கான எங்கள் C நீட்டிப்பு) எவ்வளவு நன்றாக வேலை செய்கிறது? segfaults உள்ளதா?
  • வாடிக்கையாளர் தரவு PHP நினைவகத்தில் பொருந்துமா? செயல்முறைகளுக்கு ஒதுக்கப்பட்ட நினைவகத்தை மீறுவதில் ஏதேனும் பிழைகள் உள்ளதா: "நினைவகத்திற்கு வெளியே"? கண்டுபிடித்து நடுநிலையாக்கு.

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

மிகவும் திறமையான மற்றும் மலிவான டேட்டாலேக்கை நாங்கள் எப்படி ஏற்பாடு செய்தோம், அது ஏன்

கூடுதலாக, குறிப்பிட்ட நிகழ்வுகளுக்கான அறிவிப்புகளை ஒழுங்கமைக்க கிபானா உங்களை அனுமதிக்கிறது, மேலும் குறுகிய காலத்தில் நிறுவனத்தில் உள்ள கருவி பல்வேறு துறைகளைச் சேர்ந்த டஜன் கணக்கான ஊழியர்களால் பயன்படுத்தத் தொடங்கியது - தொழில்நுட்ப ஆதரவு மற்றும் மேம்பாடு முதல் QA வரை.

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

அடிப்படை வணிக பகுப்பாய்வு

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

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

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

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

சாராம்சத்தில், ClickHouse என்பது மிகவும் திறமையான "தரவுத்தளமாகும்", இது மிகவும் வசதியான புள்ளி-மூலம்-புள்ளி செருகல் (அது எப்படி நோக்கம், எல்லாம் சரியாக உள்ளது), ஆனால் இனிமையான பகுப்பாய்வு மற்றும் தரவுகளுடன் பணிபுரியும் சுவாரஸ்யமான சக்திவாய்ந்த செயல்பாடுகளின் தொகுப்பு. ஆம், நீங்கள் ஒரு கிளஸ்டரைக் கூட உருவாக்கலாம் - ஆனால் நுண்ணோக்கி மூலம் நகங்களைச் சுத்துவது முற்றிலும் சரியானதல்ல என்பதை நீங்கள் புரிந்துகொள்கிறீர்கள், நாங்கள் மற்ற தீர்வுகளைத் தேடத் தொடங்கினோம்.

மலைப்பாம்பு மற்றும் ஆய்வாளர்களுக்கான தேவை

எங்கள் நிறுவனத்தில் PHP, JavaScript, C#, C/C++, Java, Go, Rust, Python, Bash ஆகியவற்றில் 10-20 வருடங்கள் ஒவ்வொரு நாளும் குறியீட்டை எழுதும் பல டெவலப்பர்கள் உள்ளனர். புள்ளிவிவரங்களின் விதிகளுக்கு பொருந்தாத ஒன்றுக்கு மேற்பட்ட முற்றிலும் நம்பமுடியாத பேரழிவுகளை அனுபவித்த பல அனுபவமிக்க கணினி நிர்வாகிகளும் உள்ளனர் (எடுத்துக்காட்டாக, ரெய்டு -10 இல் உள்ள பெரும்பாலான வட்டுகள் வலுவான மின்னல் தாக்கத்தால் அழிக்கப்படும் போது). இத்தகைய சூழ்நிலைகளில், "பைதான் ஆய்வாளர்" என்றால் என்ன என்பது நீண்ட காலமாக தெளிவாகத் தெரியவில்லை. பைதான் PHP போன்றது, பெயர் மட்டும் கொஞ்சம் நீளமானது மற்றும் மொழிபெயர்ப்பாளரின் மூலக் குறியீட்டில் மனதை மாற்றும் பொருட்களின் தடயங்கள் கொஞ்சம் குறைவாகவே உள்ளன. இருப்பினும், மேலும் மேலும் பகுப்பாய்வு அறிக்கைகள் உருவாக்கப்பட்டதால், அனுபவம் வாய்ந்த டெவலப்பர்கள் numpy, pandas, matplotlib, seaborn போன்ற கருவிகளில் குறுகிய நிபுணத்துவத்தின் முக்கியத்துவத்தை அதிகளவில் புரிந்து கொள்ளத் தொடங்கினர்.
"லாஜிஸ்டிக் பின்னடைவு" என்ற வார்த்தைகளின் கலவையிலிருந்து ஊழியர்கள் திடீரென மயக்கமடைந்து, ஆம், ஆம், பைஸ்பார்க்கைப் பயன்படுத்தி பெரிய தரவுகளில் திறம்பட அறிக்கையிடுவதை நிரூபிப்பதன் மூலம் தீர்க்கமான பங்கு பெரும்பாலும் வகிக்கப்படுகிறது.

அப்பாச்சி ஸ்பார்க், அதன் செயல்பாட்டு முன்னுதாரணமான தொடர்புடைய இயற்கணிதம் மற்றும் அதன் திறன்கள் MySQL க்கு பழக்கமான டெவலப்பர்கள் மீது ஒரு தாக்கத்தை ஏற்படுத்தியது.

Apache Spark/Hadoop இன் மேலதிக முயற்சிகள் மற்றும் ஸ்கிரிப்ட் படி சரியாக நடக்கவில்லை

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

இதன் விளைவாக, அப்பாச்சி ஸ்பார்க் (ஸ்பார்க் ஸ்ட்ரீமிங், ஸ்பார்க் SQL உட்பட) மற்றும் ஹடூப் சுற்றுச்சூழல் அமைப்பு (மற்றும் பலவற்றையும்) தீவிரமாகப் பயன்படுத்தும் பல உள் பகுப்பாய்வுத் திட்டங்களை நாங்கள் "உயிர் பிழைத்துள்ளோம்". காலப்போக்கில் "அதை" நன்றாகத் தயாரிக்கவும் கண்காணிக்கவும் கற்றுக்கொண்டோம், மேலும் தரவின் தன்மை மற்றும் சீரான RDD ஹாஷிங்கின் ஏற்றத்தாழ்வு காரணமாக "அது" திடீரென்று செயலிழப்பதை நடைமுறையில் நிறுத்தியது, ஏற்கனவே தயாராக உள்ள ஒன்றை எடுக்க ஆசை , மேகக்கணியில் எங்காவது புதுப்பிக்கப்பட்டு நிர்வகிக்கப்பட்டது வலுவாகவும் வலுவாகவும் வளர்ந்தது. இந்த நேரத்தில்தான் Amazon Web Services-ன் ஆயத்த கிளவுட் அசெம்பிளியை பயன்படுத்த முயற்சித்தோம் - EMR மற்றும், பின்னர், அதை பயன்படுத்தி பிரச்சனைகளை தீர்க்க முயற்சி. EMR என்பது அமேசானால் தயாரிக்கப்பட்ட Apache Spark ஆகும், இது Cloudera/Hortonworks பில்ட்களைப் போன்ற சுற்றுச்சூழல் அமைப்பிலிருந்து கூடுதல் மென்பொருளைக் கொண்டுள்ளது.

பகுப்பாய்வுக்கான ரப்பர் கோப்பு சேமிப்பு அவசரத் தேவை

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

ஸ்பார்க் ஹிஸ்டரி சர்வர் மற்றும் பேக்லிட் பூதக்கண்ணாடியைப் பயன்படுத்தி 20-பக்க ஜாவா ட்ரேஸ்களைப் படித்து, கிளஸ்டரின் கிலோமீட்டர் நீளமான விரிவான பதிவுகளை பகுப்பாய்வு செய்வதன் மூலம் இந்த ப்ளாட்ஃபார்மின் மென்பொருளைப் புதுப்பிப்பது புத்தாண்டுக் கனவாக மாறக்கூடாது என்றும் நான் விரும்பினேன். டெவலப்பரின் நிலையான MapReduce கோரிக்கையானது, சரியாகத் தேர்ந்தெடுக்கப்படாத மூல தரவுப் பகிர்வு அல்காரிதம் காரணமாக நினைவகத்தை இழக்கும் போது, ​​டெவலப்பரின் நிலையான MapReduce கோரிக்கையை இயக்குவதை நிறுத்தினால், வழக்கமான டைவிங் தேவையில்லாத எளிய மற்றும் வெளிப்படையான கருவியை நான் வைத்திருக்க விரும்புகிறேன்.

அமேசான் எஸ்3 டேட்டாலேக்கிற்கு வேட்பாளராக உள்ளதா?

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

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

ஹடூப்பிலிருந்து உங்கள் சொந்த சாப்ஸைத் தயாரிக்காமல், நன்கு அறியப்பட்ட மற்றும் நன்கு அறியப்பட்ட அளவிடக்கூடிய கிளவுட் ஸ்டோரேஜ் Amazon S3 இல் கோப்புகளைச் சேமித்தால் என்ன செய்வது?

தனிப்பட்ட தரவு "குறைவானது" என்பது தெளிவாகிறது, ஆனால் நாங்கள் அதை வெளியே எடுத்து "திறம்பட இயக்கினால்" மற்ற தரவைப் பற்றி என்ன?

அமேசான் வலை சேவைகளின் கிளஸ்டர்-பிக்டேட்டா-பகுப்பாய்வு சுற்றுச்சூழல் அமைப்பு - மிக எளிமையான வார்த்தைகளில்

AWS உடனான எங்கள் அனுபவத்தின் அடிப்படையில், Apache Hadoop/MapReduce நீண்ட காலமாக பல்வேறு சாஸ்களின் கீழ் தீவிரமாகப் பயன்படுத்தப்படுகிறது, எடுத்துக்காட்டாக DataPipeline சேவையில் (எனது சக ஊழியர்களை நான் பொறாமைப்படுகிறேன், அவர்கள் அதை எவ்வாறு சரியாக தயாரிப்பது என்று கற்றுக்கொண்டார்கள்). DynamoDB அட்டவணைகளிலிருந்து வெவ்வேறு சேவைகளிலிருந்து காப்புப்பிரதிகளை இங்கே அமைக்கிறோம்:
மிகவும் திறமையான மற்றும் மலிவான டேட்டாலேக்கை நாங்கள் எப்படி ஏற்பாடு செய்தோம், அது ஏன்

மேலும் அவை பல ஆண்டுகளாக கடிகார வேலை போன்ற உட்பொதிக்கப்பட்ட ஹடூப்/மேப் ரிட்யூஸ் கிளஸ்டர்களில் தொடர்ந்து இயங்கி வருகின்றன. "அதை அமைத்து மறந்து விடுங்கள்":

மிகவும் திறமையான மற்றும் மலிவான டேட்டாலேக்கை நாங்கள் எப்படி ஏற்பாடு செய்தோம், அது ஏன்

பகுப்பாய்வாளர்களுக்காக வியாழன் மடிக்கணினிகளை மேகக்கணியில் அமைப்பதன் மூலமும், AWS சேஜ்மேக்கர் சேவையைப் பயன்படுத்தி AI மாதிரிகளை போரில் பயிற்றுவிப்பதற்கும் பயன்படுத்துவதன் மூலமும் நீங்கள் தரவு சாத்தானியத்தில் திறம்பட ஈடுபடலாம். இது எங்களுக்கு எப்படித் தோன்றுகிறது:

மிகவும் திறமையான மற்றும் மலிவான டேட்டாலேக்கை நாங்கள் எப்படி ஏற்பாடு செய்தோம், அது ஏன்

ஆம், உங்களுக்காக அல்லது மேகக்கணியில் உள்ள ஒரு ஆய்வாளருக்கு மடிக்கணினியை எடுத்து அதை ஹடூப்/ஸ்பார்க் கிளஸ்டருடன் இணைத்து, கணக்கீடுகளைச் செய்து, பின்னர் எல்லாவற்றையும் கீழே போடலாம்:

மிகவும் திறமையான மற்றும் மலிவான டேட்டாலேக்கை நாங்கள் எப்படி ஏற்பாடு செய்தோம், அது ஏன்

தனிப்பட்ட பகுப்பாய்வு திட்டங்களுக்கு மிகவும் வசதியானது மற்றும் சிலவற்றிற்கு பெரிய அளவிலான கணக்கீடுகள் மற்றும் பகுப்பாய்வுகளுக்கு EMR சேவையை வெற்றிகரமாகப் பயன்படுத்தியுள்ளோம். டேட்டாலேக்கிற்கான சிஸ்டம் தீர்வு பற்றி என்ன, அது வேலை செய்யுமா? இந்த நேரத்தில் நாங்கள் நம்பிக்கை மற்றும் விரக்தியின் விளிம்பில் இருந்தோம் மற்றும் தேடலைத் தொடர்ந்தோம்.

AWS க்ளூ - ஸ்டீராய்டுகளில் நேர்த்தியாக பேக் செய்யப்பட்ட அப்பாச்சி ஸ்பார்க்

AWS ஆனது "Hive/Pig/Spark" ஸ்டேக்கின் சொந்த பதிப்பைக் கொண்டுள்ளது. ஹைவ் பங்கு, அதாவது. டேட்டாலேக்கில் உள்ள கோப்புகள் மற்றும் அவற்றின் வகைகளின் பட்டியல் "டேட்டா கேடலாக்" சேவையால் செய்யப்படுகிறது, இது அப்பாச்சி ஹைவ் வடிவத்துடன் அதன் இணக்கத்தன்மையை மறைக்காது. உங்கள் கோப்புகள் எங்கு உள்ளன மற்றும் எந்த வடிவத்தில் உள்ளன என்பது பற்றிய தகவலை இந்த சேவையில் சேர்க்க வேண்டும். தரவு s3 இல் மட்டுமல்ல, தரவுத்தளத்திலும் இருக்கலாம், ஆனால் அது இந்த இடுகையின் பொருள் அல்ல. எங்கள் DataLake தரவுக் கோப்பகம் எவ்வாறு ஒழுங்கமைக்கப்பட்டுள்ளது என்பது இங்கே:

மிகவும் திறமையான மற்றும் மலிவான டேட்டாலேக்கை நாங்கள் எப்படி ஏற்பாடு செய்தோம், அது ஏன்

கோப்புகள் பதிவு செய்யப்பட்டுள்ளன, அருமை. கோப்புகள் புதுப்பிக்கப்பட்டிருந்தால், நாங்கள் கிராலர்களை கைமுறையாக அல்லது அட்டவணையில் தொடங்குகிறோம், இது ஏரியிலிருந்து அவற்றைப் பற்றிய தகவலைப் புதுப்பித்து அவற்றைச் சேமிக்கும். பின்னர் ஏரியிலிருந்து தரவு செயலாக்கப்பட்டு முடிவுகளை எங்காவது பதிவேற்றலாம். எளிமையான வழக்கில், நாங்கள் s3 க்கும் பதிவேற்றுகிறோம். தரவு செயலாக்கத்தை எங்கு வேண்டுமானாலும் செய்யலாம், ஆனால் AWS Glue API மூலம் மேம்பட்ட திறன்களைப் பயன்படுத்தி Apache Spark கிளஸ்டரில் செயலாக்கத்தை உள்ளமைக்க பரிந்துரைக்கப்படுகிறது. உண்மையில், நீங்கள் பைஸ்பார்க் நூலகத்தைப் பயன்படுத்தி நல்ல பழைய மற்றும் பழக்கமான பைதான் குறியீட்டை எடுத்து, ஹடூப்பின் தைரியத்தை தோண்டி எடுக்காமல், டோக்கர்-மோக்கர் கொள்கலன்களை இழுத்து, சார்பு மோதல்களை நீக்காமல், கண்காணிப்புடன் கூடிய சில திறன் கொண்ட N முனைகளில் அதன் செயல்பாட்டை உள்ளமைக்கலாம். .

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

மிகவும் திறமையான மற்றும் மலிவான டேட்டாலேக்கை நாங்கள் எப்படி ஏற்பாடு செய்தோம், அது ஏன்

எனவே, s3 இல் உள்ள தரவைப் பயன்படுத்தி ஸ்பார்க் கிளஸ்டரில் எதையாவது கணக்கிட வேண்டும் என்றால், பைதான்/பைஸ்பார்க்கில் குறியீட்டை எழுதி, அதைச் சோதித்து, மேகக்கணிக்கு நல்வாழ்த்துக்கள்.

ஆர்கெஸ்ட்ரேஷன் பற்றி என்ன? பணி விழுந்து காணாமல் போனால் என்ன செய்வது? ஆம், அப்பாச்சி பிக் பாணியில் ஒரு அழகான பைப்லைனை உருவாக்க முன்மொழியப்பட்டுள்ளது, நாங்கள் அவற்றை முயற்சித்தோம், ஆனால் இப்போது PHP மற்றும் ஜாவாஸ்கிரிப்டில் எங்கள் ஆழமான தனிப்பயனாக்கப்பட்ட ஆர்கெஸ்ட்ரேஷனைப் பயன்படுத்த முடிவு செய்தோம் (எனக்கு புரிகிறது, அறிவாற்றல் முரண்பாடு உள்ளது, ஆனால் அது வேலை செய்கிறது. ஆண்டுகள் மற்றும் பிழைகள் இல்லாமல்).

மிகவும் திறமையான மற்றும் மலிவான டேட்டாலேக்கை நாங்கள் எப்படி ஏற்பாடு செய்தோம், அது ஏன்

ஏரியில் சேமிக்கப்பட்ட கோப்புகளின் வடிவம் செயல்திறனுக்கான திறவுகோலாகும்

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

  • கோப்புகளின் நெடுவரிசைகளை தனித்தனியாக சேமிக்கவும் (இதனால் நெடுவரிசைகளில் என்ன இருக்கிறது என்பதைப் புரிந்து கொள்ள நீங்கள் அனைத்து வரிகளையும் படிக்க வேண்டியதில்லை). இதற்காக நாங்கள் சுருக்கத்துடன் பார்க்வெட் வடிவமைப்பை எடுத்தோம்
  • கோப்புகளை மொழி, ஆண்டு, மாதம், நாள், வாரம் போன்ற கோப்புறைகளில் பிரிப்பது மிகவும் முக்கியம். இந்த வகை ஷார்டிங்கைப் புரிந்துகொள்ளும் எஞ்சின்கள், ஒரு வரிசையில் உள்ள எல்லா தரவையும் பிரிக்காமல், தேவையான கோப்புறைகளை மட்டுமே பார்க்கும்.

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

AWS அதீனா - ஜாக்-இன்-தி-பாக்ஸ்

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

s3 இல் உள்ள தரவுகளால் இயக்கப்படும் அதீனா இயந்திரம் பழம்பெருமையை அடிப்படையாகக் கொண்டது பிரஸ்டோ - MPP (பாரிய இணையான செயலாக்கம்) குடும்பத்தின் பிரதிநிதி, தரவு செயலாக்கத்திற்கான அணுகுமுறைகள், தரவு இருக்கும் இடங்களை எடுத்து, s3 மற்றும் ஹடூப் முதல் கசாண்ட்ரா மற்றும் சாதாரண உரை கோப்புகள். ஒரு SQL வினவலை இயக்க அதீனாவிடம் நீங்கள் கேட்க வேண்டும், பின்னர் அனைத்தும் "விரைவாகவும் தானாகவும் செயல்படும்." அதீனா "ஸ்மார்ட்" என்பதை கவனத்தில் கொள்ள வேண்டியது அவசியம், இது தேவையான துண்டிக்கப்பட்ட கோப்புறைகளுக்கு மட்டுமே செல்கிறது மற்றும் கோரிக்கையில் தேவையான நெடுவரிசைகளை மட்டுமே படிக்கிறது.

அதீனாவிற்கான கோரிக்கைகளுக்கான விலையும் சுவாரஸ்யமானது. நாங்கள் பணம் செலுத்துகிறோம் ஸ்கேன் செய்யப்பட்ட தரவுகளின் அளவு. அந்த. ஒரு நிமிடத்திற்கு கிளஸ்டரில் உள்ள இயந்திரங்களின் எண்ணிக்கைக்கு அல்ல, ஆனால்... உண்மையில் 100-500 இயந்திரங்களில் ஸ்கேன் செய்யப்பட்ட தரவுகளுக்கு, கோரிக்கையை முடிக்க தேவையான தரவு மட்டுமே.

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

s3 இல் எங்கள் தரவை எவ்வாறு பகிர்வது என்பது இங்கே:

மிகவும் திறமையான மற்றும் மலிவான டேட்டாலேக்கை நாங்கள் எப்படி ஏற்பாடு செய்தோம், அது ஏன்

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

ஆனால் நாங்கள் இன்னும் மேலே சென்று பதில்களுக்காக மேகத்திற்குச் செல்ல ஆரம்பித்தோம் ODBC இயக்கி வழியாக: ஒரு ஆய்வாளர் ஒரு பரிச்சயமான கன்சோலில் ஒரு SQL வினவலை எழுதுகிறார், இது 100-500 கணினிகளில் "காசுகளுக்கு" தரவை s3 க்கு அனுப்புகிறது மற்றும் பொதுவாக சில வினாடிகளில் பதிலை வழங்கும். வசதியான. மற்றும் வேகமாக. என்னால் இன்னும் நம்ப முடியவில்லை.

இதன் விளைவாக, தரவை s3 இல், திறமையான நெடுவரிசை வடிவத்தில் மற்றும் கோப்புறைகளில் தரவை நியாயமான முறையில் பகிர்வதன் மூலம்... DataLake மற்றும் வேகமான மற்றும் மலிவான பகுப்பாய்வு இயந்திரத்தைப் பெற்றோம் - இலவசமாக. மேலும் அவர் நிறுவனத்தில் மிகவும் பிரபலமானார், ஏனெனில் ... SQL ஐப் புரிந்துகொண்டு, க்ளஸ்டர்களைத் தொடங்குதல்/நிறுத்துதல்/அமைப்பதைக் காட்டிலும் வேகமான ஆர்டர்களை வேலை செய்கிறது. "முடிவு ஒரே மாதிரியாக இருந்தால், ஏன் அதிக கட்டணம் செலுத்த வேண்டும்?"

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

மிகவும் திறமையான மற்றும் மலிவான டேட்டாலேக்கை நாங்கள் எப்படி ஏற்பாடு செய்தோம், அது ஏன்

கண்டுபிடிப்புகள்

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

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

பயணத்தின் தொடக்கத்தில், திறந்த மற்றும் மூடிய மென்பொருளின் பல காட்டு மிருகக்காட்சிசாலைகளில் இருந்து என் தலை பிரிந்தது மற்றும் சந்ததியினருக்கு பொறுப்பின் சுமை பற்றிய புரிதல். எளிய கருவிகளில் இருந்து உங்கள் டேட்டாலேக்கை உருவாக்கத் தொடங்குங்கள்: நாகியோஸ்/முனின் -> எலாஸ்டிக்/கிபானா -> ஹடூப்/ஸ்பார்க்/எஸ்3..., கருத்துக்களை சேகரித்தல் மற்றும் நடக்கும் செயல்முறைகளின் இயற்பியலை ஆழமாகப் புரிந்துகொள்வது. சிக்கலான மற்றும் இருண்ட அனைத்தும் - எதிரிகளுக்கும் போட்டியாளர்களுக்கும் கொடுங்கள்.

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

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

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