इंटरअॅक्टिव्ह डेटा व्हिज्युअलायझेशनसाठी बॅकएंडचा विचार करणे देखील आवश्यक आहे

लोक डेटा व्हिज्युअलायझेशनच्या चुकीच्या थराचे कौतुक करतात.

त्यांना स्मूथ ॲनिमेशन आणि पॉलिश केलेले नकाशे दिसतात. पण ते व्हिज्युअल्स शक्य करणाऱ्या अदृश्य कामाकडे त्यांचे लक्ष जात नाही. विस्कळीत डेटा स्वच्छ करणारे 'इन्जेशन जॉब्स' (ingestion jobs) किंवा API वेगवान ठेवणारी 'कॅश स्ट्रॅटेजीज' (cache strategies) त्यांना दिसत नाहीत.

ते अदृश्य कामच खरे उत्पादन (product) आहे.

जर तुम्ही डेटा-हेवी (data-heavy) अनुभव तयार करत असाल, तर फ्रंटएंड हे केवळ एक रेंडरर (renderer) आहे. खरी इंजिनिअरिंग आव्हाने 'अपस्ट्रीम' (upstream) मध्ये असतात. ब्राउझरपर्यंत कोणता डेटा पोहोचला पाहिजे आणि तो किती प्रमाणात पोहोचला पाहिजे, याचा निर्णय तुम्हाला घ्यावा लागतो.

जर तुम्हाला तुमचे व्हिज्युअलायझेशन खऱ्या ट्रॅफिकमध्ये टिकवून ठेवायचे असेल, तर तुम्हाला 'बॅकएंड-फर्स्ट डिझाइन' (backend-first design) आवश्यक आहे. त्याशिवाय, तुम्ही केवळ एका अस्थिर मार्गावर छान ॲनिमेशन लेयर असलेले एक 'डेमो' पाठवत आहात.

अनेक व्हिज्युअलायझेशन स्टॅक्स (visualization stacks) अपयशी ठरतात कारण API हे स्टोरेज मॉडेलच्या खूप जवळ असते. बॅकएंड कच्चा डेटा (raw records) पाठवते आणि फ्रंटएंडला तो डेटा स्वच्छ, एकत्रित (aggregate) आणि ग्रुप करण्यासाठी भाग पाडले जाते. डेव्हलपमेंट दरम्यान हे वेगवान वाटते, परंतु प्रोडक्शनमध्ये ते महाग पडते कारण प्रत्येक वापरकर्त्याला डेटा क्लीनअपचा खर्च सोसावा लागतो.

तुमच्या बॅकएंडने 'प्लेबॅक मॉडेल' (playback model) प्रदान केले पाहिजे, कच्चा लॉग (raw log) नाही.

जेव्हा बॅकएंड कठीण कामे हाताळते, तेव्हा सर्व काही सुधारते:

  • CPU चे काम ब्राउझरच्या बाहेर जाते.
  • वर्तन (behavior) तपासणे सोपे होते.
  • कॅशेबिलिटी (cacheability) सुधारते.
  • सिस्टम अधिक प्रेडिक्टेबल (predictable) होते.

व्हिज्युअलायझेशन हा एक विशेष ग्राहक (specialized consumer) आहे. त्याला जलद प्रवेश आणि लहान पेलोड्सची (payloads) गरज असते. त्याला ॲडमिन डॅशबोर्ड किंवा डेटा एक्सपोर्टसाठी वापरल्या जाणाऱ्या त्याच API चा वापर करण्यास भाग पाडू नका. त्याला एक समर्पित बॅकएंड कॉन्ट्रॅक्ट (dedicated backend contract) द्या.

एका प्रोफेशनल पाइपलाइनने पाच गोष्टी केल्या पाहिजेत:

  • खराब डेटा नाकारण्यासाठी सोर्स रेकॉर्ड्सची पडताळणी करणे.
  • टाइम झोन आणि युनिट्स सारख्या स्ट्रक्चर्सचे नॉर्मलायझेशन करणे.
  • कच्च्या ओळींऐवजी (raw rows) प्लेबॅक सेगमेंट तयार करणे.
  • वेगवेगळ्या झूम लेव्हल्ससाठी विविध रिझोल्यूशन तयार करणे.
  • जुना डेटा मिसळू नये म्हणून रिव्हिजन स्टॅम्प लावणे.

पेलोडचा आकार (payload size) ही फ्रंटएंडची समस्या मानणे थांबवा. ही API कॉन्ट्रॅक्टची समस्या आहे. जर तुमचा सर्व्हर खूप जास्त डेटा पाठवत असेल, तर इंटरअॅक्शन कधीही वेगवान वाटणार नाही.

एक मजबूत API शक्य तितका लहान आणि अचूक दृष्टिकोन (truthful view) पाठवते. ते वेळ, प्रदेश आणि तपशीलाच्या पातळीनुसार विनंती मर्यादित करते.

तुमची सिस्टम रिंग्समध्ये (rings) तयार करा:

  • पहिली रिंग ओव्हरव्ह्यूद्वारे दिशा (orientation) प्रदान करते.
  • दुसरी रिंग स्क्रबिंग आणि झूमिंगसाठी इंटरअॅक्शन प्रदान करते.
  • तिसरी रिंग सखोल एंटिटी तपशीलांसाठी तपासणी (inspection) प्रदान करते.

केवळ अपटाइम (uptime) ट्रॅक करू नका. पेलोड आकार, कॅश हिट रेट्स आणि डेटाची ताजेपणा (freshness) ट्रॅक करा. सर्वात महत्त्वाचे म्हणजे, तुमचे प्रोसेस्ड आर्टिफॅक्ट्स (processed artifacts) अजूनही वास्तवाशी जुळतात की नाही याची पडताळणी करा.

एक डेरिव्हड व्हिज्युअलायझेशन हे डेटा उत्पादन (data product) आहे. त्याला केवळ रेंडरिंगची नाही, तर व्हॅलिडेशनची गरज आहे.

तुमचे बॅकएंड असे तयार करा की जणू फ्रंटएंड हे व्हर्जन केलेल्या डेटा उत्पादनासाठी (versioned data product) एक प्लेबॅक क्लायंट आहे. अशा प्रकारे तुम्ही लाँच नंतरही टिकून राहणाऱ्या सिस्टम्स तयार करू शकता.

स्रोत: https://dev.to/saqueib/interactive-data-visualizations-need-backend-thinking-too-5bk0