Skip to main content
Como a maioria dos bancos de dados, o ClickHouse agrupa logicamente as tabelas em bancos de dados. Use o comando CREATE DATABASE para criar um novo banco de dados no ClickHouse:
CREATE DATABASE IF NOT EXISTS helloworld
Da mesma forma, use CREATE TABLE para definir uma nova tabela. Se você não especificar o nome do banco de dados, a tabela será criada no banco de dados default. A tabela a seguir, chamada my_first_table, é criada no banco de dados helloworld:
  CREATE TABLE helloworld.my_first_table
  (
      user_id UInt32,
      message String,
      timestamp DateTime,
      metric Float32
  )
  ENGINE = MergeTree()
  PRIMARY KEY (user_id, timestamp)
No exemplo acima, my_first_table é uma tabela MergeTree com quatro colunas:
  • user_id: um inteiro sem sinal de 32 bits
  • message: um tipo de dado String, que substitui tipos como VARCHAR, BLOB, CLOB e outros usados em outros sistemas de banco de dados
  • timestamp: um valor DateTime, que representa um instante no tempo
  • metric: um número de ponto flutuante de 32 bits
O motor da tabela determina:
  • Como e onde os dados são armazenados
  • Quais consultas são suportadas
  • Se os dados são replicados ou não
Há muitos motores à disposição, mas, para uma tabela simples em um servidor ClickHouse de nó único, MergeTree provavelmente será a escolha mais adequada.

Uma breve introdução às chaves primárias

Antes de prosseguir, é importante entender como as chaves primárias funcionam no ClickHouse (a implementação das chaves primárias pode parecer inesperada!):
  • as chaves primárias no ClickHouse não são únicas para cada linha de uma tabela
A chave primária de uma tabela do ClickHouse determina como os dados são ordenados quando gravados em disco. A cada 8.192 linhas ou 10 MB de dados (o que chamamos de granularidade do índice), é criada uma entrada no arquivo de índice da chave primária. Esse conceito de granularidade cria um índice esparso que cabe facilmente na memória, e os grânulos representam uma faixa com a menor quantidade de dados de coluna processada durante consultas SELECT. A chave primária pode ser definida usando o parâmetro PRIMARY KEY. Se você definir uma tabela sem especificar uma PRIMARY KEY, a chave passa a ser a tupla especificada na cláusula ORDER BY. Se você especificar tanto uma PRIMARY KEY quanto uma ORDER BY, a chave primária deverá ser um prefixo da ordenação. A chave primária também é a chave de ordenação, que é uma tupla de (user_id, timestamp). Portanto, os dados armazenados em cada arquivo de coluna serão ordenados por user_id e, em seguida, por timestamp.
Para mais detalhes, confira o módulo de treinamento Modeling Data na ClickHouse Academy.
Last modified on June 10, 2026