المهارات nosql-expert
📦

nosql-expert

آمن

تصميم قواعد بيانات NoSQL قابلة للتوسع

توفر هذه المهارة إرشادات خبيرة لتصميم قواعد بيانات NoSQL الموزعة (Cassandra، DynamoDB). تساعد المطورين على فهم نمذجة البيانات أولاً للاستعلامات، وتصميم الجدول الواحد، وتجنب الأخطاء الشائعة مثل الأقسام الساخنة.

يدعم: Claude Codex Code(CC)
🥉 72 برونزي
1

تنزيل ZIP المهارة

2

رفع في Claude

اذهب إلى Settings → Capabilities → Skills → Upload skill

3

فعّل وابدأ الاستخدام

اختبرها

استخدام "nosql-expert". ساعدني في تصميم مفتاح أساسي في Cassandra لتخزين طلبات المستخدمين حيث أحتاج إلى الاستعلام حسب user_id والترتيب حسب order_date تنازلياً.

النتيجة المتوقعة:

لنمط الوصول هذا، استخدم مفتاحاً أساسياً مركباً:

**مفتاح القسم:** user_id (تباين عالي - كل مستخدم هو قسم)
**عمود التجميع:** order_date DESC (يرتب الطلبات حسب التاريخ داخل كل قسم)

```sql
CREATE TABLE orders_by_user (
user_id uuid,
order_id uuid,
order_date timestamp,
total decimal,
status text,
PRIMARY KEY (user_id, order_date)
) WITH CLUSTERING ORDER BY (order_date DESC);
```

هذا التصميم يضمن أن جميع طلبات المستخدم تعيش في قسم واحد (كفؤ)، وهي مرتبة تلقائياً حسب التاريخ.

استخدام "nosql-expert". ما هي الفروقات الرئيسية بين نمذجة البيانات في SQL و NoSQL؟

النتيجة المتوقعة:

**النموذج الذهني لـ SQL مقابل NoSQL الموزع:**

| الجانب | SQL (علائقي) | NoSQL (Cassandra/DynamoDB) |
|-------|------------------|---------------------------|
| النمذجة | نمذجة الكيانات + العلاقات | نمذجة **الاستعلامات أولاً** |
| عمليات Join | في وقت القراءة (مكلفة) | محسوبة مسبقاً في وقت الكتابة |
| التخزين | تقليل التكرار | التكرار من أجل سرعة القراءة |
| الاتساق | ACID (قوي) | BASE (نهائي) |
| التوسع | عمودي | أفقي |

**القاعدة الذهبية:** في SQL، صمم البيانات لـ *أي* استعلام. في NoSQL، صمم البيانات لـ *استعلامات محددة* بكفاءة.

استخدام "nosql-expert". اشرح تصميم الجدول الواحد في DynamoDB

النتيجة المتوقعة:

**تصميم الجدول الواحد في DynamoDB:**

خزّن أنواع كيانات متعددة في جدول واحد باستخدام المفاتيح المركبة:

| PK | SK | Data |
|----|-----|------|
| USER#123 | PROFILE | {name: 'Ian', email: '...'} |
| USER#123 | ORDER#998 | {total: 50.00, status: 'shipped'} |
| USER#123 | ORDER#999 | {total: 12.00, status: 'pending'} |

**الاستعلام:** PK='USER#123' يجلب المستخدم + جميع الطلبات في طلب **واحد**.

**الفوائد:**
- تقليل تعقيد التطبيق
- استخدام محسّن لوحدات السعة
- جولة شبكة واحدة للبيانات المرتبطة

التدقيق الأمني

آمن
v1 • 2/24/2026

This skill is purely educational documentation about NoSQL database design patterns. The static analyzer detected patterns (external_commands, weak_crypto, system_reconnaissance) that are FALSE POSITIVES - they are documentation examples of database table names, query syntax, and design concepts. No actual code execution, network calls, or file operations exist.

