> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Greenplum

> Kullanıcı davranışına dayalı otomatik Journeys'leri ve kişiselleştirilmiş mesajlaşma kampanyalarını tetiklemek için Greenplum'dan OneSignal'e özel olayları senkronize edin.

export const PLATFORM_0 = "Greenplum"

export const DATA_TYPE_0 = "table columns"

export const COLUMN_HEADER_0 = "Greenplum Column"

export const PROPERTIES_DESCRIPTION_0 = "JSON/JSONB object with event metadata"

## Genel Bakış

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

Greenplum, büyük ölçekli analitik iş yükleri için tasarlanmış PostgreSQL üzerine kurulu büyük paralel işleme (MPP) veritabanıdır.

***

## Gereksinimler

* Access to [Event Streams](/docs/en/event-streams) for outbound message events (Plan limitations and overages apply)
* Access to [Custom Events](/docs/en/custom-events) for inbound event syncing (Plan limitations and overages apply)
* [Updated Account Plan](https://onesignal.com/pricing) (not available on free apps)

### Greenplum

* Ağ erişimi olan **Greenplum instance**
* Uygun izinlere sahip **Veritabanı kullanıcısı**
* Yapılandırılmış davranışsal veriler içeren **Olay tabloları**

***

## Senkronizasyon Motorları ve İzinler

OneSignal, Greenplum'daki tablo ve görünümlerden veri okur ve otomatik mesajlaşma kampanyalarını tetiklemek için senkronize eder. Veritabanınızdaki yükü sınırlamak için OneSignal, yalnızca son senkronizasyondan bu yana değiştirilen verilerin senkronize edilmesini sağlayan durum izleme tabloları tutar (artımlı senkronizasyonlar). Greenplum bağlantınızı yapılandırırken, durum izlemenin nasıl ele alınacağını belirleyen bir Sync Engine seçeceksiniz.

**Basic Sync Engine**, durum izleme tablolarını OneSignal'e ait altyapıda tutar ve yapılandırılması daha basittir, yalnızca okuma erişimi gerektirir.

**Advanced Sync Engine**, durum izleme tablolarını kendi Greenplum instance'ınızda özel bir şemada tutarak gelişmiş performans sunar.

## Kurulum

<Steps>
  <Step title="Census kullanıcısı oluşturun">
    OneSignal'in kullanması için özel bir veritabanı kullanıcısı oluşturun:

    ```sql theme={null}
    -- Create CENSUS user and set password
    CREATE USER CENSUS WITH PASSWORD '<strong unique password>';
    ```
  </Step>

  <Step title="Senkronizasyon motorunuzu seçin ve izinleri yapılandırın">
    **Basic Sync Engine için (Salt okunur erişim):**

    Olay veri şemanıza okuma erişimi verin. `<your schema>` yerine şema adınızı yazın:

    ```sql theme={null}
    -- Let the census user read all existing tables in this schema
    GRANT SELECT ON ALL TABLES IN SCHEMA "<your schema>" TO CENSUS;

    -- Let the census user read any new tables added to this schema
    ALTER DEFAULT PRIVILEGES IN SCHEMA "<your schema>" GRANT SELECT ON TABLES TO CENSUS;

    -- Let the census user execute any existing functions in this schema
    GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA "<your schema>" TO CENSUS;

    -- Let the census user execute any new functions added to this schema
    ALTER DEFAULT PRIVILEGES IN SCHEMA "<your schema>" GRANT EXECUTE ON FUNCTIONS TO CENSUS;
    ```

    **Advanced Sync Engine için (Gelişmiş performans):**

    Önce yukarıdaki Basic Sync Engine adımlarını tamamlayın, ardından ekleyin:

    ```sql theme={null}
    -- Create a private bookkeeping schema where Census can store sync state
    CREATE SCHEMA CENSUS;

    -- Give the census user full access to the bookkeeping schema
    GRANT ALL ON SCHEMA CENSUS TO CENSUS;

    -- Ensure the census user has access to any existing objects in the bookkeeping schema
    GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA CENSUS TO CENSUS;

    -- Let the census user see your data schema
    GRANT USAGE ON SCHEMA "<your schema>" TO CENSUS;
    ```
  </Step>

  <Step title="OneSignal'e bağlanın">
    In OneSignal, go to **Data > Integrations** and click **Add Integration**.

    **Greenplum**'ı seçin ve şunları sağlayın:

    * **Host:** Greenplum master host'unuz
    * **Port:** 5432 (veya özel port)
    * **Database:** Veritabanı adınız
    * **Username:** `CENSUS`
    * **Password:** Step 1'den şifre
    * **Sync Engine:** Step 2'ye göre Basic veya Advanced seçin
  </Step>
</Steps>

***

### Event data mapping

Map your {PLATFORM_0} {DATA_TYPE_0} to OneSignal's custom events format:

| OneSignal Field | {COLUMN_HEADER_0} | Description                | Required |
| --------------- | ----------------- | -------------------------- | -------- |
| `name`          | `event_name`      | Event identifier           | Yes      |
| `external_id`   | `user_id`         | User identifier            | Yes      |
| `timestamp`     | `event_timestamp` | When event occurred        | No       |
| `properties`    | `event_data`      | {PROPERTIES_DESCRIPTION_0} | No       |

### Örnek Olay Tablosu Şeması

```sql theme={null}
-- Example Greenplum event table
CREATE TABLE analytics.user_events (
    event_id BIGSERIAL,
    event_name VARCHAR(100) NOT NULL,
    user_id VARCHAR(255) NOT NULL,
    event_timestamp TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
    event_properties JSONB,
    session_id VARCHAR(255),
    device_type VARCHAR(50)
);
```

***

## İşleme Modları

### Table Mode

Greenplum veritabanınızdan doğrudan tam tabloları veya görünümleri senkronize edin. OneSignal, sütunları olay alanlarına otomatik olarak eşleyecektir.

### SQL Query Mode

Olay verilerinizi dönüştürmek için özel PostgreSQL uyumlu sorgular yazın:

```sql theme={null}
-- Example: Recent high-value events
SELECT
    event_name,
    user_id,
    event_timestamp,
    event_properties
FROM analytics.user_events
WHERE event_timestamp >= NOW() - INTERVAL '7 days'
    AND (event_properties->>'value')::NUMERIC > 100
ORDER BY event_timestamp DESC;
```

### MPP Sorgu Optimizasyonu

Olay sorgularınızın dağıtılmış yürütme için optimize edildiğinden emin olarak Greenplum'un paralel işleminden yararlanın. Daha iyi performans için uygun dağıtım anahtarlarını kullanın ve segmentler arası veri hareketinden kaçının.

***

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

OneSignal, bölge kısıtlamaları, IP adresi izin listeleri veya SSH Tünelleme dahil olmak üzere gelişmiş ağ kontrolleri kullanan Greenplum instance'larına başarıyla bağlanabilir.

Tüm bağlantılar için Greenplum instance'ınızı TLS v1.2 veya üstünü kullanacak şekilde yapılandırmanızı öneririz.

## Sınırlamalar

* Büyük analitik sorgular küme performansını etkileyebilir
* JSON/JSONB işlemleri dağıtım için optimize edilmelidir
* Segmentler arası birleştirmeler performans için en aza indirilmelidir

***

## SSS

### Hangi senkronizasyon motorunu seçmeliyim?

Daha basit kurulum ve salt okunur erişimi tercih ediyorsanız **Basic Sync Engine**'i kullanın. Gelişmiş performansa ihtiyacınız varsa ve OneSignal'in Greenplum instance'ınızda tablolar oluşturmasına izin verebiliyorsanız **Advanced Sync Engine**'i seçin.

### Greenplum'un MPP mimarisi için sorguları nasıl optimize ederim?

Sorguların dağıtım anahtarlarını etkin bir şekilde kullandığından emin olun, segmentler arasında gereksiz veri hareketinden kaçının ve analitik için Greenplum'un sütunlu depolamasından yararlanın.

### Olay verileri için Greenplum'un harici tablolarını kullanabilir miyim?

Evet, OneSignal, harici sistemlerde depolanan Parquet veya CSV gibi formatlardaki verilere referans veren harici tablolardan okuyabilir.

***
