Ana içeriğe atla

Genel Bakış

OneSignal + Databricks entegrasyonu iki akışı destekler:
  • Dışa Aktarma: Analitik ve raporlama için OneSignal mesaj olaylarını Databricks’e gönderin.
  • İçe Aktarma: Yolculukları tetiklemek ve kampanyaları kişiselleştirmek için Databricks’ten OneSignal’e özel olaylar gönderin.
Dışa aktarma ve içe aktarma ayrı ayrı yapılandırılır. Birini diğeri olmadan kurabilirsiniz.

OneSignal Mesaj Olaylarını Databricks’e Aktarma

Gerçek zamana yakın analitik ve görünürlük için OneSignal’den Databricks lakehouse’unuza tüm mesaj olaylarınızı senkronize edin. Gereksinimler
  • Profesyonel Plan veya üzeri
  • Özel Olaylar etkinleştirilmiş (olay içe aktarmaları için)
  • Databricks Platformu: AWS, Azure veya GCP
  • Databricks Planı: Premium veya üzeri
  • Databricks Unity Catalog (yönetişim için önerilir)
  • Sorgulama için Databricks SQL Warehouse
  • Delta Lake olay tabloları (özel olay içe aktarma için)
Kurulum Adımları

1. SQL Warehouse Detaylarını Toplayın

1

Databricks çalışma alanınızda oturum açın

Databricks çalışma alanınızda SQL Warehouses bölümüne gidin.
2

Warehouse'unuzu seçin

Warehouse’unuzu seçin ve Connection details sekmesini açın.
3

Aşağıdaki detayları kaydedin

  • Server Hostname
  • Port
  • HTTP Path
Fivetran kurulumu için Databricks SQL bağlantı detayları

2. Bir Service Principal Oluşturun

1

Service Principals sayfasına gidin

Workspace Settings > Identity and Access > Service Principals yolunu izleyin.
2

Yeni bir service principal ekleyin

Add Service Principal’a, ardından Add New’e tıklayın.
3

Service principal'ı adlandırın

Bir isim verin (örneğin, onesignal-sync).
Service principal ekleme modalı, 'Add new' seçeneği vurgulanmış

3. Bir Secret Oluşturun

1

Oluşturulan principal'a tıklayın

2

Secrets sekmesine gidin

3

Bir secret oluşturun

Generate Secret’a tıklayın ve güvenli bir şekilde kaydedin.
Secret yalnızca bir kez görülebilir—güvenli bir şekilde saklayın.
API kimlik doğrulaması için OAuth secret ve client ID'yi gösteren Databricks 'Generate secret' modalı

4. İzinleri Atayın

1

Catalog'unuza gidin ve Permissions sekmesini açın

2

Grant'e tıklayın

3

Service principal'a aşağıdaki izinleri atayın

  • USE CATALOG
  • USE SCHEMA
  • SELECT
  • MODIFY
  • CREATE SCHEMA
  • CREATE TABLE
Özel catalog izinleri seçilmiş bir Databricks principal için yetki atama ekranı

5. OneSignal’i Bağlayın

1

Entegrasyonu etkinleştirin

OneSignal’de Data > Integrations > Databricks yolunu izleyin.
2

Detayları girin

  • Server Hostname
  • Port
  • HTTP Path
  • Catalog Name
  • Schema Name
  • Service Principal kimlik bilgileri (ID + Secret)
Catalog, hostname, HTTP path ve OAuth kimlik bilgileri için alanları içeren OneSignal Databricks Yapılandırma formu
3

Entegrasyonu yapılandırın

  • Sync Frequency: her 15 dakikada bir kadar sık
  • Dataset/Table Names: onesignal_events_<app-id> ve message_events olarak önceden ayarlanmıştır (düzenlenebilir)
  • Event Types: hangi olayların senkronize edileceğini seçin—tümünü veya yalnızca ihtiyacınız olanları seçin
