Pular para o conteúdo principal
Apify é uma plataforma de web scraping e automação. Você cria, executa e dimensiona programas serverless na nuvem chamados Actors. Actors fazem scraping de sites, rastreiam a web, processam dados ou automatizam fluxos de trabalho. Cada execução de um Actor gera uma saída estruturada armazenada em Datasets (coleções de objetos JSON). Carregue dados coletados ou processados no ClickHouse para análises, monitoramento ou pipelines de enriquecimento.

Conceitos-chave

Guia de configuração

1

Reúna os dados de conexão do ClickHouse

Para se conectar ao ClickHouse via HTTP(S), você precisa das seguintes informações:Os detalhes do seu serviço do ClickHouse Cloud estão disponíveis no console do ClickHouse Cloud. Selecione um serviço e clique em Connect:Escolha HTTPS. Os detalhes de conexão são exibidos em um comando curl de exemplo.Se você estiver usando ClickHouse autogerenciado, os detalhes de conexão são definidos pelo administrador do seu ClickHouse.
2

Pré-requisitos do Apify

Você também vai precisar de:
3

Instale as dependências

Instale o cliente JavaScript do Apify e o cliente JavaScript do ClickHouse:
Apify também fornece um Python client. Se você preferir Python, instale o apify-client via pip e use o clickhouse-connect com o ClickHouse.
4

Crie uma tabela de destino no ClickHouse

Crie uma tabela para armazenar os dados coletados. O esquema depende do Actor usado. Este exemplo usa MergeTree para um Actor de coleta de dados de produtos:
5

Busque o dataset do Apify e carregue-o no ClickHouse

O script a seguir busca os resultados da execução de um Actor no Apify e os insere no ClickHouse:
Para datasets grandes, pagina os resultados usando os parâmetros limit e offset do endpoint List dataset items. Você também pode passar clean=true para recuperar apenas itens não vazios e deduplicados.
6

Automatize com webhooks

Em vez de executar o script manualmente, automatize o pipeline para que os dados sejam carregados no ClickHouse sempre que um Actor for concluído:
  1. No Apify Console, acesse seu Actor e abra a aba Integrations.
  2. Adicione um novo webhook com:
    • Event type: ACTOR.RUN.SUCCEEDED
    • Action: Um HTTP POST para seu endpoint de carregamento ou o acionamento de outro Actor que faça o insert no ClickHouse.
  3. O payload do webhook inclui o defaultDatasetId, que você pode usar para buscar os resultados da execução.
Consulte a documentação de webhooks do Apify para ver os detalhes do payload e as opções de configuração.Como alternativa, você pode usar Apify Schedules para executar Actors em uma programação no estilo cron, combinada com webhooks para a etapa de carregamento.

Boas práticas

Obtendo dados do Apify

Use a biblioteca cliente da Apify (apify-client para JavaScript ou Python) em vez de chamadas HTTP diretas. Ela cuida da paginação, das novas tentativas e da autenticação para você. Para datasets grandes, pagine os resultados usando os parâmetros limit e offset do endpoint List dataset items.

Carregamento no ClickHouse

Use o formato JSONEachRow ao inserir dados no ClickHouse. Ele corresponde diretamente à saída JSON do Apify, sem necessidade de transformação. Alinhe o esquema da sua tabela no ClickHouse aos campos de saída do Actor. Verifique o esquema de saída do Actor na página dele na Apify Store ou na aba Dataset após a execução.

Desempenho

Para inserções com alta taxa de transferência a partir do cliente JavaScript, siga as dicas de otimização de desempenho. Agrupe várias linhas em inserções maiores, em vez de inserir uma linha de cada vez, e considere usar async inserts quando o agrupamento no lado do cliente não for prático.

Segurança

Os exemplos desta página usam o usuário e o banco de dados default para simplificar. Em produção, crie um usuário dedicado com os privilégios mínimos necessários para inserir dados na tabela de destino e armazene as credenciais de forma segura (por exemplo, em variáveis de ambiente ou em um gerenciador de segredos, em vez de fazer commit delas no código-fonte). Consulte Cloud access management para obter orientações.
Última modificação em 25 de junho de 2026