# Estrategias de almacenamiento más destacables

### 1. **Diseño de esquema optimizado**

* **Tags vs. Fields:**
  * **Tags:** Usar para metadatos indexados (filtros rápidos). Ej: `host`, `region`.
  * **Fields:** Almacenar valores numéricos, texto, fechas, boolean /no indexados. Ej: `temperature`, `usage`.
  * *Evitar:* Valores únicos en tags para controlar la cardinalidad (ej: IDs únicos como tags).
* **Orden de tags:**\
  Ordenar tags alfabéticamente al escribir datos para mejorar la compresión TSM. Ej:

  ```
  measurement,tagA=val,tagB=val field=1  # Correcto  
  measurement,tagB=val,tagA=val field=1  # Evitar
  ```

***

### 2. **Optimización de escritura**

* **Lotes de 5000 puntos:**\
  Enviar datos en lotes reduce la sobrecarga de red. Ej: 5000 puntos/lote.

  ```
  python# Ejemplo en Python (usando influxdb-client)
  with client.write_api() as writer:
      writer.write(bucket, org, [point1, point2, ..., point5000])
  ```

* **Compresión GZIP:**\
  Habilitar compresión reduce el tamaño de datos transmitidos. Mejora la velocidad hasta 5x.

  ```
  bashcurl --request POST \
    --header "Content-Encoding: gzip" \
    --data-binary @datos.gz \
    http://localhost:8086/api/v2/write
  ```

* No desactivar la compresión.
  * Mantiene archivos TSM optimizados para consultas rápidas.

***

### 3. **Gestión de almacenamiento**

* **Políticas de retención (1.x) / Buckets (2.x):**
  * Definir duración según necesidad: datos recientes (ej: 7 días) vs históricos (ej: 1 año).
  * Usar `downsampling` para datos antiguos:

    <pre class="language-sql" data-title="InfluxQL" data-overflow="wrap"><code class="lang-sql">CREATE CONTINUOUS QUERY "downsample_1h" ON "mydb" 
    BEGIN 
      SELECT mean(*) INTO "mydb"."autogen"."MEASUREMENT"
      FROM /.*/ GROUP BY time(1h) 
    END
    </code></pre>

***

### 4. **Monitorización y ajuste**

**Cardinalidad:**\
Verificar con `SHOW SERIES CARDINALITY` (1.x) o `influx cardinality` (2.x). Limitar a <100k series/medición.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://darioaplicano.gitbook.io/influxdb2.x/sesion-6/guion-de-la-sesion/documentacion/estrategias-de-indexacion-y-almacenamiento-optimizado/estrategias-de-almacenamiento-mas-destacables.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
