trustgraph/docs/tech-specs/hi/graphql-query.hi.md
cybermaggedon e7efb673ef
Structure the tech specs directory (#836)
Tech spec some subdirectories for different languages
2026-04-21 16:06:41 +01:00

533 lines
44 KiB
Markdown

---
layout: default
title: "GraphQL क्वेरी तकनीकी विनिर्देश"
parent: "Hindi (Beta)"
---
# GraphQL क्वेरी तकनीकी विनिर्देश
> **Beta Translation:** This document was translated via Machine Learning and as such may not be 100% accurate. All non-English languages are currently classified as Beta.
## अवलोकन
यह विनिर्देश अपाचे कैसेंड्रा में ट्रस्टग्राफ के संरचित डेटा भंडारण के लिए एक GraphQL क्वेरी इंटरफ़ेस के कार्यान्वयन का वर्णन करता है। संरचित-डेटा.md विनिर्देश में उल्लिखित संरचित डेटा क्षमताओं पर निर्माण करते हुए, यह दस्तावेज़ बताता है कि निकाले गए और संसाधित संरचित ऑब्जेक्ट युक्त कैसेंड्रा तालिकाओं के खिलाफ GraphQL क्वेरी कैसे निष्पादित की जाएंगी।
<<<<<<< HEAD
GraphQL क्वेर सेव कैसेंड्र में संग्रह संरचि डेट के ि एक लचा, इप-सुरक्षि इंटरफ़ेस प्रद करेगी। यह स्क परिवर्तन के ि गति रूप से अनुकूल ा, ऑब्जेक्ट के संबंध सहि जटि प्रश्न समर्थन करेगा, और ट्रस्टग्र के जूद संदेश-आधि स्तुकल के सहजत से एककृत ा।
## लक्ष्य
**गतिशील स्कीमा समर्थन**: सेव पुनररंभ ि ि न्फ़िगरेशन में स्क परिवर्तन के ि स्वचि रूप से अनुकूल ा।
=======
GraphQL क्वेर सेव कैसेंड्र में संग्रह संरचि डेट के ि एक लचा, इप-सुरक्षि इंटरफ़ेस प्रद करेगी। यह स्क परिवर्तन के ि गति रूप से अनुकूल ा, ऑब्जेक्ट के संबंध सहि जटि क्वेर समर्थन करेगा, और ट्रस्टग्र के जूद संदेश-आधि आर्किटेक्चर के सहजत से एककृत ा।
## लक्ष्य
**डायनामिक स्कीमा समर्थन**: सेव पुनररंभ ि ि न्फ़िगरेशन में स्क परिवर्तन के ि स्वचि रूप से अनुकूल ा।
>>>>>>> 82edf2d (New md files from RunPod)
**GraphQL मानकों का अनुपालन**: मौजूदा GraphQL टूलिंग और क्लाइंट के साथ संगत एक मानक GraphQL इंटरफ़ेस प्रदान करना।
**कुशल कैसेंड्रा क्वेरी**: GraphQL क्वेरी को कुशल कैसेंड्रा CQL क्वेरी में अनुवाद करना, विभाजन कुंजियों और अनुक्रमणिकाओं का सम्मान करना।
**संबंध संकल्प**: विभिन्न ऑब्जेक्ट प्रकारों के बीच संबंधों के लिए GraphQL फ़ील्ड रिज़ॉल्वर का समर्थन करना।
**टाइप सुरक्षा**: स्कीमा परिभाषाओं के आधार पर टाइप-सुरक्षित क्वेरी निष्पादन और प्रतिक्रिया पीढ़ी सुनिश्चित करना।
<<<<<<< HEAD
**मापनीय प्रदर्शन**: उचि कनेक्शन पूलिंग और क्वेर अनुकूलन के समवर्त प्रश्न कुशलतपूर्वक संभलना।
=======
**स्केलेबल प्रदर्शन**: उचि कनेक्शन पूलिंग और क्वेर अनुकूलन के समवर्त क्वेर कुशलतपूर्वक संभलना।
>>>>>>> 82edf2d (New md files from RunPod)
**अनुरोध/प्रतिक्रिया एकीकरण**: ट्रस्टग्राफ के पल्सर-आधारित अनुरोध/प्रतिक्रिया पैटर्न के साथ संगतता बनाए रखना।
**त्रुटि प्रबंधन**: स्कीमा मिसमैच, क्वेरी त्रुटियों और डेटा सत्यापन मुद्दों के लिए व्यापक त्रुटि रिपोर्टिंग प्रदान करना।
## पृष्ठभूमि
<<<<<<< HEAD
संरचि डेट भंडरण र्यन्वयन (trustgraph-flow/trustgraph/storage/objects/cassandra/) ट्रस्टग्र के न्फ़िगरेशन िस्टम में संग्रह स्क परिओं के आध पर कैसेंड्र िओं में ऑब्जेक्ट िखत है ये िएँ एक समग्र िजन कुंज संरचन उपय करत हैं िसमें संग्रह और स्क-परिि प्रथमि कुंजि हैं, संग्रह के तर कुशल प्रश्न सक्षम करत हैं
=======
संरचि डेट भंडरण र्यन्वयन (trustgraph-flow/trustgraph/storage/objects/cassandra/) ट्रस्टग्र के न्फ़िगरेशन िस्टम में संग्रह स्क परिओं के आध पर कैसेंड्र िओं में ऑब्जेक्ट िखत है ये िएँ एक समग्र िजन कुंज संरचन उपय करत हैं िसमें संग्रह और स्क-परिि प्रथमि कुंजि हैं, संग्रह के तर कुशल क्वेर सक्षम करत हैं
>>>>>>> 82edf2d (New md files from RunPod)
वर्तमान सीमाएँ जिन्हें इस विनिर्देश द्वारा संबोधित किया गया है:
कैसेंड्रा में संग्रहीत संरचित डेटा के लिए कोई क्वेरी इंटरफ़ेस नहीं।
संरचित डेटा के लिए GraphQL की शक्तिशाली क्वेरी क्षमताओं का लाभ उठाने में असमर्थता।
संबंधित ऑब्जेक्ट के बीच संबंध ट्रैवर्सल के लिए कोई समर्थन नहीं।
<<<<<<< HEAD
संरचि डेट एक्सेस के ि एक नककृत क्वेर अभ
=======
संरचि डेट एक्सेस के ि एक नककृत क्वेर कमी।
>>>>>>> 82edf2d (New md files from RunPod)
GraphQL क्वेरी सेवा इन कमियों को भरकर:
कैसेंड्रा तालिकाओं के लिए एक मानक GraphQL इंटरफ़ेस प्रदान करना।
ट्रस्टग्राफ कॉन्फ़िगरेशन से गतिशील रूप से GraphQL स्कीमा उत्पन्न करना।
कुशलतापूर्वक GraphQL क्वेरी को कैसेंड्रा CQL में अनुवाद करना।
फ़ील्ड रिज़ॉल्वर के माध्यम से संबंध संकल्प का समर्थन करना।
## तकनीकी डिजाइन
<<<<<<< HEAD
### वास्तुकला
=======
### आर्किटेक्चर
>>>>>>> 82edf2d (New md files from RunPod)
GraphQL क्वेरी सेवा को एक नए ट्रस्टग्राफ फ्लो प्रोसेसर के रूप में लागू किया जाएगा जो स्थापित पैटर्न का पालन करता है:
**मॉड्यूल स्थान**: `trustgraph-flow/trustgraph/query/objects/cassandra/`
**मुख्य घटक**:
1. **GraphQL क्वेरी सेवा प्रोसेसर**
बेस FlowProcessor क्लास का विस्तार करता है।
मौजूदा क्वेरी सेवाओं के समान अनुरोध/प्रतिक्रिया पैटर्न को लागू करता है।
स्कीमा अपडेट के लिए कॉन्फ़िगरेशन की निगरानी करता है।
कॉन्फ़िगरेशन के साथ GraphQL स्कीमा को सिंक्रनाइज़ रखता है।
<<<<<<< HEAD
2. **गतिशील स्कीमा जनरेटर**
=======
2. **डायनामिक स्कीमा जनरेटर**
>>>>>>> 82edf2d (New md files from RunPod)
ट्रस्टग्राफ RowSchema परिभाषाओं को GraphQL प्रकारों में परिवर्तित करता है।
उचित फ़ील्ड परिभाषाओं के साथ GraphQL ऑब्जेक्ट प्रकार बनाता है।
संग्रह-आधारित रिज़ॉल्वर के साथ रूट क्वेरी प्रकार उत्पन्न करता है।
जब कॉन्फ़िगरेशन बदलता है तो GraphQL स्कीमा को अपडेट करता है।
3. **क्वेरी निष्पादक**
Strawberry लाइब्रेरी का उपयोग करके आने वाली GraphQL क्वेरी को पार्स करता है।
वर्तमान स्कीमा के विरुद्ध क्वेरी को मान्य करता है।
क्वेरी निष्पादित करता है और संरचित प्रतिक्रियाएँ लौटाता है।
<<<<<<< HEAD
िस्तृत त्रुटि संदेश के त्रुटि कुशलतपूर्वक संभलत है
4. **कैसेंड्रा क्वेरी अनुवादक**
=======
िस्तृत त्रुटि संदेश के त्रुटि सुचरू रूप से संभलत है
4. **कैसेंड्रा क्वेरी ट्रांसलेटर**
>>>>>>> 82edf2d (New md files from RunPod)
GraphQL चयन को CQL क्वेरी में परिवर्तित करता है।
उपलब्ध अनुक्रमणिकाओं और विभाजन कुंजियों के आधार पर क्वेरी को अनुकूलित करता है।
फ़िल्टरिंग, पेजिंग और सॉर्टिंग को संभालता है।
कनेक्शन पूलिंग और सत्र जीवनचक्र का प्रबंधन करता है।
5. **संबंध रिज़ॉल्वर**
ऑब्जेक्ट संबंधों के लिए फ़ील्ड रिज़ॉल्वर को लागू करता है।
N+1 क्वेरी से बचने के लिए कुशल बैच लोडिंग करता है।
अनुरोध संदर्भ के भीतर हल किए गए संबंधों को कैश करता है।
आगे और पीछे दोनों संबंध ट्रैवर्सल का समर्थन करता है।
### कॉन्फ़िगरेशन स्कीमा निगरानी
सेवा स्कीमा अपडेट प्राप्त करने के लिए एक कॉन्फ़िगरेशन हैंडलर को पंजीकृत करेगी:
```python
self.register_config_handler(self.on_schema_config)
```
जब स्कीमा बदलते हैं:
1. कॉन्फ़िगरेशन से नए स्कीमा परिभाषाओं को पार्स करें।
2. GraphQL प्रकारों और रिज़ॉल्वरों को फिर से उत्पन्न करें।
3. निष्पादन योग्य स्कीमा को अपडेट करें।
4. किसी भी स्कीमा-निर्भर कैश को साफ़ करें।
### GraphQL स्कीमा पीढ़ी
कॉन्फ़िगरेशन में प्रत्येक RowSchema के लिए, निम्नलिखित उत्पन्न करें:
1. **GraphQL ऑब्जेक्ट टाइप**:
फ़ील्ड प्रकारों को मैप करें (string → String, integer → Int, float → Float, boolean → Boolean)।
आवश्यक फ़ील्ड को GraphQL में गैर-शून्य के रूप में चिह्नित करें।
स्कीमा से फ़ील्ड विवरण जोड़ें।
2. **रूट क्वेरी फ़ील्ड**:
संग्रह क्वेरी (जैसे, `customers`, `transactions`)।
अनुक्रमित फ़ील्ड के आधार पर फ़िल्टरिंग तर्क।
पेजिंग समर्थन (सीमा, ऑफ़सेट)।
सॉर्ट करने योग्य फ़ील्ड के लिए सॉर्टिंग विकल्प।
3. **रिलेशनशिप फ़ील्ड**:
स्कीमा से विदेशी कुंजी संबंधों की पहचान करें।
संबंधित ऑब्जेक्ट के लिए फ़ील्ड रिज़ॉल्वर बनाएं।
एकल ऑब्जेक्ट और सूची दोनों संबंधों का समर्थन करें।
### क्वेरी निष्पादन प्रवाह
<<<<<<< HEAD
1. **अनुरोध स्वागत**:
=======
1. **अनुरोध रिसेप्शन**:
>>>>>>> 82edf2d (New md files from RunPod)
Pulsar से ObjectsQueryRequest प्राप्त करें।
GraphQL क्वेरी स्ट्रिंग और चर निकालें।
उपयोगकर्ता और संग्रह संदर्भ की पहचान करें।
2. **क्वेरी सत्यापन**:
Strawberry का उपयोग करके GraphQL क्वेरी को पार्स करें।
वर्तमान स्कीमा के विरुद्ध मान्य करें।
फ़ील्ड चयन और तर्क प्रकारों की जांच करें।
3. **CQL पीढ़ी**:
GraphQL चयन का विश्लेषण करें।
उचित WHERE खंडों के साथ CQL क्वेरी बनाएं।
विभाजन कुंजी में संग्रह शामिल करें।
GraphQL तर्कों के आधार पर फ़िल्टर लागू करें।
4. **क्वेरी निष्पादन**:
Cassandra के खिलाफ CQL क्वेरी निष्पादित करें।
परिणामों को GraphQL प्रतिक्रिया संरचना में मैप करें।
किसी भी रिलेशनशिप फ़ील्ड को हल करें।
GraphQL विनिर्देश के अनुसार प्रतिक्रिया को प्रारूपित करें।
5. **प्रतिक्रिया वितरण**:
परिणामों के साथ ObjectsQueryResponse बनाएं।
किसी भी निष्पादन त्रुटि को शामिल करें।
सहसंबंध आईडी के साथ Pulsar के माध्यम से प्रतिक्रिया भेजें।
### डेटा मॉडल
> **ध्यान दें**: `trustgraph-base/trustgraph/schema/services/structured_query.py` में एक मौजूदा StructuredQueryRequest/Response स्कीमा मौजूद है। हालाँकि, इसमें महत्वपूर्ण फ़ील्ड (उपयोगकर्ता, संग्रह) की कमी है और यह उप-इष्टतम प्रकारों का उपयोग करता है। नीचे दिए गए स्कीमा अनुशंसित विकास का प्रतिनिधित्व करते हैं, जिसे या तो मौजूदा स्कीमा को बदलने के लिए या नए ObjectsQueryRequest/Response प्रकारों के रूप में बनाया जाना चाहिए।
#### अनुरोध स्कीमा (ObjectsQueryRequest)
```python
from pulsar.schema import Record, String, Map, Array
class ObjectsQueryRequest(Record):
user = String() # Cassandra keyspace (follows pattern from TriplesQueryRequest)
collection = String() # Data collection identifier (required for partition key)
query = String() # GraphQL query string
variables = Map(String()) # GraphQL variables (consider enhancing to support all JSON types)
operation_name = String() # Operation to execute for multi-operation documents
```
<<<<<<< HEAD
**मौजूदा StructuredQueryRequest से परिवर्तनों का तर्क:**
=======
**मौजूदा StructuredQueryRequest से परिवर्तनों का कारण:**
>>>>>>> 82edf2d (New md files from RunPod)
अन्य क्वेरी सेवाओं के पैटर्न से मेल खाने के लिए `user` और `collection` फ़ील्ड जोड़े गए।
ये फ़ील्ड कैसेंड्रा की स्पेस और कलेक्शन की पहचान करने के लिए आवश्यक हैं।
वेरिएबल अभी भी Map(String()) के रूप में हैं, लेकिन आदर्श रूप से सभी JSON प्रकारों का समर्थन करना चाहिए।
#### प्रतिक्रिया स्कीमा (ObjectsQueryResponse)
```python
from pulsar.schema import Record, String, Array
from ..core.primitives import Error
class GraphQLError(Record):
message = String()
path = Array(String()) # Path to the field that caused the error
extensions = Map(String()) # Additional error metadata
class ObjectsQueryResponse(Record):
error = Error() # System-level error (connection, timeout, etc.)
data = String() # JSON-encoded GraphQL response data
errors = Array(GraphQLError) # GraphQL field-level errors
extensions = Map(String()) # Query metadata (execution time, etc.)
```
**मौजूदा StructuredQueryResponse से परिवर्तनों का कारण:**
सिस्टम त्रुटियों (`error`) और GraphQL त्रुटियों (`errors`) के बीच अंतर करता है।
स्ट्रिंग सरणी के बजाय संरचित GraphQLError ऑब्जेक्ट का उपयोग करता है।
GraphQL विनिर्देश के अनुपालन के लिए `extensions` फ़ील्ड जोड़ता है।
अनुकूलता के लिए डेटा को JSON स्ट्रिंग के रूप में रखता है, हालांकि मूल प्रकार बेहतर होंगे।
### कैसेंड्रा क्वेरी अनुकूलन
सेवा कैसेंड्रा क्वेरी को इस प्रकार अनुकूलित करेगी:
1. **पार्टिशन कुंजियों का सम्मान करना:**
हमेशा क्वेरी में संग्रह शामिल करें।
स्कीमा-परिभाषित प्राथमिक कुंजियों का कुशलतापूर्वक उपयोग करें।
पूर्ण तालिका स्कैन से बचें।
2. **सूचकांकों का उपयोग करना:**
फ़िल्टरिंग के लिए द्वितीयक सूचकांकों का उपयोग करें।
जब संभव हो, तो कई फ़िल्टरों को मिलाएं।
चेतावनी दें जब क्वेरी अक्षम हो सकती हैं।
3. **बैच लोडिंग:**
संबंध क्वेरी एकत्र करें।
राउंड ट्रिप को कम करने के लिए बैचों में निष्पादित करें।
अनुरोध संदर्भ के भीतर परिणामों को कैश करें।
4. **कनेक्शन प्रबंधन:**
लगातार कैसेंड्रा सत्र बनाए रखें।
कनेक्शन पूलिंग का उपयोग करें।
विफलताओं पर पुनः कनेक्शन को संभालें।
### उदाहरण GraphQL क्वेरी
#### सरल संग्रह क्वेरी
```graphql
{
customers(status: "active") {
customer_id
name
email
registration_date
}
}
```
#### संबंधों के साथ प्रश्न
```graphql
{
orders(order_date_gt: "2024-01-01") {
order_id
total_amount
customer {
name
email
}
items {
product_name
quantity
price
}
}
}
```
#### पृष्ठों में विभाजित क्वेरी
```graphql
{
products(limit: 20, offset: 40) {
product_id
name
price
category
}
}
```
### कार्यान्वयन निर्भरताएँ
<<<<<<< HEAD
**स्ट्रॉबेरी ग्राफक्यूएल (Strawberry GraphQL)**: ग्रफक्यूएल स्क परि और क्वेर िष्पदन के ि
**कैसेंड्रा ड्राइवर (Cassandra Driver)**: डेटबेस कनेक्टिि के ि (भंडरण ड्यूल में पहले से उपय ि गया)
**ट्रस्टग्राफ बेस (TrustGraph Base)**: फ्लप्रसेसर और स्क परिओं के ि
**कॉन्फ़िगरेशन सिस्टम (Configuration System)**: स्क िगर और अपडेट के ि
=======
**स्ट्रॉबेरी ग्राफक्यूएल**: ग्रफक्यूएल स्क परि और क्वेर िष्पदन के ि
**कैसेंड्रा ड्राइवर**: डेटबेस कनेक्टिि के ि (भंडरण ड्यूल में पहले से उपय ि गया)
**ट्रस्टग्राफ बेस**: फ्लप्रसेसर और स्क परिओं के ि
**कॉन्फ़िगरेशन सिस्टम**: स्क िगर और अपडेट के ि
>>>>>>> 82edf2d (New md files from RunPod)
### कमांड-लाइन इंटरफ़ेस
सेवा एक CLI कमांड प्रदान करेगी: `kg-query-objects-graphql-cassandra`
तर्क:
`--cassandra-host`: कैसेंड्रा क्लस्टर संपर्क बिंदु
`--cassandra-username`: प्रमाणीकरण उपयोगकर्ता नाम
`--cassandra-password`: प्रमाणीकरण पासवर्ड
`--config-type`: स्कीमा के लिए कॉन्फ़िगरेशन प्रकार (डिफ़ॉल्ट: "स्कीमा")
मानक फ्लोप्रोसेसर तर्क (पल्सर कॉन्फ़िगरेशन, आदि)
## एपीआई एकीकरण
<<<<<<< HEAD
### पल्सर विषय (Pulsar Topics)
**इनपुट टॉपिक (Input Topic)**: `objects-graphql-query-request`
स्क: ऑब्जेक्ट्सक्वेरिक्वेस्ट (ObjectsQueryRequest)
गेटवे सेवओं से ग्रफक्यूएल क्वेर प्रप्त करत है
**आउटपुट टॉपिक (Output Topic)**: `objects-graphql-query-response`
स्क: ऑब्जेक्ट्सक्वेरिस्पंस (ObjectsQueryResponse)
=======
### पल्सर विषय
**इनपुट टॉपिक**: `objects-graphql-query-request`
स्क: ऑब्जेक्ट्सक्वेरिक्वेस्ट
गेटवे सेवओं से ग्रफक्यूएल क्वेर प्रप्त करत है
**आउटपुट टॉपिक**: `objects-graphql-query-response`
स्क: ऑब्जेक्ट्सक्वेरिस्पंस
>>>>>>> 82edf2d (New md files from RunPod)
क्वेरी परिणाम और त्रुटियां लौटाता है
### गेटवे एकीकरण
गेटवे और रिवर्स-गेटवे को निम्नलिखित के लिए एंडपॉइंट की आवश्यकता होगी:
1. क्लाइंट से ग्राफक्यूएल क्वेरी स्वीकार करें
<<<<<<< HEAD
2. पल्सर के ध्यम से क्वेर सेव आगे बढ़एं
3. क्लइंट प्रतिक्रिएं एं
=======
2. पल्सर के ध्यम से क्वेर सेव भेजें
3. क्लइंट प्रतिक्रि एं
>>>>>>> 82edf2d (New md files from RunPod)
4. ग्राफक्यूएल इंट्रॉस्पेक्शन क्वेरी का समर्थन करें
### एजेंट टूल एकीकरण
<<<<<<< HEAD
एक नय एजेंट टूल क्ल िम्नलिि सक्षम करेग:
=======
एक नई एजेंट टूल क्ल िम्नलिि सक्षम करेग:
>>>>>>> 82edf2d (New md files from RunPod)
प्राकृतिक भाषा से ग्राफक्यूएल क्वेरी पीढ़ी
प्रत्यक्ष ग्राफक्यूएल क्वेरी निष्पादन
परिणाम व्याख्या और स्वरूपण
एजेंट निर्णय प्रवाह के साथ एकीकरण
## सुरक्षा विचार
<<<<<<< HEAD
**क्वेरी गहराई सीमित करना (Query Depth Limiting)**: गहर से नेस्टेड क्वेर कें प्रदर्शन समस्यओं रण बन सकत हैं
**क्वेरी जटिलता विश्लेषण (Query Complexity Analysis)**: संसधन समप्त ने से कने के ि क्वेर जटिलत ि करें
**फ़ील्ड-लेवल अनुमतियाँ (Field-Level Permissions)**: उपयगकर्त भूमिओं के आध पर फ़ल्ड-लेवल एक्सेस ियंत्रण के ि भविष्य समर्थन
**इनपुट सैनिटाइजेशन (Input Sanitization)**: इंजेक्शन हमल कने के ि सभ क्वेर इनपुट न्य और सैनिइज करें
**दर सीमित करना (Rate Limiting)**: प्रति उपयगकर्ता/संग्रहण क्वेर दर ि करन गू करें
## प्रदर्शन विचार
**क्वेरी योजना (Query Planning)**: क्यूएल ढ़ अनुकूलि करने के ि िष्पदन से पहले क्वेर िश्लेषण करें
**परिणाम कैशिंग (Result Caching)**: फ़ल्ड िज़ल्वर स्तर पर र-ब एक्सेस ि ने ले डेट कैश करने पर ि करें
**कनेक्शन पूलिंग (Connection Pooling)**: कैसेंड्र के ि कुशल कनेक्शन पूल बन रखें
**बैच ऑपरेशन (Batch Operations)**: जब संभव ो, कई क्वेर संयि करें ि िलंबत कम सके
**निगरानी (Monitoring)**: अनुकूलन के ि क्वेर प्रदर्शन मेट्रिक्स ट्रैक करें
## परीक्षण रणनीति
### यूनिट परीक्षण
स्क परिओं से स्क ढ़
ग्रफक्यूएल क्वेर र्सिंग और सत्यपन
क्यूएल क्वेर ढ़ तर्क
=======
**क्वेरी गहराई सीमित करना**: ऐसे गहर से नेस्टेड क्वेर कें प्रदर्शन समस्यओं रण बन सकते हैं
**क्वेरी जटिलता विश्लेषण**: संसधन समप्त ने से कने के ि क्वेर जटिलत ि करें
**फ़ील्ड-स्तरीय अनुमतियाँ**: भविष्य में उपयगकर्त भूमिओं के आध पर फ़ल्ड-स्तर एक्सेस ियंत्रण के ि समर्थन
**इनपुट सैनिटाइजेशन**: इंजेक्शन हमल कने के ि सभ क्वेर इनपुट न्य और सैनिइज करें
**दर सीमित करना**: प्रति उपयगकर्ता/संग्रहण क्वेर दर ि करन गू करें
## प्रदर्शन विचार
**क्वेरी योजना**: CQL ढ़ अनुकूलि करने के ि िष्पदन से पहले क्वेर िश्लेषण करें
**परिणाम कैशिंग**: फ़ल्ड िज़ल्वर स्तर पर र-ब एक्सेस ि ने ले डेट कैश करने पर ि करें
**कनेक्शन पूलिंग**: कैसेंड्र के ि कुशल कनेक्शन पूल बन रखें
**बैच ऑपरेशन**: जब संभव ो, कई क्वेर िएं ि िलंबत कम सके
**निगरानी**: अनुकूलन के ि क्वेर प्रदर्शन मेट्रिक्स ट्रैक करें
## परीक्षण रणनीति
### यूनिट टेस्ट
RowSchema परिओं से स्क ढ़
GraphQL क्वेर र्सिंग और सत्यपन
CQL क्वेर ढ़ ि
>>>>>>> 82edf2d (New md files from RunPod)
फ़ील्ड रिज़ॉल्वर कार्यान्वयन
### अनुबंध परीक्षण
पल्सर संदेश अनुबंध अनुपालन
<<<<<<< HEAD
ग्रफक्यूएल स्क वैधत
=======
GraphQL स्क वैधत
>>>>>>> 82edf2d (New md files from RunPod)
प्रतिक्रिया प्रारूप सत्यापन
त्रुटि संरचना सत्यापन
### एकीकरण परीक्षण
<<<<<<< HEAD
परक्षण कैसेंड्र उदहरण के ि एंड-टू-एंड क्वेर िष्पदन
स्क अपडेट हैंडलिंग
संबंध संकल्प
=======
परक्षण कैसेंड्र इंस्टेंस के ि एंड-टू-एंड क्वेर िष्पदन
स्क अपडेट हैंडलिंग
संबंध सम
>>>>>>> 82edf2d (New md files from RunPod)
पेजिंग और फ़िल्टरिंग
त्रुटि परिदृश्य
### प्रदर्शन परीक्षण
लोड के तहत क्वेरी थ्रूपुट
विभिन्न क्वेरी जटिलताओं के लिए प्रतिक्रिया समय
बड़े परिणाम सेट के साथ मेमोरी उपयोग
कनेक्शन पूल दक्षता
## माइग्रेशन योजना
<<<<<<< HEAD
इस नई क्षमत के रूप में इग्रेशन आवश्यकत नह है सेव िम्नलिि करेग:
1. न्फ़िगरेशन से जूद स्क पढ़ें
2. स्टरेज ड्यूल द्व बन गए जूद कैसेंड्र िओं से कनेक्ट करें
3. तैन पर तुरंत क्वेर स्व करन शुरू करें
=======
चूंकि यह एक नई क्षमत है, इसलि इग्रेशन आवश्यकत नह है सेव िम्नलिि र्य करेग:
1. न्फ़िगरेशन से जूद स्क पढ़ें
2. स्टरेज ड्यूल द्व बन गए जूद कैसेंड्र िओं से कनेक्ट करें
3. परििजन पर तुरंत क्वेर स्व करन शुरू करें
>>>>>>> 82edf2d (New md files from RunPod)
## समयरेखा
सप्ताह 1-2: कोर सेवा कार्यान्वयन और स्कीमा पीढ़ी
<<<<<<< HEAD
सप्त 3: क्वेर िष्पदन और क्यूएल अनुव
सप्त 4: संबंध संकल्प और अनुकूलन
सप्त 5: परक्षण और प्रदर्शन ट्यूनिंग
सप्त 6: गेटवे एककरण और प्रलेखन
## खुले प्रश्न
1. **स्कीमा विकास (Schema Evolution)**: सेव स्क संक्रमण के क्वेर कैसे संभलत है?
िकल्प: स्क अपडेट के क्वेर कत में लगएं
िकल्प: एक कई स्क संस्करण समर्थन करें
2. **कैशिंग रणनीति (Caching Strategy)**: क्य क्वेर परि कैश ि ि?
ि करें: समय-आधि समप्ति
ि करें: घटन-आधि अमन्यकरण
3. **संघटन समर्थन (Federation Support)**: क्य सेव अन्य डेट स्र के संयजन के ि ग्रफक्यूएल संघटन समर्थन करन ि?
यह संरचि और ग्र डेट में एककृत क्वेर सक्षम करेग
4. **सदस्यता समर्थन (Subscription Support)**: क्य सेव स्तवि समय अपडेट के ि ग्रफक्यूएल सदस्यत समर्थन करन ि?
5. **कस्टम स्केलर:** क्य मेन-वििष्ट डेट प्रक के ि कस्टम स्केलर प्रक समर्थन ि ि?
=======
सप्त 3: क्वेर िष्पदन और CQL अनुव
सप्त 4: संबंध सम और अनुकूलन
सप्त 5: परक्षण और प्रदर्शन ट्यूनिंग
सप्त 6: गेटवे एककरण और दस्तवेज़करण
## खुले प्रश्न
1. **स्कीमा विकास**: सेव स्क संक्रमण के क्वेर कैसे संभलन ि?
िकल्प: स्क अपडेट के क्वेर कत में लगएं
िकल्प: एक कई स्क संस्करण समर्थन करें
2. **कैशिंग रणनीति**: क्य क्वेर परि कैश ि ि?
ि करें: समय-आधि समप्ति
ि करें: घटन-आधि अमन्यकरण
3. **संघटन समर्थन**: क्य सेव अन्य डेट स्र के संयजन के ि GraphQL संघटन समर्थन करन ि?
यह संरचि और ग्र डेट में एककृत क्वेर सक्षम करेग
4. **सदस्यता समर्थन**: क्य सेव स्तवि समय अपडेट के ि GraphQL सदस्यत समर्थन करन ि?
इसके ि गेटवे में WebSocket समर्थन आवश्यकत
5. **कस्टम स्केलर**: क्य मेन-वििष्ट डेट प्रक के ि कस्टम स्केलर प्रक समर्थन ि ि?
>>>>>>> 82edf2d (New md files from RunPod)
उदाहरण: DateTime, UUID, JSON फ़ील्ड
## संदर्भ
<<<<<<< HEAD
स्ट्रक्चर्ड डेट तकन ििर्देश: `docs/tech-specs/structured-data.md`
स्ट्रबेर GraphQL दस्तवेज़: https://strawberry.rocks/
GraphQL ििर्देश: https://spec.graphql.org/
अपचे कैसेंड्र CQL संदर्भ: https://cassandra.apache.org/doc/stable/cassandra/cql/
ट्रस्टग्र फ्ल प्रसेसर दस्तवेज़: आंतरि दस्तवेज़
=======
संरचि डेट तकन ििर्देश: `docs/tech-specs/structured-data.md`
स्ट्रबेर GraphQL दस्तवेज़करण: https://strawberry.rocks/
GraphQL ििर्देश: https://spec.graphql.org/
Apache Cassandra CQL संदर्भ: https://cassandra.apache.org/doc/stable/cassandra/cql/
TrustGraph फ्ल प्रसेसर दस्तवेज़करण: आंतरि दस्तवेज़करण
>>>>>>> 82edf2d (New md files from RunPod)