Ana içeriğe atla

Genel bakış

OneSignal + PostgreSQL entegrasyonu, kullanıcı davranışına dayalı otomatik mesajlaşma kampanyaları ve Journey’leri tetiklemek için PostgreSQL veritabanınızdan OneSignal’e özel olayların senkronize edilmesini sağlar.

Gereksinimler

PostgreSQL

  • PostgreSQL 9.6+ veya uyumlu veritabanı
  • Uygun izinlere sahip Veritabanı kullanıcısı
  • OneSignal’den PostgreSQL örneğinize Ağ erişimi
  • Yapılandırılmış davranışsal veri içeren Olay tabloları
OneSignal’i bir production PostgreSQL veritabanına bağlamaktan şiddetle kaçınmanızı öneririz. Olay senkronizasyon sorguları doğası gereği analitiktir ve production performansını etkileyebilir. Yalnızca analitik iş yükleri için kurulmuş veritabanlarıyla kullanın.

Kurulum

1

OneSignal için özel kullanıcı oluştur

Uygun izinlere sahip özel bir kullanıcı hesabı oluşturun:
-- Güçlü şifreyle OneSignal kullanıcısı oluştur
CREATE USER CENSUS WITH PASSWORD '<strong-unique-password>';

-- Senkronizasyon durumu için özel muhasebe şeması oluştur (salt okunur modda atla)
CREATE SCHEMA CENSUS;

-- Muhasebe şemasına tam erişim ver (salt okunur modda atla)
GRANT ALL ON SCHEMA CENSUS TO CENSUS;

-- Muhasebe şemasındaki mevcut nesnelere erişimi sağla (salt okunur modda atla)
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA CENSUS TO CENSUS;
2

Olay verisine izinler ver

Olay verinizi içeren şemalara okuma erişimi sağlayın:
-- Şema erişimi ver (olay verisi olan her şema için tekrarla)
GRANT USAGE ON SCHEMA "<your_schema>" TO CENSUS;

-- Mevcut tablolara okuma erişimi ver
GRANT SELECT ON ALL TABLES IN SCHEMA "<your_schema>" TO CENSUS;

-- Gelecekteki tablolara okuma erişimi ver
ALTER DEFAULT PRIVILEGES IN SCHEMA "<your_schema>" GRANT SELECT ON TABLES TO CENSUS;

-- Fonksiyonlarda yürütme izinleri ver
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

OneSignal'e bağlan

In OneSignal, go to Data > Integrations and click Add Integration.
  1. Listeden PostgreSQL’i seçin
  2. Bağlantı ayrıntılarınızı girin:
    • Host: PostgreSQL sunucu hostname’iniz
    • Port: Genellikle 5432
    • Database: Veritabanı adınız
    • Username: CENSUS
    • Password: Oluşturduğunuz şifre
  3. Bağlantıyı test edin
  4. Hangi tabloların olay verinizi içerdiğini yapılandırın

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ı

-- Örnek PostgreSQL olay tablosu
CREATE TABLE analytics.user_events (
    event_id SERIAL PRIMARY KEY,
    event_name VARCHAR(100) NOT NULL,
    user_id VARCHAR(255) NOT NULL,
    event_timestamp TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
    event_data JSONB,
    session_id VARCHAR(255),
    created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);

SQL Sorgu Modu

Olay verinizi dönüştürmek için özel SQL sorguları yazın:
-- Örnek: Son satın alma olayları
SELECT
    event_name,
    user_id,
    event_timestamp,
    event_data
FROM analytics.user_events
WHERE event_timestamp >= NOW() - INTERVAL '7 days'
    AND event_name = 'purchase'
ORDER BY event_timestamp DESC;

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

OneSignal, gelişmiş ağ kontrolleri kullanarak PostgreSQL örneklerine bağlanabilir:
  • IP İzin Listeleri: OneSignal’in IP adreslerini güvenlik duvarınıza ve pg_hba.conf’a ekleyin
  • SSH Tünelleme: Özel ağlar için bir bastion host üzerinden bağlanın
  • VPC Yapılandırması: Bulut ortamları içinde doğrudan bağlantı
  • TLS Şifreleme: SSL/TLS kullanarak güvenli bağlantılar

SSH Tüneli Kurulumu

Özel ağlardaki PostgreSQL örnekleri için:
  1. SSH kullanıcısı oluştur: SSH host’unuzda özel bir kullanıcı kurun
  2. Tüneli yapılandır: OneSignal entegrasyon ayarlarında “Use SSH Tunnel“‘ı etkinleştirin
  3. Anahtar çiftini yükle: OneSignal’in genel anahtarını ~/.ssh/authorized_keys’e ekleyin
  4. Bağlantıyı test et: Tünel bağlantısını doğrulayın

Notlar

  • Birden Fazla Şema: Olay verisi içeren her şema için izin verme işlemlerini tekrarlayın
  • Çapraz Şema Referansları ile Görünümler: Eski PostgreSQL sürümlerinde ek okuma izinleri gerektirebilir
  • Azure PostgreSQL: Azure örnekleri için username@hostname formatını kullanın
  • AWS RDS: Standart username formatını kullanın
  • Performans: Büyük ölçekli olay işleme için okuma replikalarını kullanmayı düşünün

Sınırlamalar

  • Analitik sorgu yükü nedeniyle production veritabanlarına bağlanmaktan kaçının
  • Karmaşık çapraz şema sorguları ek izinler gerektirebilir
  • Yüksek frekanslı olay işleme için bağlantı havuzu önerilir

SSS

Salt okunur modu kullanmalı mıyım?

Daha basit kurulum tercih ediyorsanız ve OneSignal’in tablo oluşturmasına izin veremiyorsanız salt okunur modunu kullanın. Büyük olay veri kümeleriyle daha iyi performans için tam mod kullanın.

Birden fazla olay şemasını nasıl ele alırım?

Olay verisi içeren her şema için izin verme komutlarını tekrarlayın. OneSignal, tek bir bağlantı içinde birden fazla şemadan okuyabilir.