2016-04-17 6 views
7

सी का उपयोग करते समय/C++ कैसेंड्रा के चालक, मैं कई बार मेरे कंसोल में पॉपिंग संदेशों के इस तरह देखने पर:सर्वर साइड चेतावनी: एकत्रीकरण क्वेरी विभाजन कुंजी के बिना इस्तेमाल

1460937092.140 [WARN] (src/response.cpp:51:char* 
     cass::Response::decode_warnings(char*, size_t)): 
     Server-side warning: Aggregation query used without partition key 

सोच किसी को क्या जानता है कि क्या इसका मतलब है कि। मुझे अपने कोड में क्या खोजना चाहिए जो इस त्रुटि को उत्पन्न कर सकता है, या यह सर्वर पक्ष पर कुछ है जिस पर मेरा कोई नियंत्रण नहीं है?

उत्तर

10

यह चेतावनी आपको बता रही है कि आप एक विभाजन कुंजी के बिना उपयोगकर्ता परिभाषित कुल का उपयोग कर चयन कर रहे हैं। यह एक ऐसा हो सकता है जो औसत, गिनती, न्यूनतम, अधिकतम या अपने आप में से एक हो सकता है।

एक उदाहरण:

select avg(temperature) from weather_data; 

बनाम

select avg(temperature) from weather_data where id = 1; 

पहला उदाहरण क्लस्टर में डेटा के सभी पंक्तियों को स्कैन करेगा और एक गंभीर प्रदर्शन हिट हो सकता है। यदि पर्याप्त पंक्तियां हैं, तो क्वेरी समय समाप्त हो सकती है।

दूसरा डेटा केवल एक ही विभाजन को स्कैन करेगा जो क्वेरी को एक सर्वर पर रखता है और अनुशंसित उपयोग है।

+1

आह। यह 'गिनती (*) 'है ... जो बहाव के साथ अच्छी तरह से काम करता है और सिर्फ पंक्तियों की संख्या लौटाता है। या शायद नहीं ... लेकिन मैं अब चेतावनी के कारण बयान देखता हूं। –

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