Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Início rápido do ClickHouse Cloud

A maneira mais rápida e fácil de começar a usar o ClickHouse é criar um novo serviço no ClickHouse Cloud. Neste guia de início rápido, vamos ajudar você a configurar tudo em três etapas simples.

Crie um serviço ClickHouse

Para criar um serviço ClickHouse gratuito no ClickHouse Cloud, basta se cadastrar seguindo estas etapas:

  • Crie uma conta na página de cadastro
  • Você pode se cadastrar usando seu e-mail ou por SSO do Google, SSO da Microsoft, AWS Marketplace, Google Cloud ou Microsoft Azure
  • Se você se cadastrar com e-mail e senha, lembre-se de verificar seu endereço de e-mail nas próximas 24 h usando o link recebido por e-mail
  • Faça login com o nome de usuário e a senha que você acabou de criar
Selecionar plano

Após fazer login, o ClickHouse Cloud inicia o assistente de onboarding, que orienta você na criação de um novo serviço ClickHouse. Selecione a região em que deseja implantar o serviço e dê um nome a ele:

Novo serviço ClickHouse

Por padrão, novas organizações são incluídas no plano Scale e criam 3 réplicas, cada uma com 4 vCPUs e 16 GiB de RAM. O escalonamento vertical automático é habilitado por padrão no plano Scale. Você poderá alterar o plano da sua organização posteriormente na página 'Planos'.

Se necessário, personalize os recursos do serviço definindo tamanhos mínimo e máximo para o escalonamento das réplicas. Quando estiver tudo pronto, selecione Create service.

Limites de escalonamento

Parabéns! Seu serviço ClickHouse Cloud está em execução, e o onboarding foi concluído. Continue lendo para saber como começar a ingerir e consultar seus dados.

Conectar ao ClickHouse

Há duas maneiras de se conectar ao ClickHouse:

  • Conecte-se usando nosso console SQL na web
  • Conecte-se pelo seu app

Conectar usando o console SQL

Para começar rapidamente, o ClickHouse oferece um console SQL na web, para o qual você será redirecionado ao concluir o onboarding.

Console SQL

Crie uma aba de consulta e insira uma consulta simples para verificar se a conexão está funcionando:

SHOW databases

Você deverá ver quatro bancos de dados na lista, além daqueles que tiver adicionado.

SQL Console

Pronto! Agora você pode começar a usar seu novo serviço do ClickHouse.

Conecte-se ao seu aplicativo

Clique no botão Connect no menu de navegação. Uma janela modal será aberta, exibindo as credenciais do seu serviço e instruções para se conectar usando sua interface ou cliente por linguagem.

Service Connect

Se o cliente da sua linguagem não estiver listado, consulte nossa lista de Integrações.

Adicionar dados

O ClickHouse é ainda melhor com dados! Há várias maneiras de adicionar dados, e a maioria delas está disponível na página Data Sources, acessível pelo menu de navegação.

Fontes de dados

Você pode fazer upload de dados pelos seguintes métodos:

  • Configure um ClickPipe para iniciar a ingestão de dados de fontes como S3, Postgres, Kafka e GCS
  • Use o Console SQL
  • Use o cliente ClickHouse
  • Faça upload de um arquivo - os formatos aceitos incluem JSON, CSV e TSV
  • Faça upload de dados a partir do URL do arquivo

ClickPipes

ClickPipes é uma plataforma de integração gerenciada que torna a ingestão de dados de diversas fontes tão simples quanto clicar em alguns botões. Projetada para as cargas de trabalho mais exigentes, a arquitetura robusta e escalável do ClickPipes garante desempenho e confiabilidade consistentes. O ClickPipes pode ser usado tanto para necessidades de streaming de longo prazo quanto para um trabalho pontual de carregamento de dados.

Selecione a fonte de dados

Adicionar dados pelo SQL Console

Como a maioria dos sistemas de gerenciamento de banco 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

Execute o comando a seguir para criar uma tabela chamada my_first_table 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 (UInt32)
  • message: um tipo de dado String, que substitui tipos como VARCHAR, BLOB, CLOB e outros de 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 (Float32)

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 exclusivas para cada linha de uma tabela

A primary key de uma tabela ClickHouse determina como os dados são ordenados ao serem gravados em disco. A cada 8.192 linhas ou 10MB de dados (o que se chama de index granularity), é criada uma entrada no arquivo de índice da primary key. Esse conceito de granularidade gera um índice esparso que cabe facilmente em memória, e os grânulos representam um stripe da menor quantidade de dados de coluna processada durante as queries SELECT.

A chave primária pode ser definida por meio do parâmetro PRIMARY KEY. Se você definir uma tabela sem especificar PRIMARY KEY, a chave passa a ser a tupla especificada na cláusula ORDER BY. Se você especificar tanto PRIMARY KEY quanto ORDER BY, a chave primária deve ser um subconjunto da ordenação.

A chave primária também é a chave de ordenação, que é uma tupla (user_id, timestamp). Portanto, os dados armazenados em cada arquivo de coluna serão ordenados por user_id e, em seguida, por timestamp.

Para se aprofundar nos conceitos fundamentais do ClickHouse, consulte "Conceitos fundamentais".

Insira dados na sua tabela

Você pode usar o já conhecido comando INSERT INTO TABLE no ClickHouse, mas é importante entender que cada inserção em uma tabela MergeTree cria um part no armazenamento.


Mesmo em um exemplo simples, vamos inserir mais de uma linha por 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 )

Vamos verificar se funcionou:

