Skip to main content
Como la mayoría de las bases de datos, ClickHouse agrupa lógicamente las tablas en bases de datos. Usa el comando CREATE DATABASE para crear una base de datos nueva en ClickHouse:
CREATE DATABASE IF NOT EXISTS helloworld
De manera similar, usa CREATE TABLE para definir una tabla nueva. Si no especificas el nombre de la base de datos, la tabla estará en la base de datos default. La siguiente tabla, llamada my_first_table, se crea en la base de datos helloworld:
  CREATE TABLE helloworld.my_first_table
  (
      user_id UInt32,
      message String,
      timestamp DateTime,
      metric Float32
  )
  ENGINE = MergeTree()
  PRIMARY KEY (user_id, timestamp)
En el ejemplo anterior, my_first_table es una tabla MergeTree con cuatro columnas:
  • user_id: un entero sin signo de 32 bits
  • message: un tipo de dato String que sustituye a tipos como VARCHAR, BLOB, CLOB y otros de otros sistemas de bases de datos
  • timestamp: un valor DateTime que representa un momento concreto en el tiempo
  • metric: un número de coma flotante de 32 bits
El motor de tabla determina:
  • Cómo y dónde se almacenan los datos
  • Qué consultas se admiten
  • Si los datos se replican o no
Hay muchos motores entre los que elegir, pero para una tabla sencilla en un servidor ClickHouse de un solo nodo, MergeTree suele ser la opción más adecuada.

Una breve introducción a las claves primarias

Antes de continuar, es importante entender cómo funcionan las claves primarias en ClickHouse (¡la implementación de las claves primarias puede parecer inesperada!):
  • las claves primarias en ClickHouse no son únicas para cada fila de una tabla
La clave primaria de una tabla de ClickHouse determina cómo se ordenan los datos al escribirse en disco. Cada 8.192 filas o 10 MB de datos (lo que se conoce como la granularidad del índice) crea una entrada en el archivo de índice de la clave primaria. Este concepto de granularidad crea un índice disperso que cabe fácilmente en memoria, y los gránulos representan la franja mínima de datos de columna que se procesa durante las consultas SELECT. La clave primaria puede definirse mediante el parámetro PRIMARY KEY. Si define una tabla sin especificar una PRIMARY KEY, la clave pasa a ser la tupla especificada en la cláusula ORDER BY. Si especifica tanto una PRIMARY KEY como un ORDER BY, la clave primaria debe ser un prefijo del orden de clasificación. La clave primaria también es la clave de ordenación, que es una tupla de (user_id, timestamp). Por lo tanto, los datos almacenados en cada archivo de columna se ordenarán por user_id y luego por timestamp.
Para obtener más información, consulte el módulo de formación Modeling Data de ClickHouse Academy.
Last modified on June 10, 2026