Ana içeriğe atla

Genel Bakış

OneSignal + Amazon Redshift entegrasyonu, Redshift veri ambarınızdan OneSignal’e özel etkinliklerin senkronize edilmesini sağlayarak kullanıcı davranışına dayalı otomatik mesajlaşma kampanyaları ve Journey’leri tetiklemenize olanak tanır. Amazon Redshift, mevcut iş zekası araçlarınızı kullanarak büyük veri hacimlerini analiz etmenizi uygun maliyetli hale getiren, tam yönetimli, petabayt ölçeğinde bir veri ambarı hizmetidir.

Gereksinimler

Amazon Redshift

  • Ağ erişimi olan Redshift kümesi
  • Uygun izinlere sahip veritabanı kullanıcısı
  • Yapılandırılmış davranışsal veriler içeren etkinlik tabloları
  • OneSignal’den Redshift kümenize ağ bağlantısı

Kurulum

1

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

Uygun izinlere sahip özel bir kullanıcı hesabı oluşturun:
-- Create OneSignal user with strong password
CREATE USER CENSUS WITH PASSWORD '<strong-unique-password>';

-- Create private bookkeeping schema for sync state (skip if read-only mode)
CREATE SCHEMA CENSUS;

-- Grant full access to bookkeeping schema (skip if read-only mode)
GRANT ALL ON SCHEMA CENSUS TO CENSUS;

-- Ensure access to existing objects in bookkeeping schema (skip if read-only mode)
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA CENSUS TO CENSUS;
2

Etkinlik verilerine izin verme

Etkinlik verilerinizi içeren şemalara okuma erişimi sağlayın:
-- Grant schema access (repeat for each schema with event data)
GRANT USAGE ON SCHEMA "<your_schema>" TO CENSUS;

-- Grant read access to existing tables
GRANT SELECT ON ALL TABLES IN SCHEMA "<your_schema>" TO CENSUS;

-- Grant read access to future tables
ALTER DEFAULT PRIVILEGES IN SCHEMA "<your_schema>" GRANT SELECT ON TABLES TO CENSUS;

-- Grant execute permissions on functions
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

Ağ erişimini yapılandırma

OneSignal’in IP adreslerini Redshift güvenlik gruplarınıza ekleyin. Redshift varsayılan olarak harici erişimi engeller.Bölgeniz için OneSignal’in IP adreslerini entegrasyon ayarlarında bulabilirsiniz. Daha fazla bilgi için AWS Redshift Yardım Merkezi’ni ziyaret edin.
4

OneSignal'e bağlanma

In OneSignal, go to Data > Integrations and click Add Integration.
  1. Listeden Amazon Redshift’i seçin
  2. Bağlantı ayrıntılarınızı girin:
    • Host: Redshift küme uç noktanız
    • Port: Genellikle 5439
    • Database: Veritabanı adınız
    • Username: CENSUS
    • Password: Oluşturduğunuz şifre
  3. Bağlantıyı test edin
  4. Hangi tabloların etkinlik verilerinizi 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 Etkinlik Tablosu Şeması

-- Example Redshift event table
CREATE TABLE analytics.user_events (
    event_id BIGINT IDENTITY(1,1),
    event_name VARCHAR(100) NOT NULL,
    user_id VARCHAR(255) NOT NULL,
    event_timestamp TIMESTAMP DEFAULT GETDATE(),
    event_data SUPER,
    session_id VARCHAR(255),
    created_at TIMESTAMP DEFAULT GETDATE()
)
DISTKEY(user_id)
SORTKEY(event_timestamp);

SQL Sorgu Modu

Etkinlik verilerinizi dönüştürmek için özel SQL sorguları yazın:
-- Example: Recent high-value events
SELECT
    event_name,
    user_id,
    event_timestamp,
    event_data
FROM analytics.user_events
WHERE event_timestamp >= DATEADD(day, -7, GETDATE())
    AND JSON_EXTRACT_PATH_TEXT(event_data, 'value')::NUMERIC > 100
