Habilidades nosql-expert
📦

nosql-expert

Seguro

Projetar Bancos de Dados NoSQL Escaláveis

Esta habilidade fornece orientação especializada para projetar bancos de dados NoSQL distribuídos (Cassandra, DynamoDB). Ela ajuda desenvolvedores a entender modelagem query-first, design de tabela única e evitar armadilhas comuns como partições quentes.

Suporta: Claude Codex Code(CC)
🥉 72 Bronze
1

Baixar o ZIP da skill

2

Upload no Claude

Vá em Configurações → Capacidades → Skills → Upload skill

3

Ative e comece a usar

Testar

A utilizar "nosql-expert". Help me design a Cassandra primary key for storing user orders where I need to query by user_id and sort by order_date descending.

Resultado esperado:

For this access pattern, use a composite primary key:

**Partition Key:** user_id (high cardinality - each user is a partition)
**Clustering Column:** order_date DESC (sorts orders by date within each partition)

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

This design ensures all orders for a user live in one partition (efficient), and they're automatically sorted by date.

A utilizar "nosql-expert". What are the key differences between SQL and NoSQL data modeling?

Resultado esperado:

**SQL vs Distributed NoSQL Mental Model:**

| Aspect | SQL (Relational) | NoSQL (Cassandra/DynamoDB) |
|-------|------------------|---------------------------|
| Modeling | Model entities + relationships | Model **queries first** |
| Joins | At read time (expensive) | Pre-computed at write time |
| Storage | Minimize duplication | Duplicate for read speed |
| Consistency | ACID (strong) | BASE (eventual) |
| Scaling | Vertical | Horizontal |

**Golden Rule:** In SQL, design data for *any* query. In NoSQL, design data for *specific* queries efficiently.

A utilizar "nosql-expert". Explain single-table design in DynamoDB

Resultado esperado:

**DynamoDB Single-Table Design:**

Store multiple entity types in one table using composite keys:

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

**Query:** PK='USER#123' retrieves user + all orders in ONE request.

**Benefits:**
- Reduced application complexity
- Optimized capacity unit usage
- Single network round-trip for related data

Auditoria de Segurança

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
Arquivos analisados
114
Linhas analisadas
3
achados
1
Total de auditorias
Problemas de Baixo Risco (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

Pontuação de qualidade

38
Arquitetura
100
Manutenibilidade
87
Conteúdo
31
Comunidade
99
Segurança
100
Conformidade com especificações

O Que Você Pode Construir

Projetar um novo schema do Cassandra

Arquitetar uma estrutura de chave primária do Cassandra para uma aplicação que precisa consultar por ID de usuário e intervalo de datas de forma eficiente.

Otimizar design de tabela única do DynamoDB

Refatorar uma tabela DynamoDB para armazenar múltiplos tipos de entidade (usuários, pedidos, produtos) em uma tabela usando chaves compostas.

Corrigir problemas de partição quente

Identificar e resolver problemas de partições quentes em uma tabela DynamoDB de alto tráfego melhorando a cardinalidade da chave de partição.

Tente Estes Prompts

Design Básico de Chave Cassandra
Help me design a Cassandra primary key for a table that stores user events. I need to query by user_id and filter by event_type within a date range. What should my partition key and clustering columns be?
Design de Tabela Única DynamoDB
I have three entity types: Users, Orders, and Products. Design a single DynamoDB table using composite keys where I can fetch a user's profile and all their orders in one request.
Diagnóstico de Partição Quente
My DynamoDB table is experiencing throttling on one partition. The partition key is 'status' (values: 'active', 'pending', 'completed'). What's wrong and how do I fix it?
Migração de SQL para NoSQL
I have a relational schema with Author and Book tables joined by author_id. How should I model this in Cassandra or DynamoDB without joins?

Melhores Práticas

  • Sempre projete chaves de partição com alta cardinalidade para evitar partições quentes
  • Pré-compute joins no momento da escrita usando desnormalização em vez de consultar múltiplas tabelas
  • Use chaves de partição compostas (ex: USER#123#2024-01) para prevenir que partições excedam 10GB

Evitar

  • Usar chaves de partição de baixa cardinalidade como status='active' ou gender='m' (cria partições quentes)
  • Usar consultas 'scatter-gather' que varrem todas as partições em vez de direcionar chaves específicas
  • Aplicar padrões de modelagem SQL (tabelas separadas com chaves estrangeiras) em bancos de dados NoSQL

Perguntas Frequentes

O que é modelagem query-first?
Modelagem query-first significa projetar o schema do seu banco de dados em torno das consultas específicas que sua aplicação precisa, em vez de tentar encaixar consultas em uma estrutura baseada em entidades. Liste todos os padrões de acesso primeiro, depois projete tabelas para servir cada padrão de forma eficiente.
Como escolher uma chave de partição?
Escolha uma chave de partição com alta cardinalidade (muitos valores únicos) para distribuir o tráfego uniformemente entre os nós. Evite chaves de baixa cardinalidade como status ou gênero que criariam partições quentes.
O que é design de tabela única?
Design de tabela única armazena múltiplos tipos de entidade em uma tabela DynamoDB usando chaves de partição/ordenação compostas. Isso permite buscar dados relacionados (usuário + pedidos) em uma única requisição.
O que causa partições quentes?
Partições quentes ocorrem quando muito tráfego atinge um único valor de chave de partição. Isso limita o throughput à capacidade de um nó. Corrija usando chaves compostas ou sharding (ex: USER#123#2024-01).
Posso usar joins no Cassandra ou DynamoDB?
Não. Nem Cassandra nem DynamoDB suportam joins. Em vez disso, desnormalize seus dados e armazene dados relacionados juntos, ou use múltiplas tabelas separadas otimizadas para cada padrão de consulta.
Qual é a diferença entre GSI e LSI no DynamoDB?
GSI (Global Secondary Index) abrange toda a tabela entre partições e pode ser criado a qualquer momento. LSI (Local Secondary Index) está limitado a uma única partição e deve ser criado no momento da criação da tabela.

Detalhes do Desenvolvedor

Estrutura de arquivos

📄 SKILL.md