Real-Time Market AnalyticsClickHouse Workshops

03 Carregar os dados — duas formas

Os mesmos 26,5 milhões de ticks carregados duas vezes: primeiro com ClickPipes, o pipeline gerenciado que você usaria em produção; depois, com uma única chamada a s3() — e quando escolher cada opção.

Os dados estão em um bucket S3 público, portanto nenhuma chave ou credencial é necessária — basta informar a URL. A transferência acontece no servidor, do S3 para o ClickHouse; os 26,5 milhões de registros não passam pelo seu notebook nem dependem do Wi-Fi do local.

Você carregará os mesmos 26,5 milhões de ticks de duas formas diferentes para conhecer ambas. O método 1 usa ClickPipes, o pipeline gerenciado e guiado pela interface que você adotaria em produção. O método 2 usa uma única linha de SQL — a maneira mais rápida de carregar dados durante uma demonstração. Siga a ordem; um TRUNCATE entre os métodos mantém a contagem correta.

Método 1 — ClickPipes, a opção gerenciada para produção

ClickPipes é um serviço de ingestão totalmente gerenciado: aponte-o para o armazenamento de objetos ou para um stream, e ele continua carregando sem que você precise criar um conector. Este é o fluxo completo.

  1. No menu à esquerda, clique em Data sources e depois no botão Create ClickPipe.

Página Data sources do ClickHouse Cloud com o botão Create ClickPipe destacado

Em Data sources também ficam as opções "Upload file" e "Add sample data".

  1. Em Select the data source, escolha Amazon S3 (no topo da lista Popular).

Etapa Select the data source mostrando Amazon S3 como primeira opção popular

  1. Em Setup your ClickPipe connection, informe qualquer name, defina Authentication method → Public (o bucket é público) e cole o endereço abaixo em S3 file path:
https://partner-workshop.s3.ap-southeast-1.amazonaws.com/fx/ticks.parquet

Deixe Continuous ingestion desativado — é um arquivo único — e clique em Incoming data →.

Configuração da conexão ClickPipe: nome, Authentication method em Public e caminho do arquivo S3 preenchido

  1. Em Incoming data, o ClickHouse mostra uma prévia do arquivo encontrado — você verá fx/ticks.parquet com 158,43 MB. Confirme File type → Parquet, deixe a compactação em Detect automatically e clique em Parse information →.

Etapa Incoming data mostrando fx/ticks.parquet com 158,43 MB e File type definido como Parquet

  1. Em Parse information, o ClickHouse mostra uma linha de exemplo e detecta as colunas. Em Upload data to, selecione Existing table, escolha o Database que contém sua tabela (normalmente default) e defina Table → forex. Confira se os campos de origem (datetime, bid, ask, base, quote) correspondem às colunas de mesmo nome — o mapeamento deve ser automático. Deixe os campos extras _path / _file / _size sem mapeamento. Depois, clique em Details and settings →.

Etapa Parse information: Upload data to em Existing table, banco e tabela forex selecionados e campos de origem mapeados

A captura de tela mostra o banco techthai do apresentador — use o banco que contém a sua tabela.

  1. Em Details and settings, mantenha as Permissions padrão (o ClickPipes cria um usuário de gravação dedicado para você) e clique em Create ClickPipe.

Etapa Details and settings mostrando Permissions e o botão Create ClickPipe

Sem job Spark e sem carregador personalizado.

  1. Você volta para Data sources, onde o ClickPipe aparece. Em alguns segundos, o Status muda para Completed e Records mostra 26.488.218 — todos os ticks carregados do armazenamento de objetos.

Lista Data sources mostrando o ClickPipe com status Completed e 26.488.218 registros

Confira o que foi carregado. Execute isto no SQL Console:

-- expect 26,488,218 ticks across 12 pairs
SELECT count() AS ticks, uniqExact(concat(base,'/',quote)) AS pairs FROM forex;

Você deve ver

ticks = 26.488.218 e pairs = 12. São cerca de 26,5 milhões de linhas carregadas do armazenamento de objetos em segundos.

Método 2 — uma linha com s3(), a opção mais rápida em uma demonstração

Agora, carregue exatamente os mesmos dados com uma única instrução SQL, direto do arquivo público. Primeiro, esvazie a tabela para não duplicar a contagem; depois, faça a inserção:

-- clear the rows ClickPipes just loaded so we don't double up
TRUNCATE TABLE forex;

-- load all ~26.5M ticks from the public S3 file in one line (server-side)
INSERT INTO forex
SELECT * FROM s3('https://partner-workshop.s3.ap-southeast-1.amazonaws.com/fx/ticks.parquet', NOSIGN, 'Parquet');

-- and check again (expect 26,488,218)
SELECT count() AS ticks, uniqExact(concat(base,'/',quote)) AS pairs FROM forex;

NOSIGN significa "sem credenciais" — é tudo o que você precisa para ler um bucket público. SELECT * funciona porque a ordem das colunas da tabela corresponde à ordem no arquivo.

ClickPipes ou a função s3() — quando usar cada opção

As mesmas 26.488.218 linhas foram carregadas de duas maneiras. A diferença é o que acontece depois da primeira carga: se você quer um pipeline contínuo e gerenciado ou uma leitura rápida e pontual.

ClickPipesFunção de tabela s3()
O que éUm serviço de ingestão totalmente gerenciado, configurado no consoleUma função SQL chamada dentro de uma consulta
Melhor opção paraCargas contínuas de produção que você quer configurar e deixar funcionandoCargas pontuais rápidas, exploração ad hoc e scripts
Novos arquivos / continuidadePode continuar observando um bucket ou stream e carregar novos dados continuamenteExecução única — lê apenas o que existe sempre que você a executa
ConfiguraçãoInterface guiada, sem necessidade de SQLUma única instrução INSERT … SELECT
Monitoramento e novas tentativasIntegrados — status, tratamento de erros e novas tentativas no consoleNenhum — em caso de falha, você mesmo executa novamente
OrigensVárias: S3, GCS, Azure, Kafka e outros streams, CDC de Postgres/MySQL e maisApenas armazenamento de objetos (funções relacionadas: gcs(), azureBlobStorage(), url())

Regra prática: use ClickPipes quando os dados continuarem chegando e você quiser um serviço gerenciado; use s3() quando quiser trazer um arquivo imediatamente. Hoje você usou a linha única para começar a consultar rápido — agora vamos explorar os dados.

Nesta página

Acompanhar seu progresso?

Opcional. Enviaremos um link por e-mail para confirmar seu endereço; o progresso será registrado depois que você o abrir.

Use seu e-mail corporativo, não um endereço pessoal.

O acompanhamento do progresso também exige a aceitação dos Termos de Serviço atuais nas Configurações de privacidade.

PT