4

Olayları seçin

Databricks catalog’unuzda almak istediğiniz olayları seçin.
Senkronizasyon durumunu, veri seti yapılandırmasını ve seçili mesaj olay türlerini gösteren OneSignal olay dışa aktarma ayarları ekranı
5

Kurulumu tamamlayın

Save’e tıklayın ve başarı onayını bekleyin
İlk veri senkronizasyonunun BigQuery’de görünmesi 15-30 dakika sürebilir.Beklerken, seçilen olayları tetiklemek için push, e-posta, uygulama içi veya SMS yoluyla mesajlar gönderin.

6. Databricks’te Verileri Görüntüleyin

  1. Databricks’te Catalog’unuzu açın.
  2. Senkronizasyon tamamlandığında, yapılandırılmış şemanız görünecektir.
  3. message_events tablosuna erişin ve sorgulayın.
    Bir üretim şeması altında OneSignal mesaj olayları tablosunu gösteren Databricks Catalog görünümü
  4. Örnek veri önizlemesi için tablolara tıklayın.
    Senkronize edilmiş OneSignal olay alanları ile message_events_1 tablosundan örnek veriler
Eksik şemalar, izin hataları veya hatalı biçimlendirilmiş olaylar gibi sorunlarla karşılaşırsanız, support@onesignal.com ile iletişime geçin.

Mesaj etkinlikleri ve özellikleri

Mesaj etkinlik türleri

Özellik: event_kind Tür: String Mesaj ve etkinlik türü (örneğin message.push.received, message.push.sent).
Mesaj Etkinliği (OneSignal)event_kindAçıklama
Push Gönderildimessage.push.sentPush bildirimi başarıyla gönderildi.
Push Alındımessage.push.receivedTeslim edilmiş push (bkz. Onaylanmış Teslimat).
Push Tıklandımessage.push.clickedKullanıcı push’u tıkladı.
Push Başarısızmessage.push.failedTeslimat hatası. Mesaj raporlarına bakın.
Push Abonelik İptal Edildimessage.push.unsubscribedKullanıcı push aboneliğini iptal etti.
Uygulama İçi Gösterimmessage.iam.impressionUygulama içi mesaj gösterildi.
Uygulama İçi Tıklandımessage.iam.clickedUygulama içi mesaj tıklandı.
Uygulama İçi Sayfa Görüntülendimessage.iam.page_displayedUygulama içi sayfa gösterildi.
E-posta Gönderildimessage.email.sentE-posta teslim edildi.
E-posta Alındımessage.email.receivedE-posta alıcının posta sunucusu tarafından kabul edildi.
E-posta Açıldımessage.email.openedE-posta açıldı. Bkz. E-posta Raporları.
E-posta Bağlantısı Tıklandımessage.email.clickedE-postadaki bağlantı tıklandı.
E-posta Abonelik İptal Edildimessage.email.unsubscribedAlıcı aboneliğini iptal etti.
E-posta Spam Olarak Raporlandımessage.email.reported_as_spamSpam olarak işaretlendi. Bkz. E-posta Teslim Edilebilirliği.
E-posta Geri Döndümessage.email.bouncedKalıcı teslimat hatası nedeniyle geri döndü.
E-posta Başarısızmessage.email.failedTeslimat başarısız oldu.
E-posta Bastırıldımessage.email.suppressedBastırma listesi nedeniyle bastırıldı.
SMS Gönderildimessage.sms.sentSMS gönderildi.
SMS Teslim Edildimessage.sms.deliveredSMS başarıyla teslim edildi.
SMS Başarısızmessage.sms.failedSMS teslim edilemedi.
SMS Teslim Edilemedimessage.sms.undeliveredSMS reddedildi veya ulaşılamıyor.

Etkinlik veri şeması

