2013-04-18 3 views
16

मैं कैसंद्रा के साथ एक नई परियोजना शुरू कर रहा हूं (और नवीनतम स्थिर (1.2.x) संस्करण का उपयोग करने की योजना बना रहा हूं)। मैंने कई अलग-अलग जावा पुस्तकालयों की कोशिश की है, जैसे Hector, Astyanax, कैसंड्रा-जेडीबीसी ...नई कैसंद्रा परियोजना - एस्ट्यानैक्स या जावा चालक?

उनमें से, (संक्षेप में) मेरी पसंद एस्ट्यानैक्स है। लेकिन फिर मैंने डेटास्टैक्स के जावा ड्राइवर को भी पाया और कोशिश की, जो नए सीक्यूएल बाइनरी प्रोटोकॉल का समर्थन करता है, और यदि आप केवल सीक्यूएल का उपयोग कर रहे हैं तो बहुत साफ है। और ऐसा लगता है कि संस्करण 1.0.0 जीए जल्द ही रिलीज हो जाएगा।

आप किसकी सिफारिश करेंगे? धन्यवाद।

+2

Astyanax के लिए +1 (बनाने/पढ़ने/अद्यतन/हटाना) नमूना:

Account account = createAccount(); // create String sql_insert = NE.insert(ID, GUI, FIRST_NAME, LAST_NAME, LAST_UPDATE_TIME, CREATE_TIME).into(Account.class).sql(); cassandraExecutor.execute(sql_insert, account); // read String sql_selectByGUI = NE.select(ID, GUI, FIRST_NAME, LAST_NAME).from(Account._).where(L.eq(ID, L.QME)).sql(); Account dbAccount = cassandraExecutor.queryForEntity(Account.class, sql_selectByGUI, account); // update String sql_updateByLastName = NE.update(Account.class).set(FIRST_NAME).where(L.eq(ID, L.QME)).sql(); dbAccount.setFirstName("newFirstName"); cassandraExecutor.execute(sql_updateByLastName, dbAccount); // delete String sql_deleteByFirstName = NE.deleteFrom(Account.class).where(L.eq(ID, L.QME)).sql(); cassandraExecutor.execute(sql_deleteByFirstName, dbAccount); 

(मैं CassandraExecutor के डेवलपर हूँ घोषणा)! भयानक एपीआई! –

उत्तर

19

मैं आपको एक सीक्यूएल 3 आधारित ड्राइवर के साथ जाने की सलाह दूंगा। कुछ विकल्प JDBC driver या बेहतर Datastax's driver हैं जो एसिंक्रोनस कनेक्शन का समर्थन करते हैं। आपको डेटास्टैक्स के ड्राइवर को स्वयं बनाना होगा, लेकिन यह मेवेन का उपयोग करके आसानी से किया जा सकता है।

बचत नहीं जा रहा है कैसेंड्रा में किसी भी नई सुविधाओं हो रही हो सकता है, इसके पीछे की ओर तुलनीयता और सबसे सी * समुदाय के सदस्यों को सलाह नई परियोजनाओं के लिए cql आधारित ड्राइवरों का उपयोग करने के लिए रखा जा रहा है: जैसा कि ऊपर वर्णित

, हम मानते हैं कि सीक्यूएल 3 सीफ्ट्रा एपीआई की तुलना में कैसंड्रा के लिए एक सरल और समग्र बेहतर एपीआई है। source

इसके अलावा CQL के प्रदर्शन बेहतर हो रहा है बहुत जल्दी - इसलिए, नई परियोजनाओं/अनुप्रयोगों CQL3

उपयोग करने के लिए प्रोत्साहित किया जाता है।

<dependency> 
    <groupId>com.datastax.cassandra</groupId> 
    <artifactId>cassandra-driver-parent</artifactId> 
    <version>1.0.0</version> 
</dependency> 
9

मैं व्यक्तिगत रूप से इस्तेमाल किया है: यहाँ कुछ पुरानी benchmarks.
अद्यतन

के बाद से इस सवाल का जवाब लिखा गया था एक maven central repository ड्राइवर के लिए बनाया गया था तो अब maven करने के लिए उपयोग करने के लिए यह सिर्फ निर्भरता को जोड़ने रहे हैं हेक्टर, एस्ट्यानैक्स, पेलोप्स, फ्लुएंट कैसंड्रा, डेटास्टैक्स के ड्राइवर और पायकासा और इतने सारे एपीआई का उपयोग करने के बाद मुझे अंततः एहसास हुआ कि एस्ट्यानैक्स मुझे सबसे अच्छा लगाता है (यह मेरा व्यक्तिगत विचार है)।

