நாம் நம்முடைய வழக்கமான பணிகளுக்கு சரியான தரவுத்தளத்தினை பயன்படுத்தி கொள்வதே பயன்பாட்டின் வெற்றிக்கு தேவையானதும் அடிப்படை யானதுமாகும். அவ்வாறான முக்கிய தரவுத்தள வகைகளில் ஒன்றைத் தேர்ந்தெடுப்பதற்கு முன் நாம் அவைகளில் என்னென்ன சரிபார்க்க வேண்டும் என்பதை இப்போதுகாண்போம். இன்றைய தரவுமயமான உலகில், வணிக நிறுவனங்கள் தங்கள் தரவு சேமிப்பு , தரவு மேலாண்மை ஆகிய தேவைகளைக் கையாள தரவுத்தள அமைப்பைத் தேர்ந்தெடுக்கும் போது பல்வேறுவகைகளிலான வாய்ப்புகளை எதிர் கொள்கின்றன. மிகச்சரியான தரவுத்தளத்தினை தேர்வு செய்வது என்பதே மிகமுக்கியமானதாகும், ஏனெனில் இதுதான் ஒரு பயன்பாடு அல்லது செயல் திட்டத்தின் செயல்திறன், அளவிடுதல், ஒட்டு மொத்த வெற்றி ஆகியவற்றினை கணிசமாக பாதிக்கின்ற காரணியாகும். அதிக போக்குவரத்து கொண்ட மின்-வணிக(E-commerce) இணைய தளத்தை உருவாக்கினாலும், கைபேசி பயன்பாட்டை உருவாக்கினாலும் அல்லது சிக்கலான தரவு பகுப்பாய்வு செயல்திட்டத்தில் பணிபுரிந்தாலும், முதலில் தரவுத்தளத் தேர்வின் நுணுக்கங்களைப் புரிந்துகொள்வதுதான் வலுவான , திறமையான அமைப்பை உருவாக்க உதவும். எனவே தரவுத் தளங்களின் வகைகள் , அவற்றின் நன்மைகள்/தீமைகள் ஆகியவற்றுடன் வெவ்வேறு பயன்பாட்டு நிகழ்வுகளுக்கு எந்தெந்த தரவுத்தளத்தைத் மிகச்சரியாக தேர்ந்தெடுப்பதற்கான அத்தியாவசியமான காரணிகள் யாவை எனஇப்போது ஆராய்வோம்.
மாதிரி தரவு : தரவின் தன்மையை சேமிக்க விரும்புவதே முதன்மை அம்சமாகும் . தரவுஆனது கட்டமைக்கப்பட்டதாகவோ அல்லது கட்டமைக்கப் படாததாகவோ இருக்கலாம், மேலும் ஒரு எளிய விசை மதிப்பாக இருந்து ஒரு விசைக்கு எதிராக ஆவணத்தை சேமிப்பது வரை இருக்கலாம். இது ஒரு செயற்கள நிறுவனத்திற்கு எதிரான தரவு அல்லது செயற்களநிறுவனங்களுக் கிடையேயான உறவுகளாக இருக்கலாம். இந்த பயன்பாட்டு நிகழ்வுகளின் அடிப்படையில் முதன்மையாக கிடைவரிசை , நெடுவரிசை அடிப்படையிலான, ஆவணம் சார்ந்த அல்லது வரைபட அடிப்படையிலான மாதிரியை உயர் மட்டஅளவில் முடிக்க முடியும். தரவு மாதிரியாக்கம் ஆனது செயற்களமாதிரி , வடிவமைப்பு ஆகியவற்றால் பெரிதும் பாதிக்கப்படுகிறது.
வினவல் முறைகள்/பயன்படுத்தும் வழக்கங்கள்: பயன்பாடுகளின் படித்தல் எழுதும் முறைகள் ஒரு முக்கிய தீவாகும், ஏனெனில் சேமிக்கப்படும் தரவு இறுதியில் ஒரு பயன்பாட்டிற்கு படிக்க அல்லது எழுதுவதற்கு தேவையாகும். எனவே அதைப் படிப்பதையும்/அல்லது எழுதுவதையும் எளிதாகச் செய்வது மிகவும் முக்கியமாகும். எந்தவொரு பயன்பாட்டு வடிவமைப்பின் தரவு ஓட்ட நிலை விவரங்களை ஒருவர் ஆய்வுசெய்திடும்போது, வினவல் முறைகள் தெளிவாகின்றன. எடுத்துக்காட்டாக, ஒரு பயன்பாடு ஒரு விசைக்கு எதிராக ஒரு குறிப்பிட்ட மதிப்பைகாணவிரும்பலாம், இதில் ஒரு கிடைவரிசை/ஆவணம் சார்ந்த தரவுத்தளம் அதிக பயனுள்ளதாக இருக்கும், அல்லது மதிப்புகளின் வரம்பிற்கான விசைகளைப் பெறலாம், அப்படியானால் ஒரு நெடுவரிசை தரவுத்தளமானது ஒரு சிறந்த தேர்வாக இருக்கும்.
CAP தேற்றம்: உற்பத்தி தரவுத்தளங்கள் பொதுவாக தவறான சகிப்புத்தன்மைக் காகவும் நம்பகத்தன்மைக்காகவும் விநியோகிக்கப்பட்ட அமைப்புகளாக பயன்படுத்தப்படுகின்றன.எனவே இிதில் பல்வேறு காரணிகள் செயல்படுகின்றன, அதாவது, நிலைத்தன்மை (அதாவது, ஒரு கொத்தில் உள்ள அனைத்து உறுப்புகளாலும் வழங்கப்படுகின்ற மதிப்பு எவ்வாறு இருந்தாலும்), கிடைக்கின்ற தன்மை (அதாவது, இணைப்பில்லாத அல்லது இணைப்புடனானவலைபின்னல் பகிர்வுகள் இருந்தபோதிலும் கணினி செயல்படுகின்ற தன்மை), பகிர்வு சகிப்புத்தன்மை (அதாவது, கொத்தில் உள்ள உறுப்புகளிடையே வலைபின்னல் இணைப்பு கிடைக்காதவைகளுக்கு விநியோகிக்கப்பட்ட அமைப்பின் சகிப்புத்தன்மை ) ஆகியவைகளாகும்.இவ்வாறான, நிலைத்தன்மை, கிடைக்கும் தன்மை , பகிர்வு சகிப்புத்தன்மை ஆகியவற்றுக்கு இடையே என்ன தேவை , எதை வர்த்தகம் செய்யலாம் என்பதை தெளிவுபடுத்த . பிரபலமான CAP தேற்றம்உதவுகிறது. கொடுக்கப்பட்ட பிணைய பகிர்வுகள் நடைமுறையில் தவிர்க்க முடியாதவை, நம்முடைய பயன்பாட்டு வழக்கங்களின் நிலைத் தன்மையைக் கோரினால், கிடைக்கும் தன்மையை அல்லது அதற்கு நேர்மாறாக வர்த்தகம் செய்ய வேண்டியிருக்கும். உதாரணமாக, ஒரு எளிய இரு-முனை தரவுத்தள அமைப்பில் (ஒரு முதன்மையாளரும் . ஒரு பதிலியும்), பயன்பாட்டு வழக்கு நிலைத்தன்மையைக் கோரினால், அந்த விசையை அடிமையானது புதுப்பிக்கும் வரை முதன்மையாளர் ஒரு குறிப்பிட்ட விசைக்கு எதிரான பரிமாற்றங்களைத் தடுக்க வேண்டும். இருப்பினும், இந்த முதன்மையாளர்-பதிலி எனும்ஒத்திசைவு சாளரத்தின் போது, விசைக்கு எதிரான எந்த புதுப்பிப்புகளும் தடுக்கப்படும், இதனால் கிடைக்கும் தன்மையை வர்த்தகம் செய்யும்.
அளவுகோல்: கணினியின் செயல்படாத விவரங்களைப் பெறும்போது, அளவுகோல் தேவைகள் முக்கியமானவை. இது தரவுகளின் அளவு , தரவுத்தளத்திற்கான கோரிக்கைகளை முன்னறிவிப்பதாகும். ஒரு சில அமைப்புகள் கிடைமட்டமாக நன்றாக அளவிடுகின்றன, மற்றவை செங்குத்தாகச் செயல்படுகின்றன, மேலும் சில பயன்பாட்டு சந்தர்ப்பங்களில், சில விசைகள் பெரிதும் அணுகப்படுகின்றன.
செயல்திறன்: இது நம்முடைய பயன்பாட்டின் செயல்திறன் தேவைகள் ஆகிய வற்றினை மதிப்பிடுவதை உள்ளடக்குகிறது. கணினி வடிவமைப்பின் சில கட்டத்தில், எந்த வினவல்கள் அதிகம் படிக்கப்படுகின்றன, எது எழுத-கடினாமானவை என்பதை நாம் புரிந்துகொள்வோம். பயன்பாட்டு மறுமொழி நேரம் தரவுத்தள பரிமாற்ற தாமத தேவைகளை தீர்மானிக்கிறது.
சுற்றுச்சூழல் அமைப்புடன் இயங்கக்கூடிய தன்மை: ஒரு தரவுத்தளமானது ஒன்று அல்லது இரண்டு சேவைகளிலிருந்து மட்டுமே அழைக்கப்படுவதில்லை. காலப்போக்கில் புதிய புதிய தேவைகள் ஏராளமான அளவில்சேர்க்கப்படலாம், மேலும் தரவுத்தள தொழில்நுட்பம் நம்முடைய உள்கட்டமைப்புடன் எளிதாக தொடர்பு கொள்ளுமாறு இருக்கவேண்டும். எடுத்துக்காட்டாக, ஒருநிறுவனம் விரிவடையும் போது, தரவுத்தளத்திலிருந்து தரவை ஒரு தரவுகிடங்கிற்கு பதிவேற்றம் செய்ய விரும்பலாம் அல்லது கிடைவரிசை புதுப்பிப்புகளில் செயல்களைத் தூண்டலாம், அந்த நேரத்தில் நம்முடைய தரவுத்தள கட்டமைப்பானது அருகிலுள்ள புதிய தொழில்நுட்பங்களுடன் நன்றாக ஒருங்கிணைக்க வேண்டும். தொழில்நுட்பத் தேர்வுக்கான சுற்றுச்சூழல் அமைப்பு ஆதரவையும் காணவேண்டும் – திறமூல அறிவு தயாராக இருக்கின்றoff-the-shelf நூலகங்கள் ஆகியவற்றின் சிறந்த ஆதரவு (எடுத்துக்காட்டாக, தொடர்புடைய தரவு அணுகலை நிர்வகிக்க ORM அல்லது பொருள்-நோக்கு பதிலியாக்கு தலிற்கான தரவுத்தளங்கள்).
பாதுகாப்பும் இணக்கமும்: வளர்ந்து வரும் மோசடி யுகத்தில், சான்றுறுதியளித்தல், ஏற்புறுதியளித்தல், ஓய்வு/அல்லது போக்குவரத்தில் குறியாக்கம் போன்ற பாதுகாப்பு வழிமுறைகளே நாம் கவணத்தில்கொள்ள வேண்டிய மிக அடிப்படையான சலுகைகளாகும். நிறுவனத்தின் அடிப்படையில் இணக்கத் தேவைகள் மாறுபடலாம்,முக்கியமான தரவைக் கையாளுதல், தரவுத்தளமானது விதிமுறைகளுக்கு இணங்குவதை உறுதி செய்தல், தணிக்கை செய்தல் போன்றவற்றை உள்ளடக்கியிருக்கலாம்.
மேம்பாடும் செயல்பாட்டுசெலவுகளும்: இறுதியில், மேம்படுத்துநர்கள்தான் தரவுதளஅமைப்பைப் பராமரிப்பார்கள், எனவே தீர்மானிக்கப்பட்ட தேர்வைக் கையாளும் போது அவர்களின் செயல் எளிதாக இருக்கும் என்பதை உறுதிப்படுத்த வேண்டும். எடுத்துக்காட்டாக, சில தரவுத்தளங்கள் சேவையகமாகவும் மற்ற, சிலவற்றிற்கு நம்முடைய சொந்த கொத்தினையும் உருவாக்கி நிர்வகிக்க வேண்டும். தொழில்நுட்பத்தைப் பற்றி அறிய, குழுவில் சேரும் ஒரு புதியவருக்கு கற்றல்தன்மை எவ்வாறு இருக்கும் என்பதை ஒருவர் மதிப்பீடு செய்ய வேண்டும்.
செலவு: தேர்வு செய்யும் போது இதற்கான செலவு என்பது ஒரு முக்கியமான கருத்தமைவாகும். முன்கூட்டிய செலவுகள் மட்டுமல்லாமல், அளவிடுதல், பராமரிப்பு, ஆதரவு ஆகியவற்றுடன் தொடர்புடைய நீண்ட கால செலவுகளையும் கருத்தில் கொள்க. சில தரவுத்தளங்கள் பயன்படுத்த கட்டணமற்றவை வேறுசில உரிமம் பெற்றவை.
தரவுத்தளங்களின் வகைகள்: மாதிரிதரவின் அடிப்படையில் பரந்த வகை தரவுத்தளங்களை இப்போது காண்போம், பொதுவாக இதுதான்நாம்தேர்வு செய்யத் தொடங்குவதற்கு ஒரு முக்கிய புள்ளியாக இருக்கும்.
தொடர்புடைய/கிடைவரிசை(Relational/row) அடிப்படையிலான தரவுத்தளங்கள்: இந்த தரவுத்தளங்கள் முன் வரையறுக்கப்பட்ட செயல்திட்டத்துடன் கிடைவரிசை களையும் நெடுவரிசைகளையும் பயன்படுத்தி அட்டவணைகளின் வடிவில் தரவைச் சேமித்து ஒழுங்கமைக்கின்றன. ACID பண்புகளை ஆதரிக்க சிக்கலான வினவல் (எ.கா., அட்டவணைகளுக்கு இடையே இணைதல்), பரிமாற்ற ஆதரவு (உத்திரவாதங்களின்/பின்னோட்டங்களின் மூலம்), தரவு ஒருமைப்பாடு (முதன்மை/வெளிப்புற விசை போன்ற கட்டுப்பாடுகள் மூலம்) கையாளுவதற்கு இவை சிறந்தவை. இவை SQL அடிப்படையிலான தரவுத் தளங்கள் என்றும் அழைக்கப்படுகின்றன, SQL என்பது தரவை அணுகு வதற்கான பொதுவான வடிவமாகும். இதனுடைய ஒரு பெரிய குறைபாடு அமைப்பு முறைகளின் நீட்டிப்பாகும் இது கட்டமைப்பு சாராத தரவு அல்லது தரவுகளுக்கு மிகவும் பொருத்தமானது அன்று, இதன் அமைப்பு முழுமையாக அறியப்படாத , காலப்போக்கில் மாறுபடும். இங்குதான் NoSQL (SQL மட்டுமல்ல) தரவுத்தளங்கள் அவற்றின் பொருத்தத்தைக் கண்டறிகின்றன. இதற்கான எடுத்துக்காட்டுMySQL, Postgres , Oracle ஆகியன. தரவு நிலைத்தன்மை/ ஒருமைப்பாடு மிக முக்கியத்துவம் வாய்ந்த நிதி/வங்கி களங்களில் இவை பரவலாகவும்ERP , CRM ஆகியவற்றிலும் இவைபயன்படுத்தப்படுகின்றன..
நெடுவரிசை அடிப்படையிலான(Columnar-based) தரவுத்தளங்கள்: கிடைவரிசை அடிப்படையி லான தரவுத்தளங்களில் தரவுஆனது வட்டில் கிடைவரிசையாக சேமிக்கப் படுகிறது, அது போன்றில்லாமல்,நெடுவரிசை தரவுத்தளங்களில் தரவை நெடுவரிசைகளாக சேமிக்கின்றன, அதன் மூலம் நெடுவரிசைகளுக்கு எதிரான வினவல்களை மேம்படுத்துகிறது. எனவே, அவை பகுப்பாய்வு வினவல்களுக்கு நல்ல பயனுள்ளவைகளாக அமைகின்றன. இந்தத் தரவுத் தளங்கள் வணிக நுண்ணறிவையும் அறிக்கையிடலுக்கான தரவினையும் கிடங்காகப் பயன்படுத்திகொள்கின்றன. அப்பாச்சியின்Cassandra ,AWS இன் Redshif ஆகியவை இதற்கான எடுத்துக்காட்டுகளாகும். இந்த தரவுத்தளங்கள் பொதுவாக படிக்க-அதிக பணிச்சுமைகளுக்கு உகந்ததாக இருப்பதால், அதிக ஒத்திசைவு தேவைப்படும் பரிமாற்ற பணிச்சுமைகளுக்கு உகந்ததன்று. தரவுத் தொகுப்பு சிறியதாக இருக்கும் போது மேலும் அவை ஒரு மிகையாக இருக்கலாம் ஒரு பகுப்பாய்வு சார்ந்த பயன்பாட்டு நிகழ்வுகளை கோராது, மாறாக ACID பண்புகள் தேவைப்படும். வினவலில் எத்தனை நெடுவரிசைகளைத் தேர்ந்தெடுக்க விரும்புகிறீர்கள் என்பதைப் பொறுத்து படிப்பதற்கானச் செலவு அதிகரிக்கிறது.
ஆவணம் சார்ந்த(Document-oriented ) தரவுத்தளங்கள்: இந்தத் தரவுத்தளங்கள் JSON/BSON இல் உள்ள சுய விளக்க ஆவணங்களில் தரவைச் சேமிக்கின்றன அல்லது அமைப்புமுறைகளில்ஏதேனும் வாடிக்கையாளரின் தேவைகேற்ப நெகிழ்வான/திறன்மிக்கதாக இருக்கின்றன. ஆவணங்களின் கட்டமைப்பை காலப்போக்கில் எளிதாக நீட்டிக்க முடியும், மேலும் ஒவ்வொரு விசையும் அதன் சொந்த ஆவண அமைப்பைக் கொண்டிருக்கலாம். பொதுவான பயன்பாட்டு வழக்கு ஒரு களப்பெயர் நிறுவனத்திற்கு எதிராக பல்வேறு பண்புக்கூறுகளை சேமிப்பதாகும். ஒன்று அல்லது அதற்கு மேற்பட்ட விசைகளைப் பயன்படுத்தி அல்லது சில தொழில்நுட்பங்களுக்கான பண்புக் கூறுகளைப் பயன்படுத்தி அவை அட்டவணைப்படுத்தப்படுகின்றன. எடுத்துக்காட்டு MongoDB,CouchDB;ஆகியவை இந்த தரவுத்தளங்களைப் பயன்படுத்தி ஏறக்குறைய ஒவ்வொரு நவீன கால பயன்பாட்டையும் காணலாம். இந்தக் கட்டுரையில் முன்பு CAP தேற்றம் தொடர்பாக விவாதிக்கப்பட்டபடி, நிலைத் தன்மை ,கிடைக்கும் தேவை ஆகியவற்றின் அடிப்படையில் தொழில் நுட்பங்களுக்கு இடையே தேர்வு செய்யலாம். எடுத்துக்காட்டு MongoDB , AWS DynamoDB ஆகியவை .
முக்கியமதிப்பு(Key-value ) தரவுத்தளங்கள்: இவை ஒரு விசைக்கு எதிராக மதிப்புகளைச் சேமிக்கப் பயன்படும் எளிய தரவுத்தளங்கள். முக்கிய இடைவெளிகள் மிகவும் பகிர்வாகவும் கிடைமட்டமாகவும் அளவிடக்கூடியவை, இவை அதிக செயல்திறன்,குறைந்த தாமதத்தில் படித்தல், எழுதுதல் பயன்பாட்டு நிகழ்வுகளுக்கு மிகவும் பொருத்தமானவை. முக்கிய மதிப்பு தரவுத்தளங்களின் எடுத்துக்காட்டு Redis, Riak DB, AWS DynamoDB. ஆகியவை . சில தரவுத்தளங்கள் – முக்கிய மதிப்பு அங்காடி, ஆவண தரவுத்தளம் ஆகிய இரட்டை நோக்கத்திற்கு சேவை செய்கின்றன. எடுத்துக்காட்டாக, AWS DynamoDBஐ ஒரு ஆவண தரவுத்தளமாக (ஒரு விசைக்கு எதிராக ஒரு ஆவணத்தை சேமிக்க) அல்லது ஒரு விசைக்கு எதிரான எளிய மதிப்பாக கூட பயன்படுத்தலாம்.
வரைபட(Graph ) தரவுத்தளங்கள்: இந்த தரவுத்தளங்கள் வரைபட வடிவில் உள்ள மாதிரி தரவை, மேலும் முனைமங்களையும் , விளிம்புகளையும் பயன் படுத்துகின்றன. இந்த முனைமங்களும் விளிம்புகளும் அதற்கானபண்புகளைக் கொண்டிருக்கலாம். மிகவும் இணைக்கப்பட்ட தரவை மாதிரியாக செய்வதற்கும், சிக்கலான multi-hop traversals, reverse lookups ,relationship ஆகிய பகுப்பாய்வுகளை செய்வதற்கும் இவை மிகவும் பொருத்தமானவை, இவை மற்ற தரவுத்தளங்களுடன் மிகவும் சிக்கலானவை அல்லது அடைய முடியாதவை களாகும். எடுத்துக்காட்டு Neo4j, AWS Neptune, Azure Cosmos DB ஆகியவை
நேரத் தொடர் (Time series )தரவுத்தளங்கள்: இவை நேர முத்திரை அடிப்படையிலான உணர்வி(sensor) தரவு, CPU போன்ற கணினி அளவீடுகள், நினைவகப் பயன்பாடு, நிதிச் சந்தைத் தரவு போன்றவற்றை திறமையான சேமிப்பு, மீட்டெடுப்பு , பகுப்பாய்வு ஆகியவற்றிற்காக வடிவமைக்கப்பட்டுள்ளன. மற்ற தரவுத்தளங்களுடன் இந்த பயன்பாட்டு நிகழ்வுகளை அடைய முயற்சிப்பது சிக்கலானதாக இருக்கும்.இது வினவல்கள் அல்லது அதிக I/O செலவை ஏற்படுத்துகிறது, இவ்வாறான நிலையில் நேர-தொடர் தரவுத்தளங்கள் உதவிக்கு வருகின்றன. எடுத்துக்காட்டு Influx DB , Open TSDB ஆகியவை
நினைவகத்தின்(In-memory( தரவுத்தளங்கள்: மீச்சிறுநொடியின் வரம்பிற்குள் படிக்க/எழுத தாமதத்தை கோரும் உயர் செயல்திறன்/குறைந்த தாமத பயன்பாடுகளுக்கு (வழக்கமாக மில்லி விநாடிகள் வரம்புகளின் செயல்திறனை வழங்குகின்ற பிற தரவுத்தளங்களுக்கு மாறாக), நினைவகத்தின் தரவுத்தளங்கள் தேர்வு செய்யப்படுகின்றன. வட்டு I/O ஐ உள்ளடக்கிய மற்றொரு தரவுத் தளத்திற்கு மாறாக முதன்மை நினைவகம்/RAM இலிருந்து தரவு சேமிக்கப்பட்டு அணுகப்படுவதால் மேம்படுத்தப்பட்ட செயல்திறன் கொண்டுள்ளன..
மற்ற தரவுத்தளங்களை விட எதிர்மறையான செலவினை கொண்டவை களாகும். முதன்மை நினைவகம் பொதுவாக வட்டை விட விலை அதிகம் என்பதால், நினைவக தரவுத்தளங்களைத் தேர்ந்தெடுக்கும் போது குறைந்த தாமதத்தின் நன்மைக்காக ஒருவர் அதிக விலையை செலுத்துகிறார். எடுத்துக்காட்டுSAP HANA ,Redis ஆகியவை . இவை தவிர, பேரேட்டு தரவுத்தளங்கள், இடஞ்சார்ந்த தரவுத்தளங்கள், நெறிய தரவுத்தளங்கள் போன்றவைகள் உள்ளன, அவை பெரிய கணினிமொழி மாதிரிகள் அல்லது LLM களுக்கு பிரபலமானவை , வெவ்வேறு துறைகளில் முத்திரை பதித்துள்ளன.