Pular para o conteúdo principal

Visão geral

A integração OneSignal + Amazon Redshift permite a sincronização de eventos personalizados do seu data warehouse Redshift para o OneSignal para acionar campanhas de mensagens automatizadas e Jornadas com base no comportamento do usuário. O Amazon Redshift é um serviço de data warehouse totalmente gerenciado em escala de petabytes que torna econômico analisar grandes volumes de dados usando suas ferramentas de business intelligence existentes.

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)

Amazon Redshift

  • Cluster Redshift com acesso à rede
  • Usuário de banco de dados com permissões apropriadas
  • Tabelas de eventos contendo dados comportamentais estruturados
  • Conectividade de rede do OneSignal ao seu cluster Redshift

Configuração

1

Criar usuário dedicado para OneSignal

Crie uma conta de usuário dedicada com permissões apropriadas:
-- Criar usuário OneSignal com senha forte
CREATE USER CENSUS WITH PASSWORD '<senha-forte-única>';

-- Criar schema privado de controle para estado de sincronização (pular se modo somente leitura)
CREATE SCHEMA CENSUS;

-- Conceder acesso total ao schema de controle (pular se modo somente leitura)
GRANT ALL ON SCHEMA CENSUS TO CENSUS;

-- Garantir acesso aos objetos existentes no schema de controle (pular se modo somente leitura)
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA CENSUS TO CENSUS;
2

Conceder permissões aos dados de eventos

Forneça acesso de leitura aos schemas contendo seus dados de eventos:
-- Conceder acesso ao schema (repetir para cada schema com dados de eventos)
GRANT USAGE ON SCHEMA "<seu_schema>" TO CENSUS;

-- Conceder acesso de leitura às tabelas existentes
GRANT SELECT ON ALL TABLES IN SCHEMA "<seu_schema>" TO CENSUS;

-- Conceder acesso de leitura às tabelas futuras
ALTER DEFAULT PRIVILEGES IN SCHEMA "<your_schema>" GRANT SELECT ON TABLES TO CENSUS;

-- Conceder permissões de execução em funções
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA "<your_schema>" TO CENSUS;
ALTER DEFAULT PRIVILEGES IN SCHEMA "<your_schema>" GRANT EXECUTE ON FUNCTIONS TO CENSUS;
3

Configurar acesso à rede

Adicione os endereços IP do OneSignal aos seus grupos de segurança do Redshift. O Redshift impede acesso externo por padrão.Você pode encontrar os endereços IP do OneSignal para sua região nas configurações de integração. Para mais informações, visite o Centro de Ajuda do AWS Redshift.
4

Conectar ao OneSignal

No OneSignal, vá para Data > Integrations e clique em Add Integration.
  1. Selecione Amazon Redshift da lista
  2. Insira seus detalhes de conexão:
    • Host: O endpoint do seu cluster Redshift
    • Porta: Geralmente 5439
    • Banco de Dados: Nome do seu banco de dados
    • Nome de Usuário: CENSUS
    • Senha: A senha que você criou
  3. Teste a conexão
  4. Configure quais tabelas contêm seus 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

Exemplo de Schema de Tabela de Eventos

-- Exemplo de tabela de eventos Redshift
CREATE TABLE analytics.user_events (
    event_id BIGINT IDENTITY(1,1),
    event_name VARCHAR(100) NOT NULL,
    user_id VARCHAR(255) NOT NULL,
    event_timestamp TIMESTAMP DEFAULT GETDATE(),
    event_data SUPER,
    session_id VARCHAR(255),
    created_at TIMESTAMP DEFAULT GETDATE()
)
DISTKEY(user_id)
SORTKEY(event_timestamp);

Modo de Consulta SQL

Escreva consultas SQL personalizadas para transformar seus dados de eventos:
-- Exemplo: Eventos recentes de alto valor
SELECT
    event_name,
    user_id,
    event_timestamp,
    event_data
FROM analytics.user_events
WHERE event_timestamp >= DATEADD(day, -7, GETDATE())
    AND JSON_EXTRACT_PATH_TEXT(event_data, 'value')::NUMERIC > 100
ORDER BY event_timestamp DESC;

Integração dbt

Se você está usando dbt com Redshift, garanta que o OneSignal mantenha acesso após cada execução do dbt:

Opção 1: Permissões Granulares

Adicione post-hooks em seu projeto dbt para conceder acesso após a construção de cada modelo:
-- No seu modelo dbt
{{ config(
    post_hook="GRANT SELECT ON {{ this }} TO CENSUS"
) }}

Opção 2: Privilégios Padrão (Recomendado)

Conceda permissões padrão para seu usuário de produção dbt:
-- Deve ser executado por superusuário Redshift
ALTER DEFAULT PRIVILEGES FOR USER "<seu_usuario_dbt>"
IN SCHEMA "<seu_schema_destino_dbt>"
GRANT SELECT ON TABLES TO CENSUS;

Configuração Avançada de Rede

Configuração de Túnel SSH

Para clusters Redshift em redes privadas:
  1. Criar usuário SSH: Configure um usuário dedicado em seu host SSH
  2. Configurar túnel: Habilite “Usar Túnel SSH” nas configurações de integração do OneSignal
  3. Instalar par de chaves: Adicione a chave pública do OneSignal em ~/.ssh/authorized_keys
  4. Testar conexão: Verifique a conectividade do túnel

Implantação VPC

Para Redshift dentro da AWS VPC: O OneSignal usa o comando UNLOAD para extração eficiente de dados em massa. Implantações VPC requerem um Endpoint VPC S3 para permitir que o Redshift se comunique com o S3. Configurar Endpoint VPC S3:
  1. Navegue até o serviço VPC no Console AWS
  2. Crie Endpoint VPC para o serviço S3
  3. Associe com sua sub-rede Redshift
  4. Configure tabelas de roteamento

Otimização de Desempenho

Chaves de Distribuição e Ordenação

Otimize suas tabelas de eventos para cargas de trabalho analíticas:
-- Distribuir por user_id para consultas centradas no usuário
CREATE TABLE analytics.user_events (
    -- columns
)
DISTKEY(user_id)
SORTKEY(event_timestamp, event_name);

Armazenamento Colunar

Aproveite o armazenamento colunar do Redshift para análises:
  • Compressão: Redshift comprime colunas automaticamente
  • Mapas de Zona: Melhore o desempenho de consultas com dados ordenados
  • Orientado a colunas: Eficiente para consultas analíticas em dados de eventos

Limitações

  • Múltiplos schemas requerem concessões de permissão separadas
  • Views referenciando tabelas cross-schema precisam de permissões adicionais
  • Acesso a procedimentos armazenados complexos pode requerer configuração adicional
  • Implantações VPC requerem configuração de Endpoint VPC S3

FAQ

Como o OneSignal lida com grandes conjuntos de dados de eventos?

O OneSignal usa o comando UNLOAD do Redshift para extração eficiente de dados em massa, otimizado para cargas de trabalho analíticas de grande escala.

Posso usar modo somente leitura?

Sim, você pode pular a criação do schema de controle e usar modo somente leitura se preferir uma configuração mais simples e não puder permitir que o OneSignal crie tabelas.

E quanto à compatibilidade com dbt?

O OneSignal fornece padrões de integração dbt específicos para garantir que as permissões sejam mantidas após execuções do dbt. Use post-hooks ou privilégios padrão dependendo da sua configuração.