Bir kullanıcı tarafından oluşturulan her mesaj etkinliği için, aşağıdaki meta veriler kayda eklenecektir.
Sütun AdıTürAçıklama
event_idUUIDEtkinlik için benzersiz tanımlayıcı
event_timestampTimestampEtkinlik gerçekleşme zamanı
event_kindStringEtkinlik Türü
subscription_device_typeStringCihaz türü (örneğin, iOS, Android, Web, E-posta, SMS)
languageStringAbonelik dil kodu
versionStringEntegrasyon sürümü
device_osStringCihaz işletim sistemi sürümü
device_typeNumberSayısal cihaz türü
tokenStringPush token, telefon numarası veya e-posta
subscription_idUUIDAbonelik ID’si
subscribedBooleanAbonelik durumu
onesignal_idUUIDOneSignal kullanıcı ID’si
last_activeStringSon aktif zaman damgası
sdkStringOneSignal SDK sürümü
external_idStringEntegrasyon kullanıcı ID’si ile eşleşmesi gereken harici kullanıcı ID’si
app_idUUIDOneSignal’dan uygulama ID’si
template_idUUIDŞablon ID’si (varsa)
message_idUUIDMesaj grubu/istek ID’si
message_nameStringMesajın adı
message_titleStringMesaj başlığı (yalnızca İngilizce)
message_contentsStringKısaltılmış mesaj gövdesi (yalnızca İngilizce)
failure_reasonStringBaşarısızlık nedeni (push başarısızlık ve email başarısızlık olayları için)
_created, _id, _index, _fivetran_syncedDahili kullanımFivetran senkronizasyon meta verileri

Notlar

  • Kaydetme/etkinleştirme sonrası senkronizasyonlar tamamlanması için ek 15-30 dakika alabilir.
  • Devre dışı bırakma, devre dışı bırakıldıktan sonra hala bir son senkronizasyonla sonuçlanabilir.
  • Verimli veri senkronizasyonunu sağlamak için sistemimiz otomatik olarak hazırlama veri kümelerini oluşturur ve yönetir. fivetran_{iki rastgele kelime}_staging gibi bir desenle adlandırılan bu veri kümeleri, ana şemanıza entegre edilmeden önce işleme sırasında geçici olarak veri depolar. Bu hazırlama veri kümeleri akıcı bir iş akışını sürdürmek için gereklidir ve otomatik olarak yeniden oluşturulacakları için silinmemelidir.

Databricks’ten Olayları İçe Aktarma

Aşağıdakiler için Databricks’ten OneSignal’e davranışsal olay verilerini gönderin:
  • Kullanıcı etkinliğine dayalı Yolculukları tetikleyin
  • Davranışsal verilere dayalı mesajlaşmayı kişiselleştirin
Gereksinimler
  • SQL Warehouse veya compute cluster ile Databricks workspace
  • Uygun izinlere sahip Personal Access Token
  • Delta Lake formatında davranışsal veriler içeren Olay veri tabloları
  • Unity Catalog (veri yönetişimi için önerilir)
Kurulum Adımları
1

Databricks Personal Access Token Oluşturun

OneSignal’in Databricks çalışma alanınıza erişmesi için bir Personal Access Token oluşturun:
  1. Databricks çalışma alanınızda User Settings’e gidin
  2. Developer sekmesine ve ardından Access tokens’a tıklayın
  3. Generate new token’a tıklayın
  4. “OneSignal Integration” gibi bir yorum girin ve son kullanma tarihi belirleyin (90 gün önerilir)
  5. Oluşturulan token’ı kaydedin (OneSignal için buna ihtiyacınız olacak)
2

SQL Warehouse erişimini yapılandırın

OneSignal’in SQL Warehouse aracılığıyla olay verilerinizi sorgulayabildiğinden emin olun:
  1. Databricks çalışma alanınızda SQL Warehouses’a gidin
  2. OneSignal erişimi için bir SQL Warehouse seçin veya oluşturun
  3. Bağlantı detaylarından Server Hostname ve HTTP Path’i not edin
  4. Warehouse’un olay veri tablolarınıza erişimi olduğundan emin olun
