GH GambleHub

Armazéns Hot/Warm/Cold

1) Por que dividir dados em Hot/Warm/Cold

Em um único cluster, existem diferentes pattern de acesso, como consultas interativas de dados recentes, análises de períodos recentes e acesso raro ao arquivo. A divisão em níveis permite:
  • Otimizar custo: camada rápida e cara apenas para o conjunto de trabalho «quente».
  • Cumpra SLO: p95/throughput para online, deadline mais longos para história.
  • Simplifique a escala: aumente as camadas baratas horizontalmente sem superaquecer a frente.
  • Reduzir riscos: domínios de falha/replicação diferentes, políticas de proteção independentes.
Curta:
  • Hot é o mais recente, leitura/gravação frequente, latência mínima.
  • Warm - É menos alterado, com muitas leituras por intervalo de tempo.
  • Cold - arquivo, armazenamento barato, alta TTFB, recuperação lenta.

2) Perfis e SLO por nível

Hot

Acesso: milissegundos (p95 ≤ 5-20 ms em KV/índice; ≤ 100-300 ms em solicitações complexas).
Operações: upsert/append frequentes, indexação, OLTP/estrim-ingest.
Mídia: NVMe/SSD, memória, rede rápida.
Replicação: alta (RF = 3, por exemplo) para RPO≈0, RTO minuto.

Warm

Acesso: Dezenas a centenas de milissegundos/segundo.
Operações: leitura «janela», batch, OLAP história recente (7-90 dias).
Mídia: SATA SSD/HDD rápido/armazenamento de objetos com armazenamento local.
Replicação: moderado (RF = 2), compressão ativada.

Cold

Acesso: segundos-relógio; Acesso offline frequente, «retrieve-and-scan».
Operações: leitura rara, conformidade com regulação (retensas de voo).
Mídia: objeto/arquivo (S3 Glacier/Deep Archive, Azure Archive, GCS Coldline).
Replicação regional/interregional, WORM/Legal Hold.

3) Tecnologias típicas por camadas

Hot: PostgreSQL (OLTP, partitions), MySQL/InnoDB, Redis/Memcached (кэш), Elasticsearch/Opensearch hot-nodes, ClickHouse горячие партиции, Kafka local log.
Warm: ClickHouse de armazenamento invertebrado, BigQuery/Snowflake partituras recentes, Elasticsearch warm-nodes, S3 + Presto/Trino com dinheiro, armazenamento Tiered (Kafka/Pulsar).
Cold: S3/Glacier, GCS Nearline/Coldline/Archive, Azure Cool/Archive, arquivo HDFF, bacapes de longo prazo.

4) Políticas de ciclo de vida (ILM) e automação

4. 1 Conceitos

A partilha por hora (dia/semana/mês) é a principal alavanca de tradução entre camadas.
Regras ILM: rollover (em volume/idade), shrink/merge, freeze, delete.
Deduplicação e compressão: incluir em warm/cold, evitando estreitos CPU em hot.

4. 2 Exemplos

Elasticsearch ILM (hot→warm→cold→delete)

json
{
"policy": {
"phases": {
"hot":  { "actions": { "rollover": { "max_age": "7d", "max_size": "50gb" } } },
"warm": { "min_age": "7d", "actions": { "allocate": { "require": { "box_type": "warm" } }, "forcemerge": { "max_num_segments": 1 } } },
"cold": { "min_age": "30d", "actions": { "allocate": { "require": { "box_type": "cold" } }, "freeze": {} } },
"delete":{ "min_age": "365d", "actions": { "delete": {} } }
}
}
}

S3 Lifecycle (Standard→Infrequent→Glacier→Expire)

json
{
"Rules": [{
"ID": "logs-lifecycle",
"Filter": { "Prefix": "logs/" },
"Status": "Enabled",
"Transitions": [
{ "Days": 7, "StorageClass": "STANDARD_IA" },
{ "Days": 30, "StorageClass": "GLACIER" }
],
"Expiration": { "Days": 365 }
}]
}

Kafka Tiered Armazenamento (esboço)

properties log. segment. bytes=1073741824 log. retention. ms=259200000 tiered. storage. enable=true remote. log. storage. system=s3 remote. log. storage. bucket=topic-archive

PostgreSQL da partição por data

sql
CREATE TABLE events (
id bigserial, at timestamptz NOT NULL, payload jsonb
) PARTITION BY RANGE (at);

CREATE TABLE events_2025_10 PARTITION OF events
FOR VALUES FROM ('2025-10-01') TO ('2025-11-01')
TABLESPACE ts_hot; -- further ALTER TABLE... SET TABLESPACE ts_warm по ILM

5) Modelagem de custo e desempenho

5. 1 Modelo TCO simples

'TCO = CapEx/OpEx mídia + rede (egress) + CPU para compressão/scan + controle + DR./replicação'.

5. 2 Equilíbrio de latência e preços

Um conjunto quente de 5 a 20% dos dados dá 80 a 95% das solicitações.
O objetivo é manter o set de trabalho em Hot/dinheiro (CPU/RAM/NVMe), deslocar o resto para Warm/Cold.

5. 3 Métricas

hit_ratio_hot, pct_hot_of_total_bytes, cost_per_TB_month{tier}, scan_cost_per_TB, time_to_first_byte{tier}, promotion_rate (cold→warm), demotion_rate (hot→warm/cold).

6) Particionamento, indexação e cachê

Partições de tempo + secundary-índice para cortes «frescos».
A regra de ouro da consulta é o filtro de horário primeiro, depois as chaves seletivas.
O dinheiro é hierárquico: in-proc → Redis → edge; capas pin para chaves quentes/equipamentos.
Filtros bloom/índice skip (ClickHouse, Parquet) para reduzir a leitura em warm/cold.

