உள்ளடக்க உருவாக்குநர்களின் பகுப்பாய்வுகளை விரிவாக்க ரோப்லாக்ஸ் தியா ஸ்கெட்சஸைப் பயன்படுத்தியது எப்படி

இன்றைய நிகழ்நேர பலர் விளையாடும் விளையாட்டுகளுக்குப் பகுப்பாய்வுகள் அவசியமானவை. ரோப்லாக்ஸில், எங்கள் படைப்பாளிகள் செழிக்க உதவும் அளவீட்டுக் கருவிகளை உருவாக்குவதில் நாங்கள் கவனம் செலுத்துகிறோம். எங்கள் இலவச, உடனடியாகப் பயன்படுத்தக்கூடிய பகுப்பாய்வுகள், படைப்பாளிகளுக்கு அவர்களின் அனுபவங்களின் வளர்ச்சி, பயனர் ஈர்ப்பு மற்றும் தக்கவைப்பு ஆகியவற்றில் உடனடி உள்ளுணர்வை வழங்குகின்றன, இது அவர்களின் வெற்றியை அதிகரிக்க உதவுகிறது.
மில்லியன் கணக்கான ரோப்லாக்ஸ் படைப்பாளிகள் சார்ந்திருக்கும் புதுப்பித்த பகுப்பாய்வு அமைப்புகளை உருவாக்குவது ஒரு முக்கியமான சவாலாகும். அதைச் சமாளிக்க, எங்கள் பகுப்பாய்வு வினவல் இயந்திரத்தை நாங்கள் மேம்படுத்தியுள்ளோம், இதன் மூலம் 86 TB தரவை அணுகும் சுமார் 300,000 தினசரி பார்வையாளர்களிடமிருந்து ஒரு 120 கோர் செயலாக்கக் கொத்து, ஒரு நாளைக்கு 6 மில்லியனுக்கும் அதிகமான வினவல்களைச் சேவை செய்ய முடியும். எங்கள் தீர்வின் மையத்தில் ஒரு ஆன்லைன் பகுப்பாய்வு செயலாக்க (OLAP) தரவுத்தளம் உள்ளது, அதன் அளவிடுதல் திறனுக்காகவும் தோராயக் கணக்கீட்டு வழிமுறைகளுடனான ஒருங்கிணைப்பிற்காகவும் நாங்கள் அதைத் தேர்ந்தெடுத்தோம். தரவு ரோலர்-அப் நுட்பங்கள் மற்றும் ஹைப்பர்லாগலாг (HyperLogLog) மற்றும் தியா ஸ்கெட்ச் (Theta Sketch) வழிமுறைகளின் கலவையைப் பயன்படுத்தி, மில்லியன் கணக்கான ராப்லாக்ஸ் அனுபவங்களுக்கு நாங்கள் பகுப்பாய்வுகளை வழங்குகிறோம்.
OLAP பகுப்பாய்வுக்கான ஒரு அறிமுகம்
எவ்வளவு அதிகமான தரவு வினவப்படுகிறதோ, அவ்வளவு அதிக நேரம் முடிவுகளை உருவாக்க எடுக்கும். தேவைப்படும் தரவைக் குறைத்து, பகுப்பாய்வு செயல்முறையை வேகப்படுத்தும்போது, உருவாக்குநர்கள் தங்கள் செயல்களிலிருந்து நிகழ்நேரத்திற்கு நெருக்கமான நுண்ணறிவுகளைப் பெற முடியும். நாங்கள் பயன்படுத்தும் சில நுட்பங்கள்:
- காலத்தொகுப்பு சேமிப்பு: OLAP ஆனது, ட்ரூயிட், தேவையான நெடுவரிசைகளை மட்டுமே படிக்கிறது.
- பிளவு மற்றும் வரிசைப்படுத்தல் வடிகட்டிகள்: OLAP, தேவைப்படும் தரவுத் தொகுதிகளுடன் நேரடியாகக் குறியிடப்பட்ட தொடர்புடைய கோப்புகளை மட்டுமே படிக்கிறது.
- ரோலப்: OLAP பொதுவான குழுவாக்கங்களைப் பயன்படுத்தி நிகழ்வுகளைப் பகுதி அளவு திரட்டுகிறது.
குறிப்பாக ரோலப்கள், ஸ்பார்க் அல்லது பிரெஸ்டோ போன்ற மிகப்பெரிய SQL வினவல் இயந்திரங்களுக்கும் (பத்து வினாடிகள் வரையிலான தாமதத்துடன்), பொதுவாக முழுமையாகத் திரட்டப்பட்ட தரவை வழங்கும் பாயிண்ட் குவெரி அல்லது வரையறுக்கப்பட்ட SQL-க்கும் இடையில் OLAP-களைச் செயல்பட உதவுகின்றன. ரோலப்களைப் பயன்படுத்தும்போது, வினவல்கள் பரிமாணங்களின் குழுவாக்கங்களின்படி குறியிடப்படுகின்றன, இதன் விளைவாக மொத்த வரிசை கார்டினாலிட்டியில் பெரிய குறைப்புகள் ஏற்படுகின்றன. பில்லியன் கணக்கான அல்லது டிரில்லியன் கணக்கான மூல நிகழ்வுகளைப் பார்க்கும்போது, அவற்றை மில்லியன் கணக்கான குழுவாக்கல்களாக உருட்டி, அவற்றை ஒரு வினாடிக்கும் குறைவான தாமதத்துடன் திரட்டுவது மிகவும் திறமையானதாக இருக்கும். உதாரணமாக:

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

விசாரணை இயந்திரத்தைத் தேர்ந்தெடுப்பதும் மேம்படுத்துவதும்
செயல்திறன் சவால்களை வெல்வது
உற்பத்தி நிழல் சோதனையின் இறுதிச் சுற்றில், ஒரு முக்கியமான சவாலைக் கண்டறிந்தோம்: பெரிய ஒற்றை வினவல்களில் இருந்து, ஒரு நாள் தொகுப்பு முறைகளுக்கு மாற்றிய பிறகு, எங்கள் MAU வினவல் செயல்திறனை வலுப்படுத்த வேண்டியிருந்தது. எங்கள் படைப்பாளர் பகுப்பாய்வு காட்சிப்படுத்தல்களுக்கு இவை மிகவும் முக்கியமானவை.
விசாரணையின் கட்டமைப்பு எங்கள் OLAP தீர்வின் அடிப்படை செயல்திறனை பெரிதும் பாதித்தது என்பதை நாங்கள் கண்டறிந்தோம். பல செயல்படுத்தல் நிலைகளைக் கொண்ட நிலையான விசாரணகள் (நெஸ்டட் "GROUP BY" அறிக்கைகள்2 போன்றவை) பெரும்பாலும் வேலையின் பெரிய பகுதிகளை இலகுவான தரகர் முனைகளுக்குத் தள்ளுகின்றன.
இது ஒரு உன்னதமான பெரிய தரவுச் சிக்கல் ஆகும், இதில் ஒரு வினவலின் ஒரு பகுதி, முக்கியமான சிறிய சேவைக் கணுக்களில் செயல்படுத்தப்படுகிறது. எங்கள் தோராயமான தரவுக் கட்டமைப்புகள் எளிய எண்ணல்கள் அல்லது கூட்டுத்தொகைகளைப் போல செயல்படும் என்று நாங்கள் எதிர்பார்த்தோம், ஆனால் அவை உண்மையில் முற்றிலும் மாறுபட்ட முறையில் செயல்படுவதை நாங்கள் கண்டறிந்தோம்.
கீழே உள்ள படம் இந்தச் சிக்கலை விளக்குகிறது. எங்கள் வரலாற்று முனைகள் (historical nodes) ஒவ்வொரு நாளுக்கும் ஒரு தியா ஸ்கெட்சை (Theta Sketch) உருவாக்கி, அதன் தரவை மீண்டும் தரகர் (broker) முனைக்குத் தள்ளுவதன் மூலம் பகுதித் திரட்டலை (partial aggregation) எவ்வாறு செய்தன என்பதை இது காட்டுகிறது. பின்னர், தரகர் ஒவ்வொரு பெரிய தினசரி ஸ்கெட்சையும் ஒரு நாளுக்கான ஒற்றை மாதாந்திர மதிப்பாக இணைக்க முயன்றது. 30 நாட்களின் MAU-க்கு, இது ஒரு பிரோக்கரில் 1,800 அதிகபட்ச அளவுள்ள தியா ஸ்கெட்ச்களை (Theta Sketches) இணைப்பதாகும், இது பிரோக்கர் CPU-வைத் தனக்குத் தானே பயன்படுத்திக்கொண்டு, மெதுவான, தோல்விகளுக்கு எளிதில் ஆளாகக்கூடிய ஒரு வினவலை (query) உருவாக்கியது.

