¿Qué hace tinybird?
Formatos de archivo de Tinybird, reglas SQL, patrones de optimización y mejores prácticas para fuentes de datos, pipes, endpoints y vistas materializadas.
Este skill proporciona pautas para trabajar con Tinybird de manera eficiente. A continuación se presentan las reglas y patrones clave.
Formatos de archivo
Tinybird soporta los siguientes formatos de archivo para la ingesta de datos:
- CSV: Formato de valores separados por comas. Codificación UTF-8 recomendada.
- NDJSON: Newline Delimited JSON. Cada línea debe ser un objeto JSON válido.
- Parquet: Formato columnar binario. Ideal para grandes volúmenes de datos.
Buenas prácticas
- Para archivos CSV, asegúrate de que la primera fila contenga los nombres de las columnas.
- Para NDJSON, cada objeto JSON debe estar en una línea separada, sin saltos de línea internos.
- Para Parquet, utiliza tipos de datos compatibles (ej. String, Int64, Float64, Timestamp).
Reglas SQL
Estilo y formato
- Utiliza mayúsculas para las palabras clave SQL (
SELECT,FROM,WHERE,JOIN, etc.). - Nombra las columnas con
snake_case. - Evita el uso de
SELECT *en pipes o endpoints; especifica siempre las columnas necesarias. - Usa alias (
AS) claros para columnas y tablas.
Optimización
- Aplica filtros (
WHERE) lo antes posible para reducir la cantidad de datos procesados. - Prefiere
LEFT JOINsobreRIGHT JOINy mantén la tabla más grande a la izquierda. - Utiliza funciones de ventana con cuidado, especialmente en conjuntos de datos grandes.
- Para agregaciones, usa
GROUP BYen columnas con baja cardinalidad primero.
Patrones de optimización
Fuentes de datos (Datasources)
- Define un Engine adecuado:
MergeTreepara la mayoría de los casos,SummingMergeTreepara agregaciones pre-calculadas. - Configura particiones basadas en tiempo (
toDate(timestamp)) para mejorar el rendimiento de las consultas. - Establece un orden de ordenamiento (
ORDER BY) que coincida con los filtros más comunes de tus consultas.
Pipes y Endpoints
- Utiliza vistas materializadas para pre-agregar datos y evitar cálculos repetitivos en endpoints.
- Para endpoints que reciben muchos parámetros, usa parámetros con tipo en lugar de interpolación de cadenas.
- Considera el uso de caché en endpoints para consultas que no cambian frecuentemente.
Vistas materializadas (Materialized Views)
- Las vistas materializadas se actualizan en tiempo real cuando se insertan nuevos datos en la fuente de origen.
- Define la vista con un
SELECTque incluya agregaciones y transformaciones necesarias. - Almacena los resultados en un nuevo datasource con su propio esquema y motor.
Mejores prácticas generales
- Usa nombres descriptivos para datasources, pipes y vistas materializadas.
- Documenta los pipes con comentarios SQL (
--) para explicar transformaciones complejas. - Realiza pruebas de rendimiento antes de desplegar endpoints a producción.
- Monitorea el uso de recursos (CPU, memoria) a través del panel de Tinybird.
Para más detalles, consulta la documentación oficial de Tinybird.