ORDER BY event_timestamp DESC;

dbt Entegrasyonu

Redshift ile dbt kullanıyorsanız, her dbt çalıştırmasından sonra OneSignal’in erişimi koruduğundan emin olun:

Seçenek 1: Ayrıntılı İzinler

Her model oluşturulduktan sonra erişim vermek için dbt projenize post-hook’lar ekleyin:
-- In your dbt model
{{ config(
    post_hook="GRANT SELECT ON {{ this }} TO CENSUS"
) }}

Seçenek 2: Varsayılan Ayrıcalıklar (Önerilen)

dbt üretim kullanıcınız için varsayılan izinler verin:
-- Must be run by Redshift superuser
ALTER DEFAULT PRIVILEGES FOR USER "<your_dbt_run_user>"
IN SCHEMA "<your_dbt_target_schema>"
GRANT SELECT ON TABLES TO CENSUS;

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

SSH Tüneli Kurulumu

Özel ağlardaki Redshift kümeleri için:
  1. SSH kullanıcısı oluşturma: SSH ana bilgisayarınızda özel bir kullanıcı oluşturun
  2. Tüneli yapılandırma: OneSignal entegrasyon ayarlarında “Use SSH Tunnel” seçeneğini etkinleştirin
  3. Anahtar çifti yükleme: OneSignal’in genel anahtarını ~/.ssh/authorized_keys dosyasına ekleyin
  4. Bağlantıyı test etme: Tünel bağlantısını doğrulayın

VPC Dağıtımı

AWS VPC içindeki Redshift için: OneSignal, verimli toplu veri çıkarma için UNLOAD komutunu kullanır. VPC dağıtımları, Redshift’in S3 ile iletişim kurmasına izin vermek için bir S3 VPC Uç Noktası gerektirir. S3 VPC Uç Noktası Kurulumu:
  1. AWS Console’da VPC hizmetine gidin
  2. S3 hizmeti için VPC Uç Noktası oluşturun
  3. Redshift alt ağınızla ilişkilendirin
  4. Yönlendirme tablolarını yapılandırın

Performans Optimizasyonu

Dağıtım ve Sıralama Anahtarları

Etkinlik tablolarınızı analitik iş yükleri için optimize edin:
-- Distribute by user_id for user-centric queries
CREATE TABLE analytics.user_events (
    -- columns
)
DISTKEY(user_id)
SORTKEY(event_timestamp, event_name);

Sütunsal Depolama

Analitik için Redshift’in sütunsal depolamasından yararlanın:
  • Sıkıştırma: Redshift sütunları otomatik olarak sıkıştırır
  • Bölge Haritaları: Sıralanmış verilerle sorgu performansını artırır
  • Sütun odaklı: Etkinlik verileri üzerindeki analitik sorgular için verimlidir

Sınırlamalar

  • Birden fazla şema ayrı izin verilmesini gerektirir
  • Çapraz şema tablolarına referans veren görünümler ek izinler gerektirir
  • Karmaşık saklı yordam erişimi ek kurulum gerektirebilir
  • VPC dağıtımları S3 VPC Uç Noktası yapılandırması gerektirir

SSS

OneSignal büyük etkinlik veri kümelerini nasıl işler?

OneSignal, büyük ölçekli analitik iş yükleri için optimize edilmiş, verimli toplu veri çıkarma için Redshift’in UNLOAD komutunu kullanır.

Salt okunur modu kullanabilir miyim?

Evet, daha basit kurulum tercih ediyorsanız ve OneSignal’in tablo oluşturmasına izin veremiyorsanız, defter tutma şeması oluşturmayı atlayabilir ve salt okunur modu kullanabilirsiniz.

dbt uyumluluğu ne durumda?

OneSignal, dbt çalıştırmalarından sonra izinlerin korunmasını sağlamak için özel dbt entegrasyon kalıpları sağlar. Kurulumunuza bağlı olarak post-hook’ları veya varsayılan ayrıcalıkları kullanın.