Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Inicio rápido de ClickHouse Cloud

La forma más rápida y sencilla de empezar a usar ClickHouse es crear un nuevo servicio en ClickHouse Cloud. En esta guía de inicio rápido, te ayudaremos a configurarlo en tres sencillos pasos.

Crear un servicio de ClickHouse

Para crear un servicio gratuito de ClickHouse en ClickHouse Cloud, solo tienes que registrarte siguiendo estos pasos:

  • Crea una cuenta en la página de registro
  • Puedes registrarte con tu correo electrónico o mediante Google SSO, Microsoft SSO, AWS Marketplace, Google Cloud o Microsoft Azure
  • Si te registras con correo electrónico y contraseña, recuerda verificar tu dirección de correo electrónico en las siguientes 24 h mediante el enlace que recibirás por correo electrónico
  • Inicia sesión con el nombre de usuario y la contraseña que acabas de crear
Seleccionar plan

Una vez que hayas iniciado sesión, ClickHouse Cloud inicia el asistente de onboarding, que te guía en la creación de un nuevo servicio de ClickHouse. Selecciona la región en la que deseas desplegar el servicio y asigna un nombre al nuevo servicio:

Nuevo servicio de ClickHouse

De forma predeterminada, las nuevas organizaciones se asignan al nivel Scale y crearán 3 réplicas, cada una con 4 vCPU y 16 GiB de RAM. El autoescalado vertical estará habilitado de forma predeterminada en el nivel Scale. Más adelante, puedes cambiar el nivel de la organización en la página «Planes».

Personaliza los recursos del servicio si es necesario, especificando los tamaños mínimo y máximo entre los que podrán escalar las réplicas. Cuando estés listo, selecciona Create service.

Límites de escalado

¡Felicidades! Tu servicio de ClickHouse Cloud ya está en funcionamiento y el onboarding se ha completado. Sigue leyendo para obtener más información sobre cómo empezar a ingestar y consultar tus datos.

Conectar a ClickHouse

Hay 2 formas de conectarse a ClickHouse:

  • Conectarse mediante nuestra consola SQL web
  • Conectarse desde su aplicación

Conectarse mediante la consola SQL

Para empezar rápidamente, ClickHouse ofrece una consola SQL web a la que se le redirigirá al completar el proceso de onboarding.

Consola SQL

Cree una pestaña de consulta e introduzca una consulta sencilla para verificar que la conexión funciona:

SHOW databases

Deberías ver 4 bases de datos en la lista, además de las que hayas añadido.

SQL Console

Eso es todo; ¡ya puedes empezar a usar tu nuevo servicio de ClickHouse!

Conecta tu aplicación

Pulsa el botón Conectar en el menú de navegación. Se abrirá un cuadro de diálogo con las credenciales de tu servicio y un conjunto de instrucciones para conectarte mediante tu interfaz o client de lenguaje.

Conexión al servicio

Si no ves tu client de lenguaje, quizá te interese consultar nuestra lista de Integrations.

Añadir datos

¡ClickHouse es mejor con datos! Existen múltiples formas de añadir datos y la mayoría están disponibles en la página Data Sources, accesible desde el menú de navegación.

Fuentes de datos

Puede cargar datos mediante los siguientes métodos:

  • Configure un ClickPipe para empezar a ingerir datos desde fuentes como S3, Postgres, Kafka y GCS
  • Use la consola SQL
  • Use el cliente de ClickHouse
  • Cargue un archivo - los formatos admitidos incluyen JSON, CSV y TSV
  • Cargue datos desde la URL de un archivo

ClickPipes

ClickPipes es una plataforma de integración gestionada que permite ingerir datos desde una gran variedad de fuentes con solo unos pocos clics. Diseñada para las cargas de trabajo más exigentes, la arquitectura robusta y escalable de ClickPipes garantiza un rendimiento y una fiabilidad constantes. ClickPipes puede utilizarse tanto para necesidades de transmisión a largo plazo como para una carga de datos puntual.

Seleccionar fuente de datos

Añadir datos mediante la Consola SQL

Como la mayoría de los sistemas de gestión de bases de datos, ClickHouse agrupa lógicamente las tablas en bases de datos. Utilice el comando CREATE DATABASE para crear una nueva base de datos en ClickHouse:

CREATE DATABASE IF NOT EXISTS helloworld

Ejecute el siguiente comando para crear una tabla llamada my_first_table 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 (UInt32)
  • message: un tipo de datos String que sustituye tipos como VARCHAR, BLOB, CLOB y otros de otros sistemas de bases de datos
  • timestamp: un valor DateTime que representa un instante temporal
  • metric: un número de coma flotante de 32 bits (Float32)

