Tipos de datos
SUPER), una limitación que suele frustrar a los usuarios. ClickHouse además
permite persistir estados de agregación, ya sea en tiempo de consulta o incluso en una tabla.
Esto permite preagregar los datos, normalmente
mediante una vista materializada, y puede mejorar drásticamente el rendimiento de las consultas
más habituales.
A continuación, mostramos el tipo equivalente de ClickHouse para cada tipo de Redshift:
| Redshift | ClickHouse |
|---|---|
SMALLINT | Int8 * |
INTEGER | Int32 * |
BIGINT | Int64 * |
DECIMAL | UInt128, UInt256, Int128, Int256, Decimal(P, S), Decimal32(S), Decimal64(S), Decimal128(S), Decimal256(S) - (alta precisión y amplios rangos posibles) |
REAL | Float32 |
DOUBLE PRECISION | Float64 |
BOOLEAN | Bool |
CHAR | String, FixedString |
VARCHAR ** | String |
DATE | Date32 |
TIMESTAMP | DateTime, DateTime64 |
TIMESTAMPTZ | DateTime, DateTime64 |
GEOMETRY | Tipos de datos geoespaciales |
GEOGRAPHY | Tipos de datos geográficos (menos desarrollados; por ejemplo, no tienen sistemas de coordenadas, pero se pueden emular con funciones) |
HLLSKETCH | AggregateFunction(uniqHLL12, X) |
SUPER | Tuple, Nested, Array, JSON, Map |
TIME | DateTime, DateTime64 |
TIMETZ | DateTime, DateTime64 |
VARBYTE ** | String combinado con las funciones Bit y de codificación |
UInt8, UInt32, UInt32 y UInt64.
**El tipo String de ClickHouse es ilimitado de forma predeterminada, pero puede limitarse a longitudes específicas mediante restricciones.
Sintaxis de DDL
Claves de ordenación
SORTKEY:
ORDER BY para especificar el criterio de ordenación:
COMPOUND predeterminado. Cuando se
agregan datos a Redshift, debe ejecutar los comandos VACUUM y ANALYZE para reordenar
los datos recién agregados y actualizar las estadísticas para el planificador de consultas; de lo contrario, el
espacio no ordenado aumenta. En ClickHouse no se requiere ningún proceso de este tipo.
Redshift admite un par de funciones prácticas para las claves de ordenación. La primera son
las claves de ordenación automáticas (mediante SORTKEY AUTO). Aunque esto puede ser apropiado para
empezar, las claves de ordenación explícitas garantizan el mejor rendimiento y la mayor eficiencia de almacenamiento
cuando la clave de ordenación es óptima. La segunda es la clave de ordenación INTERLEAVED,
que da el mismo peso a un subconjunto de columnas de la clave de ordenación para mejorar el
rendimiento cuando una consulta usa una o más columnas de ordenación secundarias. ClickHouse
admite proyecciones explícitas, que logran el
mismo resultado final con una configuración ligeramente distinta.
Debe tener en cuenta que el concepto de “clave primaria” representa cosas diferentes
en ClickHouse y Redshift. En Redshift, la clave primaria se asemeja al concepto tradicional
de los RDBMS destinado a aplicar restricciones. Sin embargo, no se aplican estrictamente
en Redshift y, en cambio, actúan como indicaciones para el planificador de consultas y la
distribución de datos entre nodos. En ClickHouse, la clave primaria denota las columnas usadas
para construir el índice primario disperso, que se utiliza para garantizar que los datos estén ordenados en
disco, maximizando la compresión y evitando al mismo tiempo contaminar el índice primario y
desperdiciar memoria.