எளிய தமிழில் IoT 12. தரவை தரவுத்தளத்தில் சேமித்தல்

IoT அமைப்பில் தரவுகள் பெரிய அளவில் வந்து கொண்டே இருக்கின்றன. காணொளித் தாரை (streaming video), வானலை அடையாளம் (RFID) தரவுகள், உணரிகள் (sensors) அனுப்பும் தரவுகள் ஆகியவை இதில் அடங்கும். அனேகமாக இவையெல்லாமே காலத்தொடர் (time series) தரவுகள்தான். இம்மாதிரி பெரிய அளவில் தரவுகளைக் கையாளுவதே ஒரு சவால்தான். மேலும் தொழிற்சாலையில் இயந்திரங்களைக் கட்டுப்பாடு செய்ய இந்தத் தரவுகளை உடனடியாகப் பகுப்பாய்வு செய்து நிகழ் நேரத்தில் (realtime) முடிவுகள் எடுக்க வேண்டியிருக்கலாம். இவை தவிர தரவுகளையும் நம்முடைய IoT அமைப்பையும் பாதுகாப்பாகவும் வைத்துக்கொள்ள வேண்டும்.

நாம் வெப்பநிலை போன்ற ஒரு அளவுரு (parameter) காலத்துடன் எவ்வாறு மாறுகிறது என்று பார்க்கவேண்டும் என்று வைத்துக்கொள்வோம். அந்தத் தரவு வரவர நாம் அதை ஒரு தரவுத் தளத்தில் சேமித்து வைத்துக்கொள்ள வேண்டும். பின்னர் அந்த அளவுரு நாள், வாரம், மாதத்தில் எவ்வாறு மாறுகிறது என்று போக்கு வரைபடமாகப் (Trend chart) பார்க்கலாம். நமக்கு அந்தத் தரவு என்ன வடிவத்தில் வருகிறது, அதை எப்படி சேமிப்பது என்று அடுத்துப் பார்ப்போம்.

உணரிகள் மற்றும் இயக்கிகள் அனுப்பும் தரவின் வடிவம்

பெயர்-மதிப்பு இணை (name-value pair): நமக்கு வரும் தரவு உரைச்சரமாக (text string) கீழ்க்கண்ட வடிவத்தில் இருக்கிறது என்று வைத்துக் கொள்வோம்:

sensor1,temperature,20,humidity,71

முதலில் இருக்கும் ‘sensor1’  உணரியின் பெயர். அடுத்து அளவுருவின் பெயரும் அதற்கான மதிப்பும் இணையாக வருகின்றன. வெப்பநிலை 20 மற்றும் காற்றில் ஈரப்பதம் 71.

JSON குறியீடு தரவு: நமக்கு வரும் தரவு கீழ்க்கண்ட வடிவத்தில் இருந்தால் அது JSON குறியீடு:

{temperature: 20, humidity: 71}

அளவுருக்களின் பெயரையும் அவற்றின் மதிப்பையும் பிரித்தெடுக்க ஜவாஸ்கிரிப்ட் நிரல் மொழியில் செயலாற்றிகள் (functions) உள்ளன.

கருத்துருவை நிரூபிக்க (proof-of-concept) எளிய தரவுத்தளம்

நாம் உருவகிக்கும் அமைப்பு சரியாக வேலை செய்யுமா என்று சோதனை செய்து பார்க்க சீக்வலைட் (SQLite) தோதானது. 

சீக்வலைட் தரவுத் தளம்

சீக்வலைட் தரவுத் தளம்

இதை எளிதாக நிறுவிப் பயன்படுத்தலாம். இது நினைவகத்தில் குறைவான இடத்தை அடைக்கிறது. ஆகவே ராஸ்பை (Raspberry Pi) போன்ற கையடக்கக் கணினிகளும் நிறுவலாம். இதைப் பயன்படுத்தும் முன் அமைப்பதற்கு மிகவும் மெனக்கெட வேண்டியதில்லை. மேலும் இது மற்ற மென்பொருட்களைச் சார்ந்து இல்லை. 

காலத்தொடர் தரவுத் தளங்கள் (Time series databases)

அனேகமாக IoT தரவுகள் யாவும் காலத்தொடர் (time series) தரவுகள்தான் என்று மேலே பார்த்தோம். இவற்றை சேமித்து வைக்க காலத்தொடர் தரவுத் தளங்கள் தோதானவை.

இன்ஃப்ளக்ஸ்-டிபி (InfluxDB): இந்த திறந்த மூல மென்பொருளால் தரவுத் தொடர்களை அட்டவணைப்படுத்த (indexing of series) முடியும். வந்து சேராத தரவுகளின் இடத்தில் நேர்கோட்டு இடை மதிப்பீட்டை (linear interpolation) இட்டு நிரப்பும். மாதிரி எடுப்பதை தேவைக்குத் தக்கவாறு குறைக்க (down sampling) முடியும்.

டைம்ஸ்கேல்-டிபி (TimescaleDB): இது பரவலாகப் பயன்படுத்தப்படும் திறந்த மூல போஸ்ட்கிரசீக்வல் (PostgreSQL) ஐ அடிப்படையாக வைத்துக் கட்டப்பட்டது.

நன்றி

  1. SQLite with Node-RED and Raspberry Pi

இத்தொடரில் அடுத்த கட்டுரை: IoT இயங்குதளங்கள் (Operating systems – OS)

IoT இயங்குதளங்களுக்கு முக்கிய அம்சங்கள். தொலை சாதன மேலாண்மை (Remote device management). லினக்ஸ் அடிப்படையிலான IoT இயங்குதளங்கள். IoT போன்ற உட்பொதி அமைப்புகளுக்காகவே (embedded systems) உருவாக்கிய இயங்குதளங்கள். நிகழ் நேர (Real-time) இயங்கு தளங்கள்

ashokramach@gmail.com

%d bloggers like this: