2015-09-01 10 views
7

मैं एम्बर डेटा के साथ काम कर रहा हूं और मैं कुछ अवधारणाओं को समझने की कोशिश कर रहा हूं। मेरे पास काफी भारी डेटा गहन ऐप है, मेरे बैक-एंड के पास अंतराल हैं जो बहुत सारे रिकॉर्ड लौटाते हैं।एम्बर डेटा बड़ी मात्रा में रिकॉर्ड कैसे प्रबंधित करता है?

तो, मूल रूप से मेरे पास रूट है जिसमें this.store.findAll('places') की तरह कुछ है जो हजारों स्थानों को services या description जैसे कई टेक्स्ट गहन क्षेत्रों में वापस कर सकता है। यह केवल संसाधनों में से एक है, कुछ और डेटा हैं जो डेटा की मात्रा को भी संभालते हैं।

मेरी मुख्य चिंता यह है कि ऐप किसी प्रकार की सीमा को हिट करता है या उत्तरदायी नहीं होता है। तो मेरा सवाल यह है कि: एम्बर डेटा बड़ी मात्रा में रिकॉर्ड कैसे प्रबंधित करता है? क्या उन परिदृश्यों को संभालने के लिए कोई अच्छा अभ्यास है?

+3

इसका उत्तर वास्तव में किसी भी प्रश्न का उत्तर है कि क्लाइंट पर बड़े डेटासेट के बारे में क्या करना है : डेटा पेजिनेट करें। –

+1

@ ग्रेगबर्गार्ड यह मानते हुए कि क्लाइंट और सर्वर एक ही होस्ट में चल रहे हैं (शायद एक SQL डेटाबेस के साथ एक इलेक्ट्रॉन डेस्कटॉप ऐप) ताकि बैंडविड्थ कोई मुद्दा न हो और शायद मुझे पेजिनेशन की आवश्यकता नहीं है, एम्बर की कोई कठोर सीमा है बड़ी मात्रा में रिकॉर्ड भंडारित? –

उत्तर

3

एम्बर डेटा बड़ी मात्रा में रिकॉर्ड कैसे प्रबंधित करता है?

वैसे ही जैसे यह रिकॉर्ड की एक छोटी राशि को संभालता है। यदि आप बड़ी संख्या में रिकॉर्ड्स लोड/लाने की कोशिश करते हैं तो यह प्रदर्शन के लिए कुछ भी विशेष नहीं करेगा। आपको इसे स्वयं संभालना होगा।

क्या ऐसे परिदृश्यों को संभालने के लिए कोई सर्वोत्तम अभ्यास है?

दुर्भाग्य से, नहीं। कुछ प्रकार के अंकन वास्तव में इसे पूरा करने का एकमात्र तरीका है। लेकिन जैसा कि आप this thread में देख सकते हैं, ऐसा करने के "सर्वोत्तम" तरीके के बारे में काफी चर्चा है। इस परिदृश्य को संभालने के लिए बनाए गए एडेप्टर और प्लगइन्स हैं, साथ ही सर्वर-साइड बॉयलरप्लेट को इसे आसान बनाने के लिए डिज़ाइन किया गया है। लेकिन एम्बर डेटा के साथ अंकन करने का कोई कैननिक तरीका वास्तव में नहीं है।

मेरी राय में, बड़ी मात्रा में डेटा को संभालने का सबसे अच्छा तरीका एक क्वेरी एंडपॉइंट डिज़ाइन करना और इसे अपने सर्वर पर कार्यान्वित करना है, स्वयं को सब कुछ संभालना है। यह आपके आवेदन के लिए सबसे उपयुक्त होगा और समझने में सबसे आसान होगा। अगर यह जटिल लगता है, ऐसा इसलिए है क्योंकि यह है। डेटा सेट विभाजन/अंकन हल करने के लिए एक साधारण समस्या नहीं है, आप निश्चित रूप से रास्ते में मुद्दों में भाग लेंगे। यही कारण है कि अभी तक कोई सहमति नहीं है।

अपडेट: जेवियर कैडिज़ ने टिप्पणियों में जेएसओएन एपीआई का उल्लेख किया, इसलिए मैंने सोचा कि मैं इसका उल्लेख करूंगा। जेएसओएन एपीआई एम्बर डेटा के लिए नया डिफैक्टो मानक प्रतीत होता है, और यह specifiy a pagination विधि करता है। हालांकि, जेएसओएन एपीआई काफी नया है और अभी तक व्यापक रूप से अपनाया नहीं गया है। मेरा मानना ​​है कि यह हाल ही में तब तक नहीं था जब एम्बर डेटा जेएसओएन एपीआई एडाप्टर को इसके डिफ़ॉल्ट के रूप में स्विच कर दिया गया था। इस पेजिनेशन का उपयोग करने के लिए आपको अधिकतर एपीआई के अनुरूप होने की आवश्यकता होगी, न कि केवल अंकन पहलू। (हालांकि आप हमेशा से कुछ विचार चुरा सकते हैं।) इसके कारण, मुझे यकीन नहीं है कि मैं इसे अभी तक एक सर्वोत्तम अभ्यास कहूंगा।

नीचे पंक्ति: भविष्यवाणी का JSON API तरीका भविष्य का मार्ग हो सकता है, लेकिन यह वर्तमान में बहुत लोकप्रिय नहीं है। (हालांकि यह मेरी राय है जो मैं देखता/पढ़ता हूं। इसमें कोई बात नहीं है कि कितने लोग इसका इस्तेमाल निजी तौर पर कर रहे हैं।)

+0

क्या JSON API spec इस समस्या पर मदद करता है? –

+0

यह लाने के लिए एक अच्छा मुद्दा है। मैं इसके साथ अपना जवाब अपडेट करूंगा। – GJK

+0

बहुत अच्छी तरह से समझाया, धन्यवाद –

संबंधित मुद्दे