Pular para o conteúdo principal

Visão geral

A integração OneSignal + Greenplum habilita sincronização de eventos personalizados do seu banco de dados Greenplum para OneSignal para acionar campanhas de mensagens automatizadas e Journeys baseadas no comportamento do usuário. Greenplum é um banco de dados de processamento paralelo massivo (MPP) construído em PostgreSQL, projetado para cargas de trabalho de analytics em larga escala.

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)

Greenplum

  • Instância Greenplum com acesso de rede
  • Usuário de banco de dados com permissões apropriadas
  • Tabelas de eventos contendo dados comportamentais estruturados

Sync Engines e Permissões

OneSignal lê dados de tabelas e views no Greenplum e sincroniza para acionar campanhas de mensagens automatizadas. Para limitar a carga no seu banco de dados, OneSignal mantém tabelas de rastreamento de estado que permitem sincronizar apenas dados que foram modificados desde a última sincronização (sincronizações incrementais). Ao configurar sua conexão Greenplum, você escolherá um Sync Engine que determina como o rastreamento de estado é gerenciado. O Basic Sync Engine mantém tabelas de rastreamento de estado na infraestrutura de propriedade da OneSignal e é mais simples de configurar, exigindo apenas acesso de leitura. O Advanced Sync Engine entrega desempenho aprimorado ao manter tabelas de rastreamento de estado em um schema dedicado dentro da sua própria instância Greenplum.

Configuração

1

Criar um usuário Census

Crie um usuário de banco de dados dedicado para OneSignal usar:
-- Create CENSUS user and set password
CREATE USER CENSUS WITH PASSWORD '<strong unique password>';
2

Escolha seu sync engine e configure permissões

Para Basic Sync Engine (Acesso somente leitura):Conceda acesso de leitura ao seu schema de dados de evento. Substitua <your schema> pelo nome do seu schema:
-- Let the census user read all existing tables in this schema
GRANT SELECT ON ALL TABLES IN SCHEMA "<your schema>" TO CENSUS;

-- Let the census user read any new tables added to this schema
ALTER DEFAULT PRIVILEGES IN SCHEMA "<your schema>" GRANT SELECT ON TABLES TO CENSUS;

-- Let the census user execute any existing functions in this schema
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA "<your schema>" TO CENSUS;

-- Let the census user execute any new functions added to this schema
ALTER DEFAULT PRIVILEGES IN SCHEMA "<your schema>" GRANT EXECUTE ON FUNCTIONS TO CENSUS;
Para Advanced Sync Engine (Desempenho aprimorado):Primeiro complete os passos do Basic Sync Engine acima, depois adicione:
-- Create a private bookkeeping schema where Census can store sync state
CREATE SCHEMA CENSUS;

-- Give the census user full access to the bookkeeping schema
GRANT ALL ON SCHEMA CENSUS TO CENSUS;

-- Ensure the census user has access to any existing objects in the bookkeeping schema
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA CENSUS TO CENSUS;

-- Let the census user see your data schema
GRANT USAGE ON SCHEMA "<your schema>" TO CENSUS;
3

Conectar ao OneSignal

No OneSignal, vá para Data > Integrations e clique em Add Integration.Selecione Greenplum e forneça:
  • Host: Seu host master Greenplum
  • Port: 5432 (ou porta personalizada)
  • Database: Nome do seu banco de dados
  • Username: CENSUS
  • Password: Senha do Passo 1
  • Sync Engine: Escolha Basic ou Advanced baseado no Passo 2

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

Exemplo de Schema de Tabela de Evento

-- Example Greenplum event table
CREATE TABLE analytics.user_events (
    event_id BIGSERIAL,
    event_name VARCHAR(100) NOT NULL,
    user_id VARCHAR(255) NOT NULL,
    event_timestamp TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
    event_properties JSONB,
    session_id VARCHAR(255),
    device_type VARCHAR(50)
);

Modos de Processamento

Modo Table

Sincronize tabelas inteiras ou views diretamente do seu banco de dados Greenplum. OneSignal mapeará automaticamente colunas para campos de evento.

Modo SQL Query

Escreva queries personalizadas compatíveis com PostgreSQL para transformar seus dados de evento:
-- Example: Recent high-value events
SELECT
    event_name,
    user_id,
    event_timestamp,
    event_properties
FROM analytics.user_events
WHERE event_timestamp >= NOW() - INTERVAL '7 days'
    AND (event_properties->>'value')::NUMERIC > 100
ORDER BY event_timestamp DESC;

Otimização de Query MPP

Aproveite o processamento paralelo do Greenplum garantindo que suas queries de evento estejam otimizadas para execução distribuída. Use chaves de distribuição apropriadas e evite movimento de dados entre segmentos para melhor desempenho.

Configuração de Rede Avançada

OneSignal pode se conectar com sucesso a instâncias Greenplum que estão usando controles de rede avançados incluindo restrições de região, listas de permissão de endereço IP ou SSH Tunneling. Recomendamos configurar sua instância Greenplum para usar TLS v1.2 ou posterior para todas as conexões.

Limitações

  • Queries analíticas grandes podem impactar o desempenho do cluster
  • Operações JSON/JSONB devem ser otimizadas para distribuição
  • Joins entre segmentos devem ser minimizados para desempenho

FAQ

Qual sync engine devo escolher?

Use o Basic Sync Engine se você prefere configuração mais simples e acesso somente leitura. Escolha o Advanced Sync Engine se você precisa de desempenho aprimorado e pode permitir que OneSignal crie tabelas na sua instância Greenplum.

Como otimizo queries para a arquitetura MPP do Greenplum?

Garanta que queries utilizem chaves de distribuição efetivamente, evite movimento de dados desnecessário entre segmentos e aproveite o armazenamento colunar do Greenplum para analytics.

Posso usar tabelas externas do Greenplum para dados de evento?

Sim, OneSignal pode ler de tabelas externas que referenciam dados em formatos como Parquet ou CSV armazenados em sistemas externos.