மதிப்பீட்டு வினவல்களைச் சார்ந்திருந்த தரவு மூலங்களுக்கான தரவு உள்ளூர்மயமாக்கலை அதிகரிக்க, குறைவான பெரிய வரலாற்றுப் பணியாளர்களுடன் OLAP-ஐ இயக்குவதே எங்கள் தீர்வாக இருந்தது. நடைமுறையில், இது 100 MB-க்கும் அதிகமான தரவுச் செயலாக்கத்தைத் தேவைப்படுத்தக்கூடிய ஒரு இணைப்புச் செயல்பாட்டை எங்கள் வரலாற்று முனைகளுக்கு மீண்டும் தள்ளியது.
SQL-இல் இதை அடைய, வினவல்கள் வரலாற்று முனைகளுக்குத் தேவையான தகவல்களைச் சென்றடையச் செய்ய நாங்கள் ஒரு இன்லைன் ஜாயினைப் பயன்படுத்தினோம், மேலும் இன்லைன் முடிவுத் தேதிகளின் பட்டியலுடன் ஒரு வினவலைத் தயாரித்தோம். ஒவ்வொரு முடிவுத் தேதியும் பின்னர் வரலாற்று முனைப் பிரிவுகளிலிருந்து தொடர்புடைய தரவைச் சேகரிக்க முடியும். பின்னர் அந்தத் தரவு தரகர் (broker) இடத்திற்குத் திருப்பி அனுப்பப்படுகிறது, அங்கு கீழே காணப்படுவது போல, முடிவுத் தேதி முதல் மெட்ரிக் தரவு வரையிலான ஒற்றை வரைபடத்தில் முடிவுகள் விரைவாக இணைக்கப்படுகின்றன.

இந்த மேம்படுத்தல் பெரிய அளவிலான வினவல்களின் செயல்திறனில் ஒரு குறிப்பிடத்தக்க தாக்கத்தை ஏற்படுத்தியது. ஒரு முக்கிய அனுபவத்தின், நாடு வாரியான MAU பிரேக் டவுனைப் பொறுத்தவரை, சராசரி வினவல் செயல்திறன் 5 மடங்கு (17.53 வினாடிகளிலிருந்து 3.23 வினாடிகள் வரை) மேம்பட்டது, கீழே உள்ள விளக்கப்படத்தில் காட்டப்பட்டுள்ளபடி. மேலும், தரகர் (broker) கணினியில் CPU நேரத்தில் 50 மடங்கு குறைவையும் நாங்கள் கண்டோம் (16.83 வினாடிகளிலிருந்து 0.34 வினாடிகள் வரை).
முடிவுகள் மாறுபடலாம் என்றாலும், சிக்கலான செயல்பாடுகளை (கோடிக்கணக்கான ஸ்கெட்ச்களை ஒன்றிணைப்பது போன்றவை) கவனமாகக் கையாள்வதன் முக்கியத்துவத்தை இது எடுத்துக்காட்டுகிறது. இந்தச் செயல்பாடுகள் எளிய திரட்டல்களுக்குச் சமம் என்று கருதுவது குறிப்பிடத்தக்க செயல்திறன் சிக்கல்களுக்கு வழிவகுக்கும், குறிப்பாக கடைசி-கட்ட கிளையன்ட் திரட்டல்கள் பொதுவான அமைப்புகளில் இது நிகழும்.
ரோலப்கள் மற்றும் ஒரு கோட்பாட்டு தியா கியூப்

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


