Habilidades nosql-expert
📦

nosql-expert

Seguro

Diseña Bases de Datos NoSQL Escalables

Esta habilidad proporciona orientación experta para diseñar bases de datos NoSQL distribuidas (Cassandra, DynamoDB). Ayuda a los desarrolladores a entender el modelado basado primero en consultas, el diseño de tabla única y evitar errores comunes como particiones calientes.

Soporta: Claude Codex Code(CC)
🥉 72 Bronce
1

Descargar el ZIP de la skill

2

Subir en Claude

Ve a Configuración → Capacidades → Skills → Subir skill

3

Activa y empieza a usar

Pruébalo

Usando "nosql-expert". Ayúdame a diseñar una clave primaria de Cassandra para almacenar pedidos de usuario donde necesito consultar por user_id y ordenar por order_date descendente.

Resultado esperado:

Para este patrón de acceso, usa una clave primaria compuesta:

**Clave de Partición:** user_id (alta cardinalidad - cada usuario es una partición)
**Columna de Agrupamiento:** order_date DESC (ordena los pedidos por fecha dentro de cada partición)

```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);
```

Este diseño asegura que todos los pedidos de un usuario residan en una partición (eficiente), y estén ordenados automáticamente por fecha.

Usando "nosql-expert". ¿Cuáles son las diferencias clave entre el modelado de datos SQL y NoSQL?

Resultado esperado:

**Modelo Mental SQL vs NoSQL Distribuido:**

| Aspecto | SQL (Relacional) | NoSQL (Cassandra/DynamoDB) |
|-------|------------------|---------------------------|
| Modelado | Modelar entidades + relaciones | Modelar **consultas primero** |
| Uniones | En tiempo de lectura (costoso) | Pre-calculadas en tiempo de escritura |
| Almacenamiento | Minimizar duplicación | Duplicar para velocidad de lectura |
| Consistencia | ACID (fuerte) | BASE (eventual) |
| Escalado | Vertical | Horizontal |

**Regla de Oro:** En SQL, diseña datos para *cualquier* consulta. En NoSQL, diseña datos para consultas *específicas* eficientemente.

Usando "nosql-expert". Explica el diseño de tabla única en DynamoDB

Resultado esperado:

**Diseño de Tabla Única de DynamoDB:**

Almacena múltiples tipos de entidades en una tabla usando claves compuestas:

| 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'} |

**Consulta:** PK='USER#123' recupera el usuario + todos los pedidos en UNA solicitud.

**Beneficios:**
- Complejidad de aplicación reducida
- Uso optimizado de unidades de capacidad
- Solo un viaje de red para datos relacionados

Auditoría de seguridad

Seguro
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
Archivos escaneados
114
Líneas analizadas
3
hallazgos
1
Auditorías totales
Problemas de riesgo bajo (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.
Auditado por: claude

Puntuación de calidad

38
Arquitectura
100
Mantenibilidad
87
Contenido
31
Comunidad
99
Seguridad
100
Cumplimiento de la especificación

Lo que puedes crear

Diseña un nuevo esquema de Cassandra

Arquitectura una estructura de clave primaria de Cassandra para una aplicación que necesite consultar eficientemente por ID de usuario y rango de fechas.

Optimiza el diseño de tabla única de DynamoDB

Refactoriza una tabla de DynamoDB para almacenar múltiples tipos de entidades (usuarios, pedidos, productos) en una tabla usando claves compuestas.

Corrige problemas de particiones calientes

Identifica y resuelve problemas de particiones calientes en una tabla de DynamoDB de alto tráfico mejorando la cardinalidad de la clave de partición.

Prueba estos prompts

Diseño Básico de Claves de Cassandra
Ayúdame a diseñar una clave primaria de Cassandra para una tabla que almacena eventos de usuario. Necesito consultar por user_id y filtrar por event_type dentro de un rango de fechas. ¿Qué deberían ser mi clave de partición y columnas de agrupamiento?
Diseño de Tabla Única de DynamoDB
Tengo tres tipos de entidades: Usuarios, Pedidos y Productos. Diseña una sola tabla de DynamoDB usando claves compuestas donde pueda recuperar el perfil de un usuario y todos sus pedidos en una solicitud.
Diagnóstico de Partición Caliente
Mi tabla de DynamoDB está experimentando limitación en una partición. La clave de partición es 'status' (valores: 'active', 'pending', 'completed'). ¿Qué está mal y cómo lo soluciono?
Migración de SQL a NoSQL
Tengo un esquema relacional con tablas Author y Book unidas por author_id. ¿Cómo debería modelar esto en Cassandra o DynamoDB sin uniones?

Mejores prácticas

  • Diseña siempre claves de partición con alta cardinalidad para evitar particiones calientes
  • Pre-calcula las uniones en tiempo de escritura usando desnormalización en lugar de consultar múltiples tablas
  • Usa claves de partición compuestas (ej., USER#123#2024-01) para evitar que las particiones excedan 10GB

Evitar

  • Usar claves de partición de baja cardinalidad como status='active' o gender='m' (crea particiones calientes)
  • Usar consultas de 'dispersión-recopilación' que escanean todas las particiones en lugar de apuntar a claves específicas
  • Aplicar patrones de modelado SQL (tablas separadas con claves foráneas) a bases de datos NoSQL

Preguntas frecuentes

¿Qué es el modelado basado primero en consultas?
El modelado basado primero en consultas significa diseñar tu esquema de base de datos alrededor de las consultas específicas que necesita tu aplicación, en lugar de intentar ajustar las consultas a una estructura basada en entidades. Lista primero todos los patrones de acceso, luego diseña tablas para servir cada patrón eficientemente.
¿Cómo elijo una clave de partición?
Elige una clave de partición con alta cardinalidad (muchos valores únicos) para distribuir el tráfico uniformemente entre los nodos. Evita claves de baja cardinalidad como status o gender que crearían particiones calientes.
¿Qué es el diseño de tabla única?
El diseño de tabla única almacena múltiples tipos de entidades en una tabla de DynamoDB usando claves compuestas de partición/ordenamiento. Esto permite recuperar datos relacionados (usuario + pedidos) en una sola solicitud.
¿Qué causa las particiones calientes?
Las particiones calientes ocurren cuando demasiado tráfico golpea un solo valor de clave de partición. Esto limita el rendimiento a la capacidad de un solo nodo. Soluciónalo usando claves compuestas o sharding (ej., USER#123#2024-01).
¿Puedo usar uniones en Cassandra o DynamoDB?
No. Ni Cassandra ni DynamoDB soportan uniones. En su lugar, desnormaliza tus datos y almacena datos relacionados juntos, o usa múltiples tablas separadas optimizadas para cada patrón de consulta.
¿Cuál es la diferencia entre GSI y LSI en DynamoDB?
GSI (Global Secondary Index) abarca toda la tabla entre particiones y puede crearse en cualquier momento. LSI (Local Secondary Index) está limitado a una sola partición y debe crearse en el momento de creación de la tabla.

Detalles del desarrollador

Estructura de archivos

📄 SKILL.md