7) Replicação, resistência a falhas e DR

Hot: replicação sincronizada (multissona), RPO≈0, feelover rápido.
Warm: réplica asíncrona interzonal/interregional; RPO minutos.
Cold: interregional com WORM (Write Once Read Many), Legal Hold para complacência.
Planos de run: livros de recuperação de arquivos «frios» (relógios), fire-drills periódicos.

8) Segurança e conformidade

PII/PCI: Criptografia em paz (KMS), políticas-chave em cada estágio, camuflagem na transferência para baixo.
Retensna e remoção: prazo automático para cold, apagagem comprovada (erase reports).
Jurisdição: armazenamento na região (EU-only, RU-only, BY-region etc.), geo-isolamento bucket 'ov.

9) Pattern de uso

9. 1 Logos e telemetria

Hot: as últimas 24-72 horas no Elasticsearch/ClickHouse na NVMe.
Warm: 30-180 dias para SSD/HDD + Parquet em S3.
Cold:> 180 dias no Glacier; solicitações via Trino/Pró «sob demanda».

9. 2 Transações/mandados

Hot: OLTP BD (PostgreSQL/MySQL) com uma história curta.
Warm: Snapshots denormalizados para BI.
Cold: Arquivo jurídico, exportação para armazenamento de objetos.

9. 3 ML-fichestore

Hot: Fici online em Redis/low-latency DB.
Warm: fies off-line em colinvertebrado/objeto.
Cold: Datasets originais, versioned (Delta/Iceberg/Hudi).

10) Interação com clusters e Kubernetes

Selecione «gold-nvme» (hot), «silver-ssd' (warm),» bronze-object' (cold).
Planeje nódulos-pula (taants/labels) sob hot/warm/cold worcloades.
Caciques Sidecar (por exemplo, local SSD cachê) antes de solicitar no armazenamento de objetos.

Exemplo de PVC

yaml apiVersion: v1 kind: PersistentVolumeClaim metadata: { name: db-hot }
spec:
storageClassName: gold-nvme accessModes: [ ReadWriteOnce ]
resources: { requests: { storage: 500Gi } }

11) Observabilidade

Dashboard: distribuição de bytes/consultas por tier, latency per tier, offload em warm/cold, custo/mês.
Alerts: redução do hit-ratio hot, crescimento da promoção-rate (se o volume quente é suficiente), aumento do TTFB em warm, recuperação lenta do cold (SLO breach).

12) Anti-pattern

«Tudo em hot», valor excedente, superaquecimento de IO.
«Frio profundo sem índices»: é barato guardar, é caro ler; não há caminhos de corte rápido.
«Não ao ILM», transferências manuais, erros humanos.
Política de replicação unificada para todos os níveis: sobrepreço e RPO desigual.
Mesclar consultas de arquivo/prod em um pool de computação: influência mútua.
«Egress não contabilizado» em nuvens cold: surpresas na conta.

13) Folha de cheque de implementação

  • Classifique os conjuntos de dados: SLA, taxa de acesso, requisitos de armazenamento.
  • Selecione mídias e motores por camada (NVMe/SSD/HDD/Object/Archive).
  • Projete partituras (tempo/chave), índices e formatos (Parquet/ORC/Delta).
  • Defina as regras ILM (rollover/transição/expire) e automatize.
  • Ative a compressão/codificação (ZSTD/LZ4; em cold - mais forte).
  • Defina a replicação/RPO/RTO e os procedimentos DR.
  • Configure a hierarquia em dinheiro e pin para as unidades quentes.
  • Métricas de custo/latência e alertas por tier.
  • Políticas de segurança (KMS, retalhos legais, geo-isolamento).
  • Reveja regularmente os limites de tradução (seasonality, crescimento).

14) FAQ

Q: Como definir os limites entre hot e warm?
A: Na distribuição real de solicitações: «hot set» = 5% a 20% superiores de chaves/partituras que fornecem 80% a 95% das solicitações. Tudo o que não chega é candidato a warm.

Q: Pode ler diretamente a partir de cold?
A: Sim, mas planeje o SLA para minutos/relógio e valor egress; é mais vantajoso repatriar uma fatia em warm (estaging) antes de analisar.

O que escolher para os analistas de 30 a 180 dias?
A: Formatos invertebrados (Parquet/ORC) em objeto + motor de solicitação (Trino/Presto/ClickHouse) com dinheiro; índice/skip-data para economizar o IO.

Como evitar «tempestades de aquecimento» quando se transbordam de cold?
A: Use o prefetch/predare-jobs, consultas com limites, dê um tempo, aplique o request-coalescing e pin-cachês no warm.

15) Resultado

A arquitetura Hot/Warm/Cold é a adequação do custo ao perfil de acesso, além de gerenciamento automático do ciclo de vida. O SLO claro por camadas, partitização e ILM, replicação inteligente e hierarquia em dinheiro permitem manter o «quente» rápido, «quente» disponível e «frio» barato e seguro.

Contact

Entrar em contacto

Contacte-nos para qualquer questão ou necessidade de apoio.Estamos sempre prontos para ajudar!

Telegram
@Gamble_GC
Iniciar integração

O Email é obrigatório. Telegram ou WhatsApp — opcionais.

O seu nome opcional
Email opcional
Assunto opcional
Mensagem opcional
Telegram opcional
@
Se indicar Telegram — responderemos também por lá.
WhatsApp opcional
Formato: +indicativo e número (ex.: +351XXXXXXXXX).

Ao clicar, concorda com o tratamento dos seus dados.