Ana içeriğe atla

Genel Bakış

OneSignal + Greenplum entegrasyonu, kullanıcı davranışına dayalı otomatik mesajlaşma kampanyalarını ve Journey’leri tetiklemek için Greenplum veritabanınızdan OneSignal’e özel olayların senkronize edilmesini sağlar. Greenplum, büyük ölçekli analitik iş yükleri için tasarlanmış PostgreSQL üzerine kurulu büyük paralel işleme (MPP) veritabanıdır.

Gereksinimler

Greenplum

  • Ağ erişimi olan Greenplum instance
  • Uygun izinlere sahip Veritabanı kullanıcısı
  • Yapılandırılmış davranışsal veriler içeren Olay tabloları

Senkronizasyon Motorları ve İzinler

OneSignal, Greenplum’daki tablo ve görünümlerden veri okur ve otomatik mesajlaşma kampanyalarını tetiklemek için senkronize eder. Veritabanınızdaki yükü sınırlamak için OneSignal, yalnızca son senkronizasyondan bu yana değiştirilen verilerin senkronize edilmesini sağlayan durum izleme tabloları tutar (artımlı senkronizasyonlar). Greenplum bağlantınızı yapılandırırken, durum izlemenin nasıl ele alınacağını belirleyen bir Sync Engine seçeceksiniz. Basic Sync Engine, durum izleme tablolarını OneSignal’e ait altyapıda tutar ve yapılandırılması daha basittir, yalnızca okuma erişimi gerektirir. Advanced Sync Engine, durum izleme tablolarını kendi Greenplum instance’ınızda özel bir şemada tutarak gelişmiş performans sunar.

Kurulum

1

Census kullanıcısı oluşturun

OneSignal’in kullanması için özel bir veritabanı kullanıcısı oluşturun:
-- Create CENSUS user and set password
CREATE USER CENSUS WITH PASSWORD '<strong unique password>';
2

Senkronizasyon motorunuzu seçin ve izinleri yapılandırın

Basic Sync Engine için (Salt okunur erişim):Olay veri şemanıza okuma erişimi verin. <your schema> yerine şema adınızı yazın:
-- 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;
Advanced Sync Engine için (Gelişmiş performans):Önce yukarıdaki Basic Sync Engine adımlarını tamamlayın, ardından ekleyin:
-- 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

OneSignal'e bağlanın

In OneSignal, go to Data > Integrations and click Add Integration.Greenplum’ı seçin ve şunları sağlayın:
  • Host: Greenplum master host’unuz
  • Port: 5432 (veya özel port)
  • Database: Veritabanı adınız
  • Username: CENSUS
  • Password: Step 1’den şifre
  • Sync Engine: Step 2’ye göre Basic veya Advanced seçin

Event data mapping

Map your to OneSignal’s custom events format:
OneSignal FieldDescriptionRequired
nameevent_nameEvent identifierYes
external_iduser_idUser identifierYes
timestampevent_timestampWhen event occurredNo
propertiesevent_dataNo

Örnek Olay Tablosu Şeması

-- 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)
);

İşleme Modları

Table Mode

Greenplum veritabanınızdan doğrudan tam tabloları veya görünümleri senkronize edin. OneSignal, sütunları olay alanlarına otomatik olarak eşleyecektir.

SQL Query Mode

Olay verilerinizi dönüştürmek için özel PostgreSQL uyumlu sorgular yazın:
-- 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;

MPP Sorgu Optimizasyonu

Olay sorgularınızın dağıtılmış yürütme için optimize edildiğinden emin olarak Greenplum’un paralel işleminden yararlanın. Daha iyi performans için uygun dağıtım anahtarlarını kullanın ve segmentler arası veri hareketinden kaçının.

Gelişmiş Ağ Yapılandırması

OneSignal, bölge kısıtlamaları, IP adresi izin listeleri veya SSH Tünelleme dahil olmak üzere gelişmiş ağ kontrolleri kullanan Greenplum instance’larına başarıyla bağlanabilir. Tüm bağlantılar için Greenplum instance’ınızı TLS v1.2 veya üstünü kullanacak şekilde yapılandırmanızı öneririz.

Sınırlamalar

  • Büyük analitik sorgular küme performansını etkileyebilir
  • JSON/JSONB işlemleri dağıtım için optimize edilmelidir
  • Segmentler arası birleştirmeler performans için en aza indirilmelidir

SSS

Hangi senkronizasyon motorunu seçmeliyim?

Daha basit kurulum ve salt okunur erişimi tercih ediyorsanız Basic Sync Engine’i kullanın. Gelişmiş performansa ihtiyacınız varsa ve OneSignal’in Greenplum instance’ınızda tablolar oluşturmasına izin verebiliyorsanız Advanced Sync Engine’i seçin.

Greenplum’un MPP mimarisi için sorguları nasıl optimize ederim?

Sorguların dağıtım anahtarlarını etkin bir şekilde kullandığından emin olun, segmentler arasında gereksiz veri hareketinden kaçının ve analitik için Greenplum’un sütunlu depolamasından yararlanın.

Olay verileri için Greenplum’un harici tablolarını kullanabilir miyim?

Evet, OneSignal, harici sistemlerde depolanan Parquet veya CSV gibi formatlardaki verilere referans veren harici tablolardan okuyabilir.