3

Tablo izinlerini verin

OneSignal’e olay verilerini içeren tablolara okuma erişimi verin:
-- Unity Catalog etkinleştirilmiş workspace'ler için
GRANT SELECT ON TABLE catalog.schema.event_table TO `onesignal@yourdomain.com`;

-- Hive metastore tabloları için
GRANT SELECT ON TABLE database.event_table TO `onesignal@yourdomain.com`;
4

OneSignal'de entegrasyonu ekleyin

In OneSignal, go to Data > Integrations and click Add Integration.Databricks’i seçin ve şunları sağlayın:
  • Server Hostname: Databricks SQL Warehouse hostname’iniz
  • HTTP Path: SQL Warehouse HTTP path’i
  • Personal Access Token: 1. adımda oluşturulan token
  • Catalog (isteğe bağlı): Unity Catalog kullanıyorsanız Unity Catalog adı
5

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

Olay verilerinizi içeren Databricks tablosunu belirtin:
  • Database/Schema: Olay tablolarını içeren veritabanı veya şema adı
  • Table: Olay kayıtlarını içeren tablo adı (örneğin, 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ı (Timestamp)
  • Ek olay özellikleri
6

Bağlantıyı test edin

OneSignal’in Databricks çalışma alanınıza erişebildiğini ve olay verilerini okuyabildiğini doğrulamak için Test Connection’a 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

Unity Catalog Entegrasyonu

Yönetilen veri erişimi için Unity Catalog’dan yararlanın:
SELECT
  event_name,
  user_id,
  event_timestamp,
  to_json(
    named_struct(
      'product_id', product_id,
      'purchase_amount', purchase_amount,
      'category', category
    )
  ) as payload
FROM catalog.schema.user_events
WHERE event_timestamp >= current_timestamp() - INTERVAL 7 DAYS

Delta Lake Optimizasyonu

Daha iyi sorgu performansı için olay tablolarını optimize edin:
  • Partitioning: Daha hızlı zamana dayalı sorgular için tarihe göre bölümlendirin (event_date)
  • Z-Ordering: Daha iyi filtreleme için user_id ve event_name’e göre Z-order uygulayın
  • Delta Lake Features: Otomatik optimizasyon için liquid clustering kullanın

Streaming Event Processing

Gerçek zamanlı olay işleme için şunları göz önünde bulundurun:
  • Structured Streaming: Olayları geldikçe işleyin
  • Delta Live Tables: Sağlam olay işleme hattları oluşturun
  • Auto Loader: Yeni olay dosyalarını sürekli olarak alın
SQL Warehouse’unuzun diğer iş yüklerini etkilemeden OneSignal’in sorgularını işlemek için yeterli işlem kaynaklarına sahip olduğundan emin olun.

SSS

Neden aynı içeriğe sahip farklı mesaj ID’leri görüyorum?

Bu, aynı mesajın birden fazla kez gönderilmesi durumunda olur; muhtemelen işlemsel bir akış aracılığıyla veya birden fazla gönderimde yeniden kullanılan bir mesaj şablonu.

OneSignal Databricks’ten olayları ne sıklıkla senkronize eder?

OneSignal, minimum 15 dakikalık aralıklarla yapılandırılmış programınıza göre olay verilerini senkronize eder.

Olay işleme için Databricks notebook’larını kullanabilir miyim?

Evet, olay verilerini işlemek ve hazırlamak için notebook’lar kullanabilir, ardından OneSignal’in sorgulayabileceği tablolar aracılığıyla sunabilirsiniz.

Olay sorguları için maliyet optimizasyonu hakkında ne söylenebilir?

Sorgu yüküne göre otomatik olarak ölçeklenen maliyet etkin, isteğe bağlı işlem için serverless SQL Warehouse’ları kullanmayı düşünün.