# Repaso sesión 1

### 1. ¿Qué es InfluxDB y por qué es ideal para series temporales?

InfluxDB es una base de datos especializada en almacenar y consultar datos que varían en el tiempo, como métricas de sensores, logs o eventos. Es ideal porque optimiza la escritura, consulta y compresión de datos asociados a marcas de tiempo, permitiendo un manejo eficiente de grandes volúmenes de información temporal.

### 2. Comparación InfluxDB vs. bases de datos relacionales

* **InfluxDB**: orientada a series temporales, cada registro tiene timestamp, alta eficiencia en inserciones y consultas por tiempo, usa buckets y políticas de retención.
* **Relacionales (Oracle, PostgreSQL, etc.)**: orientadas a datos estructurados, menos eficientes para datos masivos con timestamps, usan tablas y esquemas clásicos.

### 3. Arquitectura: Measurement, Tags, Fields, Points

* **Measurement**: Agrupación lógica de datos, similar a una tabla en bases de datos relacionales  (ej: mediciones\_sensores).
* **Tags**: clave-valor de etiquetas indexadas para filtrar (ej: ubicación, dispositivo).
* **Fields**: clave-valor, no indexados (ej: valor de temperatura, valor de humedad).
  * Fieldkey: nombre del valor medido (temperatura, humedad, co2)
  * Fieldvalue: valor medido (30, 50, 50)
* **Points**: registro individual (measurement + tags + fields + timestamp).

### 4. Time-Structured Merge Tree (TSM)

Motor de almacenamiento optimizado para datos temporales, que organiza y compacta la información en archivos, mejorando el rendimiento y la eficiencia.

### 5. Almacenamiento y rendimiento

InfluxDB almacena datos en buckets usando TSM, lo que permite consultas rápidas y eficiente uso de disco. La estructura y la cardinalidad (número de series únicas) impactan directamente en el rendimiento.

### 6. Gestión de datos históricos

InfluxDB usa políticas de retención para eliminar automáticamente datos antiguos, facilitando la gestión de históricos y el cumplimiento normativo.

### 7. Lenguajes de consulta: InfluxQL, Flux y SQL

* **InfluxQL**: similar a SQL, orientado a series temporales.
* **Flux**: más flexible y potente, permite análisis avanzados.
* **SQL**: estándar en bases relacionales, no nativo en InfluxDB.

### 8. Buckets y retención de datos

Un bucket es un contenedor lógico de datos con una política de retención definida (ej: 30 días, 1 año). Es fundamental definirlos según el tipo y criticidad de los datos.

### 9. Cardinalidad y performance

La cardinalidad es el número de combinaciones únicas de measurement, tags y fields. Alta cardinalidad puede degradar el rendimiento; se recomienda optimizar la estructura de datos y limitar tags de alta unicidad.

### 10. Prácticas recomendadas

* Diseñar buckets y mediciones según el uso.
* Usar tags solo para atributos que se consultarán como filtros.
* Monitorizar la cardinalidad y ajustar la estructura si es necesario.


---

# 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-2/guion-de-la-sesion/documentacion/repaso-sesion-1.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.