सुविधा मैं astyanax में पाया जो लीग में दूसरों से अलग

  • एपीआई
  • समग्र स्तंभ समर्थन
  • कनेक्शन पूलिंग
  • विलंबता
  • प्रलेखन के उपयोग की आसानी रहे हैं
  • अपडेट किया गया
+8

हेक्टर और डेटास्टैक्स का चालक समग्र कॉलम का समर्थन करता है (दूसरों के बारे में निश्चित नहीं है), और मैं कहूंगा कि सीक्यूएल Astyanax की तुलना में उपयोग करना आसान है। इसके अलावा इस तरह से बहाव भी है इसलिए नई परियोजनाओं के लिए सीक्यूएल 3 का इस्तेमाल किया जाना चाहिए। –

+2

अच्छी तरह से मैं दोस्त को जानता हूं, वास्तव में मेरा विचार आसानी से पहुंच पर था। हां सीक्यूएल हमेशा एक आसान विकल्प रहा है और यह (अच्छी तरह से ज्ञात तथ्य आरडीबीएमएस पृष्ठभूमि) रहेगा और मैं यह आश्वस्त कर सकता हूं कि एस्ट्यानैक्स उपयोगकर्ताओं का अधिकतम प्रतिशत भी उनके एपीआई से सीक्यूएल स्टेटमेंट का उपयोग करता है। Astyanax के लिए – abhi

+9

+1। सीक्यूएल आसान नहीं है - यह केवल सीम हो सकता है: आप आसानी से अपरिवर्तित प्रश्न लिख सकते हैं और परेशानी में भाग सकते हैं, क्योंकि यह आपको चीज बनाता है क्योंकि यह डीबी रिलेशनशिप होगा और आपको वास्तव में नोस्कल स्टोर के अर्थशास्त्र को समझने के लिए मजबूर नहीं करता है। –

6

मैंने एस्ट्यानैक्स का उपयोग किया है। यह अच्छी तरह से प्रलेखित और उपयोग करने में आसान है बशर्ते आपको सीक्यूएल की तुलना में 5 गुना अधिक कोड लिखने में कोई समस्या न हो।

अभी मैं सीक्यूएल का उपयोग कर रहा हूं क्योंकि जिन लोगों के साथ मैंने काम किया है, वे एस्टनैक्स कोड को पूरी तरह से समझ नहीं पाए हैं - उन्हें कॉलम नामों के लिए कक्षा क्यों लिखनी है। मुझे लगता है कि अगर आप एस्ट्यानैक्स या हेक्टर का उपयोग नहीं करते हैं तो आप कभी भी कैसंद्रा के आंतरिक रूप से समझ नहीं पाएंगे।

4

आपको निश्चित रूप से शुरू होने वाली एक नई परियोजना के लिए नए DataStax Java Driver और कैसंद्रा 1.2 के साथ जाना चाहिए। चालक बस जीए चला गया, और चालक और कैसंद्रा 1.2 दोनों ही अगले कुछ महीनों में अधिक स्थिर हो जाएंगे जब आप अपनी नई परियोजना विकसित करेंगे।

1

मैं ज़ैनसन/वाल्चको से सहमत हूं। DataStax Java Driver भविष्य है। एसक्यूएल के साथ कैसंद्रा को संचालित करना बहुत सुविधाजनक है। इस बीच, मैं CassandraExecutor, DataStax Java Driver का एक सरल आवरण भी अनुशंसा करता हूं। जावा ड्राइवर की तुलना, CassandraExecutor नीचे सुविधाएं होती हैं:

  • अनुरूप/एकीकृत/संक्षिप्त (सिंक/Async) आपरेशन (CRUD) एसक्यूएल/संस्था के साथ के लिए एपीआई।
  • DataSet है, जो अलग-अलग समर्थन करता है/मर्ज/तरह/GroupBy/में शामिल होने/संघ/unionAll/छोड़कर/एक दूसरे को काटना/पृष्ठ पर अंक लगाना/फ़िल्टर कर/गिनती/toJOSN/toXML/toCVS ... एक साधारण CRUD

यहाँ है

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