Breve introducción a las claves primarias

Antes de seguir adelante, es importante entender cómo funcionan las claves primarias en ClickHouse (¡la implementación de las claves primarias puede resultar sorprendente!):

  • las claves primarias de 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 cuando se escriben en disco. Cada 8.192 filas o 10 MB de datos (denominado granularidad del índice) crea una entrada en el archivo del índice de la clave primaria. Este concepto de granularidad genera un índice disperso que cabe fácilmente en memoria, y los gránulos representan una franja de la menor cantidad 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 indicada en la cláusula ORDER BY. Si especifica tanto una PRIMARY KEY como un ORDER BY, la clave primaria debe ser un subconjunto 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 estarán ordenados por user_id y luego por timestamp.

Para profundizar en los conceptos fundamentales de ClickHouse, consulte "Conceptos fundamentales".

Inserte datos en su tabla

En ClickHouse puede usar el conocido comando INSERT INTO TABLE, pero es importante tener en cuenta que cada inserción en una tabla MergeTree genera una part en el almacenamiento.


Incluso en un ejemplo sencillo, insertemos más de una fila a la vez:

INSERT INTO helloworld.my_first_table (user_id, message, timestamp, metric) VALUES
    (101, 'Hello, ClickHouse!',                                 now(),       -1.0    ),
    (102, 'Insert a lot of rows per batch',                     yesterday(), 1.41421 ),
    (102, 'Sort your data based on your commonly-used queries', today(),     2.718   ),
    (101, 'Granules are the smallest chunks of data read',      now() + 5,   3.14159 )

Verifiquemos que ha funcionado:

SELECT * FROM helloworld.my_first_table

Añadir datos con ClickHouse Client

También puede conectarse a su servicio de ClickHouse Cloud mediante una herramienta de línea de comandos llamada clickhouse client. Haga clic en Connect en el menú de la izquierda para acceder a estos detalles. En el cuadro de diálogo, seleccione Native en la lista desplegable:

Detalles de conexión de clickhouse client

  1. Instale ClickHouse.

  2. Ejecute el comando y sustituya el nombre de host, el nombre de usuario y la contraseña por los suyos:

./clickhouse client --host HOSTNAME.REGION.CSP.clickhouse.cloud \
--secure --port 9440 \
--user default \
--password <password>

Si aparece el prompt con la carita sonriente, ¡ya puedes ejecutar queries!

:)
  1. Pruébelo ejecutando la siguiente consulta:

SELECT *
FROM helloworld.my_first_table
ORDER BY timestamp

Observe que la respuesta se muestra en un formato de tabla claro:

┌─user_id─┬─message────────────────────────────────────────────┬───────────timestamp─┬──metric─┐
│     102 │ Insert a lot of rows per batch                     │ 2022-03-21 00:00:00 │ 1.41421 │
│     102 │ Sort your data based on your commonly-used queries │ 2022-03-22 00:00:00 │   2.718 │
│     101 │ Hello, ClickHouse!                                 │ 2022-03-22 14:04:09 │      -1 │
│     101 │ Granules are the smallest chunks of data read      │ 2022-03-22 14:04:14 │ 3.14159 │
└─────────┴────────────────────────────────────────────────────┴─────────────────────┴─────────┘

4 rows in set. Elapsed: 0.008 sec.
  1. Añada una cláusula FORMAT para especificar uno de los muchos formatos de salida compatibles con ClickHouse:

SELECT *
FROM helloworld.my_first_table
ORDER BY timestamp
FORMAT TabSeparated

En la consulta anterior, el resultado se devuelve separado por tabulaciones:

Query id: 3604df1c-acfd-4117-9c56-f86c69721121

102 Insert a lot of rows per batch      2022-03-21 00:00:00     1.41421
102 Sort your data based on your commonly-used queries  2022-03-22 00:00:00     2.718
101 Hello, ClickHouse!  2022-03-22 14:04:09     -1
101 Granules are the smallest chunks of data read       2022-03-22 14:04:14     3.14159

4 rows in set. Elapsed: 0.005 sec.
  1. Para salir del clickhouse client, escriba el comando exit:

exit

Subir un archivo

Una tarea habitual al empezar a usar una base de datos es insertar datos que ya se tienen en archivos. Tenemos disponibles en línea datos de ejemplo que puede insertar y que representan datos de flujo de clics: incluyen un ID de usuario, una URL visitada y la marca de tiempo del evento.

Supongamos que tenemos el siguiente texto en un archivo CSV llamado data.csv:

