परिचय
Apache Cassandra एक हाई-परफॉर्मेंस, स्केलेबल और फॉल्ट-टॉलरेंट NoSQL डेटाबेस है, जो बड़ी मात्रा में डेटा को न्यूनतम लेटेंसी के साथ प्रोसेस करने के लिए डिज़ाइन किया गया है। Netflix, Apple, eBay और Instagram जैसी कंपनियाँ रियल-टाइम में पेटाबाइट्स डेटा को हैंडल करने के लिए इसका उपयोग करती हैं।
Python के लिए आधिकारिक ड्राइवर cassandra-driver है, जो Python प्रोग्राम के माध्यम से Cassandra की सभी क्षमताओं तक पूर्ण एक्सेस प्रदान करता है। यह सिंक्रोनस और एसिंक्रोनस क्वेरी, प्रिपेयर्ड स्टेटमेंट, UUID, TTL और बहुत कुछ सपोर्ट करता है।
cassandra-driver क्या है?
Cassandra-driver Apache Cassandra के लिए DataStax टीम द्वारा विकसित आधिकारिक Python क्लाइंट है। यह एक हाई-परफॉर्मेंस ड्राइवर है जो Python एप्लिकेशन और Cassandra क्लस्टर के बीच पूर्ण इंटीग्रेशन सुनिश्चित करता है।
ड्राइवर की मुख्य विशेषताएँ
- सिंक्रोनस और एसिंक्रोनस ऑपरेशन
- परफॉर्मेंस बढ़ाने के लिए प्रिपेयर्ड क्वेरी
- सर्वश्रेष्ठ नोड्स पर ऑटोमैटिक क्वेरी रूटिंग
- सभी Cassandra डेटा टाइप्स का सपोर्ट
- बिल्ट-इन एरर हैंडलिंग और रीट्राई मैकेनिज्म
- ऑथेंटिकेशन और SSL एन्क्रिप्शन सपोर्ट
- क्लस्टर नोड्स के बीच लोड बैलेंसिंग
इंस्टॉलेशन और सेटअप
ड्राइवर इंस्टॉल करना
pip install cassandra-driver
कुछ फीचर्स के लिए अतिरिक्त डिपेंडेंसी की आवश्यकता हो सकती है:
pip install cassandra-driver[cqlengine] # ORM के लिए
pip install cassandra-driver[graph] # ग्राफ के साथ काम करने के लिए
क्लस्टर से कनेक्ट करना
from cassandra.cluster import Cluster
from cassandra.auth import PlainTextAuthProvider
# सरल कनेक्शन
cluster = Cluster(['127.0.0.1'])
session = cluster.connect()
# ऑथेंटिकेशन के साथ कनेक्शन
auth_provider = PlainTextAuthProvider(username='cassandra', password='cassandra')
cluster = Cluster(['127.0.0.1'], auth_provider=auth_provider)
session = cluster.connect()
# SSL के साथ कनेक्शन
from cassandra.cluster import Cluster
from ssl import PROTOCOL_TLSv1_2, CERT_REQUIRED
cluster = Cluster(['127.0.0.1'],
ssl_context={
'ssl_version': PROTOCOL_TLSv1_2,
'cert_reqs': CERT_REQUIRED,
'ca_certs': '/path/to/ca.pem'
})
session = cluster.connect()
किसी विशिष्ट keyspace से कनेक्ट करना
session.set_keyspace('my_keyspace')
# या
session = cluster.connect('my_keyspace')
Cassandra की मुख्य अवधारणाएँ
डेटा आर्किटेक्चर
- Keyspace — SQL में डेटाबेस के समान, इसमें रेप्लिकेशन सेटिंग्स होती हैं
- टेबल — इसमें पंक्तियाँ और कॉलम होते हैं, लेकिन आंतरिक संरचना अलग होती है
- Partition key — यह निर्धारित करता है कि रिकॉर्ड किस नोड पर स्टोर होगा
- Clustering key — पार्टीशन के अंदर डेटा के ऑर्डर को प्रभावित करता है
- Primary key — partition key और clustering key से मिलकर बनता है
डेटा मॉडल की विशेषताएँ
Cassandra SQL की तरह JOIN और एग्रीगेट फंक्शन सपोर्ट नहीं करता, लेकिन यह हॉरिजॉन्टली स्केल होता है और उच्च डेटा उपलब्धता सुनिश्चित करता है। स्कीमा डिज़ाइन डेटा एक्सेस पैटर्न पर आधारित होना चाहिए।
Keyspace और टेबल बनाना
Keyspace बनाना
session.execute("""
CREATE KEYSPACE IF NOT EXISTS my_keyspace
WITH replication = {
'class': 'SimpleStrategy',
'replication_factor': '3'
}
""")
# प्रोडक्शन के लिए NetworkTopologyStrategy की सिफारिश की जाती है
session.execute("""
CREATE KEYSPACE IF NOT EXISTS my_keyspace
WITH replication = {