Ana içeriğe atla

Genel bakış

OneSignal + Materialize entegrasyonu, gerçek zamanlı kullanıcı davranışına dayalı otomatik mesajlaşma kampanyalarını ve Journey’leri tetiklemek için Materialize akış veritabanınızdan OneSignal’e özel olayların otomatik senkronizasyonunu sağlar. Materialize, verilerinizin aşamalı olarak güncellenmiş görünümlerini koruyan PostgreSQL uyumlu bir akış veritabanıdır ve gerçek zamanlı analitik ve olay işlemeyi mümkün kılar.

Gereksinimler

Materialize

  • Konsol erişimi olan Materialize hesabı
  • Harici araç kimlik doğrulaması için App Password
  • Olay verileri içeren Materialized views veya tablolar
  • Materialize veritabanınızda erişilebilir Olay verileri

Kurulum

1

Materialize bağlantı ayrıntılarını alın

Materialize konsolunda oturum açın ve bağlantı ayrıntılarınızı bulmak için Connect sayfasına gidin.
2

App Password oluşturun

Materialize konsolunda, OneSignal’in kimlik doğrulama için kullanması için yeni bir App Password oluşturun.
3

OneSignal'e bağlanın

In OneSignal, go to Data > Integrations and click Add Integration.Materialize’i seçin ve şunları sağlayın:
  • Host: Materialize ana bilgisayar adınız (Materialize konsolu Connect sayfasındaki External Tools altında bulunur)
  • Username: E-posta adresiniz (Materialize’de oturum açmak için kullanılır)
  • Password: Adım 2’de oluşturulan App Password
  • Database: Veritabanı adı (isteğe bağlı, varsayılan olarak materialize)
4

Bağlantıyı test edin

Bağlantının doğru çalıştığını doğrulamak için Test’e tıklayı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

Gerçek zamanlı Olay Görünümü Örneği

-- Son olaylar için gerçek zamanlı materialized view
CREATE MATERIALIZED VIEW analytics.recent_user_events AS
SELECT
    event_name,
    user_id,
    event_timestamp,
    event_properties,
    session_id,
    device_type
FROM raw_events.stream
WHERE event_timestamp >= NOW() - INTERVAL '1 day';

İşleme Modları

Materialized Views (Önerilir)

Yeni veriler geldikçe otomatik olarak güncellenen materialized view’lardan senkronize ederek Materialize’in gerçek zamanlı işlemesinden yararlanın:
-- Yüksek değerli olaylar materialized view
CREATE MATERIALIZED VIEW analytics.high_value_events AS
SELECT
    event_name,
    user_id,
    event_timestamp,
    event_properties || jsonb_build_object(
        'source', 'materialize',
        'value_tier', 'high'
    ) as event_properties
FROM raw_events.stream
WHERE (event_properties->>'value')::numeric > 100;

SQL Sorgu Modu

Olay verilerinizi dönüştürmek için özel PostgreSQL uyumlu sorgular yazın:
-- Gerçek zamanlı kullanıcı aktivite özeti
SELECT
    'activity_summary' as event_name,
    user_id,
    NOW() as event_timestamp,
    jsonb_build_object(
        'events_last_hour', COUNT(*),
        'unique_sessions', COUNT(DISTINCT session_id),
        'total_value', SUM((event_properties->>'value')::numeric),
        'last_seen', MAX(event_timestamp)
    ) as event_properties
FROM analytics.recent_user_events
WHERE event_timestamp >= NOW() - INTERVAL '1 hour'
GROUP BY user_id
HAVING COUNT(*) >= 5;

Gerçek zamanlı Akış İşleme

-- Aşamalı profil oluşturma görünümü
CREATE MATERIALIZED VIEW analytics.user_progression AS
SELECT
    user_id,
    COUNT(*) as total_events,
    COUNT(DISTINCT event_name) as unique_event_types,
    MAX(event_timestamp) as last_activity,
    CASE
        WHEN COUNT(*) >= 50 THEN 'power_user'
        WHEN COUNT(*) >= 20 THEN 'active_user'
        WHEN COUNT(*) >= 5 THEN 'engaged_user'
        ELSE 'new_user'
    END as user_segment
FROM raw_events.stream
GROUP BY user_id;

Sınırlamalar

  • Materialize yalnızca Basic Sync Engine’i destekler
  • Gerçek zamanlı sorgular daha fazla işlem kaynağı tüketebilir
  • Büyük veri kümeleri arasındaki karmaşık birleştirmeler optimize edilmelidir
  • Materialized view’lar sürekli küme kaynakları gerektirir

SSS

Materialize’de gerçek zamanlı performansı nasıl optimize ederim?

Sık sorgulanan sütunlarda indeksler kullanın ve daha iyi performans için büyük olay veri kümelerini zaman aralıklarına göre bölümlemeyi düşünün.

Hem tablolardan hem de materialized view’lardan senkronize edebilir miyim?

Evet, OneSignal Materialize’deki hem statik tablolardan hem de gerçek zamanlı materialized view’lardan okuyabilir.

Gerçek zamanlı senkronizasyon nasıl çalışır?

Materialize aşamalı olarak güncellenmiş görünümleri korur, bu nedenle OneSignal ek işlem yükü olmadan her zaman verilerinizin en son durumunu okuyacaktır.