data.csvbash
102,This is data in a file,2022-02-22 10:43:28,123.45
101,It is comma-separated,2022-02-23 00:00:00,456.78
103,Use FORMAT to specify the format,2022-02-21 10:43:30,678.90
  1. El siguiente comando inserta los datos en my_first_table:

./clickhouse client --host HOSTNAME.REGION.CSP.clickhouse.cloud \
--secure --port 9440 \
--user default \
--password <password> \
--query='INSERT INTO helloworld.my_first_table FORMAT CSV' < data.csv
  1. Observe que las nuevas filas ya aparecen en la tabla al realizar consultas desde la consola SQL:

Nuevas filas del archivo CSV

¿Qué sigue?

Puedes seguir este path por tu cuenta, automatizarlo con un script o asignárselo a un AI Agent. Cambia a la vista de Cloud UI para la versión de consola.

En esta página se explica cómo aprovisionar un servicio de ClickHouse Cloud, conectarse a él y cargar datos desde la línea de comandos con ClickHouse CLI (clickhousectl). Los comandos no son interactivos; clickhousectl genera JSON con --json.

Requisitos previos

Instala la CLI de ClickHouse:

curl https://clickhouse.com/cli | sh

También necesita jq.

Necesita una cuenta de ClickHouse Cloud. Si aún no tiene una, clickhousectl cloud auth signup abrirá la página de registro en el navegador.

Las operaciones de escritura (crear, eliminar) requieren autenticación con una API key; el inicio de sesión con OAuth es de solo lectura:

clickhousectl cloud auth login --api-key <YOUR_KEY> --api-secret <YOUR_SECRET>

Como alternativa, configure las variables de entorno CLICKHOUSE_CLOUD_API_KEY y CLICKHOUSE_CLOUD_API_SECRET. Compruébelo con clickhousectl cloud auth status; debería aparecer una entrada con scope read/write.

Cree un servicio de ClickHouse

Cree el servicio y guarde la respuesta; la contraseña del usuario default se muestra solo una vez:

clickhousectl cloud service create \
  --name quickstart-ch \
  --region us-east-1 \
  --json > ch.json

La respuesta incluye el ID del servicio, los endpoints y la contraseña generada (truncada aquí; la respuesta completa también incluye la configuración de escalado, la lista de acceso de IP y las etiquetas):

{
  "password": "dK7mPq2x_-TzrL9vNw0s",
  "service": {
    "id": "4f7b92f3-4163-403a-b538-b9bc6e2e8f66",
    "name": "quickstart-ch",
    "provider": "aws",
    "region": "us-east-1",
    "state": "provisioning",
    "endpoints": [
      {
        "host": "quickstart-abc123.us-east-1.aws.clickhouse.cloud",
        "port": 9440,
        "protocol": "nativesecure"
      },
      {
        "host": "quickstart-abc123.us-east-1.aws.clickhouse.cloud",
        "port": 8443,
        "protocol": "https"
      }
    ],
    "numReplicas": 3,
    "minReplicaMemoryGb": 16.0,
    "maxReplicaMemoryGb": 120.0
  }
}

Extraiga lo que necesitará para el resto de esta guía:

CH_ID=$(jq -r .service.id ch.json)
CH_PASSWORD=$(jq -r .password ch.json)
CH_HOST=$(jq -r '.service.endpoints[] | select(.protocol=="nativesecure") | .host' ch.json)

Si se pierde la contraseña, genere una nueva con clickhousectl cloud service reset-password "$CH_ID".

De forma predeterminada, los servicios creados con clickhousectl incluyen una lista de acceso por IP que permite todas las direcciones (0.0.0.0/0). Para restringir el acceso, especifique --ip-allow al crear el servicio; consulte "Configuración de filtros de IP".

Espere a que se aprovisione el servicio

El aprovisionamiento tarda aproximadamente un minuto. Consulte el estado periódicamente hasta que sea running:

while [ "$(clickhousectl cloud service get "$CH_ID" --json | jq -r .state)" != "running" ]; do
  sleep 15
done

Ejecute SQL con la Query API

clickhousectl cloud service query ejecuta SQL mediante HTTP; no requiere un binario local de clickhouse ni la contraseña del servicio. La primera llamada aprovisiona automáticamente un endpoint de Query API y una API key con alcance específico para el servicio:

clickhousectl cloud service query --id "$CH_ID" --query "SHOW databases"
Provisioning Query API endpoint + key for service 'quickstart-ch'...
{"name":"INFORMATION_SCHEMA"}
{"name":"default"}
{"name":"information_schema"}
{"name":"system"}

La salida redirigida usa JSONEachRow de forma predeterminada; use --format PrettyCompact para obtener una salida en formato de tabla.