SELECT * FROM helloworld.my_first_table

Adicionar dados usando o ClickHouse Client

Você também pode se conectar ao seu serviço ClickHouse Cloud usando uma ferramenta de linha de comando chamada clickhouse client. Clique em Connect no menu à esquerda para acessar esses detalhes. Na caixa de diálogo, selecione Native na lista suspensa:

detalhes da conexão do clickhouse client

  1. Instale o ClickHouse.

  2. Execute o comando, substituindo hostname, nome de usuário e senha:

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

Se aparecer o prompt com a carinha sorridente, você já pode executar queries!

:)
  1. Teste executando a seguinte consulta:

SELECT *
FROM helloworld.my_first_table
ORDER BY timestamp

Observe que a resposta é retornada em um formato de tabela bem organizado:

┌─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. Adicione uma cláusula FORMAT para especificar um dos vários formatos de saída compatíveis do ClickHouse:

SELECT *
FROM helloworld.my_first_table
ORDER BY timestamp
FORMAT TabSeparated

Na consulta acima, a saída é retornada com os campos separados por tabulação:

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 sair do clickhouse client, digite o comando exit:

exit

Fazer upload de um arquivo

Uma tarefa comum ao começar a usar um banco de dados é inserir dados que você já tem em arquivos. Disponibilizamos online alguns dados de exemplo que você pode inserir e que representam dados de clickstream — eles incluem um ID de usuário, uma URL visitada e o timestamp do evento.

Suponha que tenhamos o seguinte texto em um arquivo CSV chamado 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. O comando a seguir insere os dados na tabela 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 as novas linhas agora aparecem na tabela ao consultar no SQL Console:

Novas linhas do arquivo CSV

O que vem a seguir?

Você pode seguir esse caminho por conta própria, transformá-lo em um script ou delegá-lo a um agente de IA. Para a versão no console, mude para a visualização da UI do Cloud.

Esta página aborda o provisionamento de um serviço do ClickHouse Cloud, a conexão a ele e o carregamento de dados, tudo pela linha de comando com a CLI do ClickHouse (clickhousectl). Os comandos são não interativos; o clickhousectl gera JSON com --json.

Pré-requisitos

Instale a CLI do ClickHouse:

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

Você também precisa do jq.

Você precisa de uma conta do ClickHouse Cloud. Se ainda não tiver uma, clickhousectl cloud auth signup abre a página de cadastro no navegador.

Operações de gravação (criação, exclusão) exigem autenticação por chave de API; o login via OAuth é somente leitura:

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

Como alternativa, defina as variáveis de ambiente CLICKHOUSE_CLOUD_API_KEY e CLICKHOUSE_CLOUD_API_SECRET. Verifique usando clickhousectl cloud auth status; deve haver uma entrada com o escopo read/write.

Crie um serviço do ClickHouse

Crie o serviço e salve a resposta; a senha do usuário default é exibida apenas uma vez:

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

A resposta inclui o ID do serviço, os endpoints e a senha gerada (truncada aqui; a resposta completa também contém as configurações de scaling, a lista de acesso por IP e as tags):

{
  "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
  }
}

Extraia o que será necessário para o restante deste guia:

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)

Se perder a senha, gere uma nova com clickhousectl cloud service reset-password "$CH_ID".

Por padrão, os serviços criados com clickhousectl têm uma lista de acesso por IP que permite todos os endereços (0.0.0.0/0). Para restringir o acesso, informe --ip-allow ao criar o serviço; consulte "Configurar filtros de IP".

Aguarde o provisionamento do serviço

O provisionamento leva cerca de um minuto. Consulte o status até que o estado seja running:

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

Execute SQL com a Query API

clickhousectl cloud service query executa SQL por HTTP — não requer um binário clickhouse local nem a senha do serviço. A primeira chamada provisiona automaticamente um endpoint da Query API e uma chave de API com escopo de serviço:

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"}

A saída via pipe usa JSONEachRow por padrão; para obter uma saída em formato de tabela, passe --format PrettyCompact.

Crie um banco de dados e uma tabela

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 os comandos exibem OK. Insira algumas linhas:

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)"

Verifique se funcionou:

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}

Os timestamps dependem de quando você executou o insert, portanto serão diferentes.

Carregue um arquivo CSV

Suponha que o seguinte texto esteja em um arquivo CSV chamado 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 lê os dados da stdin, portanto encadeie a consulta e o arquivo:

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

Verifique se as novas linhas foram carregadas:

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

Conecte-se usando o clickhouse client

Você também pode se conectar pelo protocolo nativo usando o clickhouse client. A ClickHouse CLI gerencia o binário clickhouse para você, portanto não é necessário instalar um cliente separadamente:

clickhousectl local use latest

Isso instala o binário clickhouse mais recente e cria um link simbólico em ~/.local/bin/clickhouse, para que o comando clickhouse possa ser usado globalmente no seu PATH.

Em seguida, conecte-se usando o hostname e a senha da resposta de criação. Com --query, o resultado é exibido e o cliente é encerrado; sem essa opção, você entra no prompt interativo (:)), do qual sai com 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 00:00:00	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

O mesmo formato de comando faz upload de arquivos:

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

Limpeza

A exclusão de um serviço remove permanentemente todos os seus dados. --force primeiro interrompe um serviço em execução:

clickhousectl cloud service delete "$CH_ID" --force

Para manter os dados sem continuar pagando por recursos computacionais, interrompa o serviço com clickhousectl cloud service stop "$CH_ID".

Navigation