இந்த பிழை விகிதத்தை நாங்கள் விரைவாகக் கணக்கிட முடிவதால், மூல அட்டவணையைப் படிப்பது செயல்திறன் மிக்கதாக இருக்கும் என்பதற்கான ஒரு வலுவான சமிக்ஞையாகவும் இது செயல்படுகிறது. யூனியனுடன் ஒப்பிடும்போது ஒன்றுடன் ஒன்று பொருந்தும் தரவுகள் சிறியதாக இருக்கும் சந்தர்ப்பங்களில் (உதாரணமாக, ஜெர்மனியில் உள்ள ஜப்பானியப் பேச்சாளர்கள்), மூல அட்டவணையின் அதிக எண்ணிக்கையிலான வரிகள் வடிகட்டப்படும். இது திறமையான புஷ்டவுன் மேம்படுத்தல்களுக்கு வழிவகுக்கிறது. பரிமாணக் குழுக்கள், தோராயமான இணைப்புகள் மற்றும் பிழை அடிப்படையிலான மூல அட்டவணை வாசிப்புகளைப் பயன்படுத்தும் ஒரு அமைப்பு, தோராய மதிப்பீட்டிற்கு உகந்த வினவல்களில் ரோலப் செயல்திறனை உண்மையிலேயே அதிகபட்சமாக்கும்.
Roblox-ஐப் பொறுத்தவரை, இந்தத் தீர்வு எங்களின் அடுத்த கட்ட அளவிற்கு—சாத்தியமாக டைனமிக் ஃபன்னல் அல்லது தனிப்பயன் நிகழ்வு பகுப்பாய்வுக்காக—அதிகப் பொருத்தமாக இருக்கும், அதே நேரத்தில் எங்களின் தற்போதைய எளிய ரோல்அப் பிரதி இன்றைய தேவைகளைப் பூர்த்தி செய்கிறது.
ஒரு சுய சேவை தளத்தை உருவாக்குதல்
எங்கள் தரகர் உகந்தப்படுத்தப்பட்ட நிலையில், எங்கள் OLAP தீர்வில் சேர்க்கப்பட்ட தரவுத்தொகுப்புகளை ஆன் போர்டிங் செய்வதற்கும் வினவுவதற்கும் கருவிகளை உருவாக்கும் பணியில் ஈடுபட்டோம். எங்கள் டேட்டாஸ்கெட்ச் செயல்பாடுகளுக்காக ஒரு திறந்த மூல ஸ்பார்க் மற்றும் டிரினோ UDAF நூலகத்தை உருவாக்கினோம், இது ஸ்பார்க்கை எங்கள் OLAP6-ஐப் போலவே அதே பைனரி டேட்டாஸ்கெட்ச் வடிவத்தைப் பயன்படுத்த அனுமதிக்கிறது. இது எங்கள் பெரும்பாலான கணக்கீட்டு பணிச்சுமையை ஸ்பார்க்கிலேயே வைத்திருந்தது மற்றும் ரோப்லாக்ஸ் முழுவதும் தோராயமான மதிப்புகளைத் தரப்படுத்த உதவியது, இதன் மூலம் சில தரவுத்தொகுப்புகளுக்கு கணக்கீட்டுச் செலவுகளை 80% வரை குறைக்க வாய்ப்புள்ளது.
எங்கள் தொகுதி பணி அட்டவணைப்படுத்தியின் உள் நீட்டிப்பு மூலம் தரவுத்தொகுப்புகளைச் சேர்ப்பதை நாங்கள் எளிதாக்கினோம், மேலும் திறந்த வினவல்களின் தாக்கத்தைக் குறைத்து, உறுதியான அளவீடுகள் மற்றும் பரிமாணங்களைத் தீர்மானிக்க டெவலப்பர்களுக்கு வழிகாட்டும் வகையில் ஒரு டேட்டாஃப்ரேம்-பாணி API-ஐ வரையறுத்தோம். எங்கள் OLAP-இல் இந்தத் தரவை நாங்கள் எவ்வாறு ஏற்றுவோம் மற்றும் வினவுவோம் என்பதற்கான சில மாதிரி பணிப்பாய்வுகளையும் நாங்கள் திறந்த மூலமாக வெளியிட்டுள்ளோம்.
எங்களின் மேம்படுத்தப்பட்ட பகுப்பாய்வுத் தரவுத்தொகுப்புகள் இப்போது எங்கள் படைப்பாளர்களுக்கு ஆழமான நுண்ணறிவுகளை வழங்குகின்றன. எங்கள் மேம்பாடுகள் சராசரி செயல்திறனை 4 மடங்கும், மிக மோசமான செயல்திறனை 50 மடங்கும் மேம்படுத்தியுள்ளன. இந்த சுய-சேவை தளம், டெவலப்பர்களுக்கான புதிய தரவுத்தொகுப்புகளில் தொடர்ந்து மேம்பாடுகளைச் செய்ய எங்கள் படைப்பாளர் பகுப்பாய்வுக் குழுவை அனுமதிக்கிறது. அனைத்து அளவிலான டெவலப்பர்களும் இந்தக் கருவிகளைப் பயன்படுத்தி Roblox-இல் நம்பமுடியாத அனுபவங்களை உருவாக்குவதைக் காண நாங்கள் ஆவலுடன் உள்ளோம்.
1 கடந்த 60 நாட்களில் அணுகல்
உள்ள தனித்துவமான யுனிவர்ஸ்களின்படி கணக்கிடப்பட்டது 2 இந்த எளிய MAU வினவலைப்
போல 3 முடிவுகள் மார்ச் 21-28, 2025-ஐச்
சேர்ந்தவை 4 இதுபோலச் செய்யப்பட்டது: SELECT c.experience_id, c.country, p.platform, THETA_INTERSECT(c.user_theta, p.user_theta) from (select experience_id, country, user_theta from theta_cube where agg_level = country) c union (select experience_id, platform, user_theta from theta_cube where agg_level = platform) p
5 https://datasketches.apache.org/docs/Theta/ThetaSketchSetOpsAccuracy.html
6 ஒரு ட்ரூயிட் SQL செயல்பாடு வழியாக COMPLEX_DECODE_BASE64('HLLSketch', sketch_col_name ).


