Tipos de dados
SUPER) —, uma limitação que costuma frustrar os usuários. O ClickHouse também
permite persistir estados de agregação, seja em tempo de consulta ou até mesmo em uma tabela.
Isso permite pré-agregar os dados, normalmente
usando uma visão materializada, e pode melhorar drasticamente o desempenho das consultas
mais comuns.
Abaixo, mapeamos o tipo equivalente no ClickHouse para cada tipo do 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 precisão e ampla faixa de valores) |
REAL | Float32 |
DOUBLE PRECISION | Float64 |
BOOLEAN | Bool |
CHAR | String, FixedString |
VARCHAR ** | String |
DATE | Date32 |
TIMESTAMP | DateTime, DateTime64 |
TIMESTAMPTZ | DateTime, DateTime64 |
GEOMETRY | Tipos de dados Geo |
GEOGRAPHY | Tipos de Dados Geo (menos desenvolvidos, por exemplo, sem sistemas de coordenadas — podem ser emulados com funções) |
HLLSKETCH | AggregateFunction(uniqHLL12, X) |
SUPER | Tuple, Nested, Array, JSON, Map |
TIME | DateTime, DateTime64 |
TIMETZ | DateTime, DateTime64 |
VARBYTE ** | String em combinação com Bit e funções de Codificação |
UInt8, UInt32, UInt32 e UInt64.
**O tipo String do ClickHouse é ilimitado por padrão, mas pode ser limitado a comprimentos específicos usando restrições.
Sintaxe DDL
Chaves de ordenação
SORTKEY:
ORDER BY para especificar a ordem de ordenação:
COMPOUND padrão. Quando os dados são
adicionados ao Redshift, você deve executar os comandos VACUUM e ANALYZE para reordenar
os dados recém-adicionados e atualizar as estatísticas do planejador de consultas — caso contrário, o
espaço não ordenado aumenta. Nenhum processo desse tipo é necessário no ClickHouse.
O Redshift oferece alguns recursos práticos para chaves de ordenação. O primeiro são as
chaves de ordenação automáticas (usando SORTKEY AUTO). Embora isso possa ser adequado para
começar, chaves de ordenação explícitas garantem o melhor desempenho e a melhor eficiência de
armazenamento quando a chave de ordenação é ideal. O segundo é a chave de ordenação INTERLEAVED,
que atribui o mesmo peso a um subconjunto de colunas na chave de ordenação para melhorar o
desempenho quando uma consulta usa uma ou mais colunas de ordenação secundárias. O ClickHouse
oferece projeções explícitas, que alcançam o
mesmo resultado final com uma configuração um pouco diferente.
Você deve estar ciente de que o conceito de “chave primária”
representa coisas diferentes no ClickHouse e no Redshift. No Redshift, a chave primária se assemelha ao conceito tradicional
de SGBD, destinado a impor restrições. No entanto, elas não são estritamente
aplicadas no Redshift e, em vez disso, atuam como dicas para o planejador de consultas e para a
distribuição de dados entre os nós. No ClickHouse, a chave primária denota colunas usadas
para construir o índice primário esparso, usado para garantir que os dados sejam ordenados em
disco, maximizando a compactação e evitando sobrecarregar o índice primário e
desperdiçar memória.