1
الملفات التي تم فحصها
114
الأسطر التي تم تحليلها
3
النتائج
1
إجمالي عمليات التدقيق
مشكلات منخفضة المخاطر (3)
False Positive: External Commands Detection
Static analyzer detected 'external_commands' pattern (Ruby/shell backtick execution) at multiple lines. These are FALSE POSITIVES - documentation examples showing database partition keys (e.g., USER#123), query syntax (e.g., PK='USER#123'), and Cassandra keywords (e.g., ALLOW FILTERING). This is a documentation skill containing only markdown text explaining NoSQL concepts.
False Positive: Weak Cryptographic Algorithm Detection
Static analyzer detected 'weak_crypto' patterns (17 occurrences). These are FALSE POSITIVES triggered by words like 'BASE' (BASE consistency model), 'horizontal' (scaling), 'partition', and 'key' in the database design context.
False Positive: System Reconnaissance Detection
Static analyzer detected 'system_reconnaissance' at lines discussing 'Tombstones' (Cassandra deletion markers) and 'ALLOW FILTERING' (performance anti-pattern). These are database design concepts, not system reconnaissance.
تم تدقيقه بواسطة: claude

درجة الجودة

38
الهندسة المعمارية
100
قابلية الصيانة
87
المحتوى
31
المجتمع
99
الأمان
100
الامتثال للمواصفات

ماذا يمكنك بناءه

تصميم مخطط Cassandra جديد

هندسة هيكل مفتاح أساسي في Cassandra لتطبيق يحتاج إلى الاستعلام حسب معرف المستخدم ونطاق التاريخ بكفاءة.

تحسين تصميم الجدول الواحد في DynamoDB

إعادة هيكلة جدول DynamoDB لتخزين أنواع كيانات متعددة (مستخدمون، طلبات، منتجات) في جدول واحد باستخدام المفاتيح المركبة.

إصلاح مشاكل الأقسام الساخنة

تحديد وحل مشاكل الأقسام الساخنة في جدول DynamoDB عالي الحركة عن طريق تحسين تباين مفتاح القسم.

جرّب هذه الموجهات

تصميم المفتاح الأساسي لـ Cassandra
ساعدني في تصميم مفتاح أساسي في Cassandra لجدول يخزن أحداث المستخدم. أحتاج إلى الاستعلام حسب user_id والتصفية حسب event_type ضمن نطاق تاريخ. ماذا يجب أن يكون مفتاح القسم وأعمدة التجميع الخاصة بي؟
تصميم الجدول الواحد في DynamoDB
لدي ثلاثة أنواع كيانات: Users و Orders و Products. صمم جدول DynamoDB واحد باستخدام المفاتيح المركبة حيث يمكنني جلب ملف تعريف المستخدم وجميع طلباته في طلب واحد.
تشخيص القسم الساخن
جدول DynamoDB الخاص بي يواجه اختناقاً في قسم واحد. مفتاح القسم هو 'status' (القيم: 'active'، 'pending'، 'completed'). ما المشكلة وكيف أصلحها؟
الانتقال من SQL إلى NoSQL
لدي مخطط علائقي مع جدولي Author و Book مرتبطان بـ author_id. كيف يجب أن أنموذج هذا في Cassandra أو DynamoDB بدون عمليات join؟

أفضل الممارسات

  • دائماً صمم مفاتيح القسم بتباين عالي لتجنب الأقسام الساخنة
  • احسب عمليات join مسبقاً في وقت الكتابة باستخدام إزالة التطبيع بدلاً من الاستعلام عن جداول متعددة
  • استخدم مفاتيح قسم مركبة (مثال: USER#123#2024-01) لمنع تجاوز الأقسام 10GB

تجنب

  • استخدام مفاتيح قسم ذات تباين منخفض مثل status='active' أو gender='m' (ينشئ أقساماً ساخنة)
  • استخدام استعلامات 'scatter-gather' التي تفحص جميع الأقسام بدلاً من استهداف مفاتيح محددة
  • تطبيق أنماط نمذجة SQL (جداول منفصلة بمفاتيح خارجية) على قواعد بيانات NoSQL

الأسئلة المتكررة

ما هي النمذجة أولاً للاستعلامات؟
النمذجة أولاً للاستعلامات تعني تصميم مخطط قاعدة البيانات حول الاستعلامات المحددة التي يحتاجها تطبيقك، بدلاً من محاولة ملاءمة الاستعلامات في هيكل قائم على الكيانات. ادرج جميع أنماط الوصول أولاً، ثم صمم جداول لخدمة كل نمط بكفاءة.
كيف أختار مفتاح القسم؟
اختر مفتاح قسم ذي تباين عالي (قيم فريدة كثيرة) لتوزيع الحركة بالتساوي عبر العقد. تجنب مفاتيح التباين المنخفض مثل status أو gender التي ستنشئ أقساماً ساخنة.
ما هو تصميم الجدول الواحد؟
تصميم الجدول الواحد يخزّن أنواع كيانات متعددة في جدول DynamoDB واحد باستخدام مفاتيح قسم/ترتيب مركبة. هذا يمكّن من جلب البيانات المرتبطة (مستخدم + طلبات) في طلب واحد.
ما الذي يسبب الأقسام الساخنة؟
تحدث الأقسام الساخنة عندما تضرب الكثير من الحركة قيمة مفتاح قسم واحد. هذا يحد من الإنتاجية لسعة عقدة واحدة. أصلح باستخدام مفاتيح مركبة أو تجزئة (مثال: USER#123#2024-01).
هل يمكنني استخدام عمليات join في Cassandra أو DynamoDB؟
لا. لا Cassandra ولا DynamoDB تدعمان عمليات join. بدلاً من ذلك، قم بإزالة التطبيع لبياناتك وخزّن البيانات المرتبطة معاً، أو استخدم جداول منفصلة متعددة محسّنة لكل نمط استعلام.
ما الفرق بين GSI و LSI في DynamoDB؟
GSI (فهرس ثانوي عالمي) يمتد عبر الجدول بأكمله عبر الأقسام ويمكن إنشاؤه في أي وقت. LSI (فهرس ثانوي محلي) محدود بقسم واحد ويجب إنشاؤه في وقت إنشاء الجدول.

تفاصيل المطور

المؤلف

sickn33

الترخيص

MIT

مرجع

main

بنية الملفات

📄 SKILL.md