Cree una base de datos y una tabla

clickhousectl cloud service query --id "$CH_ID" \
  --query "CREATE DATABASE IF NOT EXISTS helloworld"

clickhousectl cloud service query --id "$CH_ID" \
  --query "CREATE TABLE helloworld.my_first_table (
    user_id UInt32,
    message String,
    timestamp DateTime,
    metric Float32
  ) ENGINE = MergeTree()
  PRIMARY KEY (user_id, timestamp)"

Ambos comandos muestran OK. Inserte algunas filas:

clickhousectl cloud service query --id "$CH_ID" \
  --query "INSERT INTO helloworld.my_first_table (user_id, message, timestamp, metric) VALUES
    (101, 'Hello, ClickHouse!', now(), -1.0),
    (102, 'Insert a lot of rows per batch', yesterday(), 1.41421),
    (102, 'Sort your data based on your commonly-used queries', today(), 2.718),
    (101, 'Granules are the smallest chunks of data read', now() + 5, 3.14159)"

Verifica que haya funcionado:

clickhousectl cloud service query --id "$CH_ID" \
  --query "SELECT * FROM helloworld.my_first_table ORDER BY timestamp"
{"user_id":102,"message":"Insert a lot of rows per batch","timestamp":"2026-08-26 00:00:00","metric":1.41421}
{"user_id":102,"message":"Sort your data based on your commonly-used queries","timestamp":"2026-08-27 00:00:00","metric":2.718}
{"user_id":101,"message":"Hello, ClickHouse!","timestamp":"2026-08-27 10:41:28","metric":-1}
{"user_id":101,"message":"Granules are the smallest chunks of data read","timestamp":"2026-08-27 10:41:33","metric":3.14159}

Los timestamps dependen de cuándo ejecutaste el insert, por lo que los tuyos serán distintos.

Cargar un archivo CSV

Supongamos que el siguiente texto está en un archivo CSV llamado data.csv:

data.csvtext
102,This is data in a file,2022-02-22 10:43:28,123.45
101,It is comma-separated,2022-02-23 00:00:00,456.78
103,Use FORMAT to specify the format,2022-02-21 10:43:30,678.90

INSERT ... FORMAT lee los datos de stdin, por lo que debes canalizar la consulta y el archivo juntos:

printf 'INSERT INTO helloworld.my_first_table FORMAT CSV\n' | cat - data.csv \
  | clickhousectl cloud service query --id "$CH_ID"

Verifique que se hayan cargado las nuevas filas:

clickhousectl cloud service query --id "$CH_ID" \
  --query "SELECT count() FROM helloworld.my_first_table"
{"count()":7}

Conectarse con clickhouse client

También puede conectarse mediante el protocolo nativo con clickhouse client. La ClickHouse CLI gestiona el binario clickhouse, por lo que no necesita instalar un cliente por separado:

clickhousectl local use latest

Esto instala la versión más reciente del binario clickhouse y crea un enlace simbólico a ~/.local/bin/clickhouse, de modo que el comando clickhouse esté disponible globalmente en tu PATH.

A continuación, conéctate usando el hostname y la contraseña de la respuesta de creación. Con --query, se muestra el resultado y el client se cierra; sin esta opción, accedes al prompt interactivo (:)), del que puedes salir con exit:

clickhouse client --host "$CH_HOST" --secure --port 9440 \
  --user default --password "$CH_PASSWORD" \
  --query "SELECT * FROM helloworld.my_first_table ORDER BY timestamp FORMAT TabSeparated"
102	Insert a lot of rows per batch	2026-08-26 00:00:00	1.41421
102	Sort your data based on your commonly-used queries	2026-08-27 10:41:28	2.718
101	Hello, ClickHouse!	2026-08-27 10:41:28	-1
101	Granules are the smallest chunks of data read	2026-08-27 10:41:33	3.14159
103	Use FORMAT to specify the format	2022-02-21 10:43:30	678.9
102	This is data in a file	2022-02-22 10:43:28	123.45
101	It is comma-separated	2022-02-23 00:00:00	456.78

El mismo formato de comando permite cargar archivos:

clickhouse client --host "$CH_HOST" --secure --port 9440 \
  --user default --password "$CH_PASSWORD" \
  --query='INSERT INTO helloworld.my_first_table FORMAT CSV' < data.csv

Limpieza

Al eliminar un servicio, se eliminan permanentemente todos sus datos. --force detiene primero un servicio en ejecución:

clickhousectl cloud service delete "$CH_ID" --force

Para conservar los datos sin seguir pagando por capacidad de procesamiento, detenga el servicio con clickhousectl cloud service stop "$CH_ID".

Navigation