Pular para o conteúdo principal

Visão geral

A integração OneSignal + ClickHouse permite a sincronização automática de eventos personalizados do seu banco de dados analítico ClickHouse para o OneSignal. Isso permite que você acione Jornadas automatizadas e campanhas de mensagens personalizadas com base em dados comportamentais de usuários armazenados em seu banco de dados colunar de alta performance.

Requisitos

  • Acesso a Event Streams para eventos de mensagem de saída (Limitações de plano e excedentes se aplicam)
  • Acesso a Custom Events para sincronização de eventos de entrada (Limitações de plano e excedentes se aplicam)
  • Plano de Conta Atualizado (não disponível em apps gratuitos)

ClickHouse

  • Servidor ClickHouse (auto-hospedado ou em nuvem)
  • Credenciais de banco de dados com acesso de leitura às tabelas de eventos
  • Tabelas de dados de eventos contendo dados comportamentais com esquema apropriado

Configuração

1

Criar usuário ClickHouse para o OneSignal

Crie uma conta de usuário dedicada para o OneSignal com acesso somente leitura às suas tabelas de eventos:
CREATE USER onesignal_reader IDENTIFIED BY 'strong_password';
GRANT SELECT ON event_database.* TO onesignal_reader;
2

Configurar acesso de rede

Certifique-se de que o OneSignal possa se conectar à sua instância ClickHouse:
  • Auto-hospedado: Permita conexões dos endereços IP do OneSignal
  • ClickHouse Cloud: Adicione os IPs do OneSignal à sua lista de permissões
  • Porta: A porta padrão do ClickHouse é 8123 (HTTP) ou 9000 (nativo)
3

Adicionar integração no OneSignal

No OneSignal, vá para Data > Integrations e clique em Add Integration.Selecione ClickHouse e forneça:
  • Host: Nome do host ou IP do seu servidor ClickHouse
  • Port: Porta do ClickHouse (padrão: 8123 para HTTP, 9000 para nativo)
  • Database: Nome do banco de dados contendo as tabelas de eventos
  • Username: onesignal_reader (ou o nome de usuário escolhido)
  • Password: Senha para o usuário ClickHouse
  • Protocol: HTTP ou Native (HTTP recomendado para simplicidade)
4

Configurar fonte de dados de eventos

Especifique a tabela ClickHouse contendo seus dados de eventos:
  • Table: Nome da tabela contendo registros de eventos (por exemplo, user_events)
  • Event Query: Consulta SQL opcional para filtrar ou transformar dados de eventos
Sua tabela de eventos deve conter colunas para:
  • Nome/tipo do evento (String)
  • Identificador do usuário (String)
  • Timestamp do evento (DateTime)
  • Propriedades adicionais do evento (JSON ou colunas individuais)
5

Testar a conexão

Clique em Test Connection para verificar se o OneSignal pode acessar seu banco de dados ClickHouse e ler dados de eventos.

Mapeamento de dados de evento

Mapeie seu para o formato de eventos personalizados do OneSignal:
Campo OneSignalDescriçãoObrigatório
nameevent_nameIdentificador de eventoSim
external_iduser_idIdentificador de usuárioSim
timestampevent_timestampQuando o evento ocorreuNão
propertiesevent_dataNão

Configuração avançada

Consultas SQL personalizadas

Use SQL personalizado para filtrar ou transformar dados de eventos antes de sincronizar com o OneSignal:
SELECT
  event_name,
  user_id,
  toDateTime(event_timestamp) as timestamp,
  toJSONString(
    map(
      'product_id', product_id,
      'purchase_amount', purchase_amount,
      'category', category
    )
  ) as payload
FROM user_events
WHERE event_timestamp >= now() - INTERVAL 7 DAY
  AND event_name IN ('purchase', 'signup', 'upgrade')
ORDER BY event_timestamp DESC

Otimização de performance

O ClickHouse é otimizado para consultas analíticas. Considere:
  • Particionamento: Use particionamento baseado em data no timestamp do evento
  • Indexação: Crie índices apropriados em user_id e event_name
  • Visões materializadas: Pré-agregue dados de eventos para consultas mais rápidas
O ClickHouse é otimizado para cargas de trabalho somente anexar. Certifique-se de que seus dados de eventos sigam esse padrão para melhor performance.

FAQ

Com que frequência o OneSignal sincroniza eventos do ClickHouse?

O OneSignal sincroniza dados de eventos com base no seu cronograma configurado, com um intervalo mínimo de 15 minutos.

Posso sincronizar eventos de múltiplas tabelas ClickHouse?

Sim, você pode criar múltiplas integrações para diferentes tabelas ou usar consultas UNION para combinar dados de múltiplas tabelas.