தரவுச் சுரங்கம் - 27

தரவுச்சுரங்கம் – 27

ETL (Extract, Transform, Load) செயல்முறையில் அடுத்ததாக ‘L’ - ஏற்றுதல் (Load) என்பது தரவை அப்படியே ஏதோ வண்டியில் ஏற்றிக் கொட்டுவது போன்ற ஒரு எளிய படிநிலை கிடையாது. குறிப்பாக, இன்றைய நவீன தரவுக் கிடங்கு (Data Warehouse) அமைப்புகளில் இது மிக முக்கியப் பங்காற்றுகிறது.

OLTP (Online Transaction Processing) எனப்படும் வரிசை-வழி தரவுத்தளங்களிலிருந்து (Row-based Databases), OLAP (Online Analytical Processing) எனப்படும் நிரல்-வழி தரவுத்தளங்களுக்கு (Columnar Databases) தரவை மாற்றும் போது, இந்த ‘Load’ படிநிலை ஒரு வெறும் தரவேற்றம் என்பதைத் தாண்டி, ஒரு இறுதிநிலை உருமாற்றமாகவே (Final Transformation) செயல்படுகிறது.

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

‘Load’ படிநிலையில் தரவு கிடங்கிற்குள் தரவு ஏற்றப்படும்போது பின்வரும் முக்கியப் பணிகள் நடைபெறுகின்றன: 1. கட்டமைப்பு மாற்றம் (Schema Transformation): OLTP அமைப்புகளில் தரவு பொதுவாக சீரமைவு வடிவத்தில் (Normalized Form) இருக்கும். ஆனால், OLAP அமைப்புகளில் பகுப்பாய்வுக்கு (Analysis) ஏதுவாக நட்சத்திர வடிவமைப்பு (Star Schema) அல்லது பனித்துகள் வடிவமைப்பு (Snowflake Schema) போன்ற அமைப்புகளுக்கு மாற்றப்படுகிறது. இந்த சிக்கலான மாற்றங்கள் ‘Load’ படிநிலையின் போதே உறுதி செய்யப்படுகின்றன.

  1. வரிசை-வழியிலிருந்து நிரல்-வழிக்கு மாற்றுதல் (Row-to-Columnar Conversion): இதுதான் குறிப்பிடத் தக்க மிக முக்கியமான புள்ளி. தரவு வரிசை வரிசையாகப் படிக்கப்பட்டு, நிரல் நிரலாக (column by column) பிரித்து, பிரத்யேகமான முறையில் சேமிக்கப்படுகிறது. இந்த மாற்றம் ‘Load’ செய்யப்படும்போதே நடக்கிறது.

  2. குறியீடுகள் மற்றும் சுருக்கங்கள் உருவாக்குதல் (Indexing & Compression): தரவை ஏற்றிய பிறகு, அதன் மீது மிக வேகமாகக் கேள்விகளை (queries) இயக்க வேண்டும். அதற்காக, Clustered Column store Indexes போன்ற பிரத்யேகக் குறியீடுகள் உருவாக்கப்படுகின்றன. மேலும், தரவு நிரல்-வழியில் சேமிக்கப்படுவதால் மிக அதிக அளவில் சுருக்கப்படுகிறது (compression). இந்தச் செயல்கள் அனைத்தும் ஏற்றுதலின் ஒரு பகுதியாகும்.

  3. பிரிவினை செய்தல் (Partitioning): மிகப் பெரிய அட்டவணைகளை (Fact tables) ஆண்டு, மாதம் அல்லது காலாண்டு வாரியாகப் பிரித்து (partition) சேமிப்பது வழக்கம். இது தரவு மேலாண்மையையும், கேள்வி வேகத்தையும் அதிகப்படுத்தும். இந்தப் பிரிவினைப் பணியும் தரவை ஏற்றும்போதுதான் செய்யப்படுகிறது.

• முன்-கணக்கீடுகள் (Pre-Aggregations): சில சமயங்களில், அடிக்கடி பயன்படுத்தப்படும் கூட்டுத்தொகை (SUM), சராசரி (AVERAGE) போன்ற மதிப்புகளை முன்கூட்டியே கணக்கிட்டு, தனி அட்டவணைகளில் (Aggregate Tables) சேமிக்கப்படும். இது BI கருவிகளில் அறிக்கைகள் மிக வேகமாகத் தயாரிப்பதற்கு உதவும். இந்த முன்-கணக்கீட்டு அட்டவணைகளும் ‘Load’ படிநிலையில்தான் உருவாக்கப்படுகின்றன.

எனவே, ‘Load’ என்பது ஒரு எளிய நகலெடுப்பு அல்ல; அது தரவைப் பகுப்பாய்வுக்குத் தயார்படுத்தும் ஒரு இறுதி மற்றும் அதிமுக்கியமான செயல்பாடு.

நிரல்வழியில் சேமிப்பதன் சில நன்மைகள்:

அதிக சுருக்கம் (High Compression): ஒரு நிரலில் ஒரே மாதிரியான தரவுகளே (e.g., எண்கள் மட்டும், அல்லது குறிப்பிட்ட சில வார்த்தைகள் மட்டும்) ஒன்றாக இருக்கும். ‘மண்டலம்’ எனும் தொகுதியில்: [தெற்கு, மேற்கு, வடக்கு, தெற்கு, ...]. இதில் ‘தெற்கு’ என்ற வார்த்தை பலமுறை வரலாம். இதைச் சுருக்கும்போது, 'தெற்கு' - 2 முறை, 'மேற்கு' - 1 முறை என மிக எளிதாக, குறைந்த இடத்தில் சேமிக்க முடியும். இதுவே Run-Length Encoding போன்ற சுருக்கும் நுட்பங்களின் அடிப்படை. ஒரே மாதிரியான தரவுகள் ஒன்றாக இருப்பதால், சுருக்கும் திறன் (compression ratio) 10 மடங்கு வரை கூட அதிகமாக இருக்கும். இதனால் சேமிப்புச் செலவு பெருமளவு குறைகிறது.

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


Author: ரத்தினகிரி

ரத்தினகிரி சுப்பையா

-பட்டயக் கணக்காளர் - ஆசிரியர் - தரவு பகுப்பாய்வு ஆர்வலர்