Una técnica de gestión de datosEl particionamiento es, ante todo, una técnica de gestión de datos y no una herramienta de optimización de consultas. Aunque puede mejorar el rendimiento en cargas de trabajo específicas, no debería ser el primer mecanismo al que se recurra para acelerar las consultas; la clave de particionamiento debe elegirse cuidadosamente, con una comprensión clara de sus implicaciones, y aplicarse solo cuando responda a necesidades del ciclo de vida de los datos o a patrones de acceso bien entendidos.
PARTITION BY al crear la tabla y se usa habitualmente para agrupar filas por intervalos de tiempo, categorías u otras dimensiones relevantes para el negocio. Cada valor único de la expresión de particionamiento forma su propia partición física en disco, y ClickHouse almacena los datos en partes separadas para cada uno de esos valores. El particionamiento mejora la gestión de datos, simplifica las políticas de retención y puede ayudar con ciertos patrones de consulta.
Por ejemplo, considere la siguiente tabla del conjunto de datos UK price paid con una clave de particionamiento toStartOfMonth(date).
toStartOfMonth(date). Luego, para cada partición identificada, las filas se procesan como de costumbre mediante varios pasos secuenciales (① Ordenación, ② División en columnas, ③ Compresión, ④ Escritura en disco).
Para obtener una explicación más detallada del particionamiento, recomendamos esta guía.
Con el particionamiento habilitado, ClickHouse solo fusiona partes de datos dentro de las particiones, pero no entre ellas. Lo ilustramos con nuestra tabla de ejemplo anterior:
Aplicaciones del particionamiento
Elija una clave de particionamiento de baja cardinalidad
toStartOfMonth(date) permite al motor omitir por completo las particiones irrelevantes y sus partes.
Aunque el particionamiento puede mejorar el rendimiento en algunos patrones de consulta, es ante todo una funcionalidad de gestión de datos. En muchos casos, consultar todas las particiones puede ser más lento que usar una tabla sin particionar debido al aumento de la fragmentación de los datos y a que se examinan más partes. Use el particionamiento con criterio y asegúrese siempre de que la clave elegida tenga baja cardinalidad y se ajuste a las políticas del ciclo de vida de sus datos (p. ej., retención mediante TTL). Si no está seguro de si el particionamiento es necesario, quizá le convenga empezar sin él y optimizar más adelante en función de los patrones de acceso observados.