Ana içeriğe atla

Genel Bakış

OneSignal + ClickHouse entegrasyonu, ClickHouse analitik veritabanınızdan OneSignal’a özel olayların otomatik senkronizasyonunu sağlar. Bu, yüksek performanslı sütunlu veritabanınızda depolanan kullanıcı davranışsal verilerine dayalı olarak otomatik Journey’leri ve kişiselleştirilmiş mesajlaşma kampanyalarını tetiklemenize olanak tanır.

Gereksinimler

ClickHouse

  • ClickHouse sunucusu (kendi barındırılan veya bulut)
  • Olay tablolarına okuma erişimi olan Veritabanı kimlik bilgileri
  • Uygun şema ile davranışsal veriler içeren Olay veri tabloları

Kurulum

1

OneSignal için ClickHouse kullanıcısı oluşturun

Olay tablolarınıza salt okunur erişimi olan OneSignal için özel bir kullanıcı hesabı oluşturun:
CREATE USER onesignal_reader IDENTIFIED BY 'strong_password';
GRANT SELECT ON event_database.* TO onesignal_reader;
2

Ağ erişimini yapılandırın

OneSignal’ın ClickHouse örneğinize bağlanabildiğinden emin olun:
  • Kendi barındırılan: OneSignal’ın IP adreslerinden bağlantılara izin verin
  • ClickHouse Cloud: OneSignal IP’lerini izin listenize ekleyin
  • Port: Varsayılan ClickHouse portu 8123 (HTTP) veya 9000 (yerel)
3

OneSignal'da entegrasyon ekleyin

In OneSignal, go to Data > Integrations and click Add Integration.ClickHouse’u seçin ve şunları sağlayın:
  • Host: ClickHouse sunucunuzun ana bilgisayar adı veya IP’si
  • Port: ClickHouse portu (varsayılan: HTTP için 8123, yerel için 9000)
  • Database: Olay tablolarını içeren veritabanı adı
  • Username: onesignal_reader (veya seçtiğiniz kullanıcı adı)
  • Password: ClickHouse kullanıcısı için şifre
  • Protocol: HTTP veya Yerel (basitlik için HTTP önerilir)
4

Olay veri kaynağını yapılandırın

Olay verilerinizi içeren ClickHouse tablosunu belirtin:
  • Table: Olay kayıtlarını içeren tablo adı (örn., user_events)
  • Event Query: Olay verilerini filtrelemek veya dönüştürmek için isteğe bağlı SQL sorgusu
Olay tablonuz şunlar için sütunlar içermelidir:
  • Olay adı/türü (String)
  • Kullanıcı tanımlayıcısı (String)
  • Olay zaman damgası (DateTime)
  • Ek olay özellikleri (JSON veya bireysel sütunlar)
5

Bağlantıyı test edin

OneSignal’ın ClickHouse veritabanınıza erişebileceğini ve olay verilerini okuyabileceğini doğrulamak için Bağlantıyı Test Et’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

Gelişmiş Yapılandırma

Özel SQL Sorguları

OneSignal’a senkronize etmeden önce olay verilerini filtrelemek veya dönüştürmek için özel SQL kullanın:
SELECT
  event_name,
  user_id,
  toDateTime(event_timestamp) as timestamp,
  toJSONString(
    map(
      'product_id', product_id,
      'purchase_amount', purchase_amount,
      'category', category
    )
  ) as payload
FROM user_events
WHERE event_timestamp >= now() - INTERVAL 7 DAY
  AND event_name IN ('purchase', 'signup', 'upgrade')
ORDER BY event_timestamp DESC

Performans Optimizasyonu

ClickHouse analitik sorgular için optimize edilmiştir. Şunları düşünün:
  • Bölümleme: Olay zaman damgasında tarih tabanlı bölümleme kullanın
  • İndeksleme: user_id ve event_name üzerinde uygun indeksler oluşturun
  • Materyalize Görünümler: Daha hızlı sorgulama için olay verilerini önceden toplayın
ClickHouse yalnızca ekleme iş yükleri için optimize edilmiştir. En iyi performans için olay verilerinizin bu modeli izlediğinden emin olun.

SSS

OneSignal ClickHouse’tan olayları ne sıklıkta senkronize eder?

OneSignal, minimum 15 dakikalık aralıklarla yapılandırdığınız programa göre olay verilerini senkronize eder.

Birden fazla ClickHouse tablosundan olay senkronize edebilir miyim?

Evet, farklı tablolar için birden fazla entegrasyon oluşturabilir veya birden fazla tablodan veri birleştirmek için UNION sorguları kullanabilirsiniz.